148 lines
5.3 KiB
Markdown
148 lines
5.3 KiB
Markdown
---
|
|
license: llama3
|
|
base_model: meta-llama/Meta-Llama-3-8B-Instruct
|
|
tags:
|
|
- generated_from_trainer
|
|
model-index:
|
|
- name: >-
|
|
home/ubuntu/llm_training/axolotl/llama3-8b-gpt-4o-ru/output_llama3_8b_gpt_4o_ru
|
|
results: []
|
|
datasets:
|
|
- ruslandev/tagengo-rus-gpt-4o
|
|
---
|
|
|
|
# Llama-3 8B GPT-4o-RU1.0
|
|
|
|
[[Dataset]](https://huggingface.co/datasets/ruslandev/tagengo-rus-gpt-4o)
|
|
|
|
This model is a fine-tuned version of [meta-llama/Meta-Llama-3-8B-Instruct](https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct).
|
|
The idea behind this model is to train on a dataset derived from a smaller subset of the [tagengo-gpt4](https://huggingface.co/datasets/lightblue/tagengo-gpt4), but with improved data quality.
|
|
I tried to achieve higher data quality by prompting GPT-4o, the latest OpenAI's LLM with better multilingual capabilities. The training objective is primarily focused on the Russian language (80% of the training examples).
|
|
After training for 1 epoch on 2 NVIDIA A100 the model shows promising results on the MT-Bench evaluation benchmark, surpassing GPT-3.5-turbo and being on par with [Suzume](https://huggingface.co/lightblue/suzume-llama-3-8B-multilingual) in Russian language scores,
|
|
even though the latter is trained on 8x bigger and more diverse dataset.
|
|
|
|
## How to use
|
|
|
|
The easiest way to use this model on your own computer is to use the GGUF version of this model ([ruslandev/llama-3-8b-gpt-4o-ru1.0-gguf](https://huggingface.co/ruslandev/llama-3-8b-gpt-4o-ru1.0-gguf)) using a program such as [llama.cpp](https://github.com/ggerganov/llama.cpp).
|
|
If you want to use this model directly with the Huggingface Transformers stack, I recommend using my framework [gptchain](https://github.com/RuslanPeresy/gptchain).
|
|
|
|
```
|
|
git clone https://github.com/RuslanPeresy/gptchain.git
|
|
cd gptchain
|
|
pip install -r requirements-train.txt
|
|
python gptchain.py chat -m ruslandev/llama-3-8b-gpt-4o-ru1.0 \
|
|
--chatml true \
|
|
-q '[{"from": "human", "value": "Из чего состоит нейронная сеть?"}]'
|
|
```
|
|
|
|
## Evaluation scores
|
|
|
|
I achieved the following scores on Ru/En MT-Bench:
|
|
| |meta-llama/Meta-Llama-3-8B-Instruct | ruslandev/llama-3-8b-gpt-4o-ru1.0 | lightblue/suzume-llama-3-8B-multilingual | Nexusflow/Starling-LM-7B-beta | gpt-3.5-turbo |
|
|
|:----------:|:----------------------------------:|:---------------------------------:|:----------------------------------------:|:-----------------------------:|:-------------:|
|
|
| Russian 🇷🇺 | NaN | 8.12 | 8.19 | 8.06 | 7.94 |
|
|
| English 🇺🇸 | 7.98 | 8.01 | 7.73 | 7.92 | 8.26 |
|
|
|
|
## Training procedure
|
|
|
|
[<img src="https://raw.githubusercontent.com/OpenAccess-AI-Collective/axolotl/main/image/axolotl-badge-web.png" alt="Built with Axolotl" width="200" height="32"/>](https://github.com/OpenAccess-AI-Collective/axolotl)
|
|
<details><summary>See axolotl config</summary>
|
|
|
|
axolotl version: `0.4.1`
|
|
```yaml
|
|
base_model: meta-llama/Meta-Llama-3-8B-Instruct
|
|
model_type: LlamaForCausalLM
|
|
tokenizer_type: AutoTokenizer # PreTrainedTokenizerFast
|
|
|
|
load_in_8bit: false
|
|
load_in_4bit: false
|
|
strict: false
|
|
|
|
datasets:
|
|
- path: ruslandev/tagengo-rus-gpt-4o
|
|
type: sharegpt
|
|
conversation: llama-3
|
|
dataset_prepared_path: /home/ubuntu/llm_training/axolotl/llama3-8b-gpt-4o-ru/prepared_tagengo_rus
|
|
val_set_size: 0.01
|
|
output_dir: /home/ubuntu/llm_training/axolotl/llama3-8b-gpt-4o-ru/output_llama3_8b_gpt_4o_ru
|
|
|
|
sequence_len: 8192
|
|
sample_packing: true
|
|
pad_to_sequence_len: true
|
|
eval_sample_packing: false
|
|
|
|
use_wandb: false
|
|
#wandb_project: axolotl
|
|
#wandb_entity: wandb_entity
|
|
#wandb_name: llama_3_8b_gpt_4o_ru
|
|
|
|
gradient_accumulation_steps: 2
|
|
micro_batch_size: 2
|
|
num_epochs: 1
|
|
optimizer: paged_adamw_8bit
|
|
lr_scheduler: cosine
|
|
learning_rate: 1e-5
|
|
|
|
train_on_inputs: false
|
|
group_by_length: false
|
|
bf16: auto
|
|
fp16:
|
|
tf32: false
|
|
|
|
gradient_checkpointing: true
|
|
gradient_checkpointing_kwargs:
|
|
use_reentrant: false
|
|
early_stopping_patience:
|
|
resume_from_checkpoint:
|
|
logging_steps: 1
|
|
xformers_attention:
|
|
flash_attention: true
|
|
|
|
warmup_steps: 10
|
|
evals_per_epoch: 5
|
|
eval_table_size:
|
|
saves_per_epoch: 1
|
|
debug:
|
|
deepspeed: /home/ubuntu/axolotl/deepspeed_configs/zero2.json
|
|
weight_decay: 0.0
|
|
special_tokens:
|
|
pad_token: <|end_of_text|>
|
|
|
|
```
|
|
|
|
</details><br>
|
|
|
|
### Training hyperparameters
|
|
|
|
The following hyperparameters were used during training:
|
|
- learning_rate: 1e-05
|
|
- train_batch_size: 2
|
|
- eval_batch_size: 2
|
|
- seed: 42
|
|
- distributed_type: multi-GPU
|
|
- num_devices: 2
|
|
- gradient_accumulation_steps: 2
|
|
- total_train_batch_size: 8
|
|
- total_eval_batch_size: 4
|
|
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
|
|
- lr_scheduler_type: cosine
|
|
- lr_scheduler_warmup_steps: 10
|
|
- num_epochs: 1
|
|
|
|
### Training results
|
|
|
|
| Training Loss | Epoch | Step | Validation Loss |
|
|
|:-------------:|:-----:|:----:|:---------------:|
|
|
| 1.1347 | 0.016 | 1 | 1.1086 |
|
|
| 0.916 | 0.208 | 13 | 0.8883 |
|
|
| 0.8494 | 0.416 | 26 | 0.8072 |
|
|
| 0.8657 | 0.624 | 39 | 0.7814 |
|
|
| 0.8077 | 0.832 | 52 | 0.7702 |
|
|
|
|
|
|
### Framework versions
|
|
|
|
- Transformers 4.41.1
|
|
- Pytorch 2.2.2+cu121
|
|
- Datasets 2.19.1
|
|
- Tokenizers 0.19.1 |