Open hkiyomaru opened 3 months ago
叩き台です.書いていて思ったこと:
run_llm-jp-eval.sh
のモデル名,W&B run name 以外の設定(W&B entity name とか)も外部から編集できると便利かも?run_llm-jp-eval.sh
の終了コードを見て評価済みモデルのリストに追記するかどうか判定すべきかも?
run_llm-jp-eval.sh のモデル名,W&B run name 以外の設定(W&B entity name とか)も外部から編集できると便利かも?
run_llm-jp-eval.sh
は実験の一連の評価に利用することを想定しているため、評価ごとに設定の変化する run name と ターゲットモデルのみを引数に取るようにしています。
一方で、実験の一連の評価の中で変化させることがあまりない、project name や tokenizerなどは run_llm-jp-eval.sh
を別ファイルで新規作成して内部の変数を書き換えてもらう運用で考えていました。
See README.md - Evaluation
実行時の環境変数として用意する方法も考えていましたが、複雑にする必要もないかと思い導入を見送りました。(以下のコードで機能するかは不明ですが)
e.g., WANDB_PROJECT=test sbatch --partition {partition} run_llm-jp-eval.sh {path/to/model} {wandb.run_name}
私の方の作成方針は以上のとおりですが、不都合があるようでしたら適宜変更してもらえると
定期実行じゃないですが、v3 13b exp4は次のスクリプトを朝起きがけに叩いて、新しく上がっているckptに対する評価を全部ジョブに投げるようにしています。(今日全部やり直しましたが、スクリプト自体は同じままです) processedというディレクトリにバッチ投入したiterの名前で空ファイルを作り、それを処理済み判定に使用しています。再実行したければファイルを削除すればよい 正直これで必要十分なので、自動化いらんのでは…? と思うなどしてました。 (朝起きがけに叩く部分を自動化してもよいですが…)
#!/bin/bash
CHECKPOINTS_DIR=/home/shared/experiments/0019_v3-13b-exp4-hf/checkpoints_hf
mkdir -p processed
for d in $(ls ${CHECKPOINTS_DIR}); do
if [[ -f processed/$d ]]; then
echo "$d: already processed"
continue
fi
echo "$d: queued"
sbatch \
run_llm-jp-eval.sh \
/home/shared/experiments/0019_v3-13b-exp4-hf/checkpoints_hf/$d \
$d \
&& touch processed/$d
done
改めて読んだら雑だなと思ったので後半を少し修正
#!/bin/bash
CHECKPOINTS_DIR=/home/shared/experiments/0019_v3-13b-exp4-hf/checkpoints_hf
mkdir -p processed
for d in $(ls ${CHECKPOINTS_DIR}); do
if [[ -f processed/$d ]]; then
echo "$d: already processed"
continue
fi
sbatch run_llm-jp-eval.sh ${CHECKPOINTS_DIR}/$d $d \
&& touch processed/$d \
&& echo "$d: queued"
done
This PR addresses the issue #22.