import argparse
import torch
from openmind import pipeline, is_torch_npu_available
from openmind import AutoTokenizer, AutoModelForCausalLM
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"--model_name_or_path",
type=str,
help="Path to model",
default=None,
)
args = parser.parse_args()
return args
if is_torch_npu_available():
device = "npu:0"
else:
device = "cpu"
model_path = 'Rose/deepseek-coder-33b-instruct'
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_path,
trust_remote_code=True,
torch_dtype=torch.float16,
device_map="auto"
)
messages=[
{ 'role': 'user', 'content': "write a quick sort algorithm in python."}
]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
# 32021 is the id of <|EOT|> token
outputs = model.generate(inputs, max_new_tokens=512, do_sample=False, top_k=50, top_p=0.95, num_return_sequences=1, eos_token_id=32021)
print(tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokens=True))Deepseek Coder 是一系列代码语言模型,训练数据包含 87% 的代码以及 13% 的中英文自然语言,每个模型的预训练 token 量均达到 2T。我们提供从 1B 到 33B 不等的多种规模代码模型。每个模型均在项目级代码语料上进行预训练,采用 16K 的窗口大小并引入额外的填空任务,以支持项目级代码补全和填充。在编码能力方面,Deepseek Coder 在多种编程语言和各类基准测试中,性能均达到开源代码模型的领先水平。
海量训练数据:训练数据规模达 2T token,其中包含 87% 的代码以及 13% 的中英文语言数据。
高度灵活与可扩展:提供 1.3B、5.7B、6.7B 和 33B 等多种模型规模,方便用户根据自身需求选择最适合的配置。
卓越的模型性能:在 HumanEval、MultiPL-E、MBPP、DS-1000 和 APPS 等基准测试中,性能表现领先于其他公开可用的代码模型。
先进的代码补全能力:采用 16K 窗口大小并结合填空任务,支持项目级代码补全和填充任务。
deepseek-coder-33b-instruct 是一个拥有 330 亿参数的模型,基于 deepseek-coder-33b-base 初始化,并在 20 亿 token 的指令数据上进行了微调。
以下为模型使用示例。
from modelscope import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/deepseek-coder-33b-instruct", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("deepseek-ai/deepseek-coder-33b-instruct", trust_remote_code=True).cuda()
messages=[
{ 'role': 'user', 'content': "write a quick sort algorithm in python."}
]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
# 32021 is the id of <|EOT|> token
outputs = model.generate(inputs, max_new_tokens=512, do_sample=False, top_k=50, top_p=0.95, num_return_sequences=1, eos_token_id=32021)
print(tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokens=True))本代码仓库采用 MIT 许可证。DeepSeek Coder 模型的使用受模型许可证约束。DeepSeek Coder 支持商业用途。
更多详情请参见 LICENSE-MODEL。
如有任何问题,请提交 issue 或通过 agi_code@deepseek.com 与我们联系。