首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >DeepSeek 大模型从入门到精通:API、微调与推理部署全链路实战

DeepSeek 大模型从入门到精通:API、微调与推理部署全链路实战

原创
作者头像
用户12339161
发布于 2026-10-15 16:43:06
发布于 2026-10-15 16:43:06
760
举报

DeepSeek 系列模型以开源、强推理、低推理成本成为工程落地的热门选择。但"会用"和"精通"之间隔着一条完整的工程链路:API 调用、提示词工程、结构化输出、RAG、微调、量化、部署、监控。本文按入门到精通的路径,给出可运行的代码和工程要点。


一、入门:API 调用

DeepSeek 提供 OpenAI 兼容接口,安装官方 SDK 即可:

代码语言:javascript
复制
pip install openai

代码语言:javascript
复制
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com",
)

def chat(prompt: str, model: str = "deepseek-chat") -> str:
    resp = client.chat.completions.create(
        model=model,
        messages=[
            {"role": "system", "content": "你是一名严谨的技术助手。"},
            {"role": "user", "content": prompt},
        ],
        temperature=0.3,
        stream=False,
    )
    return resp.choices[0].message.content

print(chat("用三句话解释什么是 RAG。"))

要点:

  • deepseek-chat:通用对话,适合摘要、生成、问答;
  • deepseek-reasoner:强推理,适合数学、代码、复杂推理;
  • 密钥放环境变量,不硬编码、不提交仓库、不前端暴露。

二、进阶一:流式输出

长文本生成用流式,降低首字延迟:

代码语言:javascript
复制
def stream_chat(prompt: str):
    resp = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": prompt}],
        stream=True,
    )
    for chunk in resp:
        delta = chunk.choices[0].delta.content
        if delta:
            yield delta

for piece in stream_chat("写一段 200 字的项目介绍。"):
    print(piece, end="", flush=True)

三、进阶二:结构化输出

工程中常用 JSON 输出,便于程序解析:

代码语言:javascript
复制
import json

SCHEMA_PROMPT = """你是信息抽取器。只输出 JSON,格式:
{"name": "", "category": "", "tags": [], "risk": "low|medium|high"}
不要输出解释,不要编造字段。"""

def extract(text: str) -> dict:
    resp = client.chat.completions.create(
        model="deepseek-chat",
        messages=[
            {"role": "system", "content": SCHEMA_PROMPT},
            {"role": "user", "content": text},
        ],
        response_format={"type": "json_object"},
        temperature=0,
    )
    return json.loads(resp.choices[0].message.content)

关键:即使开启 JSON 模式,仍要做 schema 校验。 模型可能漏字段或类型不符,生产环境应使用 Pydantic 验证。


四、进阶三:RAG 检索增强

DeepSeek 知识有截止日期,RAG 用于接入私有知识:

代码语言:javascript
复制
def rag_answer(question: str, top_k: int = 3) -> str:
    docs = vector_search(question, top_k=top_k)
    context = "\n\n".join(d["content"] for d in docs)
    prompt = f"""只根据以下资料回答问题。资料没有依据时回答"未找到相关依据"。
资料:
{context}
问题:{question}"""
    return chat(prompt)

RAG 工程要点:

  • 文档分块:制度类 500—800 字,问答对 200—400 字;
  • 元数据:部门、版本、生效日期、密级;
  • 检索后做权限过滤,避免越权;
  • 要求引用来源,便于核查。

五、精通一:本地部署与推理优化

数据敏感或调用量大时,本地部署。推荐用 vLLM:

代码语言:javascript
复制
pip install vllm

python -m vllm.entrypoints.openai.api_server \
  --model deepseek-ai/DeepSeek-V3 \
  --served-model-name deepseek-chat \
  --tensor-parallel-size 8 \
  --max-model-len 32768 \
  --gpu-memory-utilization 0.9 \
  --port 8000

调用方式与官方一致:

代码语言:javascript
复制
local = OpenAI(api_key="EMPTY", base_url="http://localhost:8000/v1")

def local_chat(prompt: str) -> str:
    resp = local.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": prompt}],
    )
    return resp.choices[0].message.content

关键参数:

  • tensor-parallel-size:多卡并行数;
  • max-model-len:最大上下文,越大越占显存;
  • gpu-memory-utilization:显存利用率;
  • 量化:AWQ/GPTQ 降低显存,但可能损失精度。

六、精通二:微调

垂直场景可用 LoRA 微调:

代码语言:javascript
复制
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "deepseek-ai/DeepSeek-V3", device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3")

lora = LoraConfig(
    r=16, lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05, bias="none",
)
model = get_peft_model(model, lora)

微调要点:

  • 数据质量比数量重要,几百条高质量样本往往够用;
  • 明确训练目标和评估集,避免过拟合;
  • 微调后必须回归测试通用能力是否退化。

七、精通三:成本与可观测

代码语言:javascript
复制
import time
from dataclasses import dataclass

@dataclass
class CallMetric:
    model: str
    prompt_tokens: int
    completion_tokens: int
    latency_ms: float

def call_with_metric(prompt: str):
    start = time.time()
    resp = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": prompt}],
    )
    latency = (time.time() - start) * 1000
    u = resp.usage
    return resp.choices[0].message.content, CallMetric(
        model="deepseek-chat",
        prompt_tokens=u.prompt_tokens,
        completion_tokens=u.completion_tokens,
        latency_ms=latency,
    )

核心指标:成功率、P99 延迟、Token 消耗、单次成本、缓存命中率。

优化手段:高频问题缓存、非实时任务批处理、简单任务用小模型、长上下文及时压缩。


八、精通四:安全与合规

  1. 密钥放环境变量或密钥管理服务;
  2. 输入输出脱敏,敏感数据不出内网;
  3. 本地部署做好网络隔离和访问控制;
  4. 高风险输出(法律、医疗、财务)必须人工复核;
  5. 遵守模型许可证和服务条款;
  6. 记录审计日志,支持追溯。

九、总结

DeepSeek 从入门到精通的路径:

阶段

能力

关键点

入门

API 调用

密钥管理、基础对话

进阶

流式、结构化、RAG

schema 校验、权限过滤

精通

部署、微调、监控

vLLM、LoRA、成本控制

模型能力只是起点。真正决定效果和成本的是工程化:合理的模型路由、严格的 schema 校验、持续的指标监控和明确的合规边界。掌握这条链路,才能在真实业务中稳定落地。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、入门:API 调用
  • 二、进阶一:流式输出
  • 三、进阶二:结构化输出
  • 四、进阶三:RAG 检索增强
  • 五、精通一:本地部署与推理优化
  • 六、精通二:微调
  • 七、精通三:成本与可观测
  • 八、精通四:安全与合规
  • 九、总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档