説明
Code Llamaは、Metaが開発した、Llama 2を基盤としコード関連タスクに特化した大規模言語モデルファミリーです。このリポジトリは、これらの強力なモデルを実行するために必要な推論コードを提供します。Code Llamaモデルは、オープンモデルの中で最先端のパフォーマンスを発揮し、コードのインフィル機能、最大10万トークンまでの拡張入力コンテキストのサポート、プログラミングのためのゼロショット命令追従などの機能を提供します。
このファミリーには、基盤モデル(Code Llama)、Python専用バージョン(Code Llama - Python)、および命令追従モデル(Code Llama - Instruct)が含まれます。これらは、7B、13B、34B、70Bのさまざまなパラメータサイズで利用可能です。すべてのモデルは16kトークンのシーケンスでトレーニングされており、最大100kトークンの入力でパフォーマンスが向上しています。Code LlamaおよびCode Llama - Instructの7Bおよび13Bバリアントは、周囲のコンテンツに基づいてコードをインフィルする能力があります。
コードのサンプリングレートを高くしてLlama 2をファインチューニングすることで開発されたCode Llamaは、かなりの安全対策を組み込んでいます。リポジトリは、これらの事前トレーニング済みおよびファインチューニング済みモデルのモデルウェイトと開始コードを提供します。これは、Code Llamaモデルのロードと推論の実行のための最小限の例として機能します。ユーザーは、ライセンスに同意した後、Metaのウェブサイトからモデルウェイトとトークナイザーをダウンロードし、提供されている`download.sh`スクリプトを使用できます。
セットアップには、リポジトリのクローン作成と、PyTorch/CUDAを備えたconda環境内での依存関係のインストールが含まれます。推論には、モデルサイズに応じて異なるモデル並列(MP)値を指定する必要があります(例:7Bの場合は1、70Bの場合は8)。リポジトリには、コード補完(`example_completion.py`)、コードインフィル(`example_infilling.py`)、および命令追従(`example_instructions.py`)のサンプルスクリプトが含まれており、さまざまなモデルタイプを効果的にプロンプトし実行する方法を示しています。
Code Llama - Instructモデルは、命令を追従するように特別にファインチューニングされており、最適な結果を得るためには特定のフォーマットが必要です。リポジトリはまた、AI技術に関連する潜在的なリスクを強調し、ユーザーを責任ある使用ガイドと研究論文に誘導して、さらなる情報を提供します。ソフトウェアバグやモデルの動作に関連する問題は、提供されているGitHubリンクを通じて報告できます。
Code Llamaの主要機能
Code Llamaモデルの推論コード
基盤モデル、Python特化モデル、命令追従モデルをサポート
7B、13B、34B、70Bのパラメータサイズで利用可能
オープンコードモデルの中で最先端のパフォーマンス
7Bおよび13Bモデルのコードインフィル機能
最大10万トークンまでの大規模入力コンテキストをサポート
プログラミングタスクのためのゼロショット命令追従
16kトークンのシーケンスでトレーニング済み
モデルウェイトと開始コードを含む
補完、インフィル、命令追従のためのサンプルスクリプトを提供
安全対策を組み込み
研究者および商用エンティティ向けにライセンス供与
Code Llamaをはじめる
クローン: GitHubからリポジトリをクローンします。
インストール: PyTorch/CUDAを備えたconda環境をセットアップし、`pip install -e .`を使用して依存関係をインストールします。
ダウンロード: Metaのウェブサイトからモデルウェイトとトークナイザーを入手し、`download.sh`を使用します。
設定: モデルサイズに基づいて適切なモデル並列(MP)値を決定します。
実行: 提供されているサンプルスクリプト(例:`example_completion.py`、`example_infilling.py`、`example_instructions.py`)を使用して推論を実行します。
最適化: ハードウェアとユースケースに基づいて`max_seq_len`と`max_batch_size`を調整します。
Code Llamaの使用例
- コード生成
- コード補完
- コードインフィル
- 命令追従
- Python開発
- 研究
- 大規模コンテキストタスク








