【大模型】阿里云百炼平台对接DeepSeek-R1大模型使用详解
目录
一、前言
二、DeepSeek简介
2.1 DeepSeek 是什么
2.2 DeepSeek R1特点
2.2.1 DeepSeek-R1创新点
2.3 DeepSeek R1应用场景
2.4 与其他大模型对比
三、阿里云百炼大平台介绍
3.1 阿里云百炼大平台是什么
3.2 阿里云百炼平台主要功能
3.2.1 应用场景
3.3 为什么选择阿里云百炼平台
四、前置准备
4.1 注册百炼平台账户
4.2 获取apikey
4.3 本地安装python环境
五、代码集成使用DeepSeek-R1
5.1 获取对接文档
5.2 代码操作实例
5.2.1 基本操作调用
5.2.2 多轮对话
5.2.3 流式输出
六、写在文末
一、前言
DeepSeek的火热让全世界见证了一场国产AI大模型走向巅峰的盛宴。DeepSeek的横空出世一方面让AI大模型的格局得到重塑,另一方面,对于普通人来说,也有机会零距离的体验到更懂国人的AI大模型。从很多使用过后的小伙伴们的反馈来看,DeepSeek的回答更有作为”人”的人性且有温度的回答。另一方面,很多团队开始尝试本地部署DeepSeek模型,不过考虑到部署依赖的硬件环境资源开销巨大,所以许多云厂商陆续入场,提供低成本、甚至接近零成本的接入方式,方便开发者或应用对接者快速使用,比如硅基流动、蓝耘智算平台、阿里云百炼平台等,本文以阿里云百炼平台为例,分享如何基于阿里云百炼平台快速接入和使用DeepSeek模型。
二、DeepSeek简介
2.1 DeepSeek 是什么
DeepSeek是一款多模态AI工具,融合了文本生成、图像创作等多种功能,致力于为用户提供无缝的创作体验。由中国对冲基金高毅资产旗下团队打造,采用深度学习和高效的神经网络技术,极大地提升了回应速度和内容质量。用户只需简单描述需求,DeepSeek便能生成多样化且富有创意的内容,彻底改变了人们与AI的互动方式。快速入口:DeepSeek
-
DeepSeek是一款专为自然语言处理(NLP)和其他复杂任务设计的先进大规模深度学习模型;
-
DeepSeek采用创新的架构设计,能够高效提取特征,减少冗余计算,从而大幅提升数据处理速度并缩短训练时间;
-
DeepSeek R1泛化能力非常强,无论在新数据还是旧数据上,都能表现出色,有效降低过拟合的风险。此外,其参数管理经过优化,不仅提高了训练效率,还减少了内存占用,使其在资源受限的环境中也能高效运行。
2.2 DeepSeek R1特点
DeepSeek R1模型为当前逻辑推理最强大的模型之一,其具备如下重要特点:
模型训练优化
-
冷启动数据:为解决冷启动阶段的不稳定性,开发团队收集了数千个高质量冷启动数据,用于微调基础模型。
-
奖励机制:通过准确性奖励、格式奖励和语言一致性奖励等机制,优化模型输出的质量和可读性。
-
拒绝采样技术:在生成高质量样本时,拒绝采样技术被用来过滤低质量输出,确保推理结果的可靠性。
核心技术架构
-
强化学习驱动:DeepSeek-R1 是首个完全通过强化学习训练的大型语言模型,无需依赖监督微调(SFT)或人工标注数据。它采用组相对策略优化(GRPO)算法,通过奖励机制和规则引导模型生成结构化思维链(CoT),从而提升推理能力。
-
多阶段训练流程:模型采用冷启动阶段、强化学习导向训练和全场景训练等多阶段方法。在冷启动阶段,通过少量高质量数据微调基础模型(如DeepSeek-V3-Base),然后逐步加入通用场景和指令以优化模型性能。
-
专家混合架构(MoE) :DeepSeek-R1 基于671B参数的混合专家架构,包含16个专家网络,支持多种语言和技术领域。
-
长链推理支持:模型支持长链推理(CoT),能够生成数万字的思维链,显著提高复杂任务的推理准确性。
泛化能力强
-
DeepSeek R1的训练数据覆盖面极广,能够适应各种不同的任务和场景,展现出强大的跨领域适应性。
-
DeepSeek 无论在文本处理、图像识别还是代码生成等多模态任务中,它都能提供稳定的性能表现。这种泛化能力使得DeepSeek R1不仅适用于特定的场景,还能在多种领域中灵活应用,为开发者提供了极大的便利。
优异的推理性能
-
推理能力:DeepSeek-R1 在数学、代码和自然语言推理任务上表现出色,其推理能力媲美甚至超越了OpenAI的O1正式版。例如,在AIME 2024、MATH-500等基准测试中,其表现优于人类程序员。
-
成本效益:DeepSeek-R1 的运行成本仅为OpenAI的3%左右,同时提供了API服务,降低了企业用户的使用门槛。
高效的网络架构
-
DeepSeek R1采用创新的深度学习架构,相比其他大语言模型,可以通过减少计算冗余,大幅提高了数据处理效率。
-
DeepSeek R1 在处理复杂数据时,能够快速提取关键特征,显著缩短训练和推理时间。
-
这种高效的架构设计使其在面对大规模数据集时,依然能够保持高效的处理能力,为开发者节省了大量的时间和计算资源。
-
2.2.1 DeepSeek-R1创新点
相比其他大模型,DeepSeek R1具备下面的创新点:
-
自我进化能力
-
模型在训练过程中展现出反思和重新评估推理步骤的能力,进一步提升了推理的稳定性和一致性。
-
-
蒸馏技术
-
通过蒸馏技术,DeepSeek-R1 能将大模型的推理能力迁移到更小规模的模型中,实现高效部署。
-
2.3 DeepSeek R1应用场景
可以说 DeepSeek R1 具备目前市面上所有大模型的优势,尤其在自然语言处理领域有着广泛的应用,如下列举了几种常见的应用场景。
-
文本生成
-
根据用户的输入,生成高质量的答案,比如:旅游规划,美食推荐,商业文案,短文,机器翻译等;
-
-
情感分析
-
它还能准确地分析文本中的情感倾向,为舆情分析、客户服务等场景提供有力支持。
-
-
教育辅导与金融分析
-
在教育领域,它可以帮助学生准备SAT和GRE考试
-
在金融领域,它可辅助分析师进行风险评估
-
-
智能问答
2.4 与其他大模型对比
下面列举了DeepSeek 与当下其他几种大模型的对比
对比项 | DeepSeek | GPT-4o | Google Gemini |
语言生成 | 中文语境下表现突出,生成文本自然流畅,多轮对话连贯性强 | 整体语言生成能力优秀,但在中文语境下独特优势不如 DeepSeek | 在多模态融合下的语言生成有特色,但纯文本生成能力稍逊 |
逻辑推理 | 面对复杂数学和逻辑问题,推理准确且过程清晰,具备深度思考能力 | 逻辑推理能力强,是行业标杆之一 | 在逻辑推理上表现尚可,但重点在多模态任务 |
计算效率 | 对计算资源消耗低,适合在资源有限环境部署 | 计算资源需求高,部署成本相对较高 | 计算资源需求因任务而异,多模态任务资源需求较大 |
训练成本 | 以 DeepSeek-V3 为例,训练成本仅为 GPT-4o 的二十分之一 | 训练成本高昂 | 训练成本较高,具体数据因模型版本而异 |
应用场景 | 智能客服、内容创作、教育辅助、数据分析等,在企业级应用优势明显 | 广泛应用于各类自然语言处理场景 | 专注于多模态任务,如图像描述、视频分析等 |
开源性 | 完全开源,支持免费商用和衍生开发 | 部分新模型采取专有模式,限制开发者自由使用和深度开发 | 部分开源,多模态相关核心技术专有性较强 |
综上,DeepSeek 在性能、成本、应用和开源等多方面展现出独特优势,尤其在中文语境和企业级应用场景中表现突出。不同的 AI 模型各有所长,在选择时应综合自身需求、预算和应用场景等因素,挑选最适合的 AI 大模型产品。而 DeepSeek 凭借其独特魅力,已在 AI 领域占据重要地位,并有望在未来持续拓展应用边界,为更多领域带来创新变革。
三、阿里云百炼大平台介绍
3.1 阿里云百炼大平台是什么
阿里云的“百炼平台”是一个专注于大规模模型训练和优化的平台,旨在帮助企业及开发者更高效地进行人工智能模型的研发和部署。地址:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
百炼平台 是阿里云推出的一个面向AI开发者的全栈式AI模型训练与优化平台。它集成了阿里云在云计算、大数据和人工智能领域的技术优势,提供了从数据准备、模型训练到模型部署的一站式解决方案。该平台特别适合需要处理大规模数据集和复杂模型训练任务的企业和研究机构。
3.2 阿里云百炼平台主要功能
阿里云百炼平台提供了丰富的功能,如下:
-
一站式AI开发环境
-
提供了完整的AI开发流程支持,包括数据标注、预处理、模型训练、评估和部署。
-
支持多种深度学习框架,如TensorFlow、PyTorch等,方便用户根据需求选择合适的工具。
-
-
高效的分布式训练
-
支持大规模分布式训练,能够有效利用多台服务器上的GPU资源,加速模型训练过程。
-
提供自动化的分布式训练配置,简化了分布式训练的复杂性。
-
-
自动化机器学习(AutoML)
-
内置AutoML功能,可以自动选择最优的超参数组合,提高模型性能并减少人工调参的工作量。
-
支持自动特征工程和模型选择,帮助用户快速找到最佳模型。
-
-
丰富的算法库和预训练模型
-
提供了丰富的算法库和预训练模型,覆盖了图像识别、自然语言处理、推荐系统等多个领域。
-
用户可以直接使用这些预训练模型进行微调,节省时间和计算资源。
-
-
灵活的资源调度和管理
-
支持按需分配计算资源,用户可以根据实际需求动态调整使用的CPU、GPU等资源。
-
提供详细的资源使用监控和日志记录,方便用户管理和优化资源使用。
-
-
安全可靠的数据管理
-
提供安全的数据存储和管理服务,确保数据的完整性和隐私保护。
-
支持多种数据源接入,包括本地文件系统、OSS(对象存储服务)、数据库等。
-
-
便捷的模型部署和服务化
-
支持将训练好的模型一键部署为在线服务,方便用户快速上线AI应用。
-
提供RESTful API接口,便于与其他系统集成。
-
3.2.1 应用场景
下面列举了阿里云百炼平台的几种使用场景:
-
企业级AI项目:适用于需要处理大规模数据和复杂模型的企业级AI项目,如金融风控、医疗影像分析等。
-
科研机构:为科研人员提供强大的计算资源和工具,支持前沿研究和实验。
-
个人开发者:为个人开发者提供了一个低成本、高效率的AI开发环境,帮助他们快速实现创意。
3.3 为什么选择阿里云百炼平台
对于对接阿里云百炼平台来说,具备如下诸多优势:
-
模型丰富
-
百炼提供通义系列的各类大模型以及商业版官方API接口,对接文档详细,同时支持主流第三方大模型,涵盖文本、图像、音视频等模态,并提供行业定制化模型。
-
-
提供便捷的开发工具
-
百炼提供的Prompt自动优化、知识库管理、函数调用、流程编排、模型定制等能力,能帮使用者更快地构建一个生产级大模型应用。
-
-
使用成本降低
-
相比本地部署大模型,使用者在前期无需投入巨额成本来购置硬件,后期也无需考虑硬件的维护和折旧。只需按实际使用量或额度付费即可,一定程度上可降低成本,也可以达到快速检验市场效果的作用。
-
-
数据安全级别高
-
阿里云严格保护用户的数据隐私,承诺不会将用户的数据用于模型训练。同时,在构建应用或训练大模型过程中传输的数据都会经过加密,确保数据安全。
-
四、前置准备
在正式开始利用百炼平台对接DeepSeek之前,你需要依次做下面的几项准备,确保在后续的对接中能够顺利开启调用DeepSeek的能力。
4.1 注册百炼平台账户
直接使用支付宝账户或者手机号注册即可。
4.2 获取apikey
apikey是调用大模型的必要参数,目前可以通过阿里云百炼平台获取,参考下面的说明注册账户并获取apikey:如何获取API Key_大模型服务平台百炼(Model Studio)-阿里云帮助中心
以通义系列大模型产品为例,申请使用通过后,平台就会颁发给你一个apikey,可以在控制台查看
4.3 本地安装python环境
此处选择的版本为 3.10
安装openai依赖
pip install openai
五、代码集成使用DeepSeek-R1
5.1 获取对接文档
在百炼模型广场中找到DeepSeek R1模型,这里除了R1,还有很多其他DeepSeek 相关的模型,可以根据自身的需求选择
选择R1 模型中的API调用示例
在下面的文档中,给出了详细的API调用说明
5.2 代码操作实例
5.2.1 基本操作调用
找到下面官方提供的示例代码,可以通过 OpenAI SDK 或 OpenAI 兼容的HTTP方式快速体验DeepSeek模型
参考下面完整的代码,这里向deepseek提一个问题,让deepseek写一首诗
import os
from openai import OpenAI
client = OpenAI(
api_key="你的apikey",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="deepseek-r1", # 此处以 deepseek-r1 为例,可按需更换模型名称。
messages=[
{'role': 'user', 'content': '为程序员写一首七言律诗,风格幽默诙谐'}
]
)
# 通过reasoning_content字段打印思考过程
print("思考过程:")
print(completion.choices[0].message.reasoning_content)
# 通过content字段打印最终答案
print("最终答案:")
print(completion.choices[0].message.content)
等待deepseek思考完毕,给出了下面的回答,最终的结果不仅是一首诗,而且把中间的思考过程呈现了出来,不过这种方式等待的时间稍微有点长
5.2.2 多轮对话
百炼提供的 DeepSeek API 默认不会记录你的历史对话信息。而多轮对话功能则可以让大模型“拥有记忆”,满足如追问、信息采集等需要连续交流的场景。
-
如果你使用 DeepSeek-R1 类模型,会收到reasoning_content字段(思考过程)与content(回复内容),您可以将content字段通过{'role': 'assistant', 'content':API 返回的content}添加到上下文,无需添加
参考下面的完整代码
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key="你的apikey",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
# 通过 messages 数组实现上下文管理
messages = [
{'role': 'user', 'content': '你好'}
]
completion = client.chat.completions.create(
model="deepseek-r1", # 此处以 deepseek-r1 为例,可按需更换模型名称。
messages=messages
)
print("="*20+"第一轮对话"+"="*20)
# 通过reasoning_content字段打印思考过程
print("="*20+"思考过程"+"="*20)
print(completion.choices[0].message.reasoning_content)
# 通过content字段打印最终答案
print("="*20+"最终答案"+"="*20)
print(completion.choices[0].message.content)
messages.append({'role': 'assistant', 'content': completion.choices[0].message.content})
messages.append({'role': 'user', 'content': '你是谁'})
print("="*20+"第二轮对话"+"="*20)
completion = client.chat.completions.create(
model="deepseek-r1", # 此处以 deepseek-r1 为例,可按需更换模型名称。
messages=messages
)
# 通过reasoning_content字段打印思考过程
print("="*20+"思考过程"+"="*20)
print(completion.choices[0].message.reasoning_content)
# 通过content字段打印最终答案
print("="*20+"最终答案"+"="*20)
print(completion.choices[0].message.content)
运行上面的代码,通过控制台输出结果不难发现,这种多轮对话的方式看起来可以让大模型产生了记忆功能
5.2.3 流式输出
DeepSeek-R1 类模型可能会输出较长的思考过程,在实际使用的时候相信不少同学都发现了这个问题,为了降低超时风险,建议您使用流式输出方式调用 DeepSeek-R1 类模型。参考下面的代码
from openai import OpenAI
import os
# 初始化OpenAI客户端
client = OpenAI(
# 如果没有配置环境变量,请用百炼API Key替换:api_key="sk-xxx"
api_key="你的apikey",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
def main():
reasoning_content = "" # 定义完整思考过程
answer_content = "" # 定义完整回复
is_answering = False # 判断是否结束思考过程并开始回复
# 创建聊天完成请求
stream = client.chat.completions.create(
model="deepseek-r1", # 此处以 deepseek-v3 为例,可按需更换模型名称
messages=[
{"role": "user", "content": "9.9和9.11谁大"}
],
stream=True
# 解除以下注释会在最后一个chunk返回Token使用量
# stream_options={
# "include_usage": True
# }
)
print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")
for chunk in stream:
# 处理usage信息
if not getattr(chunk, 'choices', None):
print("\n" + "=" * 20 + "Token 使用情况" + "=" * 20 + "\n")
print(chunk.usage)
continue
delta = chunk.choices[0].delta
# 检查是否有reasoning_content属性
if not hasattr(delta, 'reasoning_content'):
continue
# 处理空内容情况
if not getattr(delta, 'reasoning_content', None) and not getattr(delta, 'content', None):
continue
# 处理开始回答的情况
if not getattr(delta, 'reasoning_content', None) and not is_answering:
print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
is_answering = True
# 处理思考过程
if getattr(delta, 'reasoning_content', None):
print(delta.reasoning_content, end='', flush=True)
reasoning_content += delta.reasoning_content
# 处理回复内容
elif getattr(delta, 'content', None):
print(delta.content, end='', flush=True)
answer_content += delta.content
# 如果需要打印完整内容,解除以下的注释
"""
print("=" * 20 + "完整思考过程" + "=" * 20 + "\n")
print(reasoning_content)
print("=" * 20 + "完整回复" + "=" * 20 + "\n")
print(answer_content)
"""
if __name__ == "__main__":
try:
main()
except Exception as e:
print(f"发生错误:{e}")
从运行效果来看,显示的出的回答就像水里一样,一个个输出,而且不会中断,从效果来看,用户在等待答案的时候不用等很久才响应,这就是流式输出的效果。
六、写在文末
本文详细分享了基于阿里云百炼平台对接DeepSeek-R1的完整过程,最后通过代码操作演示对接使用DeepSeek-R1模型。阿里云百炼是一个综合性的人工智能开发与管理平台,提供从模型选择、应用部署到数据分析的全链路服务。对于大模型爱好者,或者希望快速通过接入最新的DeepSeek-R1大模型进行商业应用的团队来说,无疑是一个不错的选择,更深入的可以在此基础上继续研究,本篇到此结束,感谢观看。