当前位置: 首页 > news >正文

【RAG】【embeddings42】Amazon SageMaker 嵌入端点集成案例

案例目标

本案例展示如何通过 LlamaIndex 与 Amazon SageMaker 嵌入端点进行交互,实现文本向量化功能。Amazon SageMaker 端点是一种完全托管的资源,支持部署机器学习模型,对新数据进行预测。

通过本案例,您将学习如何:

  • 配置和连接到 Amazon SageMaker 嵌入端点
  • 使用 SageMakerEmbedding 类生成文本嵌入向量
  • 处理单个和批量文本的向量化请求
  • 验证嵌入向量的维度和数值

技术栈与核心依赖

llama-index-embeddings-sagemaker-endpoint Amazon SageMaker AWS SDK (boto3) Python 3.7+

核心组件说明

  • SageMakerEmbedding- LlamaIndex 中用于与 Amazon SageMaker 嵌入端点交互的类
  • SageMaker Endpoint- Amazon 提供的完全托管的机器学习模型部署服务
  • AWS Credentials- 用于访问 AWS 服务的身份验证信息

环境配置

1. 安装依赖

pip install llama-index-embeddings-sagemaker-endpoint
pip install llama-index

2. 准备 SageMaker 嵌入端点

在使用本案例之前,您需要:

  • 在 AWS 控制台中创建一个 SageMaker 嵌入端点
  • 获取端点名称和区域信息
  • 配置适当的 AWS 访问凭证

3. 配置 AWS 凭证

您可以通过以下两种方式配置 AWS 凭证:

方式一:使用 AWS 配置文件

from llama_index.embeddings.sagemaker_endpoint import SageMakerEmbedding

ENDPOINT_NAME = "<-YOUR-ENDPOINT-NAME->"
PROFILE_NAME = "<-YOUR-PROFILE-NAME->"
embed_model = SageMakerEmbedding(
endpoint_name=ENDPOINT_NAME, profile_name=PROFILE_NAME
)

方式二:直接传递凭证参数

from llama_index.embeddings.sagemaker_endpoint import SageMakerEmbedding

ENDPOINT_NAME = "<-YOUR-ENDPOINT-NAME->"
AWS_ACCESS_KEY_ID = "<-YOUR-AWS-ACCESS-KEY-ID->"
AWS_SECRET_ACCESS_KEY = "<-YOUR-AWS-SECRET-ACCESS-KEY->"
AWS_SESSION_TOKEN = "<-YOUR-AWS-SESSION-TOKEN->"
REGION_NAME = "<-YOUR-ENDPOINT-REGION-NAME->"

embed_model = SageMakerEmbedding(
endpoint_name=ENDPOINT_NAME,
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
aws_session_token=AWS_SESSION_TOKEN,
region_name=REGION_NAME,
)

案例实现

1. 导入必要模块

from llama_index.embeddings.sagemaker_endpoint import SageMakerEmbedding

2. 初始化 SageMaker 嵌入模型

# 使用凭证参数初始化
embed_model = SageMakerEmbedding(
endpoint_name=ENDPOINT_NAME,
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
aws_session_token=AWS_SESSION_TOKEN,
region_name=REGION_NAME,
)

注意:请将 ENDPOINT_NAME、AWS_ACCESS_KEY_ID 等占位符替换为您的实际值。

3. 生成单个文本的嵌入

embeddings = embed_model.get_text_embedding(
"An Amazon SageMaker endpoint is a fully managed resource that enables the deployment of machine learning models, specifically LLM (Large Language Models), for making predictions on new data."
)

4. 检查嵌入结果

# 查看嵌入向量的前5个值
embeddings[:5]
# 输出示例: [0.021565623581409454, 0.019147753715515137, -0.056700449436903, -0.022435730323195457, -0.03930153697729111]

5. 生成批量文本的嵌入

embeddings = embed_model.get_text_embedding_batch(
[
"An Amazon SageMaker endpoint is a fully managed resource that enables the deployment of machine learning models",
"Sagemaker is integrated with llamaIndex",
]
)

# 检查结果数量
len(embeddings)
# 输出: 2

案例效果

本案例成功实现了以下功能:

  • 成功连接到 Amazon SageMaker 嵌入端点
  • 生成了高质量的文本嵌入向量
  • 展示了单个和批量文本的向量化处理
  • 验证了嵌入向量的维度和数值范围

输出示例

# 单个文本嵌入向量的前5个值
[0.021565623581409454, 0.019147753715515137, -0.056700449436903, -0.022435730323195457, -0.03930153697729111]

# 批量文本嵌入结果数量
2

案例实现思路

本案例的实现遵循以下思路:

  1. 环境准备:安装必要的依赖库,配置 AWS 凭证
  2. 模型初始化:使用 SageMakerEmbedding 类初始化嵌入模型,指定端点名称和凭证
  3. 单文本处理:使用 get_text_embedding 方法对单个文本进行向量化
  4. 批量文本处理:使用 get_text_embedding_batch 方法对多个文本进行批量向量化
  5. 结果验证:检查嵌入向量的维度和数值,确保结果正确

关键点

  • Amazon SageMaker 提供完全托管的机器学习模型部署服务,简化了模型部署和扩展
  • 支持两种凭证配置方式:AWS 配置文件和直接传递凭证参数
  • API 设计简洁,与 LlamaIndex 框架无缝集成
  • 支持单个和批量文本处理,提高处理效率

扩展建议

基于本案例,您可以进行以下扩展:

  • 向量存储:将生成的嵌入向量存储到向量数据库(如 Amazon OpenSearch Service)中,构建语义搜索系统
  • 相似度计算:使用生成的向量计算文本之间的相似度,实现文档聚类或推荐系统
  • 异步处理:对于大规模文本处理,可以使用异步方法提高处理效率
  • 缓存机制:实现嵌入向量缓存,避免重复计算相同文本的向量
  • 模型优化:根据特定需求,使用 SageMaker 模型优化功能(如模型量化、蒸馏)提高性能
  • 端点扩展:使用 SageMaker 多模型端点功能,在一个端点部署多个嵌入模型
  • 监控与日志:集成 Amazon CloudWatch 监控端点性能,使用 SageMaker 模型监控跟踪模型质量

总结

本案例成功展示了如何使用 LlamaIndex 集成 Amazon SageMaker 嵌入端点,实现文本向量化功能。Amazon SageMaker 端点作为一种完全托管的资源,使机器学习模型的部署和扩展变得更加简单。

通过本案例,您学会了:

  • 如何配置和连接到 Amazon SageMaker 嵌入端点
  • 如何使用 SageMakerEmbedding 类初始化嵌入模型
  • 如何对单个和批量文本进行向量化处理
  • 如何验证嵌入向量的维度和数值

这些技能为构建更复杂的 AI 应用程序(如语义搜索、问答系统、文档检索等)奠定了基础,同时充分利用了 Amazon SageMaker 的托管服务优势。

http://www.cnnetsun.cn/news/1641960.html

相关文章:

  • Stable Diffusion 3.5 FP8保姆级部署教程:5分钟搞定,12G显卡就能跑
  • 动态路由协议与 RIP 协议核心总结
  • Qwen3.5-9B多模态能力解析:图文输入联合建模+VL变体兼容性说明
  • ChatGLM3-6B-128K视频处理:脚本生成与内容分析
  • DLSS Swapper终极指南:5分钟掌握游戏性能优化神器
  • LeaguePrank终极指南:免费打造个性化英雄联盟界面体验
  • AI赋能图像升级:Real-ESRGAN-GUI工具让模糊影像重获新生
  • Blender 3MF插件深度解析:从CAD设计到3D打印的完整技术实现
  • Ostrakon-VL终端实战教程:如何用Python调用API获取结构化货架数据
  • 基于卷积神经网络原理的Prompt设计:提升Phi-4-mini-reasoning视觉推理能力
  • SpikingJelly实战:梯度替代函数的选择与性能对比
  • 一个防止GPT“降智”的简单方法
  • Qwen3-14B私有AI平台搭建:WebUI界面定制与API接口二次开发
  • Python从入门到精通(第15章):装饰器原理与实战
  • intv_ai_mk11快速上手:3分钟打开网页完成首次中文自我介绍生成
  • CosyVoice2-0.5B入门必看:3秒极速复刻+流式推理+自然语言指令实操手册
  • Phi-3-mini-4k-instruct-gguf入门必看:轻量模型在边缘设备部署的可行性验证
  • 软件测试之分层测试详解
  • Phi-3 Forest Lab实战案例:用森林终端生成符合GB/T 1.1标准的国家标准草案
  • Graphormer基础教程:纯Transformer架构替代GNN的原理与实践
  • 告别手动记录:清音听真语音识别系统快速部署,中英文混合转录一键搞定
  • Qwen3.5-9B开源大模型部署:低成本GPU服务器适配与性能调优
  • Qwen3-8B模型效果实测:逻辑推理、长文本处理能力展示
  • Qwen2.5-14B-Instruct开源大模型应用:像素剧本圣殿实现剧本动作/对白/旁白自动分段
  • 人工智能应用快速原型开发:基于PyTorch 2.8和Gradio构建交互式Demo
  • 新手入门万象视界灵坛:像素风界面下的CLIP图像分析全流程
  • OpenClaw多模态研究助手:Kimi-VL-A3B-Thinking文献图表分析自动化
  • 本地部署开源元搜索引擎 SearXNG 并实现外部访问
  • 文脉定序系统Java八股文学习助手:知识点智能关联与提问排序
  • AI净界RMBG-1.4:一个命令启动HTTP服务,开启你的高效抠图之旅