ChatGLM ptuning-v2 トレーニング パラメーター分析

 

PRE_SEQ_LEN=128
LR=2e-2

CUDA_VISIBLE_DEVICES=0 python3 main.py \
    --do_train \
    --train_file AdvertiseGen/train.json \
    --validation_file AdvertiseGen/dev.json \
    --prompt_column content \
    --response_column summary \
    --overwrite_cache \
    --model_name_or_path THUDM/chatglm-6b \
    --output_dir output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR \
    --overwrite_output_dir \
    --max_source_length 64 \
    --max_target_length 64 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --gradient_accumulation_steps 16 \
    --predict_with_generate \
    --max_steps 3000 \
    --logging_steps 10 \
    --save_steps 1000 \
    --learning_rate $LR \
    --pre_seq_len $PRE_SEQ_LEN \
    --quantization_bit 4

このコードは、「main.py」という Python プログラムを実行するコマンドライン スクリプトです。コードを 1 行ずつ説明します。

  1. PRE_SEQ_LEN=128:PRE_SEQ_LENという変数を定義し、それを 128 に設定します。この変数の役割は後続のコードで使用されます。

  2. LR=2e-2:LRという変数を定義し、それを 2e-2 (0.02) に設定します。この変数は学習率を表し、後続のコードで使用されます。

  3. CUDA_VISIBLE_DEVICES=0 python3 main.py \: CUDA 可視デバイスの環境変数を設定し、その値を 0 に設定します。これは、最初の可視 GPU デバイスを使用することを意味します。次に、Python 3 インタープリターを使用して、「main.py」という名前の Python プログラムを実行します。\コマンドが次の行に続くことを示します。

  4. --do_train \: トレーニング タスクを実行するようにプログラムに指示するコマンド ライン パラメーター。

  5. --train_file AdvertiseGen/train.json \: 学習データファイルのパスとファイル名を「AdvertiseGen/train.json」として指定します。

  6. --validation_file AdvertiseGen/dev.json \: 検証データファイルのパスとファイル名を「AdvertiseGen/dev.json」として指定します。

  7. --prompt_column content \: プロンプトとして入力データの列名「content」を指定します。

  8. --response_column summary \: 入力データの列名「summary」を応答として指定します。

  9. --overwrite_cache \: キャッシュが存在する場合は上書きするように指示するコマンドライン引数。

  10. --model_name_or_path THUDM/chatglm-6b \: 使用するモデルの名前またはパスを「THUDM/chatglm-6b」として指定します。

  11. --output_dir output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR \: 出力ディレクトリのパスと名前を「output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR」として指定します。ここにトレーニング結果とログが保存されます。

  12. --overwrite_output_dir \:出力ディレクトリが存在する場合、それを上書きするように指示するコマンドライン引数。

  13. --max_source_length 64 \: 入力シーケンスの最大長が 64 であることを指定します。

  14. --max_target_length 64 \: 出力シーケンスの最大長が 64 であることを指定します。

  15. --per_device_train_batch_size 1 \: トレーニング デバイスごとにトレーニング バッチ サイズを 1 に指定します。

  16. --per_device_eval_batch_size 1 \: 評価デバイスごとに評価バッチ サイズを 1 に指定します。

  17. --gradient_accumulation_steps 16 \: 勾配累積のステップ数を 16 に指定します。各更新ステップの前に、一定数の勾配が計算され、蓄積されます。

  18. --predict_with_generate \: モデルの予測を生成するときに使用する生成モードを示すコマンド ライン引数。

  19. --max_steps 3000 \: トレーニング ステップの最大数が 3000 であることを指定します。

  20. --logging_steps 10 \: 10 ステップごとにログを記録するように指定します。

  21. --save_steps 1000 \: 1000 ステップごとにモデルを保存するように指定します。

  22. --learning_rate $LR \:前に定義したLR学習率変数の値を指定します。

  23. --pre_seq_len $PRE_SEQ_LEN \: プリセットシーケンスの長さを、以前に定義したPRE_SEQ_LEN変数の値として指定します。

  24. --quantization_bit 4 \:量子化桁数を4に指定します。このパラメータはモデル固有の設定である場合があります。

一般に、このコードは、指定されたデータセット、モデル、ハイパーパラメーター設定を使用して、チャット生成モデルのトレーニング タスクを実行します。

  1. コードの1 行目PRE_SEQ_LEN=128と 2 行目はLR=2e-2変数を定義するために使用されます。PRE_SEQ_LENの値は 128 に設定され、LRの値は 0.02 に設定されます。

  2. 3 行目は、CUDA_VISIBLE_DEVICES=0 python3 main.py \表示されている GPU デバイスをデバイス番号 0 に設定し、Python 3 インタープリターを使用して「main.py」という名前の Python プログラムを実行するコマンドライン コマンドです。このコマンドはバックスラッシュを使用して\、コマンドが次の行に続くことを示します。

  3. 次の数行はコマンド ライン パラメーターで、構成情報とデータ パスをプログラムに渡すために使用されます。これらのパラメータには次のものが含まれます。

  • --do_train: トレーニング タスクを実行するようにプログラムに指示します。

  • --train_file AdvertiseGen/train.json: 学習データファイルのパスとファイル名を「AdvertiseGen/train.json」として指定します。

  • --validation_file AdvertiseGen/dev.json: 検証データファイルのパスとファイル名を「AdvertiseGen/dev.json」として指定します。

  • --prompt_column content: プロンプトとして入力データの列名「content」を指定します。

  • --response_column summary: 入力データの列名「summary」を応答として指定します。

  • --overwrite_cache: キャッシュが存在する場合は上書きすることを示します。

  • --model_name_or_path THUDM/chatglm-6b: 使用するモデルの名前またはパスを「THUDM/chatglm-6b」として指定します。

  • --output_dir output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR: 出力ディレクトリのパスと名前を「output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR」として指定します。ここで、 と は、以前に定義した変数の値$PRE_SEQ_LENです。$LR

  • --overwrite_output_dir: 出力ディレクトリが存在する場合、それを上書きすることを示します。

  • --max_source_length 64: 入力シーケンスの最大長が 64 であることを指定します。

  • --max_target_length 64: 出力シーケンスの最大長が 64 であることを指定します。

  • --per_device_train_batch_size 1: 各トレーニング デバイスのトレーニング バッチ サイズを 1 に指定します。

  • --per_device_eval_batch_size 1: 各評価デバイスの評価バッチ サイズを 1 に指定します。

  • --gradient_accumulation_steps 16: 勾配累積のステップ数を 16 に指定します。各更新ステップの前に、一定数の勾配が計算され、蓄積されます。

  • --predict_with_generate: モデルの予測を生成するときに生成モードが使用されることを示します。

  • --max_steps 3000: トレーニング ステップの最大数が 3000 であることを指定します。

  • --logging_steps 10:10ステップごとにログを記録するように指定します。

  • --save_steps 1000: 1000 ステップごとにモデルを保存するように指定します。

  • --learning_rate $LR:前に定義したLR学習率変数の値を指定します。

  • --pre_seq_len $PRE_SEQ_LEN: プリセットシーケンスの長さを、以前に定義したPRE_SEQ_LEN変数の値として指定します。

  • --quantization_bit 4:量子化桁数を4に指定します。

これらのパラメーターは、トレーニング タスクの動作と設定を構成するために、「main.py」という Python プログラムに渡されます。

応答を再生成する

おすすめ

転載: blog.csdn.net/sinat_37574187/article/details/131401654
おすすめ