🚀 Code Llama
Code Llamaは、70億から700億のパラメータ規模の事前学習および微調整された生成テキストモデルのコレクションです。このリポジトリは、Hugging Face Transformers形式のベース7Bバージョンのものです。このモデルは、一般的なコード合成と理解のために設計されています。他のモデルへのリンクは、下部のインデックスに記載されています。
⚠️ 重要提示
これは非公式のCode Llamaリポジトリです。公式のMetaリポジトリはMeta Llama organizationにあります。
🚀 クイックスタート
このモデルを使用するには、次のバージョンがリリースされるまで、main
からtransformers
をインストールする必要があります。
pip install transformers accelerate
✨ 主な機能
- [x] コード補完
- [x] インフィリング
- [ ] インストラクション / チャット
- [ ] Python専用
💻 使用例
基本的な使用法
from transformers import AutoTokenizer
import transformers
import torch
model = "codellama/CodeLlama-7b-hf"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
'import socket\n\ndef ping_exponential_backoff(host: str):',
do_sample=True,
top_k=10,
temperature=0.1,
top_p=0.95,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200,
)
for seq in sequences:
print(f"Result: {seq['generated_text']}")
📚 ドキュメント
*注: このモデルの使用はMetaのライセンスに準拠しています。MetaはCode Llamaファミリーの大規模言語モデル(LLM)を開発し、公開しています。
モデル開発者 Meta
バリエーション Code Llamaには、3つのモデルサイズと3つのバリエーションがあります。
- Code Llama: 一般的なコード合成と理解のために設計されたベースモデル
- Code Llama - Python: Python用に特別に設計されたモデル
- Code Llama - Instruct: インストラクションに従い、より安全なデプロイを目的としたモデル
すべてのバリエーションは、7B、13B、34B、70Bのパラメータサイズで利用可能です。
このリポジトリには、7Bパラメータのベースモデルが含まれています。
入力 モデルはテキストのみを入力とします。
出力 モデルはテキストのみを生成します。
モデルアーキテクチャ Code Llamaは、最適化されたトランスフォーマーアーキテクチャを使用する自己回帰型言語モデルです。
モデルの日付 Code Llamaとそのバリエーションは、2023年1月から2023年7月の間に学習されました。
ステータス これは、オフラインデータセットで学習された静的モデルです。Code Llama - Instructの将来のバージョンは、コミュニティのフィードバックを元にモデルの安全性を向上させた後にリリースされます。
ライセンス カスタム商用ライセンスはhttps://ai.meta.com/resources/models-and-libraries/llama-downloads/で入手できます。
研究論文 詳細は論文 "Code Llama: Open Foundation Models for Code" またはそのarXivページを参照してください。
想定される使用方法
想定される使用ケース Code Llamaとそのバリエーションは、英語および関連するプログラミング言語での商用および研究用途を想定しています。ベースモデルのCode Llamaは、さまざまなコード合成と理解タスクに適応でき、Code Llama - PythonはPythonプログラミング言語を専門に扱うように設計されており、Code Llama - Instructはコードアシスタントや生成アプリケーションでより安全に使用できるように意図されています。
想定外の使用方法 適用される法律や規制(貿易コンプライアンス法を含む)に違反する方法での使用。英語以外の言語での使用。Code Llamaとそのバリエーションの許容使用ポリシーおよびライセンス契約で禁止されている他の方法での使用。
ハードウェアとソフトウェア
学習要因 カスタム学習ライブラリを使用しました。公開されたモデルの学習と微調整は、Metaの研究スーパークラスターで行われました。
炭素排出量 合計で、9つのCode Llamaモデルの学習には、A100 - 80GBタイプのハードウェアで40万GPU時間の計算が必要でした(TDPは350 - 400W)。推定総排出量は65.3tCO2eqで、その100%がMetaの持続可能性プログラムによって相殺されました。
学習データ
ここで報告されているすべての実験と公開されたモデルは、Llama 2と同じデータを使用して、異なる重みで学習および微調整されています(詳細は研究論文のセクション2と表1を参照)。
評価結果
主要モデルの評価と詳細なアブレーションは研究論文のセクション3を、安全性評価はセクション4を参照してください。
倫理的考慮事項と制限事項
Code Llamaとそのバリエーションは、使用に伴うリスクを持つ新しい技術です。これまでに行われたテストは英語で行われており、すべてのシナリオを網羅していない、または網羅することができない。これらの理由から、すべてのLLMと同様に、Code Llamaの潜在的な出力は事前に予測することができず、モデルは場合によってはユーザーのプロンプトに対して不正確または不快な応答を生成する可能性があります。したがって、Code Llamaのアプリケーションをデプロイする前に、開発者はモデルの特定のアプリケーションに合わせた安全性テストとチューニングを行う必要があります。
詳細はhttps://ai.meta.com/llama/responsible-use-guideにある責任ある使用ガイドを参照してください。
📄 ライセンス
カスタム商用ライセンスはhttps://ai.meta.com/resources/models-and-libraries/llama-downloads/で入手できます。