「Code Llama内部:Meta AIがCode LLMスペースへの参入」
Code Llama内部:Meta AI参入
新しいモデルのファミリーは、Llama 2の基盤を活用して、異なるコード生成タスクにおいて最先端のパフォーマンスに匹敵するように構築されています。
最近、AIに焦点を当てた教育ニュースレターを始めました。すでに16万人以上の購読者がいます。TheSequenceは、5分で読めるノンフィクション(つまり、ハイプやニュースなどはない)の機械学習に特化したニュースレターです。このニュースレターでは、機械学習プロジェクト、研究論文、および概念について最新情報を提供します。以下のリンクからぜひ購読してみてください。
TheSequence | Jesus Rodriguez | Substack
機械学習、人工知能、データに関する最新情報を入手するための最高の情報源…
thesequence.substack.com
コーディングは、大規模な言語モデル(LLM)にとって、最も活発な行動の場の1つに急速になっています。OpenAIがCodex(現在はGPT-4の一部)を昨年公開して以来、コーディング言語モデルのイノベーションのレベルは驚くべきものとなっています。過去数ヶ月間には、Salesforce、Hugging Face、DeepMind、Amazonなどの企業によってコードLLMがリリースされてきました。先週、Meta AIは最近リリースされたLlama 2をベースにしたオープンソースのコードLLMであるCode Llamaを発表しました。Code Llamaのリリースは、Metaがオープンソースの基盤モデル運動に与えている影響を考慮すると、重要です。Meta AIは、コードに特化したデータセットでの拡張的なトレーニングを通じて生まれたLlama 2の特殊なバージョンであるCode Llamaを開発しました。コード中心のデータセットからデータを集中的に抽出することで、Code Llamaはコーディングの能力を向上させ、Llama 2から継承された機能を効果的に強化しました。この高度なバージョンは、コード生成やコードに関する自然言語の説明において優れた能力を示します。入力がコードまたは「フィボナッチ数列を生成する関数を作成してください」といったリクエストのような自然言語であるかに関係なく、Code Llamaは関連するコードとテキストの説明を的確に生成します。さらに、Python、C++、Java、PHP、Typescript(Javascript)、C#、Bashなどの人気のある言語をスムーズにサポートし、コード補完やデバッグの取り組みを手助けします。
Code Llamaの内部
Code Llamaのリリースには、1つのモデルではなく、7B、13B、34Bという3つの異なるバリアントが含まれています。これらのモデルは、コードとコード関連の情報を含む500Bトークンの広範なプールでトレーニングされています。特に、7Bと13Bのベースモデルとinstructモデルには、既存のコード構造にコードをシームレスに挿入する能力が備わっています。この特性により、コードの補完などのタスクを始めから処理することができます。この3つのモデルは、提供とレイテンシーに関する異なる要件に対応しています。たとえば、7Bモデルは単一のGPUで動作する能力を持っています。一方、34Bモデルは最適な結果を生み出し、コーディングの支援を高める点で優れており、より小さい7Bと13Bのバージョンはスピードに優れているため、リアルタイムのコード補完などの低レイテンシータスクに適しています。
- 「最も強力な機械学習モデルの解説(トランスフォーマー、CNN、RNN、GANなど)」
- 「SelFeeに会いましょう:自己フィードバック生成によって強化された反復的自己修正LLM」
- 「岩石とAIの衝突:鉱物学とゼロショットコンピュータビジョンの交差点」
Meta AIのイノベーションは、Code Llamaの2つのニュアンスのある派生にも広がっています: Code Llama – PythonとCode Llama – Instructです。
- Code Llama – Pythonは、100Bトークンに及ぶ大規模なPythonコードに精通した専門的な派生です。Pythonはコード生成のベンチマークやAIコミュニティ内での重要性が高いため、この特化モデルは有用性を高めます。
- Code Llama – Instructは、Code Llamaを「自然言語の指示」の入力と予測される出力と組み合わせての指導的な微調整を通じて調整したものです。この戦略的な方法論により、モデルはプロンプトでの人間の期待を把握する能力が向上します。コード生成を伴う取り組みには、有用で安全な自然言語の応答を生成するため、Code Llama – Instructのバージョンを選択することが推奨されます。
Code Llamaのトレーニングと微調整に深く入り込むと、いくつかの重要なポイントがあります。1) データセットLlamaのトレーニングは、公開されているコードを豊富に取り入れた厳選されたデータセットに基づいています。データセットは、初期段階では500Bトークンで構成されており、7B、13B、34Bバージョンから始まります。さらに、自然言語のデータセットからコードドメインに関連するサンプルデータの8%が追加されています。
2) インフィリングCode Infillingの領域では、プログラム内の欠落したセグメントを予測するという重要なタスクがあります。この予測は、文脈を考慮に入れながら行われます。具体的な応用例としては、統合開発環境(IDE)内でのコード補完、型推論、コードドキュメンテーション(docstrings)の生成などがあります。Meta AIは、Aghajanyanらによって提唱された「因果マスキング」という概念に合致するフレームワークを使用してインフィリングモデルを構築しています。トレーニングプロセスでは、トレーニングシーケンスの一部を結論にシフトさせ、自己回帰予測のためのパスを作ります。この取り組みでは、汎用性のある7Bモデルと13Bモデルの両方がインフィリング指向のトレーニングを行い、Bavarianらのアドバイスに従って戦略を模索します。
3) 長文脈微調整:トランスフォーマベースの言語モデルの領域において、長いシーケンスの処理は困難な課題です。主な課題は、トレーニング中に遭遇しないシーケンスの長さに関する予測や、注意力パスの二次的な複雑さです。Meta AIは、この問題に対して独自の解決策を提供するために、長文脈微調整(LCFT)という専用のドメインを導入しています。16,384トークンを含むシーケンスを採用し、これはLlama 2の初期コードトレーニング段階での4,096トークンから大きく進歩したものです。LCFTにより、モデルには広範な能力が与えられます。この戦略的な変更は、トレーニングコストの過度な上昇を回避しながら、微調整フェーズ内で行われます。
4) インストラクション微調整:Code Llamaの強力さは、洗練されたCode Llama — Instructモデルにおいても発揮されます。このバージョンはCode Llamaを基盤とし、適切な応答を示すように設計されています。教師あり微調整と多数の拒絶サンプリング例を組み合わせることによって、この指示的な能力が実現されています。
5) Self-InstructMeta AIは、コードに関連するタスクに関連するインスタンスをキュレーションするという独自の取り組みを始めました。人間のアノテーターや人間のフィードバックからデータを収集することのリソースの消費が大きいことを認識し、自己教示に特に重点を置いています。プロの開発者の見識に基づいたコーディングタスクの領域が、この革新的なアプローチのキャンバスとなっています。
結果
Meta AIは、Code Llamaの評価において、広く認知されている2つのコーディングベンチマークであるHumanEvalとMostly Basic Python Programming(MBPP)を活用しました。HumanEvalベンチマークは、モデルのドキュメント文字列によるコード補完の能力を体系的に評価し、MBPPベンチマークはモデルの説明を実行可能なコードに変換する能力を検証します。厳密なベンチマーキングにより、Code Llamaはオープンソースのコード中心の大規模言語モデル(LLM)を凌駕し、前身であるLlama 2をも上回る性能を発揮しました。たとえば、Code Llama 34Bの場合、HumanEvalベンチマークでは53.7%、MBPPベンチマークでは56.2%という驚異的なスコアが記録されました。これらのスコアは、同等の最先端の解決策の中でも最も高く、Code Llama 34BをChatGPTの優れた機能と同等に位置付けています。
Code Llamaは、将来的に最も重要なコードLLMの1つとなることを約束しています。それは確かに、異なるドメインでのオープンソースの基盤モデルの価値を再確認する一助となるでしょう。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles