|
--- |
|
license: apache-2.0 |
|
base_model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 |
|
tags: |
|
- trl |
|
- sft |
|
- generated_from_trainer |
|
model-index: |
|
- name: TinyLlama_instruct_generation |
|
results: [] |
|
--- |
|
|
|
<!-- 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. --> |
|
|
|
# TinyLlama_instruct_generation |
|
|
|
This model is a fine-tuned version of [TinyLlama/TinyLlama-1.1B-Chat-v1.0](https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0) on the generator dataset. |
|
|
|
|
|
## Model description |
|
|
|
This model has been fine tuned with mosaicml/instruct-v3 dataset with 2 epoch only. Mainly this model is useful for RAG based application |
|
|
|
## How to use? |
|
from peft import PeftModel |
|
|
|
#load the base model |
|
|
|
model_path = "TinyLlama/TinyLlama-1.1B-Chat-v1.0" |
|
|
|
tokenizer=AutoTokenizer.from_pretrained(model_path) |
|
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_path, |
|
torch_dtype = torch.bfloat16, |
|
device_map = "auto", |
|
trust_remote_code = True |
|
) |
|
|
|
#load the adapter |
|
|
|
model_peft = PeftModel.from_pretrained(model, "azam25/TinyLlama_instruct_generation") |
|
|
|
messages = [{ |
|
"role": "user", |
|
"content": "Act as a gourmet chef. I have a friend coming over who is a vegetarian. \ |
|
I want to impress my friend with a special vegetarian dish. \ |
|
What do you recommend? \ |
|
Give me two options, along with the whole recipe for each" |
|
}] |
|
|
|
def generate_response(message, model): |
|
|
|
prompt = tokenizer.apply_chat_template(messages, tokenize=False) |
|
encoded_input = tokenizer(prompt, return_tensors="pt", add_special_tokens=True) |
|
model_inputs = encoded_input.to('cuda') |
|
generated_ids = model.generate(**model_inputs, max_new_tokens=1000, do_sample=True, pad_token_id=tokenizer.eos_token_id) |
|
decoded_output = tokenizer.batch_decode(generated_ids) |
|
return decoded_output[0] |
|
|
|
response = generate_response(messages, model) |
|
print(response) |
|
|
|
|
|
## Intended uses & limitations |
|
|
|
More information needed |
|
|
|
## Training and evaluation data |
|
|
|
More information needed |
|
|
|
## Training procedure |
|
|
|
### Training hyperparameters |
|
|
|
The following hyperparameters were used during training: |
|
- learning_rate: 0.0002 |
|
- train_batch_size: 4 |
|
- eval_batch_size: 8 |
|
- seed: 42 |
|
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 |
|
- lr_scheduler_type: constant |
|
- lr_scheduler_warmup_steps: 0.03 |
|
- num_epochs: 2 |
|
- mixed_precision_training: Native AMP |
|
|
|
### Training results |
|
|
|
| Training Loss | Epoch | Step | Validation Loss | |
|
|:-------------:|:-----:|:----:|:---------------:| |
|
| 1.6386 | 1.0 | 25 | 1.4451 | |
|
| 1.5234 | 2.0 | 50 | 1.3735 | |
|
|
|
|
|
### Framework versions |
|
|
|
- Transformers 4.35.2 |
|
- Pytorch 2.1.0+cu121 |
|
- Datasets 2.16.1 |
|
- Tokenizers 0.15.0 |