在亚马逊云科技大模型平台Bedrock上部署DeepSeek-R1蒸馏模型
在Amazon Bedrock上部署DeepSeek-R1 Distill Llama模型需要使用Amazon Bedrock自定义模型导入(Custom Model Import)功能,该功能允许大家无缝导入外部微调模型至亚马逊云科技的AI大模型托管平台 - Bedrock环境。通过这一流程,大家可以利用Bedrock的无服务器架构和统一API,高效地部署模型并执行AI推理。
前提条件
模型兼容性
确保大家的DeepSeek R1 Distill模型版本是基于支持导入的基础模型架构,例如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)
这些文件应存储在Amazon S3桶中,并确保大家的亚马逊云科技账户可以访问该S3存储桶。
提示:该模型已经采用SafeTensor格式存储,因此无需额外准备文件。
通过Jupyter Notebook部署模型
大家可以使用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替换为大家的亚马逊云科技账户ID和模型ID。
总结
通过上述步骤,大家可以在Amazon Bedrock上高效部署DeepSeek R1 Distill Llama模型,并借助Bedrock的无服务器基础设施和统一API,实现可扩展、高效的模型推理。
如果大家需要更详细的操作演示,可以参考以下GitHub仓库和视频:
- DeepSeekR1onAmazonBedrock
- Import Custom Models Into Amazon Bedrock