尽管法学硕士在各个行业的采用似乎势不可挡,但它们是推动新人工智能浪潮的更广泛技术生态系统的组成部分之一。 许多对话式 AI 用例需要 Llama 2、Flan T5 和 Bloom 等法学硕士来响应用户查询。 这些模型依靠参数知识来回答问题。 模型在训练期间学习这些知识并将其编码到模型参数中。 为了更新这些知识,我们必须重新培训LLM,这需要花费大量的时间和金钱。
幸运的是,我们还可以利用源知识来为我们的法学硕士提供信息。 源知识是通过输入提示输入 LLM 的信息。 提供源知识的一种流行方法是检索增强生成(RAG)。 使用 RAG,我们从外部数据源检索相关信息并将该信息输入 LLM。
在这篇博文中,我们将探讨如何使用 Amazon Sagemaker JumpStart 部署 Llama-2 等 LLM,并使用 Pinecone 矢量数据库通过检索增强生成 (RAG) 使我们的 LLM 保持最新的相关信息,以防止 AI 幻觉。
Amazon SageMaker 中的检索增强生成 (RAG)
Pinecone 将处理 RAG 的检索组件,但您需要两个更关键的组件:运行 LLM 推理的地方和运行嵌入模型的地方。
Amazon SageMaker Studio 是一个集成开发环境 (IDE),提供基于 Web 的单一可视化界面,您可以在其中访问专用工具来执行所有机器学习 (ML) 开发。 它提供了 SageMaker JumpStart,这是一个模型中心,用户可以在自己的 SageMaker 帐户中查找、预览和启动特定模型。 它为各种问题类型(包括基础模型)提供预训练的、公开可用的专有模型。
Amazon SageMaker Studio 为开发支持 RAG 的 LLM 管道提供了理想的环境。 首先,使用 AWS 控制台,转到 Amazon SageMaker 并创建 SageMaker Studio 域并打开 Jupyter Studio 笔记本。
先决条件
完成以下先决条件步骤:
- 设置 Amazon SageMaker Studio。
- 加入 Amazon SageMaker 域。
- 注册免费的松果矢量数据库。
- 必备库:SageMaker Python SDK、Pinecone 客户端
解决方案演练
使用 SageMaker Studio 笔记本,我们首先需要安装必备库:
部署法学硕士
在这篇文章中,我们讨论了部署法学硕士的两种方法。 第一个是通过 HuggingFaceModel
目的。 直接从 Hugging Face 模型中心部署 LLM(和嵌入模型)时,您可以使用此功能。
例如,您可以为以下内容创建可部署的配置 谷歌/flan-t5-xl 模型如下面的屏幕截图所示:
直接从 Hugging Face 部署模型时,初始化 my_model_configuration
具有以下内容:
- An
env
配置告诉我们要使用哪个模型以及用于什么任务。 - 我们的 SageMaker 执行
role
授予我们部署模型的权限。 - An
image_uri
是专门用于从 Hugging Face 部署 LLM 的图像配置。
或者,SageMaker 有一组直接与更简单的模型兼容的模型 JumpStartModel
目的。 该模型支持许多流行的 LLM,例如 Llama 2,可以按照以下屏幕截图所示进行初始化:
对于两个版本 my_model
,按以下屏幕截图所示部署它们:
通过我们初始化的 LLM 端点,您可以开始查询。 我们的查询格式可能有所不同(特别是会话式和非会话式法学硕士之间),但过程通常是相同的。 对于拥抱脸模型,请执行以下操作:
您可以在以下位置找到解决方案 GitHub存储库.
我们在这里收到的生成答案没有多大意义——这是一种幻觉。
为法学硕士提供额外的背景
Llama 2 试图仅根据内部参数知识来回答我们的问题。 显然,模型参数不存储我们可以在 SageMaker 中进行托管点训练的实例的知识。
要正确回答这个问题,我们必须使用源知识。 也就是说,我们通过提示向 LLM 提供附加信息。 让我们直接添加该信息作为模型的附加上下文。
我们现在看到了问题的正确答案; 那很简单! 然而,用户不太可能将上下文插入到他们的提示中,他们已经知道问题的答案。
无需手动插入单个上下文,而是从更广泛的信息数据库中自动识别相关信息。 为此,您将需要检索增强生成。
检索增强生成
通过检索增强生成,您可以将信息数据库编码到向量空间中,其中向量之间的接近度表示它们的相关性/语义相似性。 以此向量空间作为知识库,您可以转换新的用户查询,将其编码到相同的向量空间中,并检索先前索引的最相关的记录。
检索这些相关记录后,选择其中一些并将它们作为附加上下文包含在法学硕士提示中,为法学硕士提供高度相关的源知识。 这是一个两步过程,其中:
- 索引使用数据集中的信息填充向量索引。
- 检索发生在查询期间,是我们从向量索引中检索相关信息的地方。
这两个步骤都需要一个嵌入模型来将人类可读的纯文本转换为语义向量空间。 使用 Hugging Face 的高效 MiniLM 句子转换器,如下面的屏幕截图所示。 该模型不是 LLM,因此其初始化方式与我们的 Llama 2 模型不同。
在 hub_config
,指定模型 ID,如上面的屏幕截图所示,但对于该任务,请使用特征提取,因为我们生成的是向量嵌入,而不是像我们的 LLM 那样的文本。 接下来,初始化模型配置 HuggingFaceModel
和以前一样,但这次没有 LLM 映像并带有一些版本参数。
您可以使用以下命令再次部署模型 deploy
,使用较小的(仅 CPU)实例 ml.t2.large
。 MiniLM 模型很小,因此不需要大量内存,也不需要 GPU,因为它甚至可以在 CPU 上快速创建嵌入。 如果愿意,您可以在 GPU 上更快地运行模型。
要创建嵌入,请使用 predict
方法并传递上下文列表以通过 inputs
键如图:
传递两个输入上下文,返回两个上下文向量嵌入,如下所示:
len(out)
2
MiniLM模型的嵌入维数为 384
这意味着 MiniLM 输出的每个向量嵌入的维数应为 384
。 但是,查看嵌入的长度,您将看到以下内容:
len(out[0]), len(out[1])
(8, 8)
两个列表各包含八个项目。 MiniLM 首先在标记化步骤中处理文本。 这种标记化将我们人类可读的纯文本转换为模型可读标记 ID 的列表。 在模型的输出特征中,您可以看到令牌级嵌入。 这些嵌入之一显示了预期的维度 384
如图所示:
len(out[0][0])
384
通过使用每个向量维度的平均值,将这些标记级嵌入转换为文档级嵌入,如下图所示。
有两个 384 维向量嵌入,每个输入文本一个。 为了让我们的生活更轻松,请将编码过程包装到单个函数中,如以下屏幕截图所示:
下载数据集
下载 Amazon SageMaker 常见问题解答作为知识库,以获取包含问题和答案列的数据。
执行搜索时,仅查找答案,这样您就可以删除问题列。 详情请参阅笔记本.
我们的数据集和嵌入管道已准备就绪。 现在我们需要的只是存储这些嵌入的地方。
索引
Pinecone 矢量数据库存储矢量嵌入并大规模有效地搜索它们。 要创建数据库,您需要 Pinecone 提供的免费 API 密钥。
连接到 Pinecone 矢量数据库后,创建单个矢量索引(类似于传统数据库中的表)。 为索引命名 retrieval-augmentation-aws
并对齐索引 dimension
和 metric
参数与嵌入模型(本例中为 MiniLM)所需的参数。
要开始插入数据,请运行以下命令:
您可以使用本文前面的问题开始查询索引。
上面的输出显示我们正在返回相关上下文来帮助我们回答我们的问题。 因为我们 top_k = 1
, index.query
返回顶部结果以及读取的元数据 Managed Spot Training can be used with all instances supported in Amazon
.
增强提示
使用检索到的上下文来增强提示,并决定输入 LLM 的最大上下文量。 使用 1000
字符限制以迭代方式将每个返回的上下文添加到提示中,直到超过内容长度。
喂食 context_str
进入 LLM 提示符,如下面的屏幕截图所示:
[输入]:哪些实例可以与 SageMaker 中的 Managed Spot Training 一起使用? [输出]:根据提供的上下文,您可以将托管 Spot 训练与 Amazon SageMaker 支持的所有实例结合使用。 因此,答案是:Amazon SageMaker 支持的所有实例。
逻辑是有效的,因此将其包装到一个函数中以保持简洁。
您现在可以提出如下所示的问题:
清理
要停止产生任何不需要的费用,请删除模型和端点。
结论
在这篇文章中,我们向您介绍了 SageMaker 上具有开放获取 LLM 的 RAG。 我们还展示了如何使用 Llama 2 部署 Amazon SageMaker Jumpstart 模型、如何使用 Flan T5 部署 Hugging Face LLM 以及如何使用 MiniLM 部署嵌入模型。
我们使用开放访问模型和 Pinecone 向量索引实现了完整的端到端 RAG 管道。 利用这一点,我们展示了如何最大限度地减少幻觉,并使法学硕士知识保持最新,并最终增强用户体验和对我们系统的信任。
要自行运行此示例,请克隆此 GitHub 存储库并使用 GitHub 上的问答笔记本.
关于作者
韦丹·耆那教 是一位高级 AI/ML 专家,致力于战略性生成 AI 计划。 在加入 AWS 之前,Vedant 曾在 Databricks、Hortonworks(现为 Cloudera)和摩根大通等多家公司担任机器学习/数据科学专业职位。 在工作之外,Vedant 热衷于创作音乐、攀岩、利用科学过上有意义的生活以及探索世界各地的美食。
詹姆斯·布里格斯 是 Pinecone 的一名开发人员倡导者,专门从事矢量搜索和 AI/ML。 他通过在线教育指导开发者和企业开发自己的 GenAI 解决方案。 在加入 Pinecone 之前,James 曾为小型科技初创公司和老牌金融公司从事人工智能工作。 工作之余,詹姆斯热衷于旅行和拥抱新的冒险,从冲浪和水肺潜水到泰拳和巴西柔术。
黄鑫 是 Amazon SageMaker JumpStart 和 Amazon SageMaker 内置算法的高级应用科学家。 他专注于开发可扩展的机器学习算法。 他的研究兴趣是自然语言处理、表格数据的可解释深度学习以及非参数时空聚类的稳健分析。 他在 ACL、ICDM、KDD 会议和 Royal Statistical Society: Series A 上发表了多篇论文。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- PlatoData.Network 垂直生成人工智能。 赋予自己力量。 访问这里。
- 柏拉图爱流。 Web3 智能。 知识放大。 访问这里。
- 柏拉图ESG。 碳, 清洁科技, 能源, 环境, 太阳能, 废物管理。 访问这里。
- 柏拉图健康。 生物技术和临床试验情报。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/mitigate-hallucinations-through-retrieval-augmented-generation-using-pinecone-vector-database-llama-2-from-amazon-sagemaker-jumpstart/
- :具有
- :是
- :不是
- :在哪里
- $UP
- 1
- 10
- 100
- 11
- 12
- 14
- 15%
- 16
- 17
- 19
- 23
- 32
- 7
- 8
- 9
- a
- 关于
- 以上
- ACCESS
- 根据
- 账号管理
- 横过
- 加
- 额外
- 附加信息
- 采用
- 冒险
- 主张
- 再次
- AI
- 人工智能用例
- AI / ML
- 算法
- 对齐
- 所有类型
- 沿
- 已经
- 还
- Amazon
- 亚马逊SageMaker
- 亚马逊SageMaker JumpStart
- 亚马逊SageMaker Studio
- 亚马逊网络服务
- 量
- an
- 分析
- 和
- 回答
- 答案
- 任何
- API
- 应用
- 应用的
- 的途径
- 方法
- 保健
- 国家 / 地区
- 围绕
- AS
- 问
- At
- 尝试
- 增加
- 增强
- 汽车
- 自动
- 可使用
- AWS
- 基地
- 基于
- BE
- 因为
- before
- 开始
- 之间
- 博客
- Bloom
- 都
- 更广泛
- 建立
- 内建的
- 企业
- 但是
- by
- CAN
- 捕获
- 案件
- 例
- 字符
- 收费
- 追逐
- 清洁
- 明确地
- 攀登
- Cloudera的
- 集群
- 柱
- 列
- 公司
- 兼容
- 完成
- 元件
- 组件
- 会议
- 已联繫
- 安慰
- 包含
- 包含
- 内容
- 上下文
- 上下文
- 听起来像对话
- 会话AI
- 兑换
- 企业
- 正确
- 正确地
- 创建信息图
- 危急
- 目前
- data
- 数据库
- 日期
- DBS
- 决定
- 深
- 深入学习
- 部署
- 部署
- 开发商
- 开发
- 发展
- 研发支持
- 尺寸
- 直接
- 讨论
- do
- 不
- 不会
- 不会
- 域
- 不
- 下降
- ,我们将参加
- 每
- 此前
- 更容易
- 生态系统
- 教育
- 高效
- 有效
- 嵌入
- 拥抱
- 编码
- 结束
- 端至端
- 端点
- 提高
- 环境
- 成熟
- 甚至
- 例子
- 超过
- 执行
- 预期
- 体验
- 探索
- 探索
- 广泛
- 外部
- 提取
- 面部彩妆
- 快
- 特征
- 美联储
- 少数
- 金融
- 找到最适合您的地方
- 完
- (名字)
- 浮动
- 重点
- 以下
- 针对
- 格式
- 基金会
- 自由的
- 止
- 功能
- 通常
- 产生
- 发电
- 代
- 生成的
- 生成式人工智能
- 得到
- GitHub上
- 给
- 特定
- 给
- Go
- GOES
- GPU
- 指南
- 处理
- 发生
- 有
- he
- 保持
- 帮助
- 相关信息
- 高度
- 他的
- 创新中心
- How To
- 但是
- HTTPS
- 黄
- 中心
- 拥抱脸
- 人类可读
- i
- ID
- 理想
- 鉴定
- IDS
- if
- 图片
- 实施
- 进口
- in
- 包括
- 包含
- 增加
- 指数
- 索引
- 行业
- 通知
- 信息
- 项目
- 输入
- 输入
- 安装
- 例
- 集成
- 利益
- 接口
- 内部
- 成
- 介绍
- IT
- 项目
- 詹姆斯
- 加盟
- jp
- 摩根大通
- 摩根大通(JP Morgan Chase)
- JPG
- 保持
- 键
- 知道
- 知识
- 语言
- 大
- 大
- 发射
- 铅
- 学习
- 可以学习
- 长度
- 库
- 生活
- 喜欢
- 极限
- 清单
- 书单
- 生活
- 骆驼
- LLM
- 逻辑
- 看
- 寻找
- 占地
- 机
- 机器学习
- 使
- 制作
- 管理
- 手动
- 许多
- 匹配
- 火柴
- 最多
- 最高金额
- 可能..
- 意味着
- 有意义的
- 手段
- 内存
- 元数据
- 方法
- 减轻
- ML
- 模型
- 模型
- 钱
- 更多
- 摩根
- 最先进的
- 许多
- 多
- 音乐
- 必须
- 姓名
- 自然
- 自然语言处理
- 需求
- 需要
- 全新
- 下页
- NLP
- 笔记本
- 现在
- 麻木
- 对象
- of
- on
- 一
- 在线
- 仅由
- 打开
- 操作
- or
- 秩序
- OS
- 除此以外
- 我们的
- 输出
- 产量
- 输出
- 学校以外
- 己
- 文件
- 参数
- 特别
- 尤其
- 通过
- 通过
- 情
- 多情
- 演出
- 执行
- 权限
- 图片
- 管道
- 朴素
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 热门
- 职位
- 帖子
- 供电
- 预测
- 预测
- 预报器
- 首选
- 防止
- 预览
- 以前
- 先前
- 先
- 市场问题
- 过程
- 过程
- 处理
- 本人简介
- 提示
- 所有权
- 提供
- 提供
- 优
- 公然
- 出版
- 蟒蛇
- pytorch
- 查询
- 题
- 有疑问吗?
- 很快
- 范围
- 范围
- 准备
- 接收
- 记录
- 地区
- 相应
- 依靠
- 知识库
- 代表
- 要求
- 必须
- 研究
- 回应
- 导致
- 成果
- 回报
- 返回
- 健壮
- 岩石
- 角色
- 皇族
- 运行
- 运行
- sagemaker
- 同
- 对工资盗窃
- 可扩展性
- 鳞片
- 科学
- 科学家
- 得分了
- 屏风
- SDK
- 搜索
- 搜索
- 看到
- 似乎
- 选择
- 前辈
- 感
- 句子
- 系列
- A系列
- 特色服务
- 集
- 应该
- 显示
- 显示
- 如图
- 作品
- 侧
- 类似
- 简单
- 自
- 单
- 尺寸
- 小
- 小
- So
- 社会
- 独自
- 方案,
- 解决方案
- 一些
- 某处
- 来源
- 太空
- 专家
- 专业
- 其他
- 特别是
- Spot
- 团队
- 初创企业
- 统计
- 步
- 步骤
- Stop 停止
- 商店
- 商店
- 善用
- 串
- 工作室
- 这样
- SUPPORT
- 支持
- 支持
- 系统
- 产品
- 表
- 需要
- 任务
- 科技
- 科技创业
- 专业技术
- 告诉
- 文本
- 泰国
- 比
- 这
- 区域
- 世界
- 其
- 他们
- 因此
- 博曼
- 他们
- 事
- Free Introduction
- 那些
- 通过
- 次
- 至
- 象征
- 符号化
- 也有
- 工具
- 最佳
- 传统
- 产品培训
- 变压器
- 变形金刚
- 变换
- 翻译
- 旅游
- 信任
- 二
- 类型
- 最终
- 不会
- 势不可挡。
- 直到
- 无用
- 更新
- us
- 使用
- 用过的
- 用户
- 用户体验
- 用户
- 运用
- 价值观
- 各个
- 版本
- 版本
- 通过
- 视觉
- 等待
- 演练
- 想
- 是
- 波
- 方法..
- we
- 卷筒纸
- Web服务
- 基于网络的
- 什么是
- ,尤其是
- 这
- 而
- 宽
- 大范围
- 将
- 也完全不需要
- 工作
- 工作
- 加工
- 合作
- 世界
- 将
- 包装
- X
- 含
- 完全
- 您一站式解决方案
- 和风网