Модель Скачать | Результаты оценки | Модельная архитектура | Платформа API | Лицензия | Цитирование
Бумажная ссылка ?️
Сегодня мы представляем DeepSeek-V2, мощную языковую модель Mixture-of-Experts (MoE), характеризующуюся экономичным обучением и эффективным выводом. Всего он содержит 236 миллиардов параметров, из которых 21 миллиард активируется для каждого токена. По сравнению с 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.
Модель | #Всего параметров | #Активные параметры | Длина контекста | Скачать |
---|---|---|---|---|
DeepSeek-V2-Lite | 16Б | 2.4Б | 32 тыс. | ? ОбниматьЛицо |
DeepSeek-V2-Lite-Чат (SFT) | 16Б | 2.4Б | 32 тыс. | ? ОбниматьЛицо |
ДипСик-В2 | 236Б | 21Б | 128 тыс. | ? ОбниматьЛицо |
DeepSeek-V2-Чат (RL) | 236Б | 21Б | 128 тыс. | ? ОбниматьЛицо |
Из-за ограничений HuggingFace производительность кода с открытым исходным кодом в настоящее время ниже, чем у нашей внутренней кодовой базы при работе на графических процессорах с Huggingface. Чтобы облегчить эффективное выполнение нашей модели, мы предлагаем специальное решение vllm, которое оптимизирует производительность для эффективного запуска нашей модели.
Контрольный показатель | Домен | ЛЛаМА3 70Б | Микстрал 8х22Б | ДипСик-В1 (Денс-67Б) | ДипСик-В2 (МОЭ-236Б) |
---|---|---|---|---|---|
ММЛУ | Английский | 78,9 | 77,6 | 71,3 | 78,5 |
ББХ | Английский | 81,0 | 78,9 | 68,7 | 78,9 |
C-Eval | китайский | 67,5 | 58,6 | 66,1 | 81,7 |
КММЛУ | китайский | 69,3 | 60,0 | 70,8 | 84,0 |
HumanEval | Код | 48,2 | 53,1 | 45,1 | 48,8 |
МБПП | Код | 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 (Плотный) | ДипСикМоЭ 16Б | DeepSeek-V2-Lite (МОЭ-16Б) |
---|---|---|---|---|
Архитектура | - | MHA+Плотный | МГА+МО | ОМС+МО |
ММЛУ | Английский | 48,2 | 45,0 | 58,3 |
ББХ | Английский | 39,5 | 38,9 | 44,1 |
C-Eval | китайский | 45,0 | 40,6 | 60,3 |
КММЛУ | китайский | 47,2 | 42,5 | 64,3 |
HumanEval | Код | 26,2 | 26,8 | 29,9 |
МБПП | Код | 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 хорошо работает при любой длине контекстного окна до 128 КБ .
Контрольный показатель | Домен | QWen1.5 72B Чат | Микстрал 8х22Б | LLaMA3 70B Инструкция | Чат DeepSeek-V1 (SFT) | Чат DeepSeek-V2 (SFT) | Чат DeepSeek-V2 (RL) |
---|---|---|---|---|---|---|---|
ММЛУ | Английский | 76,2 | 77,8 | 80,3 | 71,1 | 78,4 | 77,8 |
ББХ | Английский | 65,9 | 78,4 | 80,1 | 71,7 | 81,3 | 79,7 |
C-Eval | китайский | 82,2 | 60,0 | 67,9 | 65,2 | 80,9 | 78,0 |
КММЛУ | китайский | 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 |
МБПП | Код | 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) |
---|---|---|---|---|
ММЛУ | Английский | 49,7 | 47,2 | 55,7 |
ББХ | Английский | 43,1 | 42,2 | 48,1 |
C-Eval | китайский | 44,7 | 40,0 | 60,1 |
КММЛУ | китайский | 51,2 | 49,3 | 62,5 |
HumanEval | Код | 45,1 | 45,7 | 57,3 |
МБПП | Код | 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 при генерации разговоров на английском языке.
Alignbench (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 |
Йи-34B-Чат (零一万物) | 开源 | 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 (Multi-head Latet Attention), который использует низкоранговое объединение ключей-значений, чтобы устранить узкое место в кэше ключей-значений во время вывода, тем самым поддерживая эффективный вывод.
Для сетей прямой связи (FFN) мы используем архитектуру DeepSeekMoE, высокопроизводительную архитектуру MoE, которая позволяет обучать более сильные модели с меньшими затратами.
Вы можете общаться с DeepSeek-V2 на официальном сайте DeepSeek:chat.deepseek.com.
Мы также предоставляем OpenAI-совместимый API на платформе DeepSeek: Platform.deepseek.com. Зарегистрируйтесь и получите более миллиона бесплатных токенов. И вы также можете платить по мере использования по выгодной цене.
Чтобы использовать DeepSeek-V2 в формате BF16 для вывода, требуется 80 ГБ*8 графических процессоров.
Вы можете напрямую использовать трансформеры Huggingface для вывода модели.
import torchfrom Transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfigmodel_name = "deepseek-ai/DeepSeek-V2"tokenizer = AutoTokenizer.from_pretrained(model_name,trust_remote_code=True)# `max_memory` должен быть установлен в зависимости от ваших устройствmax_memory = {i: "75GB" для я в диапазоне(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 Transformers import 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 " for i in range(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.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) печать (результат)
Полный шаблон чата можно найти в файле tokenizer_config.json
расположенном в репозитории модели Huggingface.
Пример шаблона чата приведен ниже:
<|начало предложения|>Пользователь: {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 Cache и Torch Compile, предлагая лучшую задержку и пропускную способность среди платформ с открытым исходным кодом. Вот несколько примеров команд для запуска сервера, совместимого с OpenAI API:
# BF16, тензорный параллелизм = 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.
из трансформаторов import AutoTokenizerиз 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(temperature=0.3, max_tokens=256, stop_token_ids=[tokenizer.eos_token_id])messages_list = [ [{"role": "user", "content": "Кто вы?"}], [{"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, sample_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].