作成者実行環境
- Python 3.9.13
- pytorchを入れる
- 他のライブラリを入れる
pip install -r requirements.txt
ここでは最適な確信度のしきい値を求めることを目的とする
ここではAI王公式配布データセットの学習データversion2.0の一部を使用 (後述のSignateCLIから第4回用のDevセットも取得可能)
- データ取得
wget https://jaqket.s3.ap-northeast-1.amazonaws.com/data/aio_02/aio_02_train.jsonl -P datasets/aio2/
- 4000件サンプリング
python datasets/aio2/preprocess.py --original_path datasets/aio2/aio_02_train.jsonl --n_samples 4000
- 以下の環境変数を追加
export TOKENIZERS_PARALLELISM=false
- 推論: 結果は outputs/{date}/{time}/train.jsonl に出力される
python main.py model=rinna-1b dataset=aio2_v1.0
- しきい値探し
python modules/find_threshold.py --prediction_file outputs/{date}/{time}/train.jsonl --gold_file datasets/aio2/aio_02_train_4000.jsonl --limit_num_wrong_answers 3
- しきい値を超えた場合のみ回答するようなjsonlファイルを作成する (-> train_cleaned.jsonl )
python modules/clean_results.py --prediction_file outputs/{date}/{time}/train.jsonl --confidence_threshold 0.854
- スコア計算
python modules/compute_score.py --prediction_file outputs/{date}/{time}/train_cleaned.jsonl --gold_file datasets/aio2/aio_02_train_4000.jsonl --limit_num_wrong_answers 3
- signateとのデータのやり取りを行うためのAPIトークンを取得する 参考
signate token --email=Signateアカウントのメールアドレス --password=Signateアカウントのパスワード
- コンペID確認 (SignateのコンペページURL末尾と同じで、1235)
signate list
- データファイルIDの確認
signate files -c 1235
- リーダーボード用問題をダウンロード
signate download --competition-id=1235 --file-id=3801 --path=datasets/aio4_v1.0/
-
prompt作成
python datasets/aio4_v1.0/preprocess.py --original_path datasets/aio4_v1.0/aio_04_test_lb_unlabeled_v1.0.jsonl
-
推論
python main.py model=rinna-1b model.confidence_threshold=0.854 dataset.phase=test_lb_unlabeled
-
リーダーボードに提出するファイルは、拡張子がtxtである必要があるため、ファイル名を変更する
cp outputs/{date}/{time}/test_lb_unlabeled_cleaned.jsonl outputs/{date}/{time}/test_lb_unlabeled_cleaned.txt
signate submit -c 1235 {ファイルパス}
引数名 | 型 | 選択肢 |
---|---|---|
model | str | rinna-1b (default) open-calm-1b |
model.confidence_threshold | float | |
dataset | str | aio4_v1.0 (default) aio2_v1.0 |
- ビルド
docker build -t aio4-gpt-baseline .
- 実行
docker run --gpus 1 --rm -p 8000:8000 aio4-gpt-baseline
- 外からAPIで呼び出し
python -m evaluate_docker_api \ --test_unlabelded_file datasets/aio4_v1.0/aio_04_test_lb_unlabeled_v1.0.jsonl \ --output_prediction_file datasets/aio4_v1.0/aio_04_test_lb_prediction_v1.0.jsonl