从零开始搭建 DeepSeek 大语言模型本地服务
DeepSeek 是由深度求索(DeepSeek)公司研发的一系列大语言模型,包括 DeepSeek-V2、DeepSeek-Coder 和 DeepSeek-MoE 等。这些模型在多个基准测试中表现出色,支持代码生成、自然语言理解等多种任务。
由于其出色的性能和开放的模型权重,DeepSeek 成为开发者本地部署和私有化应用的热门选择。
transformers
、accelerate
、bitsandbytes
等库pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers accelerate bitsandbytes sentencepiece
从 Hugging Face 获取 DeepSeek 模型(需登录并接受协议):
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "deepseek-ai/deepseek-coder-6.7b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
trust_remote_code=True
)
input_text = "写一个Python函数,计算斐波那契数列"
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
使用 FastAPI 搭建简单的推理接口:
from fastapi import FastAPI
from pydantic import BaseModel
import torch
app = FastAPI()
class Request(BaseModel):
prompt: str
@app.post("/generate")
async def generate_text(request: Request):
inputs = tokenizer(request.prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=512)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"result": result}