CoolFace
Modelpublic

EddyGiusepe/tinyllama-colorist-lora-v0.3

sourceHugging Faceapache-2.0updated 3y agoView on Hugging Face
0likes5downloads
Model Card

<!-- This model card has been generated automatically according to the information the Trainer had access to. You should probably proofread and complete it, then remove this comment. -->

<h1 align="center"><font color="red">tinyllama-colorist-lora-v0.3</font></h1>

image/png

This model, tinyllama-colorist-lora-v0.3, is a fine-tuned version of TinyLlama/TinyLlama-1.1B-Chat-v0.3 on the color dataset.

<font color="yellow">Study Motivation</font>

To study this new TinyLlama model as a replacement for Llama2 for resource-constrained environment. Also, in the future I will perform the Fine-Tuning of this model for Chat and for a specific domain in Portuguese and Spanish ๐Ÿค—.

<font color="yellow">Prompt format</font>

The model training process is similar to the regular Llama2 model with a chat prompt format like this:

<|im_start|>user\n{question}<|im_end|>\n<|im_start|>assistant\n{answer}<|im_end|>\n

<font color="yellow">Instructions for use</font>

User Input: Give me a sky blue color.
LLM response: #6092ff

<font color="yellow">Model usage</font>

python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
from transformers import pipeline

def print_color_space(hex_color):
    def hex_to_rgb(hex_color):
        hex_color = hex_color.lstrip('#')
        return tuple(int(hex_color[i:i+2], 16) for i in (0, 2, 4))
    r, g, b = hex_to_rgb(hex_color)
    print(f'{hex_color}: \033[48;2;{r};{g};{b}m           \033[0m')

tokenizer = AutoTokenizer.from_pretrained(model_id_colorist_final)
pipe = pipeline(
    "text-generation",
    model=model_id_colorist_final,
    torch_dtype=torch.float16,
    device_map="auto",
)

from time import perf_counter
start_time = perf_counter()

prompt = formatted_prompt('give me a pure brown color')
sequences = pipe(
    prompt,
    do_sample=True,
    temperature=0.1,
    top_p=0.9,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
    max_new_tokens=12
)
for seq in sequences:
    print(f"Result: {seq['generated_text']}")

output_time = perf_counter() - start_time
print(f"Time taken for inference: {round(output_time,2)} seconds")

Training hyperparameters

The following hyperparameters were used during training:

  • โ€”learning_rate: 0.0002
  • โ€”trainbatchsize: 8
  • โ€”evalbatchsize: 8
  • โ€”seed: 42
  • โ€”gradientaccumulationsteps: 4
  • โ€”totaltrainbatch_size: 32
  • โ€”optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • โ€”lrschedulertype: cosine
  • โ€”training_steps: 200
  • โ€”mixedprecisiontraining: Native AMP

Training results

Framework versions

  • โ€”PEFT 0.9.0
  • โ€”Transformers 4.38.2
  • โ€”Pytorch 2.1.0+cu121
  • โ€”Datasets 2.18.0
  • โ€”Tokenizers 0.15.2