モデルのダウンロード | 評価結果 | モデルアーキテクチャ | APIプラットフォーム | ライセンス | 引用
ペーパーリンク?️
本日は、経済的なトレーニングと効率的な推論を特徴とする強力な専門家混合 (MoE) 言語モデルである DeepSeek-V2 を紹介します。これは合計 236B のパラメータで構成され、そのうち 21B は各トークンに対して有効になります。 DeepSeek 67B と比較して、DeepSeek-V2 はより強力なパフォーマンスを達成すると同時に、トレーニング コストを 42.5% 節約し、KV キャッシュを 93.3% 削減し、最大生成スループットを 5.76 倍に高めます。
DeepSeek-V2 は、8.1 兆個のトークンで構成される多様で高品質なコーパスで事前トレーニングされました。この包括的な事前トレーニングの後に、教師あり微調整 (SFT) と強化学習 (RL) のプロセスが続き、モデルの機能を完全に解放しました。評価結果は、DeepSeek-V2 が標準ベンチマークとオープンエンド世代評価の両方で顕著なパフォーマンスを達成するため、私たちのアプローチの有効性を検証します。
2024.05.16: DeepSeek-V2-Lite をリリースしました。
2024.05.06: DeepSeek-V2 をリリースしました。
モデル | #合計パラメータ数 | #Activated パラメータ | コンテキストの長さ | ダウンロード |
---|---|---|---|---|
DeepSeek-V2-Lite | 16B | 2.4B | 32k | ?ハグ顔 |
DeepSeek-V2-Lite-チャット (SFT) | 16B | 2.4B | 32k | ?ハグ顔 |
ディープシーク V2 | 236B | 21B | 128k | ?ハグ顔 |
DeepSeek-V2-チャット (RL) | 236B | 21B | 128k | ?ハグ顔 |
HuggingFace の制約により、オープンソース コードは現在、Huggingface を備えた GPU で実行すると内部コードベースよりもパフォーマンスが低下します。モデルの効率的な実行を促進するために、モデルを効果的に実行するためのパフォーマンスを最適化する専用の vllm ソリューションを提供します。
ベンチマーク | ドメイン | LLaMA3 70B | ミストラル 8x22B | DeepSeek-V1 (Dense-67B) | DeepSeek-V2 (MoE-236B) |
---|---|---|---|---|---|
MMLU | 英語 | 78.9 | 77.6 | 71.3 | 78.5 |
BBH | 英語 | 81.0 | 78.9 | 68.7 | 78.9 |
C-評価 | 中国語 | 67.5 | 58.6 | 66.1 | 81.7 |
CMMLU | 中国語 | 69.3 | 60.0 | 70.8 | 84.0 |
HumanEval | コード | 48.2 | 53.1 | 45.1 | 48.8 |
MBPP | コード | 68.6 | 64.2 | 57.4 | 66.6 |
GSM8K | 数学 | 83.0 | 80.3 | 63.4 | 79.2 |
数学 | 数学 | 42.2 | 42.5 | 18.7 | 43.6 |
ベンチマーク | ドメイン | DeepSeek 7B (密) | ディープシークMoE 16B | DeepSeek-V2-Lite (MoE-16B) |
---|---|---|---|---|
建築 | - | MHA+高密度 | MHA+MoE | MLA+MoE |
MMLU | 英語 | 48.2 | 45.0 | 58.3 |
BBH | 英語 | 39.5 | 38.9 | 44.1 |
C-評価 | 中国語 | 45.0 | 40.6 | 60.3 |
CMMLU | 中国語 | 47.2 | 42.5 | 64.3 |
HumanEval | コード | 26.2 | 26.8 | 29.9 |
MBPP | コード | 39.0 | 39.2 | 43.2 |
GSM8K | 数学 | 17.4 | 18.8 | 41.1 |
数学 | 数学 | 3.3 | 4.3 | 17.1 |
数ショット設定やプロンプトなどの評価の詳細については、論文を参照してください。
Needle In A Haystack
(NIAH) テストの評価結果。 DeepSeek-V2 は、最大128Kまでのすべてのコンテキスト ウィンドウ長にわたって良好なパフォーマンスを発揮します。
ベンチマーク | ドメイン | QWen1.5 72B チャット | ミストラル 8x22B | LLaMA3 70B 指示する | DeepSeek-V1 チャット (SFT) | DeepSeek-V2 チャット (SFT) | DeepSeek-V2 チャット (RL) |
---|---|---|---|---|---|---|---|
MMLU | 英語 | 76.2 | 77.8 | 80.3 | 71.1 | 78.4 | 77.8 |
BBH | 英語 | 65.9 | 78.4 | 80.1 | 71.7 | 81.3 | 79.7 |
C-評価 | 中国語 | 82.2 | 60.0 | 67.9 | 65.2 | 80.9 | 78.0 |
CMMLU | 中国語 | 82.9 | 61.0 | 70.7 | 67.8 | 82.4 | 81.6 |
HumanEval | コード | 68.9 | 75.0 | 76.2 | 73.8 | 76.8 | 81.1 |
MBPP | コード | 52.2 | 64.4 | 69.8 | 61.4 | 70.4 | 72.0 |
LiveCodeBench (0901-0401) | コード | 18.8 | 25.0 | 30.5 | 18.3 | 28.7 | 32.5 |
GSM8K | 数学 | 81.9 | 87.9 | 93.2 | 84.1 | 90.8 | 92.2 |
数学 | 数学 | 40.6 | 49.8 | 48.5 | 32.6 | 52.7 | 53.9 |
ベンチマーク | ドメイン | DeepSeek 7B チャット (SFT) | DeepSeekMoE 16B チャット (SFT) | DeepSeek-V2-Lite 16B チャット (SFT) |
---|---|---|---|---|
MMLU | 英語 | 49.7 | 47.2 | 55.7 |
BBH | 英語 | 43.1 | 42.2 | 48.1 |
C-評価 | 中国語 | 44.7 | 40.0 | 60.1 |
CMMLU | 中国語 | 51.2 | 49.3 | 62.5 |
HumanEval | コード | 45.1 | 45.7 | 57.3 |
MBPP | コード | 39.0 | 46.2 | 45.8 |
GSM8K | 数学 | 62.6 | 62.2 | 72.0 |
数学 | 数学 | 14.7 | 15.2 | 27.9 |
AlpacaEval 2.0 と MTBench でモデルを評価し、英会話生成における DeepSeek-V2-Chat-RL の競合パフォーマンスを示します。
アラインベンチ(https://arxiv.org/abs/2311.18743)
モデル | 开源/闭源 | 分 | サバイバル | 中文语言 |
---|---|---|---|---|
gpt-4-1106-プレビュー | 闭源 | 8.01 | 7.73 | 8.29 |
DeepSeek-V2 チャット (RL) | 开源 | 7.91 | 7.45 | 8.36 |
erniebot-4.0-202404 (文心一言) | 闭源 | 7.89 | 7.61 | 8.17 |
DeepSeek-V2 チャット (SFT) | 开源 | 7.74 | 7.30 | 8.17 |
gpt-4-0613 | 闭源 | 7.53 | 7.47 | 7.59 |
erniebot-4.0-202312 (文心一言) | 闭源 | 7.36 | 6.84 | 7.88 |
Moonshot-v1-32k-202404 (月之暗面) | 闭源 | 7.22 | 6.42 | 8.02 |
Qwen1.5-72B-チャット (通义千问) | 开源 | 7.19 | 6.45 | 7.93 |
DeepSeek-67B-チャット | 开源 | 6.43 | 5.75 | 7.11 |
Yi-34B-Chat (零一万物) | 开源 | 6.12 | 4.86 | 7.38 |
gpt-3.5-ターボ-0613 | 闭源 | 6.08 | 5.35 | 6.71 |
DeepSeek-V2-Lite 16B チャット | 开源 | 6.01 | 4.71 | 7.32 |
ライブ コーディングの課題向けに設計されたベンチマークである LiveCodeBench (0901-0401) でモデルを評価します。図に示すように、DeepSeek-V2 は LiveCodeBench でかなりの熟練度を示しており、他のいくつかの洗練されたモデルを上回る Pass@1 スコアを達成しています。このパフォーマンスは、ライブ コーディング タスクに取り組む際のモデルの有効性を強調しています。
DeepSeek-V2 は革新的なアーキテクチャを採用し、経済的なトレーニングと効率的な推論を保証します。
アテンションについては、低ランクのキーと値の共用体圧縮を利用して推論時のキーと値のキャッシュのボトルネックを排除し、効率的な推論をサポートする MLA (マルチヘッド レイテント アテンション) を設計します。
フィードフォワード ネットワーク (FFN) の場合、低コストでより強力なモデルのトレーニングを可能にする高性能 MoE アーキテクチャである DeepSeekMoE アーキテクチャを採用しています。
DeepSeek の公式 Web サイトで DeepSeek-V2 とチャットできます: chat.deepseek.com
また、OpenAI 互換 API も DeepSeek プラットフォーム (platform.deepseek.com) で提供しています。数百万を超える無料トークンにサインアップしてください。また、比類のない価格で従量課金制も利用できます。
BF16 形式の DeepSeek-V2 を推論に利用するには、80GB*8 GPU が必要です。
Huggingface の Transformers をモデル推論に直接使用できます。
import torchfrom トランスフォーマーインポート AutoTokenizer、AutoModelForCausalLM、GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2"tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)# `max_memory` はデバイスに基づいて設定する必要がありますmax_memory = {i: "75GB" for私は範囲内です(8)}# 「device_map」を「auto」に設定することはできませんmodel = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, device_map="sequential", torch_dtype=torch.bfloat16, max_memory=max_memory, attn_implementation="eager")model.generation_config = GenerationConfig.from_pretrained(model_name)model.generation_config.pad_token_id = model.generation_config.eos_token_idtext = "アテンション関数は、クエリと一連のキーと値のペアを出力にマッピングするものとして説明できます。ここで、クエリ、キー、値、出力はすべてベクトルです。出力は「inputs = tokenizer(text, return_tensors="pt")outputs =」です。 model.generate(**inputs.to(model.device), max_new_tokens=100)result = tokenizer.decode(outputs[0], Skip_special_tokens=True)print(result)
import torchfrom トランスフォーマーインポート AutoTokenizer、AutoModelForCausalLM、GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2-Chat"tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)# `max_memory` はデバイスに基づいて設定する必要がありますmax_memory = {i: "75GB "範囲内の i の場合(8)}# 「device_map」を「auto」に設定することはできませんmodel = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, device_map="sequential", torch_dtype=torch.bfloat16, max_memory=max_memory, attn_implementation="eager")model.generation_config = GenerationConfig.from_pretrained(model_name)model.generation_config.pad_token_id = model.generation_config.eos_token_idmessages = [ {"role": "user", "content": "C++ でクイックソート コードを作成する"} ]input_tensor = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")outputs = model.generate(input_tensor.to(model.device), max_new_tokens=100)result = tokenizer.decode(outputs[0][input_tensor .shape[1]:]、 Skip_special_tokens=True)print(結果)
完全なチャット テンプレートは、huggingface モデル リポジトリにあるtokenizer_config.json
内にあります。
チャットテンプレートの例は以下のとおりです。
<|文頭|>ユーザー: {user_message_1} アシスタント: {assistant_message_1}<|文の終わり|>ユーザー: {user_message_2} アシスタント:
オプションのシステム メッセージを追加することもできます。
<|文の始まり|>{system_message} ユーザー: {user_message_1} アシスタント: {assistant_message_1}<|文の終わり|>ユーザー: {user_message_2} アシスタント:
SGLang は現在、MLA 最適化、FP8 (W8A8)、FP8 KV キャッシュ、Torch コンパイルをサポートしており、オープンソース フレームワークの中で最高のレイテンシーとスループットを提供します。 OpenAI API 互換サーバーを起動するコマンドの例をいくつか示します。
# BF16, tensorParallelism = 8python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V2-Chat --tp 8 --trust-remote-code# BF16, w/ torch.compile (コンパイルには数分かかる場合があります) )python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V2-Lite-Chat --trust-remote-code --enable-torch-compile# FP8、テンソル並列処理 = 8、FP8 KV Cachepython3 -m sglang.launch_server --model deepseek-ai/DeepSeek- V2-Chat --tp 8 --trust-remote-code --quant fp8 --kv-cache-dtype fp8_e5m2
サーバーを起動した後、OpenAI API を使用してサーバーをクエリできます。
import openai client = openai.Client( base_url="http://127.0.0.1:30000/v1", api_key="EMPTY") # Chat completion response = client.chat.completions.create( model="default", messages=[ {"role": "system", "content": "You are a helpful AI assistant"}, {"role": "user", "content": "List 3 countries and their capitals."}, ], temperature=0, max_tokens=64, ) print(response)
モデル推論に vLLM を利用するには、このプル リクエストを vLLM コードベース (vllm-project/vllm#4650) にマージしてください。
トランスフォーマーからインポート AutoTokenizerfrom vllm import LLM、SamplingParamsmax_model_len、tp_size = 8192、8model_name = "deepseek-ai/DeepSeek-V2-Chat"tokenizer = AutoTokenizer.from_pretrained(model_name)llm = LLM(model=model_name, tensor_Parallel_size=tp_size, max_model_len=max_model_len、trust_remote_code=True、enforce_eager=True)sampling_params = SamplingParams(温度=0.3、max_tokens=256、stop_token_ids=[tokenizer.eos_token_id])messages_list = [ [{"役割": "ユーザー", "コンテンツ": "あなたは誰ですか?"}], [{"role": "user", "content": "次のコンテンツを中国語に直接翻訳してください: DeepSeek-V2 は革新的なアーキテクチャを採用し、経済的なトレーニングと効率的な推論を保証します。"}], [{"role": "user", "content": "C++ でクイックソート コードを作成します。"}], ]prompt_token_ids = [tokenizer.apply_chat_template(messages, add_generation_prompt=True)messages_list のメッセージ]outputs = llm.generate(prompt_token_ids=prompt_token_ids,sampling_params=sampling_params)generated_text = [output.outputs[0].text の出力出力]print(生成されたテキスト)
弊社のAPIはOpenAIと互換性があるため、langchainで簡単に使用できます。以下に例を示します。
from langchain_openai import ChatOpenAI llm = ChatOpenAI( model='deepseek-chat', openai_api_key=, openai_api_base='https://api.deepseek.com/v1', temperature=0.85, max_tokens=8000)
このコード リポジトリは、MIT ライセンスに基づいてライセンスされています。 DeepSeek-V2 Base/Chat モデルの使用には、モデル ライセンスが適用されます。 DeepSeek-V2シリーズ(Base、Chat含む)は商用利用にも対応しています。
@misc{deepseekv2, title={DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model}, author={DeepSeek-AI}, year={2024}, eprint={2405.04434}, archivePrefix={arXiv}, primaryClass={cs.CL} }
ご質問がある場合は、問題を提起するか、[email protected] までご連絡ください。