2025年春节,最令人瞩目的无疑是DeepSeek的惊艳亮相,它以颠覆性的创新迅速席卷全球,成为街谈巷议的热点。无论是在地铁车厢里,还是公司茶水间,DeepSeek都成了人们津津乐道的话题。社交平台上,网友们争相分享与DeepSeek的“互动瞬间”,从探讨未来科技趋势到交流生活小窍门,仿佛一切问题都能通过DeepSeek找到答案。
DeepSeek R1模型是DeepSeek研发的一款高效AI语言模型,能够以极低的成本提供媲美大规模基础模型的性能。它适用于各种AI任务,包括自然语言处理(NLP)、智能客服、知识问答等。
相比传统大规模AI模型,DeepSeek R1计算资源占用更低,推理速度更快,成本更可控。
亚马逊云科技部署DeepSeek的优势
北京时间1月31日,亚马逊宣布已经把DeepSeek - R1纳入其平台,DeepSeek-R1模型现在在亚马逊的云服务上可用。
现在集成了DeepSeek-R1,亚马逊云科技仅按基础设施使用时间收费,延续了亚马逊云科技一贯的弹性计费方式,降低了用户(尤其是中小企业和初创公司)的试错成本。为用户提供更高效、更经济的人工智能解决方案,强化了其作为全栈服务商的定位,有助于抵御竞争对手的AI生态攻势。
如何在亚马逊云科技部署DeepSeek
在亚马逊云科技部署 DeepSeek-R1 模型的路径包括:
1. Amazon Bedrock Marketplace 中的 DeepSeek-R1 模型
2. Amazon SageMaker JumpStart 中的 DeepSeek-R1 模型
3. 使⽤ AWS Trainium 和 AWS Inferentia 部署 DeepSeek-R1–Distill 模型
4. 使⽤ Amazon Bedrock ⾃定义模型导⼊功能部署 DeepSeek-R1–Distill 模型
上述路径中 ,1/2/3均需要使⽤⼀台亚马逊云科技GPU服务器作为基底部署,即使是对于7B的蒸馏版DeepSeek-R1,也⾄少需要⼀台 g6e.2xlarge服务器,每⽉费⽤为1636.72 美元。
因此本⽂着重介绍其中第四点 ,这是⼀种⽆服务器的部署⽅式,⽆需管理底层基础设施,模型单元⾃动扩展,按实际使⽤量计费。
定价⽰例:
在us-east-1区域导⼊⼀个8B参数的DeepSeek-R1 模型,序列⻓度为128K,并在1个⽉后删除该模型。这需要2个⾃定义模型单元,每分钟的价格为0.1570美元,每⽉的模型存储费⽤为3.90美元。
01 前期准备
Bedrock的⾃定义模型功能只⽀持以下两个区域,因此请确保当前亚马逊云科技控制台已切换⾄正确的区域:
-
弗吉尼亚北部 us-east-1
-
俄勒冈州 us-west-2
1. ⼀个S3存储桶⽤来存储从HuggingFace下载的DeepSeek模型包 ,⽅便导⼊ Bedrock。
2. ⼀个EC2角⾊⽤来允许EC2服务器读写S3桶 ,⽅便从HuggingFace下载了模型之 后 ,导⼊S3中。
3. ⼀台EC2服务器⽤来进⾏中转 ,从HuggingFace下载模型并上传⾄S3。该服务器 的存储空间建议为:8B模型⾄少50GB ,70B模型⾄少300GB。
02
模型导入
通过SSH⼯具登录刚才创建的EC2服务器,然后按照以下流程执⾏。
・更新Ubuntu系统的软件包列表,确保能获取最新的软件包信息
sudo apt-get update
・安装Amazon CLI
sudo apt-get install awscli
・安装Git Large File Storage (LFS) ,这是⼀个Git的扩展 ,⽤于处理⼤⽂件下载
sudo apt-get install git-lfs
・检查Git LFS的版本 ,确认安装成功
git lfs version
・初始化Git LFS
git lfs install
・从HuggingFace仓库下载模型⽂件,使⽤Git LFS克隆8B参数的DeepSeek模型
git lfs clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Ll ama-8B
・如果需要使⽤70B模型则使⽤这条命令
git lfs clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Disti ll-Llama-70B
・检查下载的8B模型⽂件夹的总⼤⼩ ,8B模型⾄少17GB ,70B模型⾄少135GB
du -sh DeepSeek-R1-Distill-Llama-8B/
・使⽤Amazon CLI将下载的8B模型⽂件上传到Amazon S3存储桶 命令中的<s3< span=""> URI>需要替换为模型存储位置的S3 URI
aws s3 cp ./DeepSeek-R1-Distill-Llama-8B/<s3< span=""> URI> --recursive
・在S3中的⽂件列表应当如下图所⽰
03 在Bedrock倒入模型
・导航⾄Bedrock控制台,找到“导⼊的模型ˮ → “导⼊模型ˮ
・⾃定义⼀个模型名称
・在“模型导⼊设置ˮ⾥填写模型存储的S3 URI。 或者使⽤ “浏览S3ˮ⼯具 ,可视化选 择路径
・通常等到5-30分钟后 ,可以看到模型导⼊完成 请记录此处的模型ARN ,后续调⽤时会⽤到
04 调入导入的Bedrock自定义模型
・通过发送InvokeModel或 InvokeModelWithResponseStream请求,可以通过 API 对导⼊的模型运⾏推理。请参考⽂档:
https://docs.aws.amazon.com/bedrock/latest/userguide/inference- invoke.html
・Amazon CLI 调⽤ InvokeModel API ⽰例 ,请修改此处<model-arn>
aws bedrock-runtime invoke-model \ --model-id <model-arn> \
--body '{"prompt": "\n\nHuman: 你好 ,你是谁\n\nAssistant:", "max_to kens_to_sample" : 1024}' \
--cli-binary-format raw-in-base64-out \ invoke-model-output.txt
使⽤ InvokeModelWithResponseStream API 通过 Python ⽣成流式回复
import boto3 import json
brt = boto3.client(service_name='bedrock-runtime')
body = json.dumps({
'prompt': '\n\nHuman: 写⼀篇关于AI改变世界的⽂章\n\nAssistant:',
'max_tokens_to_sample': 4000 })
response = brt.invoke_model_with_ response_stream( modelId='<model-arn>',
body=body )
stream = response.get('body') if stream:
for event in stream:
chunk = event.get('chunk') if chunk:
print(json.loads(chunk.get('bytes').decode()))