一文彻底搞定 RAG、知识库、 Llama-3

简介: Llama-3 用于 RAG,增强大语言模型的性能,整合外部知识。关键组件包括:1) 自定义知识库,存储更新的信息;2) 分块处理,拆解文本便于管理;3) 嵌入模型,转化多模态数据为数值向量;4) 向量数据库,快速检索相似性;5) 用户聊天界面,交互平台;6) 查询引擎,获取上下文生成响应;7) 提示词模板,结合查询与知识生成提示。整个流程确保了 RAG 系统的有效性和响应能力。本文为转载,来自:https://mp.weixin.qq.com/s/Xue-9FKMMVKBSzIZC3JJdA

使用 Llama-3 搞定 RAG

检索增强生成(Retrieval Augmented Generation,RAG)是一种强大的工具,它通过将企业外部知识整合到生成过程中,增强了大语言模型(LLM)的性能。

image.png

让我们探索 RAG 的关键7大组成部分。

第一、自定义知识库(Custom Knowledge)

定制知识库是指一系列紧密关联且始终保持更新的知识集合,它构成了 RAG 的核心基础。这个知识库可以表现为一个结构化的数据库形态(比如:MySQL),也可以表现为一套非结构化的文档体系(比如:文件、图图片、音频、视频等),甚至可能是两者兼具的综合形式。

image.png

第二、分块处理(Chunking)

分块技术是指将大规模的输入文本有策略地拆解为若干个较小、更易管理的片段(Chunk)的过程。这一过程旨在确保所有文本内容均能适应嵌入模型所限定的输入尺寸,同时也有助于显著提升检索效率。

image.png

实施一种明智且高效的分块策略,在优化知识处理流程方面具有关键作用,能够极大地增强您的 RAG 系统的性能与响应能力。

image.png

第三、嵌入模型(Embedding Model)

一种将多模态数据(文本、图片、音频等)表示为数值向量的技术,可以输入到机器学习模型中。

image.png

嵌入模型负责将多模态数据转换成这些向量。

image.png

第四、向量数据库( Vector Databases)

一系列预先计算的文本数据向量表示,用于快速检索和相似性搜索,具有SQL CRUD 操作、元数据过滤和水平扩展等功能。

image.png

image.png

第五、用户聊天界面(User Chat Interface)

一个用户友好的界面,允许用户与 RAG 系统互动,提供输入查询并接收输出。

查询转换为嵌入向量,用于从向量数据库检索相关上下文知识!

image.png

第六、查询引擎(Query Engine)

查询引擎获取查询字符串,使用它来获取相关上下文,然后将两者一起作为提示词发送给 LLM 以生成最终的自然语言响应。这里使用的 LLM 是Llama-3,它在本地运行,这要归功于 Ollama。最终响应将在用户界面上显示。

image.png

image.png

第七、提示词模板(Prompt Template)

为 RAG 系统生成合适提示词的过程,可以是用户查询和自定义知识库的组合。

image.png

这作为输入给 LLM,生成最终的回复。

image.png

相关文章
|
1月前
|
机器学习/深度学习 自然语言处理 机器人
【RAG实践】基于LlamaIndex和Qwen1.5搭建基于本地知识库的问答机器人
LLM会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。
|
1月前
|
自然语言处理 API 开发工具
基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)
基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)
基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云推出企业级大模型RAG系统,几次点击即可连接PB级知识库
阿里云推出企业级大模型RAG系统,几次点击即可连接PB级知识库
985 1
|
1月前
|
Linux 异构计算 Docker
QAnything本地知识库问答系统:基于检索增强生成式应用(RAG)两阶段检索、支持海量数据、跨语种问答
QAnything本地知识库问答系统:基于检索增强生成式应用(RAG)两阶段检索、支持海量数据、跨语种问答
QAnything本地知识库问答系统:基于检索增强生成式应用(RAG)两阶段检索、支持海量数据、跨语种问答
|
消息中间件 JavaScript 前端开发
前端基础知识库-事件循环
众所周知JavaScript是个单线程的语言,但是为了能更快更好的处理程序,JavaScript有一个基于事件循环的并发模型,事件循环负责执行代码、收集和处理事件以及执行队列中的子任务。这个模型也是JavaScript异于其他语言(c java等)处理并发任务之处。本篇也是我在工作学习中自己对JavaScript事件循环的理解,下面我们一起来了解下JavaScript中事件循环是如何执行的。
|
存储 安全 前端开发
前端知识库-前端安全系列二(同源策略)
在我们日常开发中在与后台联调的时候是不是会经常遇到CORS错误,作为一名前端开发大家应该都知道这个事浏览器同源策略导致的,如何解决这个问题相信大家都有自己团队的方法。如有不了解的可以看下我之前总结过文章跨域解决方案,本文主要来分析下跨域的原因,以及跨域涉及到的API。
|
存储 Web App开发 JavaScript
前端知识库-前端安全系列一(攻防)
最近重新整理了下自己的前端相关知识,在前端安全这个领域由于最近两年做的事内部项目,对此没有太多的实际应用,借此机会重新去了解下,俗话说温故而知新,从故有的知识中总结获取新的知识才是我们进步的基础。
|
前端开发 JavaScript C++
前端知识库Reactjs进阶系列(组件的加载过程)
最近在项目中遇到react的组件多次渲染的问题,最后虽然顺利解决了但也同时发现了自己对于react生命周期的不熟悉,于是便找出react的文档重新去了解下,重新学习之后总结为以下两个主要知识点:react组件的整个渲染流程 react组件更新的注意点。
|
前端开发 JavaScript
前端基础知识库-ES6基础知识
随着前端的发展,JavaScript应用的领域也越来越广泛,其原本的语法的局限性也越来越明显,这便推动了ECMA制定ECMASCRIPT6(以下简称ES6)规范的推广,目前各大浏览器基本都支持了ES6的语法,下面就来了解下ES6的基本语法。
|
存储 前端开发 JavaScript
前端基础知识库JavaScript闭包
在JavaScript中,闭包对于JavaScript的意义无异于指针在c++中的意义。理解闭包是我们掌握JavaScript这门语言的基础能力,而对闭包的掌握程度就可以看出来你对JavaScript这门语言的深入程度,网上关于闭包的文章也不少但多数让人看过之后一头雾水,也许是自己理解能力较差。所以我还下定决心以提问的方式来理解何谓闭包,希望能给与我有相同境遇的博友一点帮助。

热门文章

最新文章