找回密码
 立即注册
搜索
1框架

0

0

收藏

分享

开发者必备!基于开发者空间的 DeepSeek API 调用及参数调试攻略

MerleRing · 2025-4-8 20:19:12
摘要:本文通过在开发者空间Notebook调用DeepSeek V3模型API,演示如何调试温度采样参数temperature及累积概率采样参数top_p来控制模型的输出。
1 概述

1.1 案例介绍

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

1.png
说明:
① 在ModelArts Studio大模型即服务平台中领取DeepSeek V3模型;
② 登录开发者空间,启动Notebook;
③ Notebook运行DeepSeek V3 API调用程序;
④ 调试温度采样参数和top_p采样参数进行效果查看。
1.3 资源总览

本案例预计花费总计0元。
资源名称
规格
单价(元)
时长(分钟)
开发者空间—Notebook
NPU
basic · 1 * NPU 910B · 8v CPU · 24GB
euler2.9-py310-torch2.1.0-cann8.0-openmind0.9.1-notebook
免费
30
2 资源与开发环境准备

2.1 领取DeepSeek V3模型

在浏览器访问ModelArts Studio_MaaS_大模型即服务_华为云, 点击ModelArts Studio控制台,跳转到登录界面,按照提示登录,即可进入ModelArts Studio控制台。
2.png
签署免责声明。
3.png
进入ModelArts Studio控制台首页,在左侧菜单栏,选择模型推理下在线推理,在免费服务中选择DeepSeek-V3-32K(NEW)模型,点击领取额度,领取200万免费tokens。
4.png
2.2 启动Notebook

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


在左侧导航选择工作台,在我的开发工具下点击AI Notebook旁边的立即前往
6.png
当前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文件夹下查看/使用数据集。
7.png


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


然后点击查看Notebook进入Notebook。
9.png


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


新建Notebook效果如下:
11.png


3 模型调用及参数调试

3.1 声明大模型调用参数

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


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


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


切换到Notebook粘贴赋值给api_url。
15.png


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


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


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


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


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) 20.png


可以看到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) 21.png


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)参考运行结果如下:
22.png


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


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)参考运行结果如下:
24.png


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


由以上可见,当温度采样参数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)参考执行结果如下:
26.png


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


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)参考执行结果如下:
28.png


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


由此可见,当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调用及参数调试结束,大家可以根据自己的场景去设定合适的参数值实现不同的效果。点击「链接」可以参考完整案例代码。


点击关注,第一时间了解华为云新鲜技术~
华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云

内容来源于51吃瓜网友投稿

使用道具 举报

您需要登录后才可以回帖 立即登录