DeepSeek

DeepSeek-R1模型现已在Amazon Bedrock市场和Amazon SageMaker JumpStart提供

关键要点

  • DeepSeek-R1模型现已通过Amazon Bedrock市场和SageMaker JumpStart推出,支持多种参数设置。
  • DeepSeek-R1是一种大型语言模型,使用强化学习和多阶段训练流程提升推理能力。
  • 该模型的精简版可用于构建和扩展生成AI应用,希望用户以负责任的方式进行操作。
  • 强烈推荐在部署DeepSeek-R1时设置防护措施,以确保内容安全。

今天,我们很高兴地宣布,DeepSeek的现已通过和发布。借助这一发布,您现在可以部署的第一代前沿模型,以及从1.5亿到700亿参数范围的精简版本,在AWS上构建、实验并负责任地扩展您的生成AI想法。

在这篇文章中,我们将演示如何在市场和上开始使用DeepSeek-R1。您可以遵循类似步骤来部署这些模型的精简版本。

DeepSeek-R1概述

DeepSeek-R1是由开发的一种大型语言模型(LLM),它采用强化学习技术,通过从DeepSeek-V3-Base基础上进行多阶段训练过程,增强模型的推理能力。它的一项关键特色是使用来改进模型的响应,超越标准的预训练和微调过程。通过结合RL,DeepSeek-R1能够更有效地适应用户反馈和目标,从而提高相关性和清晰度。此外,DeepSeek-R1采用方法,能够逐步拆解复杂查询并进行推理。这样的指导性推理过程使模型能够生成更准确、透明和详细的答案。结合基于RL的微调和CoT能力,DeepSeek-R1旨在生成结构化的响应,同时重点关注可解释性和用户交互。凭借其广泛的能力,DeepSeek-R1已受到行业的关注,成为一种多功能的文本生成模型,可以集成到代理、逻辑推理和数据解读等多种工作流中。

DeepSeek-R1采用专家混合体(MoE)架构,模型大小为6710亿参数。这种架构允许激活370亿参数,通过将查询路由到最相关的专家“集群”,实现高效推理。一种高效的方法使模型能够在不同问题领域中专业化,同时保持整体效率。DeepSeek-R1在推理时需要至少800GB的FP8格式的高带宽内存(HBM)。在本文中,我们将使用ml.p5e.48xlarge实例来部署模型。ml.p5e.48xlarge配备8个NvidiaH200 GPU,提供1128 GB的GPU内存。

DeepSeek-R1精简版模型将主要R1模型的推理能力引入基于流行开源模型(如Qwen(1.5B、7B、14B和32B)和Llama(8B和70B))的更高效架构。精简训练是指训练较小、更高效的模型,以模仿较大DeepSeek-R1模型的行为和推理模式,并利用其作为教师模型。

您可以通过或部署DeepSeek-R1模型。由于DeepSeek-R1是一个新兴模型,我们建议您在部署时采取防护措施。在本博客中,我们将使用来引入保护措施,防止有害内容,并根据关键安全标准评估模型。在写这篇博客时,对DeepSeek-R1的部署,SageMakerJumpStart和Bedrock市场的防护措施仅支持ApplyGuardrailAPI。您可以创建多个适合不同用例的防护措施,并将其应用于DeepSeek-R1模型,改善用户体验并在生成AI应用中标准化安全控制。

部署前的准备工作

要部署DeepSeek-R1模型,您需要访问ml.p5e实例。要检查您的P5e配额,打开服务配额控制台,在AWS服务 中选择AmazonSageMaker ,确认您使用的是ml.p5e.48xlarge进行端点使用。请确保在您部署的AWS区域内至少有一个ml.P5e.48xlarge实例。若需请求限额增加,请创建并与您的账户团队联系。

由于您将使用AmazonBedrock防护措施部署此模型,因此请确保您具备正确的权限以使用AmazonBedrock防护措施。有关说明,请参见。

使用ApplyGuardrail API实现防护措施

Amazon Bedrock防护措施允许您引入保护措施,防止有害内容,并根据关键安全标准评估模型。您可以使用Amazon Bedrock ApplyGuardrail API对DeepSeek-R1模型实施安全措施。这使您能够在Amazon Bedrock市场和SageMakerJumpStart中评估用户输入和模型输出。您可以使用AmazonBedrock控制台或API创建防护措施。有关创建防护措施的示例代码,请参见。

总体流程涉及以下步骤:首先,系统接收模型输入。该输入通过ApplyGuardrail API进行处理。如果输入通过防护检查,则会发送到模型进行推理。接收模型输出后,再次应用防护检查。如果输出通过最终检查,则作为最终结果返回。如果输入或输出受到防护措施的干预,将返回一条消息,指明干预的性质以及是在输入还是输出阶段发生的。以下部分展示了使用此API进行推理的示例。

在Amazon Bedrock市场部署DeepSeek-R1

Amazon Bedrock市场为您提供访问超过100种流行、新兴和专业的机会。要在Amazon Bedrock中访问DeepSeek-R1,请执行以下步骤:

  1. 在Amazon Bedrock控制台中,在导航窗格中选择模型目录 ,选择基础模型
    在撰写本文时,您可以使用InvokeModel API来调用模型。它不支持对话API和其他Amazon Bedrock工具。
  2. 过滤提供者为DeepSeek,并选择DeepSeek-R1模型。
    删除)
    模型详细信息页面提供有关模型能力、定价结构和实施指南的关键信息。您可以找到详细的使用说明,包括示例API调用和集成代码片段。该模型支持多种文本生成任务,包括内容创建、代码生成和问答,使用其强化学习优化和CoT推理能力。
    此页面还包括部署选项和许可信息,以帮助您在应用中使用DeepSeek-R1。
  3. 要开始使用DeepSeek-R1,选择部署
    删除)
    系统会提示您配置DeepSeek-R1的部署详细信息,模型ID将预填充。
  4. 对于端点名称 ,请输入一个端点名称(1-50个字母数字字符)。
  5. 对于实例数量 ,输入实例数量(1-100)。
  6. 对于实例类型 ,选择您的实例类型。为了获得DeepSeek-R1的最佳性能,建议使用基于GPU的实例类型,例如ml.p5e.48xlarge。
    可选择配置高级安全性和基础设施设置,包括虚拟私有云(VPC)网络、服务角色权限和加密设置。对于大多数用例,默认设置将很好地工作。然而,对于生产部署,您可能希望检查这些设置,以确保与组织的安全性和合规性要求一致。
  7. 选择部署 以开始使用该模型。
    删除)
    完成部署后,您可以直接在Amazon Bedrock控制台中测试DeepSeek-R1的能力。
  8. 选择在控制台中打开 以访问交互界面,您可以在其中尝试不同的提示并调整模型参数,例如温度和最大长度。
    使用R1时建议使用DeepSeek的聊天模板以获得最佳效果。例如,<|begin▁of▁sentence|><|User|>内容用于推理<|Assistant|>

这是一种很好的方式,可以在将模型集成到您的应用中之前,探索模型的推理和文本生成能力。控制台提供即时反馈,帮助您理解模型如何响应各种输入,从而让您微调提示,获得最佳结果。

使用已部署的DeepSeek-R1端点通过防护措施进行推理

以下代码示例演示了如何通过Amazon Bedrock使用invoke_modelApplyGuardrail API来执行已部署的DeepSeek-R1模型推理。您可以通过AmazonBedrock控制台或API创建防护措施。有关创建防护措施的示例代码,请参见。创建防护措施后,使用以下代码在API上实现防护措施。脚本初始化bedrock_runtime客户端,配置推理参数,并发送请求以根据用户提示生成文本。


# 初始化Bedrock客户端

bedrock_runtime = boto3.client("bedrock-runtime")

# 配置

MODEL_ID = "your-model-id" # Bedrock模型ID GUARDRAIL_ID = "your-guardrail-id"
GUARDRAIL_VERSION = "your-guardrail-version"

class ChatTemplate(Enum): LLAMA = "llama" QWEN = "qwen" DEEPSEEK = "deepseek"

def format_prompt(prompt, template): """根据模型聊天模板格式化提示""" templates = {
ChatTemplate.LLAMA:
f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|>
您是一个有用的助手<|eot_id|><|start_header_id|>user<|end_header_id|>
{prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|>""",

    
    
        ChatTemplate.QWEN: f"""<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant""",
    
        ChatTemplate.DEEPSEEK: f"""您是一个有用的助手 <|User|>{prompt}<|Assistant|>"""
    }
    return templates[template]
    

def invoke_with_guardrails(prompt, template=ChatTemplate.DEEPSEEK,
max_tokens=1000, temperature=0.6, top_p=0.9): """ 使用输入和输出防护措施调用Bedrock模型 """ #
应用输入防护措施 input_guardrail = bedrock_runtime.apply_guardrail(
guardrailIdentifier=GUARDRAIL_ID, guardrailVersion=GUARDRAIL_VERSION,
source='INPUT', content=[{"text": {"text": prompt}}] )

    
    
    if input_guardrail['action'] == 'GUARDRAIL_INTERVENED':
        return f"输入被阻止: {input_guardrail['outputs'][0]['text']}"
    
    # 使用所选模板格式化提示
    formatted_prompt = format_prompt(prompt, template)
    
    # 准备模型输入
    request_body = {
        "inputs": formatted_prompt,
        "parameters": {
            "max_new_tokens": max_tokens,
            "top_p": top_p,
            "temperature": temperature
        }
    }
    
    # 调用模型
    response = bedrock_runtime.invoke_model(
        modelId=MODEL_ID,
        body=json.dumps(request_body)
    )
    
    # 解析模型响应
    model_output = json.loads(response['body'].read())['generated_text']
    
    # 应用输出防护措施
    output_guardrail = bedrock_runtime.apply_guardrail(
        guardrailIdentifier=GUARDRAIL_ID,
        guardrailVersion=GUARDRAIL_VERSION,
        source='OUTPUT',
        content=[{"text": {"text": model_output}}]
    )
    
    if output_guardrail['action'] == 'GUARDRAIL_INTERVENED':
        return f"输出被阻止: {output_guardrail['outputs'][0]['text']}"
    
    return model_output
    

# 示例用法

if **name** == "**main** ": prompt = "1+1等于多少?" result =
invoke_with_guardrails(prompt, template=ChatTemplate.DEEPSEEK) print(result)

在SageMaker JumpStart中部署DeepSeek-R1

SageMaker JumpStart是一个机器学习(ML)中心,内置算法和预构建的ML解决方案,您可以通过几次点击进行部署。使用SageMakerJumpStart,您可以根据自己的用例自定义预训练模型,使用您的数据并将其部署到生产中,无论是使用UI还是SDK。

通过SageMaker JumpStart部署DeepSeek-R1模型提供两种方便的方法:使用直观的SageMaker JumpStartUI或通过SageMaker Python SDK编程实现。让我们探索这两种方法,以帮助您选择最适合您需求的方法。

通过SageMaker JumpStart UI部署DeepSeek-R1

完成以下步骤以使用SageMaker JumpStart部署DeepSeek-R1:

  1. 在SageMaker控制台中,在导航窗格中选择Studio
  2. 第一次使用的用户将被提示创建一个域。
  3. 在SageMaker Studio控制台中,选择导航窗格中的JumpStart
    删除)
    模型浏览器显示可用模型及其提供者名称和能力的详细信息。
    删除)
  4. 搜索DeepSeek-R1以查看DeepSeek-R1模型卡。
    每个模型卡都会显示关键信息,包括:
  5. 模型名称
  6. 提供者名称
  7. 任务类别(例如文本生成)
  8. Bedrock Ready 徽章(如适用),指示该模型可以与Amazon Bedrock注册,从而允许您使用Amazon Bedrock API调用模型
  9. 选择模型卡以查看模型详细页面。
    删除)
    模型详细页面包括以下信息:
  10. 模型名称和提供者信息
  11. 部署 按钮以部署模型
  12. 关于笔记本 标签,提供详细信息

关于 标签包含重要细节,例如:

  • 模型描述
  • 许可信息
  • 技术规格
  • 使用指南

在您部署模型之前,建议审查模型详细信息和许可条款,以确认其与您的用例的兼容性。

  1. 选择部署 以继续部署。
    删除)
  2. 对于端点名称 ,使用自动生成的名称或创建一个自定义名称。
  3. 对于实例类型 ,选择实例类型(默认:ml.p5e.48x

Leave a Reply

Required fields are marked *