Amazon Bedrock如何自定义导入DeepSeek?

用自定义模型导入功能,在Amazon Bedrock上部署DeepSeek-R1 Distill Llama模型,无缝集成至Amazon Bedrock环境中,充分利用Amazon Bedrock的Serverless基础设施和统一API。


准备

模型兼容

DeepSeek R1 Distill模型需要基于可支持的架构,Amazon Bedrock支持这些架构进行自定义模型导入,如Llama 2、Llama 3、Llama 3.1、Llama 3.2或Llama 3.3。

准备文件

以Hugging Face格式准备必要的模型文件,并且存储在您的亚马逊云科技账户可访问的Amazon S3存储桶中。由于模型已以安全张量格式提供,无需单独准备文件。

  • .safetensors格式的模型权重。

  • 配置文件(config.json)。

  • Tokenizer文件(tokenizer_config.json、tokenizer.json、tokenizer.model)。


 交互式Jupyter Notebook

复制下方链接,查看如何在Amazon Bedrock上部署DeepSeek-R1.ipynb

Deploy-DeepSeek-R1-On-Amazon-Bedrock.ipynb

https://github.com/manu-mishra/DeepSeekR1onAmazonBedrock/blob/main/Deploy-DeepSeek-R1-On-Amazon-Bedrock.ipynb


 部署步骤

安装所需软件包

首先安装必要的Python软件:

pip install huggingface_hub boto3

下载DeepSeek R1模型 

使用Hugging Face Hub下载特定DeepSeek R1模型。如,下载DeepSeek-R1-Distill-Llama-8B模型,示例如下: ​​​​​​​

1 from huggingface_hub import snapshot_download 2
3 model_id = "deepseek-ai/DeepSeek-R1-Distill-Llama-8B"4 local_dir = snapshot_download(repo_id=model_id, local_dir="DeepSeek-R1-Distill-Llama-8B")

将模型文件上传到Amazon S3 

将下载的模型文件上传到亚马逊云科技账户中的Amazon S3存储桶,上传前请确保该存储桶位于Amazon Bedrock支持的区域,例如us-east-1或us-west-2。​​​​​​​

import boto3import 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)

 将模型导入Amazon Bedrock 

在Amazon Bedrock控制启动新模型导入任务:

  • 在Amazon Bedrock控制台中,选择“自定义模型”并选择“导入模型”。

  • 提供存储模型文件的Amazon S3 URI(例如,s3://your-s3-bucket-name/DeepSeek-R1-Distill-Llama-8B/)。

  • 按照提示完成导入。

详细操作,可参阅关于导入自定义模型的亚马逊云科技文档。

调用模型

完成上述步骤后,即可使用Amazon Bedrock API调用模型。​​​​​​​

import boto3import 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模型,利用其Serverless基础设施和统一API,来实现可扩展的高效模型推理。


有趣分享:

自定义模型导入功能允许在Amazon Bedrock的基础设施上使用外部微调的模型。

DeepSeek R1模型应基于支持的架构,例如Llama 2、Llama 3、Llama 3.1、Llama 3.2或Llama 3.3。

准备模型文件以Hugging Face格式准备您的模型文件,并将它们存储在Amazon S3中。

Constellation Research分析师Holger Mueller,分析评论表示:“亚马逊云科技在支持DeepSeek方面毫不迟疑,致力于保持其作为所有大语言模型(大型和小型)的“中立之地”的地位。”并进一步分析说:“首席信息安全官(CISO)可能会对任何企业级访问都表示担忧,但AI和数据科学群体,对亚马逊云科技支持DeepSeek的举措表现出浓厚的兴趣。”

 

### 三级标题:Amazon BedrockAmazon Kendra 在企业中的集成使用方式 在企业环境中,Amazon BedrockAmazon Kendra 可以通过检索增强生成(RAG, Retrieval-Augmented Generation)架构进行集成,从而实现高效的信息检索与自然语言生成能力。Amazon Kendra 作为语义搜索引擎,负责从企业内部的非结构化数据源中提取相关信息,而 Amazon Bedrock 则基于这些信息生成自然语言回答,从而构建智能化的知识问答系统[^3]。 Amazon Kendra 支持多种数据源的索引和搜索,包括本地文档、S3 存储桶、SharePoint、Salesforce、Jira 等企业常用平台中的数据[^1]。通过自然语言查询,Kendra 能够理解用户意图并返回最相关的文档段落或摘要。这些检索结果可以作为上下文信息传递给 Amazon Bedrock 中的大型语言模型(LLM),例如 Anthropic Claude、Stable Diffusion 或 Amazon Titan 模型,从而生成结构化、可解释的自然语言响应[^2]。 在实际部署中,Amazon Kendra 提供了开箱即用的文档处理流程,包括文本提取、段落拆分、嵌入生成和向量索引管理,这些功能显著降低了构建 RAG 系统的技术复杂性[^3]。Amazon Bedrock 则通过内置的提示工程优化和模型推理能力,确保生成的回答不仅基于准确的信息,还能适应不同的业务需求,例如客户服务问答、技术文档检索、内部知识库查询等场景[^4]。 以下是一个简化的 Python 示例,展示如何将 Amazon Kendra 的检索结果作为上下文输入 Amazon Bedrock 模型进行生成: ```python import boto3 # 初始化 Kendra 客户端 kendra_client = boto3.client('kendra') # 执行语义搜索 def search_kendra(query, index_id): response = kendra_client.query( IndexId=index_id, QueryText=query ) return response['ResultItems'] # 将检索结果输入 Bedrock 模型生成回答 def generate_answer_with_bedrock(context, question, model_arn): bedrock_runtime = boto3.client('bedrock-runtime') prompt = f"根据以下信息:{context}\n回答:{question}" response = bedrock_runtime.invoke_model( modelId=model_arn, body=json.dumps({ "prompt": prompt, "max_tokens": 200, "temperature": 0.5 }) ) return json.loads(response['body'].read())['completion'] # 示例使用 index_id = 'your-kendra-index-id' model_arn = 'arn:aws:bedrock:region::foundation-model/anthropic.claude-v2' user_query = "如何配置 AWS S3 的访问权限?" # 从 Kendra 检索信息 results = search_kendra(user_query, index_id) retrieved_context = " ".join([item['DocumentTitle']['Text'] for item in results]) # 使用 Bedrock 生成回答 final_answer = generate_answer_with_bedrock(retrieved_context, user_query, model_arn) print(final_answer) ``` 上述代码展示了如何将 Kendra 的语义搜索结果作为上下文输入 Bedrock 的基础模型,实现企业级的智能问答系统。 ### 三级标题:集成使用的优势与业务价值 通过 Amazon BedrockAmazon Kendra 的集成,企业可以获得多个层面的业务价值提升。首先,Kendra 提供了高精度的语义搜索能力,能够理解用户意图并从海量文档中提取关键信息。其次,Bedrock 提供了灵活的模型选择和生成能力,支持多语言、多任务的自然语言生成,使得企业可以构建个性化的 AI 服务。 此外,这种集成方式可以显著降低生成模型的使用成本和推理延迟。Kendra 通过预检索和排序机制,减少了 Bedrock 在处理复杂任务时的计算负担,使得生成模型只需处理最相关的信息,从而提高响应的准确性和效率。企业可以利用这一架构构建智能客服、知识库问答助手、技术支持系统等应用场景,提升用户满意度和运营效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值