🚀 DeepSeek-Coder-V2-Lite-Instruct-FP8
DeepSeek-Coder-V2-Lite-Instruct のFP8量子化バージョンで、商用および研究用途に最適。
🚀 クイックスタート
DeepSeek-Coder-V2-Lite-Instruct-FP8は、DeepSeek-Coder-V2-Lite-Instruct の重みと活性化関数をFP8データ型に量子化したモデルです。このモデルは、商用および英語による研究用途を想定しており、Meta-Llama-3-7B-Instruct のように、アシスタント型のチャットに適しています。
✨ 主な機能
- モデルアーキテクチャ: DeepSeek-Coder-V2-Lite-Instruct
- モデル最適化:
- 想定使用ケース: 英語での商用および研究用途。アシスタント型のチャットに適しています。
- 非対象用途: 適用される法律や規制(貿易コンプライアンス法律を含む)に違反する使用方法。英語以外の言語での使用。
- リリース日: 2024年7月18日
- バージョン: 1.0
- ライセンス: deepseek-license
- モデル開発者: Neural Magic
📦 インストール
このモデルは、vLLM >= 0.5.2を使用した推論に対応しています。以下のコード例を参照して、モデルをデプロイできます。
💻 使用例
基本的な使用法
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "neuralmagic/DeepSeek-Coder-V2-Lite-Instruct-FP8"
sampling_params = SamplingParams(temperature=0.6, top_p=0.9, max_tokens=256)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
prompts = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
llm = LLM(model=model_id, trust_remote_code=True, max_model_len=4096)
outputs = llm.generate(prompts, sampling_params)
generated_text = outputs[0].outputs[0].text
print(generated_text)
高度な使用法
vLLMはOpenAI互換のサービングもサポートしています。詳細はドキュメントを参照してください。
📚 ドキュメント
モデルの作成
このモデルは、AutoFP8 with calibration samples from ultrachat を適用して作成されました。以下のコードスニペットを参照してください。
from datasets import load_dataset
from transformers import AutoTokenizer
from auto_fp8 import AutoFP8ForCausalLM, BaseQuantizeConfig
pretrained_model_dir = "deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct"
quantized_model_dir = "DeepSeek-Coder-V2-Lite-Instruct-FP8"
tokenizer = AutoTokenizer.from_pretrained(pretrained_model_dir, use_fast=True, model_max_length=4096)
tokenizer.pad_token = tokenizer.eos_token
ds = load_dataset("mgoin/ultrachat_2k", split="train_sft").select(range(512))
examples = [tokenizer.apply_chat_template(batch["messages"], tokenize=False) for batch in ds]
examples = tokenizer(examples, padding=True, truncation=True, return_tensors="pt").to("cuda")
quantize_config = BaseQuantizeConfig(
quant_method="fp8",
activation_scheme="static",
ignore_patterns=["re:.*lm_head"],
)
model = AutoFP8ForCausalLM.from_pretrained(
pretrained_model_dir, quantize_config=quantize_config
)
model.quantize(examples)
model.save_quantized(quantized_model_dir)
評価
このモデルは、HumanEval+ ベンチマークで評価されました。以下のコマンドを使用して評価を行いました。
python codegen/generate.py --model neuralmagic/DeepSeek-Coder-V2-Lite-Instruct-FP8 --temperature 0.2 --n_samples 50 --resume --root ~ --dataset humaneval
python evalplus/sanitize.py ~/humaneval/neuralmagic--DeepSeek-Coder-V2-Lite-Instruct-FP8_vllm_temp_0.2
evalplus.evaluate --dataset humaneval --samples ~/humaneval/neuralmagic--DeepSeek-Coder-V2-Lite-Instruct-FP8_vllm_temp_0.2-sanitized
HumanEval+評価スコア
ベンチマーク |
DeepSeek-Coder-V2-Lite-Instruct |
DeepSeek-Coder-V2-Lite-Instruct-FP8(このモデル) |
回復率 |
base pass@1 |
80.8 |
79.3 |
98.14% |
base pass@10 |
83.4 |
84.6 |
101.4% |
base+extra pass@1 |
75.8 |
74.9 |
98.81% |
base+extra pass@10 |
77.3 |
79.6 |
102.9% |
平均 |
79.33 |
79.60 |
100.3% |
📄 ライセンス
このモデルは、deepseek-license の下で提供されています。