bofenghuang / vigogne

French instruction-following and chat models
Apache License 2.0
497 stars 47 forks source link

Problème de finetuned avec mon fichier datas.jsonl #28

Open Symfomany opened 1 year ago

Symfomany commented 1 year ago

Hello la Team !

J'essaye de finetiner le model vigogne-13b pour y injecter des données juridique avec mon fichiers datas.json

Voici un bout de datas.jsonl:

{"instruction":"Introduction sur la fixation et révision du fermage viticole","input":"Quel est le cadre de révision sur le fermage agricole ?","output":"L’encadrement des modalités de fixation du loyer dans le bail à ferme constitue l’une des clés de voûte du Statut du fermage.","id":"75b82146-9190-4889-9438-3391585572e8"}
{"instruction":"Disposition de fixation et révision du fermage viticole","input":"Quel sont les dispositions de révision sur le fermage agricole ?","output":"Les dispositions qui fixent ces modalités (articles L. 411-1 et suivants du code rural et de la pêche maritime (CRPM)) sont d’ailleurs d’ordre public, caractère affirmé aux termes de l’article L. 411- 14 de ce code:  « Les dispositions des articles L. 411-11 à L. 411-13 sont d'ordre public ; celles du deuxième alinéa de l'article L. 411-13 ont un caractère interprétatif. »","id":"c7b65f15-2616-4ffc-a809-c99e34cc1588"}
...

et voici CLI:


`python vigogne/train/train_sft.py    --model_name_or_path "bofenghuang/vigogne-13b-instruct"      --train_file "data/instruct/datas.jsonl"      --output_dir "outputs/llama-7b-ft-instruct-llmint8"     --run_name "llama-7b-ft-instruct-llmint8"     
 --overwrite_output_dir     
 --mode "instruct"     
 --model_max_length "512"    
 --preprocessing_num_workers "1"    
  --dataloader_num_workers "1"     
  --load_in_8bit    
   --lora_r "8"     
   --lora_alpha "16"     
   --lora_dropout "0.05"     
   --target_modules "q_proj" "v_proj" "k_proj" "o_proj" "gate_proj" "down_proj" "up_proj"     
   --per_device_train_batch_size "16"     
   --per_device_eval_batch_size "8"    
   --gradient_accumulation_steps "8"     
   --num_train_epochs "3"     
   --learning_rate "3e-4"     
   --warmup_ratio "0.05"     
   --weight_decay "0.01"     
   --gradient_checkpointing     
   --logging_steps "10"     
   --logging_first_step true     
   --save_strategy "steps"     
   --save_steps "10"     
   --save_total_limit "2"     
   --evaluation_strategy "steps"    
    --eval_steps "10"     
    --load_best_model_at_end     
    --do_train`

J'ai cette erreur sur un GPU Nvidia P100 Cœurs 10 RAM 42 Go 16Go VRAM:

torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 50.00 MiB (GPU 0; 15.89 GiB total capacity; 2.14 GiB already allocated; 10.12 MiB free; 2.14 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Pourtant j'ai suivis qqs variables d'env pour 1 seul GPU:

export WANDB_PROJECT=llm-sft-chat-fr export OMP_NUM_THREADS=1 export TOKENIZERS_PARALLELISM="false" export CUDA_VISIBLE_DEVICES=0

bofenghuang commented 1 year ago

Salut ! Selon le message d'erreur, la mémoire disponible n'est pas suffisante pour le setup actuel. Vous pouvez soit réduire per_device_train_batch_size (en ajustant éventuellement gradient_accumulation_steps pour garder un même batch size effectif), quantifier davantage le modèle à 4-bit (voir ce blog), ou bien essayer un checkpoint plus petit comme le 7B

LeMoussel commented 1 year ago

"quantifier davantage le modèle à 4-bit" ⇒ il faut positionner le paramètre --load_in_4bit en lieu et place de --load_in_8bit. Voir cet examples/train/train_sft_chat_lora_int4.sh

Symfomany commented 1 year ago

Est au lieu d'un seul GPU A100 si je le faisais avec 2 ou 4 GPU en parallèle cela passerais? il faudrait une configuration pour paralleliser le finetuning?

Symfomany commented 1 year ago

Alors cela avance mais j'ai encore cetet erreur: TypeError: expected str, bytes or os.PathLike object, not NoneType

je sais pas si cele vient de moi

image
Symfomany commented 1 year ago
image