deepseek-ai / DeepSeek-V2.5-1210

huggingface.co
Total runs: 770
24-hour runs: 0
7-day runs: 61
30-day runs: 61
Model's Last Updated: December 11 2024
text-generation

Introduction of DeepSeek-V2.5-1210

Model Details of DeepSeek-V2.5-1210

DeepSeek-V2

Paper Link 👁️

DeepSeek-V2.5-1210

1. Introduction

DeepSeek-V2.5-1210 is an upgraded version of DeepSeek-V2.5 , with improvements across various capabilities:

  • Mathematical: Performance on the MATH-500 benchmark has improved from 74.8% to 82.8% .
  • Coding: Accuracy on the LiveCodebench (08.01 - 12.01) benchmark has increased from 29.2% to 34.38% .
  • Writing and Reasoning: Corresponding improvements have been observed in internal test datasets.

Additionally, the new version of the model has optimized the user experience for file upload and webpage summarization functionalities.

2. How to run locally

To utilize DeepSeek-V2.5 in BF16 format for inference, 80GB*8 GPUs are required.

Inference with Huggingface's Transformers

You can directly employ Huggingface's Transformers for model inference.

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig

model_name = "deepseek-ai/DeepSeek-V2.5-1210"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
# `max_memory` should be set based on your devices
max_memory = {i: "75GB" for i in range(8)}
# `device_map` cannot be set to `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_id

messages = [
    {"role": "user", "content": "Write a piece of quicksort code in 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(result)

The complete chat template can be found within tokenizer_config.json located in the huggingface model repository.

Note: The chat template has been updated compared to the previous DeepSeek-V2-Chat version.

An example of chat template is as belows:

<|begin▁of▁sentence|><|User|>{user_message_1}<|Assistant|>{assistant_message_1}<|end▁of▁sentence|><|User|>{user_message_2}<|Assistant|>

You can also add an optional system message:

<|begin▁of▁sentence|>{system_message}<|User|>{user_message_1}<|Assistant|>{assistant_message_1}<|end▁of▁sentence|><|User|>{user_message_2}<|Assistant|>
Inference with vLLM (recommended)

To utilize vLLM for model inference, please merge this Pull Request into your vLLM codebase: https://github.com/vllm-project/vllm/pull/4650 .

from transformers import AutoTokenizer
from vllm import LLM, SamplingParams

max_model_len, tp_size = 8192, 8
model_name = "deepseek-ai/DeepSeek-V2.5-1210"
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": "Who are you?"}],
    [{"role": "user", "content": "Translate the following content into Chinese directly: DeepSeek-V2 adopts innovative architectures to guarantee economical training and efficient inference."}],
    [{"role": "user", "content": "Write a piece of quicksort code in C++."}],
]

prompt_token_ids = [tokenizer.apply_chat_template(messages, add_generation_prompt=True) for messages in messages_list]

outputs = llm.generate(prompt_token_ids=prompt_token_ids, sampling_params=sampling_params)

generated_text = [output.outputs[0].text for output in outputs]
print(generated_text)
Function calling

Function calling allows the model to call external tools to enhance its capabilities.

Here is an example:

# Assume that `model` and `tokenizer` are loaded
model.generation_config = GenerationConfig(do_sample=False, max_new_tokens=128, eos_token_id=tokenizer.eos_token_id, pad_token_id=tokenizer.eos_token_id)

tool_system_prompt = """You are a helpful Assistant.

## Tools

### Function

You have the following functions available:

- `get_current_weather`:
```json
{
    "name": "get_current_weather",
    "description": "Get the current weather in a given location",
    "parameters": {
        "type": "object",
        "properties": {
            "location": {
                "type": "string",
                "description": "The city and state, e.g. San Francisco, CA"
            },
            "unit": {
                "type": "string",
                "enum": [
                    "celsius",
                    "fahrenheit"
                ]
            }
        },
        "required": [
            "location"
        ]
    }
}
```"""

tool_call_messages = [{"role": "system", "content": tool_system_prompt}, {"role": "user", "content": "What's the weather like in Tokyo and Paris?"}]
tool_call_inputs = tokenizer.apply_chat_template(tool_call_messages, add_generation_prompt=True, return_tensors="pt")
tool_call_outputs = model.generate(tool_call_inputs.to(model.device))
# Generated text: '<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>get_current_weather\n```json\n{"location": "Tokyo"}\n```<|tool▁call▁end|>\n<|tool▁call▁begin|>function<|tool▁sep|>get_current_weather\n```json\n{"location": "Paris"}\n```<|tool▁call▁end|><|tool▁calls▁end|><|end▁of▁sentence|>'

# Mock response of calling `get_current_weather`
tool_messages = [{"role": "tool", "content": '{"location": "Tokyo", "temperature": "10", "unit": null}'}, {"role": "tool", "content": '{"location": "Paris", "temperature": "22", "unit": null}'}]
tool_inputs = tokenizer.apply_chat_template(tool_messages, add_generation_prompt=False, return_tensors="pt")[:, 1:]
tool_inputs = torch.cat([tool_call_outputs, tool_inputs.to(model.device)], dim=1)
tool_outputs = model.generate(tool_inputs)
# Generated text: The current weather in Tokyo is 10 degrees, and in Paris, it is 22 degrees.<|end▁of▁sentence|>
JSON output

You can use JSON Output Mode to ensure the model generates a valid JSON object. To active this mode, a special instruction should be appended to your system prompt.

# Assume that `model` and `tokenizer` are loaded
model.generation_config = GenerationConfig(do_sample=False, max_new_tokens=128, eos_token_id=tokenizer.eos_token_id, pad_token_id=tokenizer.eos_token_id)

user_system_prompt = 'The user will provide some exam text. Please parse the "question" and "answer" and output them in JSON format.'
json_system_prompt = f"""{user_system_prompt}

## Response Format

Reply with JSON object ONLY."""

json_messages = [{"role": "system", "content": json_system_prompt}, {"role": "user", "content": "Which is the highest mountain in the world? Mount Everest."}]
json_inputs = tokenizer.apply_chat_template(json_messages, add_generation_prompt=True, return_tensors="pt")
json_outpus = model.generate(json_inputs.to(model.device))
# Generated text: '```json\n{\n  "question": "Which is the highest mountain in the world?",\n  "answer": "Mount Everest."\n}\n```<|end▁of▁sentence|>'
FIM completion

In FIM (Fill In the Middle) completion, you can provide a prefix and an optional suffix, and the model will complete the content in between.

# Assume that `model` and `tokenizer` are loaded
model.generation_config = GenerationConfig(do_sample=False, max_new_tokens=128, eos_token_id=tokenizer.eos_token_id, pad_token_id=tokenizer.eos_token_id)

prefix = """def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[0]
    left = []
    right = []
"""

suffix = """
        if arr[i] < pivot:
            left.append(arr[i])
        else:
            right.append(arr[i])
    return quick_sort(left) + [pivot] + quick_sort(right)"""

fim_prompt = f"<|fim▁begin|>{prefix}<|fim▁hole|>{suffix}<|fim▁end|>"
fim_inputs = tokenizer(fim_prompt, add_special_tokens=True, return_tensors="pt").input_ids
fim_outputs = model.generate(fim_inputs.to(model.device))
# Generated text: "    for i in range(1, len(arr)):<|end▁of▁sentence|>"
3. License

This code repository is licensed under the MIT License. The use of DeepSeek-V2 Base/Chat models is subject to the Model License . DeepSeek-V2 series (including Base and Chat) supports commercial use.

4. Citation
@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}
}
5. Contact

If you have any questions, please raise an issue or contact us at [email protected] .

Runs of deepseek-ai DeepSeek-V2.5-1210 on huggingface.co

770
Total runs
0
24-hour runs
3
3-day runs
61
7-day runs
61
30-day runs

More Information About DeepSeek-V2.5-1210 huggingface.co Model

More DeepSeek-V2.5-1210 license Visit here:

https://choosealicense.com/licenses/deepseek

DeepSeek-V2.5-1210 huggingface.co

DeepSeek-V2.5-1210 huggingface.co is an AI model on huggingface.co that provides DeepSeek-V2.5-1210's model effect (), which can be used instantly with this deepseek-ai DeepSeek-V2.5-1210 model. huggingface.co supports a free trial of the DeepSeek-V2.5-1210 model, and also provides paid use of the DeepSeek-V2.5-1210. Support call DeepSeek-V2.5-1210 model through api, including Node.js, Python, http.

DeepSeek-V2.5-1210 huggingface.co Url

https://huggingface.co/deepseek-ai/DeepSeek-V2.5-1210

deepseek-ai DeepSeek-V2.5-1210 online free

DeepSeek-V2.5-1210 huggingface.co is an online trial and call api platform, which integrates DeepSeek-V2.5-1210's modeling effects, including api services, and provides a free online trial of DeepSeek-V2.5-1210, you can try DeepSeek-V2.5-1210 online for free by clicking the link below.

deepseek-ai DeepSeek-V2.5-1210 online free url in huggingface.co:

https://huggingface.co/deepseek-ai/DeepSeek-V2.5-1210

DeepSeek-V2.5-1210 install

DeepSeek-V2.5-1210 is an open source model from GitHub that offers a free installation service, and any user can find DeepSeek-V2.5-1210 on GitHub to install. At the same time, huggingface.co provides the effect of DeepSeek-V2.5-1210 install, users can directly use DeepSeek-V2.5-1210 installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

DeepSeek-V2.5-1210 install url in huggingface.co:

https://huggingface.co/deepseek-ai/DeepSeek-V2.5-1210

Url of DeepSeek-V2.5-1210

DeepSeek-V2.5-1210 huggingface.co Url

Provider of DeepSeek-V2.5-1210 huggingface.co

deepseek-ai
ORGANIZATIONS

Other API from deepseek-ai