CodeParrot 🦜をスクラッチからトレーニングする
Training CodeParrot 🦜 from Scratch
この記事では、Pythonコード生成モデルであるCodeParrotをスクラッチからトレーニングするプロセスを解説しています。まず、GitHubのダンプから180GB、2000万ファイル規模のPythonコードデータセットを収集し、重複を除去して50GBの「codeparrot-clean」データセットを作成しました。次に、このデータセットでコードに特化した新しいトークナイザーをトレーニングし、Hugging Face Hubにプッシュしました。その後、GPT-2 large(1.5Bパラメータ)と同様のハイパーパラメータを持つ新しいモデルを初期化し、新しいトークナイザーに合わせて調整しました。トレーニングには🤗 Accelerateライブラリを使用し、GPU間の分散トレーニングを容易にしました。データセットは、ディスク容量を節約するためにストリーミング形式で読み込み、固定長のシーケンスにチャンク化しました。学習率スケジューラやオプティマイザを設定し、モデル、オプティマイザ、データローダーをAcceleratorで準備しました。トレーニングループでは、勾配累積と勾配クリッピングを使用し、定期的に検証セットで評価を行い、モデルをHugging Face Hubにプッシュしました。最終的に、16台のA100 GPUマシンで1日〜1週間かけて110Mおよび1.5Bパラメータのモデルをトレーニングし、OpenAIのHumanEvalベンチマークで良好なコード生成性能を示しました。また、モデルの利用方法として、Hugging Face Spacesでのデモや、`transformers`ライブラリからの直接利用についても紹介しています。
- Hugging FaceがPythonコード生成モデルCodeParrot(1.5Bパラメータ)をスクラッチからトレーニングし公開
- 16台のA100 GPUを用いてCodeParrotモデルを1日〜1週間かけてトレーニング
- HumanEvalベンチマークで良好なコード生成性能を達成
Hugging Faceが公開したCodeParrotは、Pythonコード生成に特化したGPT-2ベースのモデルであり、16台のA100 GPUという大規模な計算資源を用いてスクラッチからトレーニングされた点が重要。この取り組みは、コード生成AIの民主化(オープンソースモデルの提供)を進めるHugging Faceの戦略を示しており、今後のAI開発における計算資源の需要と供給バランスに影響を与える可能性がある。投資家としては、大規模GPUクラスタの需要増加要因として注目すべき。