Code llamaとは?わかりやすく解説
今回の記事では、Metaが開発した「Code llama」というコード生成AIについて分かりやすく解説していきます。
先日、2023/7/18に発表された「Llama2」は論文でChatGPTを超える、もしくは同等の精度だと話題になりました。
そのLlama2をベースに作られた「Code llama」はどうなのか?特徴や性能をみていきたいと思います。
Llama2についてはこちら
Code llamaとは
Code Llamaは、Llama2をベースにした、コードと自然言語プロンプトの両方からコードとコードに関する自然言語を生成できる最先端のLLM(大規模言語モデル)です。
Code Llamaは、Llama2と同様に研究および商用利用に無料です。
Code Llamaは次の3つの利用可能なモデルを提供しています。
- Code Llama:基本的なコードモデル。
- Codel Llama – Python:Pythonに特化したモデル
- Code Llama – Instruct:プロンプトの理解に特化したモデル
独自のベンチマークテストでは、Code Llama はコードタスクにおいて、公的に入手可能な最先端のLLMよりも優れたパフォーマンスを示しました。
Code llamaの特徴
Code llamaの特徴についてまとめていきたいと思います。
Llama2ベース(コード特化)
1つ目の特徴は、Llama2をベースにコードに特化したLLMであるという点です。
Code llamaは、Llama2をコードの生成に特化させたLLMです。
コードに特化したデータセットで、Llama2を、より多くの情報を長時間サンプリングし、さらに学習させることにより作成されました。
コードや自然言語のプロンプトを入力することにより、コードやコードに関する自然言語を返してくれます。
コードの補完やデバックなどにも使用できます。
Python、C++、Java、PHP、Typescript (Javascript)、C#、Bash など、現在使用されている一般的な言語の多くに対応しています。
3つのモデルサイズ
2つ目の特徴は、3つのモデルが存在するという点です。
こちらは、Llama2をベースにしてるという事で、Llama2と同様に3つの異なる学習を行なったモデルが提供されています。
- 70億(7B)のパラメーターでトレーニングされたモデル
- 130億(13B)のパラメーターでトレーニングされたモデル
- 700億(70B)のパラメーターでトレーニングされたモデル
一般的には、パラメータ数が多いほど高精度になると言われています。
そこで、34Bはより優れた性能を発揮しますが、7Bと13Bは高速であるためリアルタイムのコード補完などのタスクに有効であるとされています。
コンテキスト長
3つ目の特徴は、コンテキスト長にあります。
Code Llama モデルは、最大100,000個のコンテキストトークンを含む安定した世代を提供します。
すべてのモデルは16,000トークンのシーケンスでトレーニングされ、最大100,000トークンの入力で改善が見られます。
より長いプログラムを生成するために、より長いシーケンスに対応しています。
異なるバリエーションのモデル
4つ目の特徴は、3つの異なるバリエーションのモデルを提供している点です。
Code Llamaをさらにファインチューニングしたバリエーション、「Code Llama – Python」と「Code Llama – Instruct」も提供しています。
- Code Llama:基本的なコードモデル。
- Codel Llama – Python:Pythonに特化したモデル
- Code Llama – Instruct:プロンプトの理解に特化したモデル
Code Llama – Pythonは、Pythonに特化したモデルです。
Pythonコードの100Bトークンに基づいてさらにファインチューニングされています。
Code Llama – Instructは、自然言語の指示を理解できるようにファインチューニングしたモデルです。
指示チューニングは学習プロセスを継続しますが、目的は異なります。モデルには「自然言語指示」入力と期待される出力が供給されます。これにより、人間がプロンプトから何を期待しているのかをよりよく理解できるようになります。
Code llamaの使い方
使い方は簡単です。
まずはこちらのHugging faceのページをクリックします。
Inputに、プロンプトを入力し、Generateをクリックするとコードを生成してくれます。
まとめ
今回は、Code llamaとは?についてまとめました。
Llama2をベースにした、Code llamaは商用利用も可能であり、今後さらなる便利ツールへの組み込み・開発も期待される非常に楽しみなLLMです。
コメント