🚀 GPT-Neo-125M-APPS-all
GPT-Neo-125M-APPS-allは、APPSデータセットでファインチューニングされたGPT-Neo-125Mモデルです。このモデルは、プログラミングタスクを解くことに特化しています。
🚀 クイックスタート
新しいGitHub Wikiをご参照ください。ここでは、GitHub Copilotのオープンソースバージョンを作成する際の取り組みについて詳細に記載されています。
✨ 主な機能
GPT-Neo-125M-APPS-allは、GPT-Neo-125MをAPPSデータセットでファインチューニングしたモデルで、プログラミングタスクの解決に特化しています。
📦 インストール
このモデルのトレーニングに使用されたスクリプトは、こちらで確認できます。
トレーニングは、AdamWオプティマイザと800ステップのウォームアップを伴う線形減衰学習率スケジュールを使用して、5エポック行われます。トレーニングを再現するには、上記のスクリプトと以下のコマンドを使用できます。
python run_clm_apps.py \
--output_dir $HOME/gpt-neo-125M-apps \
--model_name_or_path EleutherAI/gpt-neo-125B \
--dataset_name $HOME/gpt-code-clippy/data_processing/apps.py \
--dataset_config_name formatted \
--do_train --do_eval \
--block_size="1024" \
--per_device_train_batch_size="16" \
--per_device_eval_batch_size="16" \
--preprocessing_num_workers="16" \
--learning_rate="8e-5" \
--warmup_steps="800" \
--adam_beta1="0.9" \
--adam_beta2="0.98" \
--weight_decay="0.1" \
--overwrite_output_dir \
--num_train_epochs="5" \
--logging_steps="50" \
--eval_steps="2000" \
--report_to="wandb" \
--dtype="bfloat16" \
--save_strategy epoch \
--gradient_accumulation_steps 2 \
--all_data true \
💻 使用例
基本的な使用法
from transformers import AutoModelForCausalLM, AutoTokenizer, FlaxAutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("flax-community/gpt-code-clippy-125M-apps-alldata")
tokenizer = AutoTokenizer.from_pretrained("flax-community/gpt-code-clippy-125M-apps-alldata")
prompt = """
A function to greet user. Given a user name it should say hello
def greet(name):
ANSWER:
"""
input_ids = tokenizer(prompt, return_tensors='pt').input_ids.to(device)
start = input_ids.size(1)
out = model.generate(input_ids, do_sample=True, max_length=50, num_beams=2,
early_stopping=True, eos_token_id=tokenizer.eos_token_id, )
print(tokenizer.decode(out[0][start:]))
📚 ドキュメント
モデルの説明
GPT-Neo-125M-APPS-allは、APPSデータセットでファインチューニングされたGPT-Neo-125Mモデルです。このモデルは、プログラミングタスクを解くことに特化しています。
トレーニングデータ
このモデルは、Automated Programming Progress Standard (APPS) データセットでトレーニングされています。このデータセットは、合計10,000のコーディング問題で構成されており、ソリューションをチェックするための131,836のテストケースと、人間によって書かれた232,444の正解ソリューションが含まれています。問題は複雑なものもあり、問題の平均長は293.2語です。データはトレーニングセットとテストセットに均等に分割され、それぞれ5,000の問題が含まれています。
このモデルは、トレーニングセットとテストセットの両方を含むAPPSデータセットの大部分を使用してファインチューニングされており、このトレーニングタスクが他のコード合成評価指標に対するモデルのパフォーマンスに与える影響を調査しています。トレーニングセットのみでファインチューニングされたモデルは、こちらで見つけることができます。
トレーニング手順
このモデルのトレーニングに使用されたスクリプトは、こちらで確認できます。
意図された使用法と制限事項
このモデルは、テキスト説明とオプションのスターターコードを与えられたプログラミング問題を解くためにファインチューニングされています。
制限事項とバイアス
このモデルは研究目的で使用することを意図しており、生成されるコードの品質については保証されていません。
OpenAIの論文 "Evaluating Large Language Models Trained on Code" では、コードでトレーニングされた大規模言語モデルが与える影響について良い議論があります。したがって、このデータセットとそこからトレーニングされる可能性のあるモデルに関連する彼らの議論の一部をここに強調します。また、論文との見解の違い、特に法的な影響に関する部分もあります。
- 過度な依存:このモデルは、正しいように見えるが必ずしも正しい解ではない解を生成する可能性があります。生成されたコードを適切に評価しないと、バグの導入やセキュリティホールの導入などの悪影響を引き起こす可能性があります。したがって、ユーザーがこの言語モデルの制限と潜在的な悪影響を認識することが重要です。
- 経済的および労働市場への影響:このような大規模なコードデータセットでトレーニングされた大規模言語モデルは、高品質なコードを生成する能力があり、ソフトウェア開発プロセスの一部を自動化する可能性があります。これはソフトウェア開発者に悪影響を与える可能性があります。しかし、論文で議論されているように、O*NET OnLine からのソフトウェア開発者の概要レポートに示されているように、開発者はソフトウェアを書くだけではありません。
- バイアス:このモデルは、特定の形式でフォーマットされたプロンプト質問を含むデータでトレーニングされています。プロンプトのフォーマットがAPPSデータセットで使用されているものと異なる場合、モデルのパフォーマンスは低下する可能性があります。
GPT-CCはGPT-Neoをファインチューニングしたもので、そこからバイアスと制限を引き継いでいる可能性があります。詳細については、GPT-Neoモデルカード を参照してください。
評価結果
近日公開予定...
📄 ライセンス
このモデルはMITライセンスの下で提供されています。
情報テーブル
| 属性 | 详情 |
|------|------|
| モデルタイプ | GPT-Neo-125MをAPPSデータセットでファインチューニングしたモデル |
| トレーニングデータ | Automated Programming Progress Standard (APPS) データセット |