虹科分享 | 谷歌Vertex AI平台使用Redis搭建大语言模型
文章来源:虹科云科技
点此阅读原文
基础模型和高性能数据层这两个基本组件始终是创建高效、可扩展语言模型应用的关键,利用Redis搭建大语言模型,能够实现高效可扩展的语义搜索、检索增强生成、LLM 缓存机制、LLM记忆和持久化。有Redis加持的大语言模型可应用于文档检索、虚拟购物助手、客户服务助理等,为企业带来益处。
一、语言模型构件
应用程序生成、理解和使用人类语言的能力正变得越来越重要,从客服机器人到虚拟助手,再到内容生成,人们对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.可扩展语言模型应用的推理架构

GCP 和 Redis Enterprise 用于语言模型应用的推理架构
这里所呈现的推理架构适用于通用语言模型用例。它结合使用了 Vertex AI(PaLM 2 基础模型)、BigQuery 和 Redis Enterprise。
GCP 和 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 应用提供动力,无论是今天还是未来的数年。
虹科是Redis原厂的中国区战略合作伙伴。我们持续关注各行业当下急切需求,专注于为企业解答疑问,制定专属服务,提供一站式数据库和商业智能解决方案。了解更多【企业级数据库解决方案】及【企业缓存指南】,欢迎前往虹科云科技官网!
相关文章:
虹科分享 | 谷歌Vertex AI平台使用Redis搭建大语言模型
文章来源:虹科云科技 点此阅读原文 基础模型和高性能数据层这两个基本组件始终是创建高效、可扩展语言模型应用的关键,利用Redis搭建大语言模型,能够实现高效可扩展的语义搜索、检索增强生成、LLM 缓存机制、LLM记忆和持久化。有Redis加持的大…...
VS Code 代码跳转到定义(.js 和 .vue文件跳转)
vscode 代码跳转到定义(.js 和 .vue文件跳转) 在日常的开发工作中,我们经常需要跳转到方法或变量的定义处,以便更好地理解和修改代码。VS Code 是目前比较流行的开发工具,然而它默认情况下并不支持这个功能,…...
华为云云耀云服务器L实例评测 | Docker 部署 Reids容器
文章目录 一、使用Docker部署的好处二、Docker 与 Kubernetes 对比三、云耀云服务器L实例 Docker 部署 Redis四、可视化工具连接Redis⛵小结 一、使用Docker部署的好处 Docker的好处在于:在不同实例上运行相同的容器 Docker的五大优点: 持续部署与测试…...
聚观早报 | 杭州亚运开幕科技感拉满;腾讯官宣启动「青云计划」
【聚观365】9月25日消息 杭州亚运开幕科技感拉满 腾讯官宣启动「青云计划」 FF任命新全球CEO 比亚迪夺得多国销冠 iPhone 15/15 Pro销售低于预期 杭州亚运开幕科技感拉满 杭州第19届亚洲运动会开幕式23日晚在杭州奥体中心主体育馆举行,这届开幕式可谓科技感拉…...
Linux Gnome桌面无法打开终端Terminal
文章目录 前言排障解决方式一解决方式二 前言 由于不知名的原因,导致gonme桌面里打开terminal一直转圈,无法打开。 这里我的故障是已知的,我是因为要把英文改为中文。但是界面依旧是英文,同时导致终端无法打开。 此方式centos d…...
MySQL学习笔记15
1、内连接查询(重点): 基本语法: select 数据表1.字段列表,数据表2.字段列表 from 数据表1 inner join 数据表2 on 连接条件; 案例:获取产品表中每个产品的分类信息: mysql> select * from tb_goods …...
6、SpringBoot_项目的打包与运行
七、SpringBoot项目的打包与运行 1.目前项目怎么运行的 通过浏览器访问idea 将jar部署到服务器 2.maven 打包项目 命令 mvn package使用命令后会得到如下的jar 3.程序运行 命令 java -jar 项目.jar启动如下 4.springboot打包需要插件 插件 <plugin><group…...
图像语义分割概述
图像语义分割概述 一、图像语义分割概念 图像语义分割(Image Semantic Segmentation)是一项计算机视觉任务,其目标是将输入的图像分割成多个区域,并为每个像素分配一个语义类别标签,以表示该像素属于图像中的哪个物体…...
ViT细节与代码解读
最近看到两篇解读ViT很好的文章,备忘记录一下: 先理解细节 1:再读VIT,还有多少细节是你不知道的 再理解代码 1:ViT源码阅读-PyTorch - 知乎...
Linux中软链接与硬链接的作用、区别、创建、删除
1、软链接与硬链接的作用 (1)软链接 软链接是Linux中常用的命令,它的功能是某一文件在另外一个位置建立一个同步的链接,相当于C语言中的指针,建立的链接直接指向源文件所在的地址,软链接不会另外占用资源,当同一文件需要在多个位置被用到的时候,就会使用到软连接。 …...
第一章:最新版零基础学习 PYTHON 教程(第十四节 - Python 条件和循环语句–Python 中的 with 语句)
在Python中,with语句用于异常处理,使代码更简洁、更具可读性。它简化了文件流等公共资源的管理。观察以下代码示例,了解使用 with 语句如何使代码更简洁。 Python3 # 文件处理# 1) 不使用with语句 file = open(文件路径, w) # 打开文件以进行写操作 file.write(你好,世界…...
安科瑞AMC16-DETT铁塔jizhan直流电能计量模块,直流计量用
安科瑞虞佳豪壹捌柒陆壹伍玖玖零玖叁 9月20日,在杭州亚运会火炬传递的现场,不少人通过网络与亲友连线,共同见证火炬传递的历史时刻。上午6时,杭州铁塔的一线通信保障人员共27人就已经在本次火炬传递收官点位奥体中心西广场附近&a…...
WebGL笔记:WebGL中JS与GLSL ES 语言通信,着色器间的数据传输示例:js控制绘制点位
js改变点位,动态传值 <canvas id"canvas"></canvas><!-- 顶点着色器 --><script id"vertexShader" type"x-shader/x-vertex">attribute vec4 a_Position;void main() {// 点位gl_Position a_Position;// 尺…...
一文读懂 Redis 缓存系统
【摘要】本文介绍了Redis缓存原理、详细解析了缓存模型、缓存一致性和缓存异常场景。 【作者】李杰,专注于Java虚拟机技术、云原生技术领域的探索与研究。 尽管(关系型)数据库系统 (SQL) 带来了许多出色的属性,例如 ACID&#x…...
初识Java 10-1 集合
目录 泛型和类型安全的集合 基本概念 添加一组元素 打印集合 List Iterator(迭代器) 本笔记参考自: 《On Java 中文版》 在进行程序设计时我们会发现,程序总是会根据某些在运行时才能知道的条件来创建新的对象。这意味着&am…...
Linux- pipe()系统调用
管道 管道(Pipe)是一种用于进程间通信(IPC)的简单而有效的方式。在UNIX和类UNIX操作系统(如Linux)中,管道提供了一种让一个进程将其输出发送给另一个进程的输入的机制。管道通常用于数据流的单…...
数据库常用指令
检查Linux系统是否已经安装了MySQL: sudo service mysql start...
[Studio]Manifest merger failed with multiple errors, see logs 解决方法
记录一个引入库时经常会出错的问题 最近使用一个图片上传库后项目代码报了一个错: Execution failed for task :app:processDebugManifest. > Manifest merger failed with multiple errors, see logs* Try: Run with --info or --debug option to get more lo…...
【数据结构与算法】不就是数据结构
前言 嗨喽小伙伴们你们好呀,好久不见了,我已经好久没更新博文了!之前因为实习没有时间去写博文,现在已经回归校园了。我看了本学期的课程中有数据结构这门课程(这么课程特别重要),因为之前学过一点…...
封装一个高级查询组件
封装一个高级查询组件 背景一,前端相关代码二,后端相关代码三,呈现效果总结 背景 业务有个按照自定义选择组合查询条件,保存下来每次查询的时候使用的需求。查了一下项目里的代码没有现成的组件可以用,于是封装了一个 …...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
