亚马逊云科技

广告

安信SSL证书

广告

Amazon SageMaker AI结合DeepSeek构建AI Agents教程

美国云服务器推荐

据了解,目前10%的企业正在使用AI Agents,同时有82%的企业计划在未来三年内采用这项技术。企业可以利用DeepSeek-R1推理模型构建Agent应用程序,执行复杂任务,并具备高级决策能力。本文主要介绍企业如何利用Amazon SageMaker AI结合CrewAI这一流行的Agent框架以及DeepSeek-R1等开源模型,构建AI Agents。

一、AI Agents是什么

AI Agents即人工智能代理系统,是一种由先进的大语言模型(LLMs)驱动的智能系统,能够自主操作、从环境中学习,并做出基于情境的决策。与传统软件系统相比,AI Agents在处理复杂、动态和领域特定的任务时展现出了更高的智能水平和灵活性。

传统软件系统通常依赖于预设的规则和结构化数据来执行任务,而AI Agents则通过集成推理、记忆、认知技能和工具等模块化组件,具备了执行复杂任务和适应不断变化环境的能力。因此AI Agents可以在没有明确指令的情况下,自主地进行问题解决和决策制定。

在应用层面,AI Agents能够提供更加个性化和高效的服务。例如在客户服务领域,AI Agents不仅能够理解并回应客户的咨询,还能够通过自然语言处理技术,提供更加精准和个性化的解决方案。此外AI Agents还能够自动化处理报告生成、邮件处理和软件编码等重复性工作,从而显著提高工作效率。

二、Amazon SageMaker AI是什么

Amazon SageMaker是亚马逊网络服务(AWS)提供的一项全托管服务,旨在简化和加速机器学习(ML)模型的构建、训练和部署过程。SageMaker为开发者和数据科学家提供了一套全面的工具,以便于他们在云端高效地进行机器学习工作。

SageMaker的核心优势在于其集成的特性,它涵盖了机器学习的整个生命周期,包括数据的准备、算法的选择、模型的训练、调优、部署以及监控。用户可以利用SageMake提供的内置算法和框架,或者带入自己的算法和模型。此外,SageMaker还支持自动模型调优,即通过自动运行多个训练任务来找到最优的模型参数。

Amazon SageMaker AI简化了各技能水平的生成式AI模型开发者使用基础模型(FMs)的过程。

1、Amazon SageMaker Canvas

让数据科学家能够在低代码或无代码的环境中,将自有数据集与基础模型无缝结合,创建应用程序和架构模式,如聊天机器人和检索增强生成(RAG)系统。

2、Amazon SageMaker JumpStart

提供来自Hugging Face、Meta和Stability AI等供应商的多种开源和专有基础模型。用户可以通过直观的用户界面(UI)来部署或微调模型,为不同技能水平的用户提供灵活性。

3、Amazon SageMaker AI功能

包括笔记本、Amazon SageMaker Training、推理、Amazon SageMaker MLOps以及合作伙伴AI应用程序等,使得高级模型开发者能够通过LoRA、全量微调或从头开始训练的方式调整基础模型。这些服务支持从单一GPU到HyperPods(GPU集群)的训练,并包括内置的FMOps工具,用于跟踪、调试和部署模型。

在模型训练方面,SageMaker提供了强大的计算资源,用户可以根据需要选择适当的实例类型和数量,以应对不同规模的训练任务。训练完成后,SageMaker可以轻松地将模型部署到生产环境中,无论是实时预测还是批量转换,都能得到支持。

通过Amazon SageMaker AI,可以自由选择框架来构建基于生成式AI的Agent工作流。以下是使用Amazon SageMaker AI进行LLM或基础模型微调和托管的一些主要优势。

  • 轻松部署:Amazon SageMaker AI提供对Amazon SageMaker JumpStart的访问,这是一个精选模型库,可以通过几次点击或API调用无缝部署开放权重的模型。对于Hugging Face Hub上的模型,Amazon SageMaker AI还提供了基于流行开源托管框架(例如vLLM、NVIDIA Triton和Hugging Face Text Generation Inference(TGI))的预优化容器。只需指定模型ID,即可快速部署模型;
  • 基于实例的定价:Amazon SageMaker AI的计费模式是按实例小时数计费,而非按tokens使用量计费。这种定价方式使能够更精确地预测和管理生成式AI推理成本,并根据请求负载灵活扩展资源;
  • 量化部署:Amazon SageMaker AI使能够在部署前使用先进策略(如AWQ、GPTQ、float16、int8或int4等量化技术)对模型进行优化。这种灵活性让能够高效地将大模型(例如32亿参数模型)部署到较小的实例类型(如ml.g5.2xlarge,拥有24GB GPU内存),在保持性能的同时显著降低资源需求;
  • 推理负载均衡与优化路由:Amazon SageMaker端点支持多种策略的负载均衡和优化路由,增强用户在不同应用场景下的灵活性和适应性;
  • Amazon SageMaker微调方案:Amazon SageMaker提供即用型方案,用于快速训练和微调公开可用的基础模型,如Meta的Llama 3、Mistral和Mixtral。这些方案使用Amazon SageMaker HyperPod(一种提供弹性、自我修复集群的Amazon SageMaker AI服务),实现在GPU集群上进行高效且可靠的训练,确保可扩展和稳健的性能。

目前Amazon SageMaker为新用户提供长达250个小时的免费试用服务:

  • 前两个月每月 250 个小时的 t2.medium 或 t3.medium 笔记本使用时间;
  • 前两个月每月 50 个小时的 m4.xlarge 或 m5.xlarge 训练;
  • 前两个月每月 125 个小时的 m4.xlarge 或 m5.xlarge 托管时间。

Amazon SageMaker

>>>点击访问AWS官网免费试用>>>

三、解决方案概述

CrewAI提供了一个强大的框架,用于开发与亚马逊云科技,尤其是Amazon SageMaker AI集成的多Agents系统。CrewAI基于角色的Agent架构和全面的性能监控功能与Amazon CloudWatch无缝协作。

该框架在工作流编排方面表现卓越,并遵循与亚马逊云科技最佳实践相一致的企业级安全标准,因此它是在亚马逊云科技基础设施上实施复杂Agent系统的有效解决方案。

本文将向展示如何利用CrewAI构建多Agents研究工作流。该工作流创建了两个Agents:一个负责在互联网上进行主题研究,另一个做类似于编辑的工作,将研究内容整理成易读的格式。此外,本文还将指导如何将一个或多个LLM整合到这个结构化的工作流中,使用自动化工具来执行相关操作,并在Amazon SageMaker AI上部署这些工作流程,实现生产就绪部署。

下图展示了解决方案架构:

Amazon SageMaker AI上部署工作流程

四、准备条件

为了跟随本文中的代码示例,需要满足以下准备条件。

1、集成开发环境,包含以下内容:

(1)(可选)访问Amazon SageMaker Studio和JupyterLab IDE:本文将使用Python运行时环境来构建Agent工作流并部署大语言模型。建议使用配备Python 3.9、3.10或3.11运行时的JupyterLab IDE。也可以为单个用户配置Amazon SageMaker Studio。

(2)本地IDE:也可以在本地IDE(例如PyCharm或VSCode)中进行操作,前提是已为亚马逊云科技VPC连接配置了Python运行时(以便在Amazon SageMaker AI上部署模型)。

2、部署模型权限:确保用户执行角色拥有必要的权限,以便将模型部署到Amazon SageMaker实时端点进行推理。

3、访问Hugging Face Hub:部署环境必须能够访问Hugging Face Hub上的deepseek-ai/DeepSeek-R1-Distill-Llama-8B模型权重。

4、访问代码:本文中使用的代码可以在GitHub代码库中找到。

五、在Amazon SageMaker AI上简化LLM托管

在使用LLM支持的CrewAI编排Agent工作流之前,首要步骤是在Amazon SageMaker上通过实时推理端点来托管并查询LLM。在Amazon SageMaker AI上托管LLM主要有两种方法:

  • 通过Amazon SageMaker JumpStart部署;
  • 通过Hugging Face Hub部署。

1、通过Amazon SageMaker JumpStart部署DeepSeek

Amazon SageMaker JumpStart提供了多种前沿基础模型(FMs)的访问,适用于广泛的任务,包括内容创作、代码生成、问答系统、文案撰写、摘要编写、分类、信息检索等。它简化了公开可用基础模型的部署和维护工作,使能够访问、定制并将其无缝集成到机器学习工作流中。此外Amazon SageMaker JumpStart还提供了解决方案模板,为常见用例预配置基础设施,并提供可执行的示例笔记本,以简化Amazon SageMaker AI的机器学习开发。

以下截图展示了Amazon SageMaker JumpStart中可用的一些模型示例:

Amazon SageMaker JumpStart中可用的一些模型示例

开始使用之前,请完成以下步骤:

(1)使用pip安装最新版本的sagemaker-python-sdk。

(2)在Jupyter单元格或Amazon SageMaker Studio终端中运行以下命令。

pip install -U sagemaker

(3)列出Hugging Face或Meta JumpStart hub下所有可用的LLM。以下代码展示了如何使用Amazon SageMaker Python SDK以编程方式执行此操作。

from sagemaker.jumpstart.filters import (And, Or)
from sagemaker.jumpstart.notebook_utils import list_jumpstart_models

# generate a conditional filter to only select LLMs from HF or Meta
filter_value = Or(
And(“task == llm”, “framework == huggingface”),
“framework == meta”, “framework == deekseek”
)

# Retrieve all available JumpStart models
all_models = list_jumpstart_models(filter=filter_value)

例如,从Amazon SageMaker JumpStart直接部署deepseek-llm-r1模型只需几行代码。

from sagemaker.jumpstart.model import JumpStartModel

model_id = ” deepseek-llm-r1″
model_version = “*”

建议在亚马逊云科技VPC内和无出口的私有子网中部署Amazon SageMaker端点,以确保模型仅在VPC内部可访问,从而增强安全性。

此外,建议集成Amazon Bedrock Guardrails,以增强对有害内容的防护。

2、通过Hugging Face Hub部署DeepSeek

此外可以直接从Hugging Face Hub或Hugging Face Open LLM排行榜选择模型部署到Amazon SageMaker端点。Hugging Face的LLM可以使用多种支持的框架在Amazon SageMaker上托管,例如NVIDIA Triton、vLLM和Hugging Face TGI。

本文使用基于TGI容器的DeepSeek-R1-Distill-Llama-70B SageMaker端点进行Agent AI推理。通过亚马逊云科技优化的TGI容器从Hugging Face Hub部署该模型,该容器为LLM提供了增强的性能,特别针对文本生成任务进行了优化,能自动为给定的硬件配置选择最佳性能参数。

要从Hugging Face Hub进行部署,请参考GitHub代码库或以下代码示例。

import json
import sagemaker
import boto3
from sagemaker.huggingface import HuggingFaceModel, get_huggingface_llm_image_uri
import os
from datetime import datetime

# Model configuration
hub = {‘HF_MODEL_ID’:’deepseek-ai/DeepSeek-R1-Distill-Llama-70B’, #Llama-3.3-70B-Instruct
‘SM_NUM_GPUS’: json.dumps(number_of_gpu),
‘HF_TOKEN’: HUGGING_FACE_HUB_TOKEN,
‘SAGEMAKER_CONTAINER_LOG_LEVEL’: ’20’, # Set to INFO level
‘PYTORCH_CUDA_ALLOC_CONF’: ‘expandable_segments:True’ # configure CUDA memory to use expandable memory segments
}
# Create and deploy model
huggingface_model = HuggingFaceModel(image_uri=get_huggingface_llm_image_uri(“huggingface”,
version=”2.3.1″),
env=hub,
role=role,sagemaker_session=sagemaker_session)
predictor = huggingface_model.deploy(
initial_instance_count=1,
instance_type=”ml.p4d.24xlarge”
endpoint_name=custom_endpoint_name,
container_startup_health_check_timeout=900)

新的DeepSeek-R1-Distill-Llama-70B端点应该会在10分钟内变为InService。如果希望将模型从DeepSeek更改为Hub中的其他模型,只需替换以下参数或参考以下GitHub仓库中的DeepSeek部署示例即可。


“HF_MODEL_ID”: “deepseek-ai/…”, # replace with any HF hub models
# “HF_TOKEN”: “hf_…” # add your token id for gated models

对于直接从Hub部署的开放权重模型,建议将Amazon SageMaker端点部署在亚马逊云科技VPC内,无出口的私有子网中,以确保模型仅在亚马逊云科技VPC内可访问,从而实现安全的部署。

六、使用CrewAI构建简单Agent

CrewAI提供了使用多个LLM提供商(包括Amazon SageMaker AI和Amazon Bedrock)的大语言模型创建多Agents以及复杂Agent编排的功能。接下来将创建一个简单的块计数Agent作为示例。

创建块计数Agent

以下代码使用CrewAI设置了一个简单的块计数工作流,包含两个主要组件:

(1)Agent创建(blocks_counter_agent):Agent配置了特定的角色、目标和能力,配备了一个名为BlocksCounterTool的工具。

(2)任务定义(count_task):这是希望该Agent执行的任务,包括一个用于计算每种颜色方块数量的模板,其中{color}将被替换为实际的方块颜色,该任务被分配给blocks_counter_agent。

from crewai import Agent, Task
from pydantic import BaseModel, Field

# 1. Configure agent
blocks_counter_agent = Agent(
role=”Blocks Inventory Manager”,
goal=”Maintain accurate block counts”,
tools=[BlocksCounterTool],
verbose=True
)

# 2. Create counting task
count_task = Task(
description=”Count {color} play blocks in storage”,
expected_output=”Exact inventory count for specified color”,
agent=blocks_counter_agent
)

正如上述代码所示,每个Agent都有始于两个基本组件:

  • Agent定义:确立了Agent的核心特征,包括其角色、目标、背景故事、可用工具、LLM模型端点等;
  • 任务定义:明确了Agent需要完成的任务,包括工作内容的详细描述、预期输出以及执行过程中可用的工具。

这种结构化的方法确保了Agent既具有明确的身份和目标(通过Agent定义),又有明确的任务范围(通过任务定义),使Agent能够在其指定的责任范围内有效运作。

七、Agent AI工具

工具是赋予AI Agents执行特定操作的特殊功能,比如搜索互联网或分析数据,可将它们视为智能手机上的应用程序,每个工具都有其特定的用途,并能扩展Agent功能。在示例中,BlocksCounterTool帮助Agent按颜色统计方块的数量。

工具至关重要,因为它们让Agent能够执行实际任务,而不仅仅是思考这些任务。如果没有工具,Agent就像只能说话的智能音箱,虽然可以处理信息,但无法执行实际操作。通过添加工具,可将Agent从简单的聊天程序转变为能够完成实际任务的实用助手。

1、CrewAI提供的开箱即用工具

CrewAI提供了一系列开箱即用的工具,供与Agent和任务一起使用,下表列出了一些可用的工具。

CrewAI提供的开箱即用工具

2、使用CrewAI构建自定义工具

可以通过两种方式在CrewAI中构建自定义工具:通过子类化BaseTool或使用@tool装饰器。下面将通过子类化BaseTool来创建之前使用的BlocksCounterTool。

from crewai.tools import BaseTool

class BlocksCounterTool(BaseTool):
name = “blocks_counter”
description = “Simple tool to count play blocks”

def _run(self, color: str) -> str:
return f”There are 10 {color} play blocks available”

八、使用CrewAI、DeepSeek-R1和Amazon SageMaker AI构建多Agents工作流

多Agents人工智能系统是一种强大的复杂问题解决方案,其中专业的AI Agents在统一协调下协同工作。通过结合CrewAI的工作流编排能力与基于Amazon SageMaker AI的LLM,开发者能够构建精密的系统,让多个Agents能够高效协作,共同实现特定目标。

比如构建一个研究Agent和写作Agent,它们将协同合作生成一份关于某主题的PDF文档,本文将使用DeepSeek-R1 Distilled Llama 3.3 70B模型,作为Amazon SageMaker端点来进行LLM推理。

1、定义DeepSeek SageMaker大语言模型(使用LLM基础模型)

以下代码通过构建创建自定义推理工具将Amazon SageMaker托管的LLM与CrewAI集成。该工具使用系统指令格式化提示信息,以获取基于事实的响应,使用亚马逊云科技的核心库Boto3来调用Amazon SageMaker端点,通过分离推理过程(位于</think>标记之前)与最终答案来处理响应,这让CrewAI Agents能够使用已部署的模型,同时保持结构化的输出模式。

定义DeepSeek SageMaker大语言模型

2、设置DeepSeek-R1 Distilled端点名称

将端点名称设置为在Hugging Face Hub部署DeepSeek时定义的名称。

deepseek_endpoint = “deepseek-r1-dist-v3-llama70b-2025-01-22”

3、创建DeepSeek推理工具

如同之前创建的BlocksCounterTool,接下来创建一个利用DeepSeek端点供Agents使用的工具。在此使用相同的BaseTool子类,但将其封装在tools文件夹中sage_tools.py中的CustomTool类实现里。

from crewai import Crew, Agent, Task, Process

# Create the Tool for LLaMA inference
deepseek_tool = CustomTool(
name=”deepseek_llama_3.3_70B”,
func=lambda inputs: deepseek_llama_inference(
prompt=inputs,
endpoint_name=deepseek_endpoint
),
description=”A tool to generate text using the DeepSeek LLaMA model deployed on SageMaker.”
)

4、创建研究Agent

与之前定义的简单方块Agent类似,在此使用相同的模板来定义研究Agent。不同之处在于,赋予该Agent更多能力。本文将基于Amazon SageMaker AI的DeepSeek-R1模型作为LLM的端点接入。

通过将Amazon SageMaker的可扩展基础架构与DeepSeek-R1的高级推理能力相结合,有助于研究Agent在信息处理时进行批判性思考。

该Agent利用Amazon SageMaker托管的LLM来分析研究数据中的模式,评估源数据的可信度,并从多个输入中综合提取洞察。通过使用deepseek_tool,研究Agent能够根据中间发现动态调整研究策略,通过迭代提问验证假设,并在收集复杂信息的过程中保持对上下文的感知能力。

# Research Agent

research_agent = Agent(
role=”Research Bot”,
goal=”Scan sources, extract relevant information, and compile a research summary.”,
backstory=”An AI agent skilled in finding relevant information from a variety of sources.”,
tools=[deepseek_tool],
allow_delegation=True,
llm=DeepSeekSageMakerLLM(endpoint=deepseek_endpoint),
verbose=False
)

5、创建写作Agent

写作Agent被配置为专门的内容编辑器,负责接收研究数据并将其转化为精炼的内容。写作Agent作为工作流的一部分,接收研究Agent提供的研究资料,并充当编辑角色,将内容格式化为易于阅读的形式。该Agent主要用于写作和格式化工作,与研究Agent不同,它不会将任务委派给其他Agent。

writer_agent = Agent(
role=”Writer Bot”,
goal=”Receive research summaries and transform them into structured content.”,
backstory=”A talented writer bot capable of producing high-quality, structured content based on research.”,
tools=[deepseek_tool],
allow_delegation=False,
llm=DeepSeekSageMakerLLM(endpoint=deepseek_endpoint),
verbose=False
)

6、为Agents定义任务

在CrewAI中,任务定义了Agent需要执行的具体操作。在本例中有两个任务:一个是处理查询并收集信息的研究任务,另一个是将研究数据转化为精炼内容的写作任务。

每个任务都包括明确的工作内容描述、预期的输出格式,并指定执行工作的Agent,这种结构化的方法确保了Agents具有明确界定的责任和清晰的交付成果。

这两个任务共同构成了一个工作流:研究Agent在互联网上进行主题研究,写作Agent将这些研究成果格式化为可读的内容。这些任务与DeepSeek工具集成,利用先进的语言处理能力,确保在Amazon SageMaker AI上实现生产级部署。

research_task = Task(
description=(
“Your task is to conduct research based on the following query: {prompt}.\n”
),
expected_output=”A comprehensive research summary based on the provided query.”,
agent=research_agent,
tools=[deepseek_tool]
)

writing_task = Task(
description=(
“Your task is to create structured content based on the research provided.\n””),
expected_output=”A well-structured article based on the research summary.”,
agent=research_agent,
tools=[deepseek_tool]
)

7、在CrewAI中定义团队

CrewAI中的团队代表一组协作的Agents,共同完成一系列任务。每个团队都定义了任务执行策略、Agent协作方式以及整体工作流。在本例中,顺序流程确保了任务按照线性顺序依次执行。

将这个团队命名为scribble_bots。

# Define the Crew for Sequential Workflow #

scribble_bots = Crew( agents=[research_agent, writer_agent],
tasks=[research_task, writing_task],
process=Process.sequential # Ensure tasks execute in sequence)

8、使用团队执行任务

现在已经部署了端点,创建了Agents,并定义了团队。继续使用团队来完成任务,需要使用以下提示。

result = scribble_bots.kickoff(inputs={“prompt”: “What is DeepSeek?”})

结果如下:

**DeepSeek: Pioneering AI Solutions for a Smarter Tomorrow**

In the rapidly evolving landscape of artificial intelligence,
DeepSeek stands out as a beacon of innovation and practical application.
As an AI company, DeepSeek is dedicated to advancing the field through cutting-edge research and real-world applications,
making AI accessible and beneficial across various industries.

**Focus on AI Research and Development**

………………….. ………………….. ………………….. …………………..

九、清理

完成以下步骤以清理资源。

1、删除GPU DeepSeek-R1端点。

import boto3

# Create a low-level SageMaker service client.
sagemaker_client = boto3.client(‘sagemaker’, region_name=<region>)

# Delete endpoint
sagemaker_client.delete_endpoint(EndpointName=endpoint_name)

2、如果正在使用Amazon SageMaker Studio JupyterLab笔记本,请关闭JupyterLab笔记本实例。

相关推荐:

Amazon EC2部署DeepSeek-R1蒸馏模型教程

Amazon EKS上部署DeepSeek-R1模型教程

SGLang部署DeepSeek教程

DigitalOcean GPU Droplets部署DeepSeek AI模型教程

Hostinger VPS运行DeepSeek使用指南

(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

主机侦探企业微信

微信扫码加好友进群

主机优惠码及时掌握

主机侦探QQ群

QQ群号:938255063

主机优惠发布与交流

温馨提示:

1、本站部分图片来源于互联网,如有侵权请联系删除。邮箱:2942802716#qq.com(#改为@)

2、本文评论没有专人回复,如果您有问题请到美国主机侦探论坛提问!

3、美国主机侦探免费为您提供美国主机购买咨询。

RAKsmart美国服务器
返回顶部