🚀 GPT-Neo-125M-APPS
GPT-Neo-125M-APPSは、プログラミングタスクを解くために特化したモデルです。このモデルは、GPT-Neo-125MをAPPSデータセットでファインチューニングしたものです。
私たちの新しいGitHub Wikiを参照してください。ここでは、GitHub Copilotのオープンソースバージョンを作成する際の取り組みを詳細に記載しています。
🚀 クイックスタート
このモデルを使ってプログラミングタスクを解くことができます。具体的な使用方法については、以下の「使用例」を参照してください。
✨ 主な機能
- GPT-Neo-125MをAPPSデータセットでファインチューニングしたモデルです。
- プログラミングタスクを解くことに特化しています。
📦 インストール
このモデルを再現するためのトレーニングコマンドは以下の通りです。トレーニングスクリプトはこちらにあります。
python run_clm_apps.py \
--output_dir $HOME/gpt-neo-125M-apps \
--model_name_or_path EleutherAI/gpt-neo-125M \
--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 \
💻 使用例
基本的な使用法
from transformers import AutoModelForCausalLM, AutoTokenizer, FlaxAutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("flax-community/gpt-neo-125M-apps")
tokenizer = AutoTokenizer.from_pretrained("flax-community/gpt-neo-125M-apps")
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は、GPT-Neo-125MをAPPSデータセットでファインチューニングしたモデルです。このモデルは、プログラミングタスクを解くことに特化しています。
トレーニングデータ
このモデルは、Automated Programming Progress Standard (APPS) データセットでトレーニングされています。このデータセットは、合計10,000のコーディング問題で構成されており、解をチェックするための131,836のテストケースと、人間によって書かれた232,444の正解が含まれています。問題は複雑な場合があり、問題の平均長は293.2語です。データはトレーニングセットとテストセットに均等に分割され、それぞれ5,000の問題が含まれています。
トレーニング手順
このモデルをトレーニングするために使用されたトレーニングスクリプトはこちらにあります。
トレーニングは、AdamWオプティマイザと800ステップのウォームアップを伴う線形減衰学習率スケジュールを使用して、5エポック行われます。トレーニングを再現するには、上記のスクリプトと以下のコマンドを使用できます。
制限事項とバイアス
- 過度な依存:このモデルは、正しいように見える解を生成する場合がありますが、必ずしも正しい解ではありません。生成されたコードを適切に評価しないと、バグの導入やセキュリティホールの導入などの悪影響を引き起こす可能性があります。したがって、ユーザーはこの言語モデルの制限と潜在的な悪影響を認識することが重要です。
- 経済と労働市場への影響:このような大規模なコードデータセットでトレーニングされた大規模言語モデルは、高品質なコードを生成する能力があり、ソフトウェア開発プロセスの一部を自動化する可能性があります。これはソフトウェア開発者に悪影響を与える可能性があります。ただし、論文で議論されているように、O*NET OnLineのソフトウェア開発者の概要レポートに示されているように、開発者はソフトウェアを書くだけではありません。
- バイアス:このモデルは、特定の形式でフォーマットされたプロンプト質問を含むデータでトレーニングされています。プロンプトのフォーマットがAPPSデータセットで使用されているものと異なる場合、モデルの性能は低下する可能性があります。
GPT-CCはGPT-Neoをファインチューニングしたものであり、そこからバイアスや制限事項を引き継いでいる可能性があります。詳細については、GPT-Neoモデルカードを参照してください。
🔧 技術詳細
📄 ライセンス
このモデルはMITライセンスの下で提供されています。