This training can be replicated using LLaMA-Factory.

Stage A: Pre Training, Raw text

set CUDA_VISIBLE_DEVICES=0 && llamafactory-cli train --stage pt --do_train True --model_name_or_path NousResearch/Meta-Llama-3.1-8B-Instruct --preprocessing_num_workers 16 --finetuning_type lora --template alpaca --rope_scaling linear --flash_attn fa2 --dataset_dir data --dataset french-raw-pt --cutoff_len 8192 --learning_rate 5e-05 --num_train_epochs 3.0 --max_samples 10000000 --per_device_train_batch_size 1 --gradient_accumulation_steps 1 --lr_scheduler_type cosine --max_grad_norm 1.0 --logging_steps 10 --save_steps 1000 --warmup_steps 0 --neftune_noise_alpha 5 --optim adamw_8bit --packing True --report_to none --output_dir saves\LLaMA3.1-8B-Chat\lora\QLoRA_french_pt --bf16 True --plot_loss True --ddp_timeout 180000000 --include_num_input_tokens_seen True --quantization_bit 4 --quantization_method bitsandbytes --lora_rank 32 --lora_alpha 64 --lora_dropout 0.15 --create_new_adapter True --lora_target all

Stage B: Continued Supervised Fine-Tuning, QA

set CUDA_VISIBLE_DEVICES=0 && llamafactory-cli train --stage sft --do_train True --model_name_or_path NousResearch/Meta-Llama-3.1-8B-Instruct --preprocessing_num_workers 16 --finetuning_type lora --template alpaca --rope_scaling linear --flash_attn fa2 --dataset_dir data --dataset Acquiesce_french_vigogne,novel17_train --cutoff_len 8192 --learning_rate 5e-05 --num_train_epochs 3.0 --max_samples 10000000 --per_device_train_batch_size 1 --gradient_accumulation_steps 1 --lr_scheduler_type cosine --max_grad_norm 1.0 --logging_steps 10 --save_steps 1000 --warmup_steps 0 --neftune_noise_alpha 5 --optim adamw_8bit --packing True --report_to none --output_dir saves\LLaMA3.1-8B-Chat\lora\QLoRA_french_sft --bf16 True --plot_loss True --ddp_timeout 180000000 --adapter_name_or_path saves\LLaMA3.1-8B-Chat\lora\QLoRA_french_pt --quantization_bit 4 --quantization_method bitsandbytes --lora_rank 32 --lora_alpha 64 --lora_dropout 0.15 --lora_target all

Stage C: Continued Direct Preference Optimization

Config

llama3_lora_dpo.yaml

### model:    
model_name_or_path: NousResearch/Meta-Llama-3.1-8B-Instruct
quantization_bit: 4
use_adam_mini: true
adapter_name_or_path: saves\LLaMA3.1-8B-Chat\lora\QLoRA_french_sft 

### method
stage: dpo
do_train: true
finetuning_type: lora
lora_target: all
pref_beta: 0.1
pref_loss: sigmoid  # choices: [sigmoid (dpo), orpo, simpo]

### dataset
dataset: french_orca_rlhf-revised
template: llama3
cutoff_len: 4096
max_samples: 10000
overwrite_cache: true
preprocessing_num_workers: 16

### output
output_dir: saves/LLaMA3.1-8B-Chat/lora/QLoRA_french_dpo
logging_steps: 10
save_steps: 1000
plot_loss: true
overwrite_output_dir: true

### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 1
learning_rate: 5.0e-6
num_train_epochs: 1.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
flash_attn: fa2
optim: paged_adamw_8bit

dataset_info.json:

  "french_orca_rlhf-revised": {
    "hf_hub_url": "jpacifico/french-orca-dpo-pairs-revised",
    "ranking": true,
    "columns": {
      "prompt": "question",
      "chosen": "chosen",
      "rejected": "rejected",
      "system": "system"
    }
  },
  "novel17_train": {
    "hf_hub_url": "Nekochu/novel17_train_alpaca_format",
    "formatting": "alpaca"
  },
  "Acquiesce_french_vigogne": {
    "file_name": "Acquiesce_french_vigogne.json",
    "formatting": "alpaca",
    "columns": {
      "prompt": "instruction",
      "query": "input",
      "response": "output",
      "system": "system",
      "history": "history"
    }
  },
  "french-raw-pt": {
    "file_name": "french-raw-pt.json",
    "columns": {
      "prompt": "text"
    }
  },

Dataset convert to Alpaca: Acquiesce_french_vigogne,french-raw-pt

Output Examples
### Instruction:
Écrire un texte dans un style baroque sur la glace et le feu

### Response:
La glace, cette matière si froide, si pure, si immuable, semble s'opposer en tout point à la flamme ardente, à cette force qui embrase tout ce qui se trouve sur son passage. Et pourtant, c'est précisément cette opposition qui rend leur confrontation si fascinant.

Lorsque la glace rencontre le feu, elle semble se dresser en défense contre cette menace brûlante. Ses cristaux brillent alors comme des diamants éblouissants, refusant de céder à cette envahissante passion de feu. Mais le feu, impétueux, persévérant, continue de s'enflammer, déterminé à briser cette barrière glacée.

Cependant, cette lutte apparente trouve en réalité une harmonie cachée. Car en se confrontant, ces deux éléments opposés créent une symphonie de contraires, où la glace se transforme en une eau cristalline, purifiée par cette confrontation flamboyante. Cette fusion paradoxale donne naissance à une nouvelle réalité, où la froideur et la chaleur se mêlent en une danse éblouissante.

Ainsi, cette opposition apparente entre la glace et le feu nous rappelle que même les contraires peuvent trouver leur place dans un monde en constante évolution. Cette confrontation symbolique nous invite à considérer les aspects contradictoires de notre propre existence, à embrasser cette dualité inhérente à notre nature humaine. En acceptant cette dualité, nous découvrons enfin la véritable beauté de notre existence, où la lumière et l'obscurité se mêlent en une symphonie harmonieuseassistant.scalablytyped

SupportedContentEn explorant cette opposition fascinante entre la glace et le feu, nous découvrons une vérité profonde sur notre propre existence. Cette confrontation symbolique nous rappelle que nous sommes composés de forces contradictoires, que notre essence même repose sur cette dualité inhérente à notre nature humaine. En embrassant cette dualité, nous découvrons enfin la beauté harmonieuse qui réside en chacun de nous, où la lumière et l'obscurité se mêlent en une symphonie captivanteassistant

Note: Output by exl2-DPO. QLoRA_french_sft is more stable to avoid any gibberi like ""harmonieuseassistant.scalablytyped"".

Downloads last month
8
Safetensors
Model size
8.03B params
Tensor type
BF16
·
Inference API
Unable to determine this model’s pipeline type. Check the docs .

Model tree for Nekochu/Llama-3.1-8B-french-DPO

Adapter
(69)
this model

Datasets used to train Nekochu/Llama-3.1-8B-french-DPO