用最专业的眼光看待互联网
立即咨询作者:Igor Alekseev 和 Babu Srinivasan,2023 年 11 月 17 日于 高级(300) Amazon SageMaker Amazon SageMaker JumpStart 人工智能
生成式 AI 模型有可能彻底改变企业的运营模式,但公司需谨慎考虑如何利用其潜力,同时克服诸如数据保护和确保 AI 生成内容质量等挑战。
增强检索生成RAG 框架通过外部数据丰富提示,来源于文档库、数据库或 API,使得基础模型在特定领域任务中更为有效。本文展示了 RAG 模型的能力,并强调了 MongoDB Atlas 及其向量搜索功能的变革潜力。
MongoDB Atlas 是一套集成的数据服务,旨在加速并简化数据驱动应用的开发。MongoDB Atlas 向量搜索与操作性数据存储无缝集成,消除了对单独数据库的需求。这种集成使得通过 MongoDB Atlas 向量搜索 实现强大的语义搜索成为可能,这是一种快速构建语义搜索和 AI 驱动应用的方法。
Amazon SageMaker 使企业能够构建、训练和部署机器学习 (ML) 模型。 Amazon SageMaker JumpStart 提供预训练模型和数据,帮助快速入门机器学习。你可以通过 Amazon SageMaker Studio 的 SageMaker JumpStart 登录页面查看、定制和部署这些预训练模型与数据,仅需几次点击。
Amazon Lex 是一种对话接口,帮助企业创建能够进行自然、高度仿真的交互的聊天机器人和语音助手。通过将 Amazon Lex 与生成式 AI 整合,企业可以创建一个全面的生态系统,让用户输入无缝转化为连贯且与上下文相关的响应。
下图展示了解决方案架构。
接下来,我们将逐步讲解实施此解决方案及其组件的步骤。
要创建免费版 MongoDB Atlas 集群,请按照 创建集群 的说明进行操作。设置数据库 访问权限 和网络 访问权限。
你可以在 SageMaker JumpStart 模型、笔记本、解决方案 页面选择嵌入模型ALL MiniLM L6 v2。
选择 部署 以部署该模型。
确认模型成功部署,并检查端点是否已创建。
向量嵌入是将文本或图像转换为向量表示的过程。以下代码可与 SageMaker JumpStart 一起生成向量嵌入,并将创建的向量更新到每个文档中:
pythonpayload = {textinputs [document[fieldnametobevectorized]]}queryresponse = queryendpointwithjsonpayload(jsondumps(payload)encode(utf8))embeddings = parseresponsemultipletexts(queryresponse)
update = {set {vectorfieldname embeddings[0]}}collectionupdateone(query update)
上述代码展示了如何在集合中更新单个对象。要更新所有对象,请按照 说明 进行。
MongoDB Atlas 向量搜索 是一个新功能,允许您在 MongoDB 中存储和搜索向量数据。向量数据是一种在高维空间中表示点的数据类型。这种类型的数据通常用于机器学习和人工智能应用中。MongoDB Atlas 向量搜索使用一种称为 k最近邻 (kNN) 的技术来搜索相似的向量。kNN通过查找与给定向量最相似的 k 个向量来工作。最相似的向量是那些在欧几里德距离上与给定向量距离最近的向量。
将向量数据存储在操作性数据旁边可以提升性能,减少在不同存储系统之间移动数据的必要性。这对需要实时访问向量数据的应用程序尤为有益。
下一步是为在前一步骤中创建的向量字段创建一个 MongoDB 向量搜索索引。MongoDB 使用 knnVector 类型来索引向量嵌入。向量字段应表示为数字数组仅 BSON int32、int64 或 double 数据类型。
有关 knnVector 类型限制的更多信息,请参阅 查看 knnVector 类型限制。

以下代码是一个示例索引定义:
json{ mappings { dynamic true fields { egVector { dimensions 384 similarity euclidean type knnVector } } }}
请注意,维度必须与您的嵌入模型维度匹配。
你可以使用 向量搜索聚合管道 查询向量数据存储。该管道使用向量搜索索引进行语义搜索。
以下代码是一个示例搜索定义:
json{ search { index ltindex namegt // 可选,默认为 default knnBeta { vector [ltarrayofnumbersgt] path ltfieldtosearchgt filter {ltfilterspecificationgt} k ltnumbergt score {ltoptionsgt} } }}
SageMaker JumpStart 基础模型 是预训练的大型语言模型LLM,用于解决各种自然语言处理NLP任务,如文本摘要、问答和自然语言推理。这些模型有多种尺寸和配置可供选择。在此解决方案中,我们使用 Hugging Face 的 FLANT5XL 模型。
在 SageMaker JumpStart 中搜索 FLANT5XL 模型。
选择 部署 以设置 FLANT5XL 模型。
检查模型是否成功部署并且端点处于活动状态。
要创建 Amazon Lex 机器人,请完成以下步骤:
在 Amazon Lex 控制台中选择 创建机器人。输入 机器人名称。在 运行角色 中,选择 创建带有基本Amazon Lex 权限的角色。
指定语言设置,然后选择 完成。
在 NewIntent 界面中添加示例发言,并选择 保存意图。
转到默认创建的 FallbackIntent,在 实现 部分切换 活动。
选择 构建,并在构建成功后选择 测试。
蘑菇加速器永久破解版测试前,选择设置图标。
指定将与 MongoDB Atlas 和 LLM 交互的 AWS Lambda 函数。要创建 Lambda 函数,请遵循 这些步骤。
现在你可以与 LLM 进行互动。
要清理资源,请完成以下步骤:
删除 Amazon Lex 机器人。删除 Lambda 函数。删除 LLM SageMaker 端点。删除嵌入模型 SageMaker 端点。删除 MongoDB Atlas 集群。在本文中,我们展示了如何创建一个简单的机器人,该机器人使用 MongoDB Atlas 向量搜索并与 SageMaker JumpStart 的模型整合。这个机器人使你能够快速构建与不同 LLM 互动的原型,结合来自 MongoDB Atlas 的上下文。
如往常一样,我们欢迎 AWS 的反馈。请在评论区留下你的反馈和问题。
Igor Alekseev 是 AWS 数据与分析领域的高级合作伙伴解决方案架构师。Igor在此角色中与战略合作伙伴合作,帮助他们构建复杂的、针对 AWS 的优化架构。在加入 AWS 之前,作为数据/解决方案架构师,他实施了多个大数据领域的项目,包括几个 Hadoop 生态系统的数据湖。作为数据工程师,他参与了将 AI/ML 应用于欺诈检测和办公自动化的工作。
Babu Srinivasan 是 MongoDB 的高级合作伙伴解决方案架构师。在他当前的角色中,他与 AWS 合作构建 AWS 和 MongoDB 解决方案的技术集成和参考架构。他在数据库和云技术方面拥有超过二十年的经验,热衷于为客户提供技术解决方案,与多个全球系统集成商GSI跨多个地区合作。
加载评论