🚀 Phind-CodeLlama-34B-Python-v1
このモデルは、CodeLlama-34BとCodeLlama-34B-PythonをPhindの内部データセットでファインチューニングしたもので、HumanEvalでそれぞれ67.6%と69.5%のpass@1を達成しています。GPT-4は67%です。結果の有効性を確保するために、OpenAIのデコンタミネーション手法をデータセットに適用しています。
詳細はブログ記事をご覧ください。
📚 ドキュメント
✨ 主な機能
このモデルはCodeLlama-34B-Pythonからファインチューニングされており、HumanEvalで69.5%のpass@1を達成しています。
📦 インストール
モデルを使用するには、Transformersをmainのgitブランチからインストールする必要があります。
pip install git+https://github.com/huggingface/transformers.git
💻 使用例
基本的な使用法
このモデルは多少の命令調整がされていますが、チャット調整はされていません。Llamaのチャットマークアップを使用しないでください。代わりに、単に何をしたいかを伝え、タスクの最後に "\n: " を追加してください。
例えば:
Write me a linked list implementation: \n
高度な使用法
HumanEvalの結果を再現するには、以下のコードを実行します。
from transformers import AutoTokenizer, LlamaForCausalLM
from human_eval.data import write_jsonl, read_problems
from tqdm import tqdm
model_path = "Phind/Phind-CodeLlama-34B-v1"
model = LlamaForCausalLM.from_pretrained(model_path, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_path)
def generate_one_completion(prompt: str):
tokenizer.pad_token = tokenizer.eos_token
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=4096)
generate_ids = model.generate(inputs.input_ids.to("cuda"), max_new_tokens=256, do_sample=True, top_p=0.75, top_k=40, temperature=0.1)
completion = tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
completion = completion.replace(prompt, "").split("\n\n\n")[0]
return completion
problems = read_problems()
num_samples_per_task = 1
samples = [
dict(task_id=task_id, completion=generate_one_completion(problems[task_id]["prompt"]))
for task_id in tqdm(problems)
for _ in range(num_samples_per_task)
]
write_jsonl("samples.jsonl", samples)
🔧 技術詳細
このモデルは、約80kの高品質なプログラミング問題と解の独自データセットでファインチューニングされています。このデータセットは、コード補完の例ではなく命令と回答のペアで構成されており、HumanEvalとは構造的に異なります。Phindモデルは2エポックでトレーニングされ、合計約160kの例が使用されました。LoRAは使用されておらず、両方のモデルはネイティブなファインチューニングです。DeepSpeed ZeRO 3とFlash Attention 2を使用して、32台のA100-80GB GPUで3時間でこれらのモデルをトレーニングしました。シーケンス長は4096トークンです。
📄 ライセンス
このモデルのライセンスはLlama2です。
⚠️ 注意事項
このモデルは非常に限られたテストしか受けていません。実際の環境でのデプロイ前に、追加の安全性テストを行う必要があります。
トレーニング詳細
属性 |
详情 |
ハードウェアタイプ |
32x A100-80GB |
使用時間 |
90 GPU時間 |
クラウドプロバイダー |
AWS |
コンピュートリージョン |
us-east-1 |