DeepSeek大语言模型算法是一种深度合成服务算法,该模型以Transformer架构为基础,自主研发的深度神经网络模型。模型基于注意力机制,通过海量语料数据进行预训练,并经过监督微调、人类反馈的强化学习等进行对齐,构建形成深度神经网络,并增加审核、过滤等安全机制,使算法模型部署后能够根据人类的指令或者提示,实现语义分析、计算推理、问答对话、篇章生成、代码编写等任务。
本案例通过在开发者空间调用DeepSeek V3模型API,演示如何调试温度采样参数temperature及累积概率采样参数top_p来控制模型的输出。
通过本案例可以掌握DeepSeek大模型API的调用方法及temperature和累积概率采样参数top_p参数调试技巧。
1.2 案例流程

说明:
① 在ModelArts Studio大模型即服务平台中领取DeepSeek V3模型;
② 登录开发者空间,启动Notebook;
③ Notebook运行DeepSeek V3 API调用程序;
④ 调试温度采样参数和top_p采样参数进行效果查看。
1.3 资源总览
本案例预计花费总计0元。
资源名称 | 规格 | 单价(元) | 时长(分钟) |
开发者空间—Notebook | NPU basic · 1 * NPU 910B · 8v CPU · 24GBeuler2.9-py310-torch2.1.0-cann8.0-openmind0.9.1-notebook | 免费 | 30 |
2 资源与开发环境准备
2.1 领取DeepSeek V3模型
在浏览器访问ModelArts Studio_MaaS_大模型即服务_华为云, 点击ModelArts Studio控制台,跳转到登录界面,按照提示登录,即可进入ModelArts Studio控制台。

签署免责声明。

进入ModelArts Studio控制台首页,在左侧菜单栏,选择模型推理下在线推理,在免费服务中选择DeepSeek-V3-32K(NEW)模型,点击领取额度,领取200万免费tokens。

2.2 启动Notebook
为了给广大开发者提供更加便捷、高效、稳定的开发环境,华为开发者空间正式上线一站式开发工具Notebook,融合交互式编程、云端资源管理与自动化工作流,让开发更智能、更流畅,本次案例代码在Notebook中进行调试。
首先,需要登录开发者空间-华为云,登录后页面如下:

在左侧导航选择工作台,在我的开发工具下点击AI Notebook旁边的立即前往。

当前AI Notebook包含NPU环境和CPU环境,环境参数包含:
- 右上角配额:每日固定时间配额。
- 硬件配置:环境的硬件配置,例如:NPU basic · 1 * NPU 910B · 8v CPU · 24GB表示包含1个昇腾910B NPU处理器、8核24G内存配置。
- 预装镜像:必选,可以选择不同的镜像版本。镜像名中包含对应系统软件版本,例如:
euler2.9-py310-torch2.1.0-cann8.0-openmind0.9.1-notebook表示Euler系统版本2.9-Python版本3.10- Torch版本2.1.0-CANN版本8.0-openMind版本0.9.1。
- 关联模型(可选):可选,关联后启动Notebook可在model文件夹下查看/使用模型文件。
- 关联数据集(可选):可选,关联后启动Notebook可在dataset文件夹下查看/使用数据集。

根据实际配置要求选择不同环境的Notebook,我们以NPU环境为例启动Notebook:
选择NPU环境选项卡,点击立即启动按钮启动Notebook。

然后点击查看Notebook进入Notebook。

在打开的窗口,点击笔记本下的Python 3 (ipykernel)创建Notebook。

新建Notebook效果如下:

3 模型调用及参数调试
3.1 声明大模型调用参数
在Notebook的新执行框中输入如下代码,声明变量大模型调用参数地址api_url和密钥api_key。
api_url = ""
api_key = ""

在浏览器另开一个窗口访问进入ModelArts Studio控制台首页「链接」
在左侧菜单栏,选择模型推理下在线推理,在免费服务中点击DeepSeek-V3-32K(NEW)模型对应操作的调用说明。

点击API地址内容后面的复制按钮复制api_url。

切换到Notebook粘贴赋值给api_url。

切换到浏览器窗口ModelArts Studio控制台,点击API Key管理。

进入API Key管理页面,点击创建API Key,自定义输入标签和API Key描述,点击确定,完成API Key的创建。

您的密钥弹窗中的密钥值就是api_key的值,请点击右侧复制图标复制密钥。
注意:这是唯一一次可以查看密钥的机会。您以后将无法查看它。但您可以随时创建新的访问密钥。

切换到Notebook粘贴赋值给api_key并运行。

3.2 调用DeepSeek模型推理服务API
配置完成后,我们先进行DeepSeek模型推理服务API接口调用测试。
在新的执行框中输入如下代码并运行。
import requests
# 定义 API 的 URL (你的调用地址)
url = api_url
# 定义请求头,包括认证信息(如果有)
headers = {
"Content-Type": "application/json",
'Authorization': 'Bearer '+ api_key
}
# content可以替换为自己想和模型对话的内容
# "max_tokens":每个输出序列要生成的最大Tokens数量。
# "top_k": -1 表示考虑所有Tokens。
# "top_p": 1,表示模型会考虑Token总和概率100%,这相当于没有使用 "Top-P sampling"。
# "temperature": 0,表示模型统会触发贪婪采样以进行下一个单词预测,即简单地选取词汇表中概率最高的单词
# "stream": "false"表示以非流式方式,等待模型输出所有字符再返回给客户端
payload = {
"model": "DeepSeek-V3",
"messages": [
{"role": "user", "content": "介绍下大语言模型"}
],
"max_tokens": 150,
"top_k": -1,
"top_p": 1,
"temperature": 0,
"stream": "false"
}
# 发送 POST 请求
response = requests.post(url, headers=headers, json=payload)
result = response.json()['choices'][0]['message']['content']
print("Response:", result)

可以看到response返回了大语言模型介绍,则说明推理服务API调用成功。
3.3 调试温度采样参数效果
温度参数temperature,是用来控制采样的随机性,就像给AI装了个“创意开关”:数值越小(接近0),回答越保守准确;数值越大,回答越天马行空。默认0.6是平衡点,既能保持合理又不失创意。设为0时,AI每次都会选最稳妥的答案,适合需要确定性的场景;调高后,AI会更愿意尝试不同可能,适合需要创意的任务。
数值高低定义参考:
- 低温度(0-0.3):回答稳定但保守(例:客服问答、数学题);
- 中温度(0.4-0.7):平衡合理性和创意(默认0.6,适合日常聊天);
- 高温度(0.8-1+):答案更随机发散(适合写诗、头脑风暴)。
下面通过将temperature的数值设定为0、1和0.1去回答“介绍下大预言模型”,观察不同的回答结果差别,去理解温度采样参数的设定。
1.构建客户端。
新的执行框中输入如下代码并运行,构建模型调用客户端。
import requests
import json
class TextGenerationClient:
def __init__(self, api_url, api_key):
self.api_url = api_url
self.api_key = api_key
def generate_text(self, payload):
headers = {
"Content-Type": "application/json",
'Authorization': f'Bearer {self.api_key}'
}
response = requests.post(self.api_url, headers=headers, data=json.dumps(payload))
if response.status_code == 200:
return response.json()['choices'][0]['message']['content']
else:
raise Exception(f"Error: {response.status_code} - {response.text}")
2. temperature设为0。
在新的执行框中输入如下代码并运行,实例化客户端并调用模型,此时temperature参数的值设定为0。
client = TextGenerationClient(api_url,api_key)
payload = {
"model": "DeepSeek-V3",
"messages": [
{"role": "user", "content": "介绍下大语言模型"}
],
"max_tokens": 150,
"top_k": -1,
"top_p": 1,
"temperature": 0,
"ignore_eos": "false",
"stream": "false"
}
generated_text = client.generate_text(payload)
print(generated_text)

3. temperature设为1,两次运行对比。
在新的执行框中输入如下代码并运行,此时调整temperature采样为1。
payload = {
"model": "DeepSeek-V3",
"messages": [
{"role": "user", "content": "介绍下大语言模型"}
],
"max_tokens": 30,
"temperature": 1,
}
generated_text = client.generate_text(payload)
print(generated_text)
参考运行结果如下:

再次运行上述代码,可以看到虽然temperature设定都是1,但是两次输出的结果中对大语言模型的介绍内容随机发散,差异很大。

4. temperature设为0.1,两次运行对比。
在新的执行框中输入如下代码并运行,此时调整temperature采样为0.1。
payload = {
"model": "DeepSeek-V3",
"messages": [
{"role": "user", "content": "介绍下大语言模型"}
],
"max_tokens": 30,
"temperature": 0.1,
}
generated_text = client.generate_text(payload)
print(generated_text)
参考运行结果如下:

再次运行上述代码,可以看到两次输出的结果基本一致,差异很小。

由以上可见,当温度采样参数temperature的值较小时模型推理结果更加稳定,反之值较高时模型推理结果更加随机。
实用参照:
▸ 需要精准答案 → 调低(0-0.3)
▸ 需要自然交流 → 0.4-0.7
▸ 需要创意输出 → 0.8-1.2+ 超过1.5可能产生混乱内容,需谨慎使用。
3.4 调试top_p采样参数效果
top_p参数的全称是累积概率采样,是一种在大模型推理过程中用于控制生成文本多样性的采样策略,它通过调整模型生成文本时的多样性来影响输出质量。
工作机制是AI按概率排序候选词,从最高概率开始累加,直到超过设定的阈值(如0.8),仅保留这部分词作为随机选择范围。比如:苹果65%,香蕉20%,葡萄10%,榴莲5%…,设定top_p=0.8时,AI会从最可能的词开始累加概率,直到总和超过80%就停:苹果(65%) + 香蕉(20%)=85% → 超过80%,于是只保留苹果和香蕉作为候选池,AI只会在这个缩小后的候选池里随机选择,既保证质量又保留随机性。
参数类型为浮点型,取值范围0~1:
- 低值(如0.3):候选词少,输出保守精准(例:天气播报);
- 高值(如0.8):候选词多,输出灵活创意(例:写诗歌);
- 1=关闭筛选,全候选词(可能胡言乱语);
- 0=极端模式,每次都选最保险的一个词,强制选择最高概率词(易死板)。
经典场景:
- 天气预报(设0.3):“明天__”→只会选“晴/雨/多云”;
- 小说续写(设0.8):“神秘来客__”→可能选“摘下墨镜/突然消失/变成巨龙”。
1. top_p设定为1,两次运行对比。
在新的执行框中输入如下代码并运行,此时调整Top采样为1。
payload = {
"model": "DeepSeek-V3",
"messages": [
{"role": "user", "content": "介绍下大语言模型"}
],
"max_tokens": 30,
"top_p": 1,
}
generated_text = client.generate_text(payload)
print(generated_text)
参考执行结果如下:

再次运行上述代码,可以看到两次输出对大语言模型的介绍内容文本差异较大:

2. top_p设定为0.1,两次运行对比。
在新的执行框中输入如下代码并运行,此时调整Top采样为0.1。
payload = {
"model": "DeepSeek-V3",
"messages": [
{"role": "user", "content": "介绍下大语言模型"}
],
"max_tokens": 30,
"top_p": 0.1,
}
generated_text = client.generate_text(payload)
print(generated_text)
参考执行结果如下:

再次运行上述代码,可以看到两次输出对大语言模型的介绍内容文本相同。

由此可见,当top_p采样参数的值较小时,模型推理生成文本多样性更小更准确,反之值较高时模型推理生成文本更多样。数值越小输出越稳定,数值越大脑洞越开。
总结:
温度采样(Temperature)与top_p的搭配使用就像调节AI写作的“油门”和“方向盘”,温度管脑洞大小,top_p控制候选范围,二者配合能更精准控制输出效果,下方表格数值设定可以作为参考:
组合模式 | 温度值 | top_p值 | 效果 | 适用场景 |
精准输出 | 0.2~0.5 | 0.3~0.6 | 保守准确 | 拒绝冒险代码/法律文件 |
平衡创作 | 0.7~1.0 | 0.7~0.9 | 合理创新 | 适度发散商业文案/邮件 |
疯狂脑洞 | 1.2~1.5 | 0.9~1.0 | 突破常规 | 天马行空诗歌/科幻小说 |
注意,下面的极端组合慎用:
- 温度>1.5 + top_p=1 → 可能输出乱码;
- 温度<0.2 + top_p=0.1 → 文字机械重复。
至此,DeepSeek模型API调用及参数调试结束,大家可以根据自己的场景去设定合适的参数值实现不同的效果。点击「链接」可以参考完整案例代码。