一、引言
华为云的模型推理服务允许用户通过API调用各类预训练模型进行文本生成等任务。本文将详细介绍如何使用Python代码调用华为云的模型推理API,本文调用DeepSeek-R1-Distill-Qwen-32B(R1蒸馏到Qwen的模型)。
二、代码实现
1. 导入必要的库
# coding=utf-8
import requests
import json
这里导入了requests
库,它是Python中用于发送HTTP请求的常用库,而json
库则用于处理JSON数据,因为API请求和响应通常使用JSON格式。
2. 定义请求的URL
if __name__ == '__main__':
url = "https://infer-modelarts.cn-east-4.myhuaweicloud.com/v1/infers/937cabe5-d673-47f1-9e7c-2b4de0600431/v1/chat/completions"
此URL指向华为云特定的模型推理服务端点,通过该端点可以与大模型聊天。
3. 发送请求
# Send request.
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer 5****替换成你的API Key******smfHUedTu1k1Ay-FfkvbhjDVAYMaOOmXvD2K9-GHhUiXpe6_R'
# 把yourApiKey替换成真实的API Key
}
data = {
"model": "DeepSeek-R1-Distill-Qwen-32B",
"max_tokens": 1888, #官方示例给20,太小了,信息会截断。
"messages": [
{"role": "system", "content": "你是智能助手,请提供解答问题的思维链(COT)."},
{"role": "user", "content": "deepseek技术创新有哪些?"}
],
# 是否开启流式推理, 默认为False, 表示不开启流式推理
# "stream": True,
"stream": False,
# 在流式输出时是否展示使用的token数目。只有当stream为True时改参数才会生效。
# "stream_options": {"include_usage": True},
# 控制采样随机性的浮点数,值较低时模型更具确定性,值较高时模型更具创造性。"0"表示贪婪取样。默认为1.0。
"temperature": 1.0
}
resp = requests.post(url, headers=headers, data=json.dumps(data), verify=False)
-
请求头(headers):
-
Content-Type
指定请求体的数据格式为JSON。 -
Authorization
包含用于身份验证的API密钥,实际使用时需要替换为真实的API Key。
-
-
请求体(data):
-
model
指定使用的模型为DeepSeek-R1-Distill-Qwen-32B
。 -
max_tokens
限制生成的文本最多包含20个token。 -
messages
列表包含系统消息和用户消息,系统消息要求智能助手提供解答问题的思维链,用户消息询问DeepSeek技术创新有哪些。 -
stream
控制是否开启流式推理,这里设置为False
表示不开启。 -
temperature
控制采样随机性,值为1.0表示模型具有一定的创造性。
-
4. 打印结果
# Print result.
print(resp.status_code)
print(resp.text)
打印HTTP响应的状态码和响应文本,状态码可以帮助我们判断请求是否成功,响应文本则包含了模型生成的关于DeepSeek技术创新的信息。
三、注意事项
-
API密钥:代码中的
Authorization
字段需要替换为真实有效的API Key,否则请求将因身份验证失败而无法正常工作。 -
流式推理:如果需要开启流式推理,可以将
stream
字段设置为True
,并根据需要设置stream_options
。 -
安全性:在实际应用中,建议使用
verify=True
来验证SSL证书,以确保通信的安全性。
四、运行效果
注意他的<think>部分输出,“<think>” 可以当作一个引导符号。它会在这个标记内部呈现推理过程或者思考步骤,而在标记外部输出最终答案。{"id":"chat-8c101d82cd9749c8949c5cd26847bb0b","object":"chat.completion","created":1739030628,"model":"DeepSeek-R1-Distill-Qwen-32B","choices":[{"index":0,"message":{"role":"assistant","content":"<think>\n好,我现在需要分析DeepSeek(深度求索)公司的技术创新点。根据用户的问题,他们已经列出了一些技术创新,我需要用COT(链式思考)来扩展和详细说明这些点。首先,我需要了解每个技术创新的基本原理,然后思考它们之间的联系,以及它们在实际中的应用情况。\n\n首先,超大规模深度学习模型训练技术。这涉及到如何管理计算资源,处理大规模的数据,以及优化模型的训练过程。DeepSeek可能在高效的并行计算、分布式训练和模型优化算法上做了改进。比如,他们可能开发了自适应的并行策略,根据模型的大小和硬件资源动态调整训练策略,以提高训练效率。\n\n接下来是多模态预训练技术。这是指模型能够同时理解和处理多种类型的数据,比如文本、图片、音频等。DeepSeek可能在多个数据源上进行联合训练,利用跨模态的对齐技术,使得模型在不同数据类型之间能够更好地相互理解和支持。例如,他们在预训练过程中可能引入了多模态的数据对齐机制,确保不同模态的信息互相补充和验证,从而提升模型的综合理解能力。\n\n然后是AI内容生成技术。这主要涉及如何让模型生成高质量、多样化的内容。DeepSeek可能在生成模型的架构、训练方法和后处理技术上进行了创新。例如,他们可能采用了生成对抗网络(GANs)或变分自编码器(VAEs)的改进版本,结合强化学习等方法,不断优化生成内容的质量和相关性。\n\nAI内容审核技术方面,DeepSeek可能开发了高效的自动审核系统,能够快速识别和过滤违规或不良内容。这可能包括深度学习模型、自然语言处理技术和图像识别技术的结合。他们可能还引入了主动学习机制,让审核系统能够根据用户的反馈不断优化,提高审核的准确性和效率。\n\n多模态搜索技术也是一个重点。DeepSeek可能在跨模态检索方面做出了创新,比如将文本、图像、视频等多种模态进行融合,提升搜索的准确性和用户体验。他们可能开发了多模态索引和检索算法,利用深度学习模型提取多模态的特征,使得搜索可以跨领域、跨格式进行。\n\n最后是人机对话技术。DeepSeek可能在这方面取得了一些突破,比如通过改进对话模型的架构,增加对话上下文的理解能力,或者采用了多轮对话管理策略,使得机器能够更自然、更智能地与人类进行交流。他们可能还引入了情感分析和生成技术,使对话更加人性化。\n\n在链式思考过程中,我需要将这些技术创新点联系起来,思考它们是如何互相影响和促进的。例如,超大规模模型训练技术为多模态预训练提供了基础,而多模态预训练又支持更强大的内容生成和审核能力,所有这些技术结合起来,推动了DeepSeek在搜索引擎和其他AI应用中的表现。\n\n此外,我还可以考虑DeepSeek在实际应用中是如何部署这些技术的,比如在搜索引擎优化、广告推荐系统、内容生成工具等方面的具体应用案例。通过这些案例,可以更直观地理解这些技术创新带来的实际效果和用户价值。\n\n总结一下,DeepSeek的技术创新涵盖了从模型训练到应用开发的多个层面,每个技术创新点都与其他技术创新点相互配合,构成了一个完整的AI技术生态系统。通过链式思考,可以深入理解每个技术创新的作用及其在整体中的重要性。\n</think>\n\nDeepSeek在多个AI核心技术领域进行了深入研究和创新,以下是其主要技术创新点:\n\n1. **超大规模深度学习模型训练技术**:\n - 深度优化了分布式训练框架,实现了高效并行计算。\n - 采用了自适应调整训练策略,提升资源利用率和训练效率。\n\n2. **多模态预训练技术**:\n - 开发了多模态数据对齐机制,增强跨模态理解能力。\n - 在联合训练中引入多任务学习,提升模型的综合处理能力。\n\n3. **AI内容生成技术**:\n - 结合生成对抗网络和变分自编码器,提升生成内容质量。\n - 采用强化学习优化生成过程,确保内容的相关性和多样性。\n\n4. **AI内容审核技术**:\n - 集成深度学习与NLP技术,实现高效内容过滤。\n - 引入主动学习机制,持续优化审核模型的准确性和效率。\n\n5. **多模态搜索技术**:\n - 开发多模态索引和检索算法,提升跨模态搜索体验。\n - 利用深度学习提取多模态特征,实现更精准的跨领域检索。\n\n6. **人机对话技术**:\n - 改进对话模型架构,增强上下文理解和对话连贯性。\n - 引入情感分析技术,提升对话的自然度和人性化。\n\n这些技术创新相互配合,构建了一个全面的AI生态系统,推动了DeepSeek在搜索引擎、广告推荐、内容生成等领域的应用,提升了用户体验和应用效果。","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":18,"total_tokens":1065,"completion_tokens":1047},"prompt_logprobs":null}
五、附录
Python调用千帆平台的DeepSeek:https://www.jianshu.com/p/f6e27703f469