最近,谷歌宣布旗下Vertex人工智能平台最新支持了生成式人工智能,是什么支持语言模型实现与人类的语言交互呢?语言模型的大量知识储备从何而来呢?
一、语言模型构件
应用程序生成、理解和使用人类语言的能力正变得越来越重要,从客服机器人到虚拟助手,再到内容生成,人们对AI应用功能的需求横跨众多领域,而这一切的实现,都要归功于谷歌的 PaLM 2 等基础模型,这些模型经过精心调教,可以生成类似人类表达风格的内容。
在这一动态环境中,基础模型和高性能数据层这两个基本组件始终是创建高效、可扩展语言模型应用的关键。
1、基础模型:
基础模型是生成式人工智能应用的基石,大型语言模型(Large Language Model,LLM)是其中的一个子集。 LLM 通过大量的文本训练,使其能够为各种任务生成具有上下文相关性的类似人类表达风格的文本。改进这些模型,使其更加复杂,从而使应用可以更精炼、更有效地响应用户输入。所选择的语言模型会显著影响应用的性能、成本和服务质量。
然而,PaLM 2 等模型虽然功能强大,但也有其局限性,例如当缺乏特定领域的数据时,模型可能不够相关,而且可能无法及时呈现新信息或准确信息 。LLM 在提示(prompts)中可以处理的上下文长度(即词组数量)有硬性限制,此外,LLM 的训练或微调需要大量的计算资源,这会使成本剧增。要在这些限制和优势之间取得平衡,需要进行谨慎的策略和强大基础设施的支持。
2、高性能的数据层
高效的 LLM 应用程序由可扩展的高性能数据层支撑,该组件可确保高速交易和低延迟,这对于保持用户流畅交互至关重要。它在以下方面发挥关键作用:
- 缓存预计算的请求响应或嵌入
- 对过去的交互历史进行持久化
- 进行语义搜索以检索相关的上下文或知识
向量数据库已成为一种流行的数据层解决方案。Redis 在向量搜索方面的投入远远早于当下的向量数据库热潮,这反映了我们具有丰富的经验,尤其是在性能方面。Redis对于向量搜索的经验在刚刚发布的 Redis 7.2 版本中得到了体现,该版本包括可扩展搜索功能预览,与前一版本相比,每秒查询次数提高了16倍。
基础模型和向量数据库在不同行业的 LLM 应用中发挥着至关重要的作用,因此引发了业界的极大兴趣和炒作。例如,一些较新的独立向量数据库解决方案(如 Pinecone)宣布获得巨额融资,并投入大量精力以赢得开发人员的关注。然而,由于每周都有新的工具出现,因此很难知道哪款工具真的能满足企业需求。
**GCP (Google's Google Cloud Platform)的与众不同之处在于其统一的产品,它将功能强大的基础模型、可扩展的基础设施,以及一套用于调整、部署和维护这些模型的工具结合在一起,**从而能够确保最高级别的数据安全和隐私安全。
但是,要真正发挥这些进展的潜力,一个高性能且可扩展的数据层是不可或缺的,这就是Redis的作用所在。
3、可扩展语言模型应用的推理架构
这里所呈现的推理架构适用于通用语言模型用例。它结合使用了 Vertex AI(PaLM 2 基础模型)、BigQuery 和 Redis Enterprise。
您可以按照开源 GitHub 仓库中的 Colab 笔记本逐步设置此 LLM 架构。
- 安装库和工具:安装所需的 Python 库,使用 Vertex AI 进行身份验证,并创建一个 Redis 数据库。
- 创建 BigQuery 表格:将数据集加载到您的 GCP 项目中的 BigQuery 表格中。
- 生成文本嵌入:循环遍历数据集中的记录,使用 PaLM 2 嵌入 API 创建文本嵌入。
- 加载嵌入:将文本嵌入和一些元数据加载到运行中的 Redis 服务器。
- 创建向量索引:运行 Redis 命令来创建一个模式和一个新的索引结构,以实现实时搜索。
完成必要的设置步骤后,这个架构就可以支持多种 LLM 应用,如聊天机器人和虚拟购物助手。
二、在语言模型(LLM)应用Redis
即使是经验丰富的软件开发人员和应用架构师也可能对这个新的知识领域不了解,这个简短的总结应该能帮助你迅速掌握要点。
1、利用Redis实现高效可扩展的语义搜索
语义搜索从庞大的知识语料库中提取语义相似的内容。在这个过程中,知识被转化为可以进行比较的数值嵌入向量,以找到与用户查询最相关的上下文信息。
Redis 作为高性能向量数据库,擅长索引非结构化数据,从而实现高效可扩展的语义搜索。Redis 可以增强应用程序迅速理解和响应用户查询的能力,其强大的搜索索引能力有助于实现响应迅速和准确的用户交互。
2、利用Redis实现检索增强生成
检索增强生成(Retrieval-Augmented Generation,RAG)方法利用语义搜索等方法,在将提示发送到 LLM 之前动态地注入事实知识。这种技术最大程度上减少了在专有或频繁变动的数据上对 LLM 进行微调的需求。RAG 允许对 LLM 进行上下文增强,使其能够更好地处理当前的任务,例如回答具体问题、总结检索内容或生成新内容。
作为向量数据库和全文搜索引擎,Redis 有助于 RAG 工作流的顺畅运行。由于其低延迟的数据检索能力,Redis 常常是执行此任务的首选工具。它确保语言模型迅速而准确地获得所需的上下文,促进了人工智能应用高效的执行任务。
检索增强生成(RAG)架构示例
3、利用Redis实现LLM 的缓存机制
缓存是增强 LLM 响应能力和计算效率的强大技术手段。
标准缓存提供了一种机制,用于存储并快速检索预生成的常见查询响应,从而降低计算负载和响应时间。然而,在动态对话背景中使用人类语言时,完全匹配的查询很少,这就是语义缓存发挥作用的地方。
语义缓存可以理解并利用查询的潜在语义。语义缓存识别并检索与输入查询在语义上足够相似的缓存响应。这种能力极大地增加了缓存命中率,进一步改善了响应时间和资源利用率。
例如,在客户服务场景中,多个用户可能会使用不同的措辞询问类似的常见问题。语义缓存使得 LLM 能够在不进行冗余计算的情况下迅速而准确地回应这些问题。
LLM 的缓存机制
Redis 非常适用于在 LLM 中实现缓存,其强大的功能集包括支持生存时间(TTL)和逐出策略,用于管理临时数据。结合其向量数据库的语义搜索能力,Redis 能够高效快速地检索缓存响应,从而显著提升 LLM 的响应速度和系统整体性能,即使在负载较重的情况下也能如此。
4、利用Redis实现内存和持久化
保留过去的互动和会话元数据对于确保上下文连贯和个性化对话至关重要,然而LLM 并没有自适应记忆,因此依赖一个可靠的系统进行快速的对话数据存储变得至关重要。
Redis 提供了一个强大的解决方案,用于管理 LLM 的记忆。它可以在大量需求下高效地访问聊天历史和会话元数据。Redis使用其数据结构存储来处理传统的内存管理,同时其向量数据库功能有助于提取语义相关的互动内容。
三、LLM 的应用场景
1、文档检索
一些企业需要处理大量的文档,而 LLM 应用可以成为文档发现和检索的强大工具,语义搜索有助于从广泛的知识语料库中精确定位相关信息。
2、虚拟购物助手
LLM 可以支持复杂的电子商务虚拟购物助手,通过上下文理解和语义搜索,它可以理解客户的问题,提供个性化的产品推荐,甚至实时模拟对话互动。
3、客户服务助理
将 LLM 部署为客户服务代理可以彻底改变客户互动方式,除了回答常见问题外,系统还可以进行复杂的对话,为客户提供定制化的帮助,并从过去的客户互动中进行学习。
四、 Redis 和 Google Cloud:强强联合
1、基于知识
GCP 和 Redis 让 LLM 应用不仅仅是先进的文本生成器,通过在运行时迅速注入来自您自己领域的特定知识,它们确保您的应用可以提供基于知识、准确和有价值的交互,特别适应于您的组织知识库。
2、简化架构
Redis 不仅仅是一个键值数据库,它是实时数据的多功能工具,通过消除为不同用例管理多个服务的需求,它极大地简化了您的体系架构。作为许多组织已经信任的缓存和其他需求的工具,Redis 在 LLM 应用中的集成起到了无缝扩展的效果。
3、优化性能
Redis 是低延迟和高吞吐量数据结构的代名词。当与具有超强计算能力的GCP结合时 ,您将拥有一个不仅智能而且响应迅速的 LLM 应用,即使在负载较重的情况下也能如此。
4、企业级能力
Redis是经过时间验证的开源数据库核心,可为全球财富100强公司提供可靠服务。在Redis Enterprise提供的五个九(99.999%)可用性的支持下,并由 GCP 强大的基础架构提供支持,您可以完全信任其可以完全满足企业需求。
5、加速上市进程
利用Redis Enterprise,您可以更专注于创建 LLM 应用,而不必费心进行数据库设置。这种集成的便利性加速了上市进程,为您的组织提供了竞争优势。
尽管新的向量数据库和生成式 AI 产品可能在市场上引起了很大的关注,但是 GCP 和 Redis 的可靠组合更加值得信任。这些经过时间验证的解决方案不会很快消失,它们已经准备好为您的 LLM 应用提供动力,无论是今天还是未来的数年。