构建开源多模态RAG系统

在这个新的冒险中,我们将深入研究使用开源大型语言多模态(LLMM)构建检索增强型生成(RAG)系统的过程。值得注意的是,我们的重点是在不依赖LangChain或Llama索引的情况下实现这一点;相反,我们将利用ChromeDB和Hugging Face框架。

这篇文章探索和了解如何创建一个高效的RAG系统,结合ChromeDB和Hugging Face等开源技术在大型语言多模态应用中的力量。

RAG是什么?

检索增强型生成(RAG):提升人工智能理解和输出能力

在人工智能领域,检索增强型生成(RAG)作为一种变革性技术脱颖而出,优化了大型语言模型(LLMs)的能力。本质上,RAG通过允许模型从外部来源动态检索实时信息,增强了AI响应的特异性。

大型语言模型,如GPT-3,擅长生成类似人类的语言,但在提供最新或特定领域的信息方面存在限制。RAG通过整合检索机制解决了这个问题,从外部知识库中提取相关事实,确保回答在语言上正确且在事实上准确。

该架构将生成能力和动态检索过程无缝结合,使AI能够适应不同领域中不断演变的信息。与广泛的重新训练不同,RAG提供了一种经济高效解决方案,使AI保持最新和相关性,而无需对整个模型进行彻底改造。

换句话说

想象你有一个超级聪明的机器人朋友。这个机器人朋友擅长交谈,会说聪明的话,但有时它并不知道一切。现在,我们有一个特殊的技巧叫做检索增强型生成(Retrieval-Augmented Generation),简称RAG。

RAG通过在需要回答问题或谈论特定事物时从一本事实大书中查找信息,帮助机器人朋友变得更聪明。因此,它不再只是从自己的大脑中说出事情,而是可以检查这本大书,以确保提供最好和最准确的答案。这就像为机器人朋友拥有一本很酷的百科全书一样,使它与我们聊天更加令人敬畏。

为什么选择RAG?

1. 增强的准确性和可靠性:RAG通过将大型语言模型(LLMs)重定向到权威的知识来源,解决了其不可预测性的问题。它降低了呈现虚假或过时信息的风险,确保了更准确和可靠的回答。2. 提高透明度和信任度:生成式AI模型(如LLMs)通常缺乏透明度,使得难以信任其输出结果。RAG引入了透明度,使组织能够对生成的文本输出拥有更大的控制权,解决了关于偏见、可靠性和合规性的担忧。3. 减少幻觉:LLMs容易产生幻觉响应——连贯但不正确或编造的信息。RAG通过确保回答基于权威来源来帮助解决这个问题,减少了在金融等关键领域中出现误导性建议的风险。4. 改善高风险环境中的决策制定:在金融等准确性、可信度和及时性至关重要的领域,RAG显著提高了性能。实时更新和依赖权威来源减少了决策过程中灾难性损失、监管问题或代价高昂的错误的可能性。

5. 成本效益的适应性:RAG提供了一种经济高效的方法来改进AI输出,而无需进行广泛的重新训练/微调。组织可以通过根据需要动态获取特定细节来保持最新和相关性,确保AI能够适应不断演变的信息。

6. 什么是多模态?亲爱的冒险家,请考虑一下:当你听到某人的声音时,你能认出这个人,而当你看到他们时,你也知道他们是谁。本质上,多模态涉及有两个输入——音频和视觉——并产生一个单一的输出,从而实现更丰富和全面的理解。

以CLIP为例的更详细的解释

简单来说,多模态学习涉及教导计算机/AI模型理解和学习不同类型的信息,如图像、文本或语音。这很有用,因为它使模型能够做出更好的预测,模仿人类学习的方式。

该模型对不同的输入做出相同(非常相似)的嵌入向量,这些向量表示相同的事情。

Image2Text:这部分重点在于使用基于transformer的架构来改进复杂图像的字幕生成。Text2Image:在这里,想法是使用文本输入来生成视觉表示。自然语言处理(NLP)的进步使得可以将文本编码为嵌入向量,从而指导图像生成过程。Images supporting Language Models专注于将视觉元素整合到纯文本语言模型中。传统的模型假设单词的意义仅来自文本上下文,而这个任务则探索了将视觉维度纳入以增强语言模型。

OpenAI的CLIP模型通过自然语言监督学习视觉概念。只需提供要识别的视觉类别的名称,CLIP就可以应用于任何视觉分类基准测试,类似于“零次学习”。

简单来说,它为一张猫的图片和单词“猫”生成了相同的(非常相似的)向量。

MLLM(多模态大型语言模型)是一种探索将各种数据类型(包括图像、文本、语言、音频等)整合到一起的多模态语言模型。虽然像GPT-3、BERT和RoBERTa这样的大型语言模型在基于文本的任务上表现出色,但在理解和处理其他数据类型时面临挑战。为了解决这个限制,多模态模型结合了不同的模态,使得对多样化的数据有更全面的理解。

多模态大型语言模型(MLLM)代表了自然语言处理中的一个范式转变,超越了传统的基于文本的方法。这些模型以GPT-4为代表,可以无缝地处理多种数据类型,包括图像和文本,从而实现对信息的更全面的了解。MLLM通过整合各种模态解决了纯文本模型的限制,并在基准测试中展示了人类水平的性能。

我们计划创建RAG管道,其中涉及使用CLIP嵌入图像和文本。接下来,我们打算将这个嵌入的数据存储在ChromDB向量数据库中。最后,我们将利用Hugging Face的MLLM根据检索到的信息参与用户聊天会话。

我们将使用Kaggle上的图像和维基百科上的信息创建一个花专家聊天机器人。

1. 安装所需软件包

2. 预处理数据

在这个步骤中,你应该自己完成,但我将图像和文本放在一个文件夹中,像这样:

创建向量数据库;请随意使用任何工具,但我建议使用ChromaDB。

3.1 首先,您需要确定嵌入函数。我将使用默认的嵌入函数并向您展示如何创建一个自定义的嵌入函数。

自定义嵌入函数

3.2 我们将创建两个集合,一个用于文本,另一个用于图像

我们使用Clip,可以使用文本像这样检索图像

3.3 文本集合

3.4 检索文本。我们在嵌入过程中也使用了CLIP,因此我们可以通过文本或嵌入来获取信息

Embeddings

4. 现在我们应该加载MLLM

我根据它的存储库使用了一个小型的,这就是我们如何使用它的方法。

让我们使用它

现在让我们准备好模型的输入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/859924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW在机器人研究所中的应用

机器人研究所致力于机器人技术的研究与开发,涵盖工业机器人、服务机器人、医疗机器人等多个领域。研究所需要一个高效、灵活的实验控制和数据采集系统,以进行复杂的机器人实验,并对实验数据进行实时处理和分析。 项目需求 实时控制与监控&am…

Python函数魔术:深入理解18个高级函数特性

今天,我们将一起探索那些让代码瞬间变得优雅而强大的高级函数。准备好,让我们一起揭开它们的神秘面纱吧! 1. map():一招制胜,批量操作 想象一下,你需要给一个数字列表的每个元素加上5。普通的循环是不是让…

【PyTorch单点知识】神经元网络模型剪枝prune模块介绍(下,结构化剪枝)

文章目录 0. 前言1. torch.nn.utils.prune中的结构化剪枝方法2. PyTorch实例2.1 random_structured2.2 prune.ln_structured 3. 总结 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但…

NC--介绍-未加密加密后-流量抓包对比

免责声明:本节仅做技术交流与学习... 目录 介绍: 用法: 未加密--流量抓包 加密: 攻击端 靶机 抓包分析: 介绍: nc 是一个Linux环境下常用的工具命令,可以用来帮助开发者查询和解决网路问题,通常被认为是 NetCat 工具的缩写,在网络工具…

Hi3861 OpenHarmony嵌入式应用入门--轮询按键

本篇介绍使用轮询方式读取gpio状态来判断按键状态。 原理图如下 GPIO API API名称 说明 hi_u32 hi_gpio_init(hi_void); GPIO模块初始化 hi_u32 hi_io_set_pull(hi_io_name id, hi_io_pull val); 设置某个IO上下拉功能。 hi_u32 hi_gpio_set_dir(hi_gpio_idx id, hi_gpi…

MySQL理解-下载-安装

MySQL理解: mysql:是一种关系型数据库管理系统。 下载: 进入官网MySQLhttps://www.mysql.com/ 找到download 滑动到最下方:有一个开源社区版的链接地址: 然后就下载完成了 安装: 双击: 一直next 一直next这一步&…

仓颉编程语言入门

华为在 2024 年 6 月 21 日的华为开发者大会上,华为终端 BG 软件部总裁龚体正式官宣了华为自研仓颉编程语言,并发布了 HarmonyOS NEXT 仓颉语言开发者预览版。 仓颉编程语言文件后缀名为 .cj, 以下是第一个入门代码输出:你好,仓颉…

ESP32-S3方案应用设备无线交互技术,产品远程控制与语音交互

在物联网和人工智能(AI)技术融合的浪潮中,ESP32-S3芯片以其卓越的性能和多功能性,成为智能家居和工业自动化领域的明星产品。 ESP32-S3是一款基于Xtensa LX6处理器的嵌入式系统级芯片,具有高效、低功耗的特点。集成的Wi-Fi和蓝牙功能&#x…

浔川python代码编辑器——浔川总社部

众所周知, tkinter的Text文本框功能强大, Python自带的IDLE编辑器也是用tkinter编写的。这里作者也用tkinter的Text文本框等控件, 设计功能较齐全的文本编辑器程序。 目标功能: 编辑文本文件 编辑二进制文件 (字符会以转义序列形式显示, 如’abc\xff’) 支持ansi、gbk、utf-8…

《昇思25天学习打卡营第01天|基本介绍》

基本情况 MindSpore昇思是一个全场景深度学习框架 设计目标 MindSpore的设计目标是让深度学习开发更加简单、高效和安全 优点 简单性:MindSpore 有一个直观的API设计,使得新手也能快速上手,同时还支持自动微分。高效性:它针对…

golang中的内存缓存如何避免被GC扫描,BigCache实现原理

GC到底清理的是什么? Golang是函数式编程语言,如果是函数内定义的临时变量,在函数退出时会被自动清理掉不需要GC参与;如果使用了指针,那么即使函数退出了也不会将其清理,这个时候就需要全局的GC来清扫。 …

三大交易所全面恢复 IPO 申请

6月21日晚间,北交所受理了3家企业的IPO申请,这是北交所时隔3个月之后恢复IPO受理。6月20日晚间,沪深交易所各受理了1家IPO申请,这是沪深交易所时隔半年后再次受理IPO。这也意味着,三大交易所IPO受理全部恢复。 6月21日…

致敬企业家精神:比亚迪仰望发布“旷野宣言”

近年来,随着汽车在中国的普及,钟爱越野和探险的车主群体也在飞速发展壮大。 那么问题就来了:为什么会有这么多的人们钟爱越野和探险?越野精神究竟是什么? 作为备受关注的硬派越野车,比亚迪旗下的高端品牌仰…

编程精粹—— Microsoft 编写优质无错 C 程序秘诀 08:剩下的就是态度问题

这是一本老书,作者 Steve Maguire 在微软工作期间写了这本书,英文版于 1993 年发布。2013 年推出了 20 周年纪念第二版。我们看到的标题是中译版名字,英文版的名字是《Writing Clean Code ─── Microsoft’s Techniques for Developing》&a…

C++基础编程100题-013 OpenJudge-1.3-11 计算浮点数相除的余数

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0103/11/ 描述 计算两个双精度浮点数a和b的相除的余数&#xff0c;a和b都是正数的。这里余数&#xff08;r&#xff09;的定义是&#xff1a;a k * b r&#xff0c;其中 k是整数&#xff0c; 0 < r < b。…

Spring Boot 快速入门4 ——JSR-303 数据校验

目录 一、前言 二、JSR303 简介 三、使用方法 常用注解 Validated、Valid区别 四、编写测试代码&#xff1a; 1. 实体类添加校验 2. 统一返回类型 3. 测试类 4.我们把异常返回给页面 5.抽离全局异常处理 2. 书写ExceptionControllerAdvice 一、前言 我们在日常开发…

物联网设备管理系统设计

一、引言 物联网设备管理系统设计旨在通过物联网技术实现对设备的全面监控、控制和管理&#xff0c;以提高设备的运行效率、降低运维成本&#xff0c;并确保数据的安全性和完整性。本设计将结合当前物联网技术的发展趋势和实际应用需求&#xff0c;提出一个清晰、可扩展的物联网…

鸿蒙开发系统基础能力:【@ohos.hiTraceChain (分布式跟踪)】

分布式跟踪 本模块提供了端侧业务流程调用链跟踪的打点能力&#xff0c;包括业务流程跟踪的启动、结束、信息埋点等能力。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import hi…

小鹏MONA M03实车曝光

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 小鹏汽车 MONA 系列首款车型已经官宣命名为“M03”&#xff0c;预计将于今年第三季度上市。 现在&#xff0c;这款新车的实车照片已经在网上流传开来。 此次曝光的是一款米色车漆版本&#xff0c;与当…

Twinkle Tray:屏幕亮度控制更智能

名人说&#xff1a;一点浩然气&#xff0c;千里快哉风。 ——苏轼 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、软件介绍1、Twinkle Tray2、核心特点 二、下载安装1、下载2、安装 三、使用方法 很高兴你打开…