DeepSeek-R1是人工智能初创公司深度求索推出的模型之一,作为公开可用模型,在处理复杂任务时具有高精度的复杂推理能力和对上下文的深度理解。亚马逊云科技宣布DeepSeek-R1现已作为完全托管的无服务器大语言模型在Amazon Bedrock上正式可用,本文就来使用Amazon Bedrock自定义模型导入功能部署DeepSeek-R1模型,有需要的朋友可以多多参考一下。
本文需要用到的亚马逊AWS套餐:Amazon Bedrock+Amazon S3。
1、Amazon Bedrock
Amazon Bedrock是亚马逊云科技推出的使用基础模型构建和扩展生成式人工智能应用程序的最简单方法。目前用户可以在Amazon Bedrock上部署DeepSeek-R1模型,特别适合那些希望通过API快速集成预训练基础模型的团队。官网提供免费试用演示。
2、Amazon S3
Amazon S3是一种对象存储服务,可以存储静态网站内容、用户上传的文件等。Amazon S3免费套餐提供5GB的免费云存储空间、99.999999999%的持久性、20000个Get请求、2000个Put请求,使用时长达12个月。
亚马逊云科技官网:点击访问(新客注册立享100+免费云产品)
一、Amazon Bedrock介绍
Amazon Bedrock是一项完全托管的服务,可通过单个API提供多种高性能基础模型(FM),同时还提供一系列用户所需的广泛功能,用于构建支持安全性、隐私性和负责任人工智能原则的生成式人工智能应用。
使用Amazon Bedrock,用户可以轻松试验和评估适合您的使用案例的热门FM,通过微调和检索增强生成(RAG)等技术利用用户的数据对其进行私人定制,并构建使用用户的企业系统和数据来源执行任务的代理。由于Amazon Bedrock是无服务器的,因此用户无需管理任何基础设施,并且可以使用已经熟悉的AWS服务将生成式人工智能功能安全地集成和部署到用户的应用程序中。
Amazon Bedrock适用场景介绍:
- 文本生成:创建新的原创内容,例如博客文章、社交媒体帖子和网页素材。
- 虚拟助手:构建能够理解用户请求、自动分解任务、参与对话以收集信息并采取措施满足请求的助手。
- 文本和图像搜索:搜索和综合相关信息,以根据大量文本和图像数据回答问题并提供建议。
- 文本摘要:获取长篇文档(例如文章、报告、研究论文、技术文档甚至书籍)的简明摘要,以快速有效地提取重要信息。
- 图像生成:为广告活动、网站、演示文稿等快速创建逼真且具有视觉吸引力的图像。
二、Amazon Bedrock部署DeepSeek-R1模型
前提条件:
- 确保大家的DeepSeek-R1模型版本是基于支持导入的基础模型架构,例如Llama 2、Llama 3、Llama 3.1、Llama 3.2或Llama 3.3。Amazon Bedrock支持这些架构的自定义模型导入。
- 需要准备Hugging Face格式的必要模型文件,包括:.safetensors格式的模型权重文件、配置文件(config.json)、分词器文件(tokenizer_config.json,tokenizer.json,tokenizer.model)。这些文件应存储在用户AWS账户可访问的Amazon S3存储桶中。
本文中,大家可以使用Jupyter Notebook文件Deploy-DeepSeek-R1-On-Amazon-Bedrock.ipynb进行部署实操。
1、安装必要的依赖
首先,安装所需的Python依赖包。
pip install huggingface_hub boto3
2、下载DeepSeek R1模型
在Hugging Face Hub下载DeepSeek R1模型。例如下载DeepSeek-R1-Distill-Llama-8B模型:
from huggingface_hub import snapshot_download
model_id = "deepseek-ai/DeepSeek-R1-Distill-Llama-8B"
local_dir = snapshot_download(repo_id=model_id, local_dir="DeepSeek-R1-Distill-Llama-8B")
3、上传模型文件至Amazon S3
将下载的模型文件上传至云平台上的的Amazon S3存储桶,并确保该存储桶位于Amazon Bedrock支持的区域(如us-east-1或us-west-2)。
import boto3
import os
s3_client = boto3.client('s3', region_name='us-east-1')
bucket_name = 'your-s3-bucket-name'
local_directory = 'DeepSeek-R1-Distill-Llama-8B'
for root, dirs, files in os.walk(local_directory):
for file in files:
local_path = os.path.join(root, file)
s3_key = os.path.relpath(local_path, local_directory)
s3_client.upload_file(local_path, bucket_name, s3_key)
4、在Amazon Bedrock中导入模型
- 在Amazon Bedrock控制台中,打开新模型导入任务:
- 进入Amazon Bedrock控制台,选择“自定义模型”,然后点击“导入模型”。
- 提供存储模型文件的S3 URI(例如s3://your-s3-bucket-name/DeepSeek-R1-Distill-Llama-8B/)。
按照控制台提示完成模型导入流程。
5、调用模型
导入成功后,大家可以使用Amazon Bedrock API调用模型:
import boto3
import json
client = boto3.client('bedrock-runtime', region_name='us-east-1')
model_id = 'arn:aws:bedrock:us-east-1:your-account-id:imported-model/your-model-id'
prompt = "Your input prompt here"
response = client.invoke_model(
modelId=model_id,
body=json.dumps({'prompt': prompt}),
accept='application/json',
contentType='application/json'
)
result = json.loads(response['body'].read().decode('utf-8'))
print(result)
将'your-account-id'和'your-model-id'替换为用户特定的AWS账户ID和模型ID。
相关推荐: