- 博客(28)
- 收藏
- 关注
原创 《Advanced RAG》-12-增进RAG的全局理解(二)
本文介绍了四种改进RAG(Retrieval-Augmented Generation)模型的方法,以增强对文档或语料库的全面理解,并详细阐述了每种方法的理论基础、实现过程和实验结果。
2024-08-15 08:00:00
725
原创 《Advanced RAG》-12-增进RAG的全局理解(一)
本文介绍了四种改进RAG(Retrieval-Augmented Generation)模型的方法,以增强对文档或语料库的全面理解,并详细阐述了每种方法的理论基础、实现过程和实验结果。
2024-08-14 08:00:00
1090
原创 《Advanced RAG》-09-Prompt 压缩(二)
文章主要介绍了提升大型语言模型效率的提示压缩技术,包括方法分类、算法原理和代码实现,并详细介绍了四种主要的提示压缩方法:基于信息熵的方法、基于软提示调整的方法、基于数据提炼的方法和基于标记合并或剪枝的方法。
2024-08-13 08:00:00
866
原创 《Advanced RAG》-09-Prompt 压缩(一)
文章主要介绍了提升大型语言模型效率的提示压缩技术,包括方法分类、算法原理和代码实现,并详细介绍了四种主要的提示压缩方法:基于信息熵的方法、基于软提示调整的方法、基于数据提炼的方法和基于标记合并或剪枝的方法。
2024-08-12 07:48:46
996
原创 《Advanced RAG》-11-RAG查询分类和细化
文章介绍了两种高级的检索增强生成(RAG)技术:自适应 RAG 和 RQ-RAG,以及它们在问题复杂性学习和查询细化方面的应用和优势,以及如何通过小型模型的训练来提高这些技术的性能。
2024-08-11 21:49:34
1369
原创 《Advanced RAG》-10-Corrective Retrieval Augmented Generation (CRAG)
CRAG 设计了一个轻量级检索评估器,用于评估针对特定查询检索到的文档的整体质量,并使用网络搜索作为改进检索结果的辅助工具。CRAG 可与基于 RAG 的各种方法无缝集成,并提供了一个插件式的解决方案。CRAG 的主要思想是引入一个检索评估器,用于评估检索文档与查询之间的关系,并根据评估结果分为三种情况:正确、不正确和模棱两可。
2024-08-09 08:00:00
1052
原创 《Advanced RAG》-08-探索RAG之Self-RAG
本文介绍了自我增强生成(Self-RAG)技术,它是传统的检索增强生成(RAG)的改进,能够更精确地控制文本生成过程。
2024-08-08 08:00:00
1831
原创 Windows 环境使用 Docker 安装 ES & Kibana 8.12.2 及analysis-ik插件
在我们本地开发或测试的过程中,往往需要搭建自己的开发环境,最方面的方式就是使用docker来完成。快捷,方便,随用随启。本篇使用docker搭建 ElasticSearch8.12.2 的单机过程,仅作为测试练习使用,(elasticsearch 8.12.2+kibana 8.12.2 )注意:kibana与Elasticsearch的版本必须一致,不然会匹配不成功。
2024-08-08 07:55:04
918
原创 《Advanced RAG》-06-探索RAG技术 Query Rewriting
详细阐述了多种查询重写技术,这些技术用于在检索增强生成(RAG)中优化查询和文档之间的语义匹配。
2024-08-07 08:00:00
1186
原创 《Advanced RAG》-04-深度研究RAG技术Re-ranking
如图 1 所示,重新排序的任务就像一个智能过滤器。当检索器从索引集合中检索出多个上下文时,这些上下文可能与用户的查询具有不同的相关性。有些上下文可能非常相关(图 1 中红色方框中突出显示的内容),而其他上下文可能只是略有相关甚至不相关(图 1 中绿色和蓝色方框中突出显示的内容)。重新排序的任务是评估这些上下文的相关性,并优先选择最有可能提供准确和相关答案的上下文。这样,LLM 就能在生成答案时优先考虑这些排名靠前的上下文,从而提高答案的准确性和质量。
2024-08-06 08:00:00
2496
原创 《Advanced RAG》-07-探索 RAG 中表格数据的处理方案
文章详细讨论了实现 Retrieval-Augmented Generation(RAG)时对表格进行处理的挑战,特别是在非结构化文档中自动准确地提取和理解表格信息。首先介绍了RAG中管理表格的关键技术,包括表格解析和索引结构设计。接着,文章回顾了一些现有的开源解决方案,如LlamaIndex和Langchain提出的方法。然后,文章提出了一种新的解决方案,使用Nougat模型进行表格解析,能够准确地提取表格和表格标题,并通过多向量检索器构建文档摘要索引结构,以便更有效地存储和检索表格的语义信息。
2024-08-05 22:19:59
1129
原创 《Advanced RAG》-05-探索语义分块(Semantic Chunking)
文章首先介绍了语义分块在 RAG 中的位置和作用,并介绍了常见的基于规则的分块方法。然后,阐述了语义分块的目的是确保每个分块包含尽可能多的独立语义信息。接着,文章分别介绍了三种语义分块方法的原理和实现方法,并对每种方法进行了总结和评估。
2024-08-05 08:00:00
728
原创 《Advanced RAG》-03-使用 RAGAs + LlamaIndex 进行 RAG 评估
文章首先介绍了 RAG 评估的三个主要部分:输入查询、检索上下文和 LLM 生成的响应。提到了 RAGAs 提出的 RAG 评估指标,包括 Faithfulness、Answer Relevance 和 Context Relevance,以及 RAGAs 网站提供的两个额外指标:Context Precision 和 Context Recall。详细解释了每个指标的计算方法,并提供了一些示例。最后,它介绍了使用 RAGAs 和 LlamaIndex 进行 RAG 评估的主要过程。
2024-08-04 17:31:26
964
原创 《Advanced RAG》-02-揭开 PDF 解析的神秘面纱
PDF 文件是非结构化文档的代表,但从 PDF 文档中提取信息是一个具有挑战性的过程。PDF 文件由一系列指令组成,这些指令指示 PDF 阅读器或打印机在屏幕或纸张上显示符号的位置和方式。与 HTML 和 docx 等文件格式不同,后者使用标记来组织不同的逻辑结构。解析 PDF 文档的挑战在于准确提取整个页面的布局,并将内容(包括表格、标题、段落和图像)转化为文档的文本表示。这一过程涉及处理文本提取中的不准确性、图像识别以及表格中行列关系的混淆。
2024-08-04 17:22:40
1162
原创 《Advanced RAG》-01-朴素RAG存在的问题
文章阐述了RAG技术如何通过整合外部知识源来提升大型语言模型(LLM)的性能,使其能够产生更精确、上下文感知的回应,并减少幻觉现象。自2023年以来,RAG已成为基于LLM的系统中最流行的架构,许多产品依赖此技术。然而,RAG在信息检索、上下文整合等方面存在问题。
2024-08-03 22:34:37
1305
原创 《LlamaIndex 之美》-01-LLM、Prompt、Embedding基础入门
本篇文章仅带着大家认识一下LLamaindex的LLM、Prompt以及Embedding相关功能,实际上你会发现LLamaindex的能力和Langchain是非常相似的,甚至LLamaindex可以和Langchain一起使用。后面咱们会着重研究一下基于LLamaindex搭建使用RAG增强的ChatBot,以及相关的组件能力。
2024-08-03 18:18:50
1089
原创 《深度RAG系列》 LLM 为什么选择了RAG
这篇文章只是RAG系列的入门简介,后续针对RAG的企业落地方案RAG常见问题以及多种RAG实现方案进行详细讲解分析,敬请期待。
2024-07-30 22:50:15
1216
原创 《史上最简单的SpringAI+Llama3.x教程》-05-打破界限,Function Calling在业务场景中的应用
Function Calling 是一种技术,它允许大型语言模型(如GPT)在生成文本的过程中调用外部函数或服务。这种功能的核心在于,模型本身不直接执行函数,而是生成包含函数名称和执行函数所需参数的JSON,然后由外部系统执行这些函数,并将结果返回给模型以完成对话或生成任务。Function Calling 主要解决了大型语言模型在处理任务时的局限性,尤其是模型自身无法获取实时信息或执行复杂计算的问题。
2024-07-29 23:20:24
1352
原创 《史上最简单的SpringAI+Llama3.x教程》-04-RAG核心Embedding及向量检索Retrieval
RAG模型的工作流程可以分为两个主要阶段:检索阶段和生成阶段。最重要的就是检索阶段,当模型接收到一个查询(例如,一个问题)时,它首先使用检索组件查询一个预先建立的大型文档数据库,以找到与查询相关的信息。这一步骤通常利用最新的检索技术,如稠密向量检索,来识别与输入查询最相关的文档或文档片段。
2024-07-28 13:12:42
1463
原创 《史上最简单的SpringAI+Llama3.x教程》-03-ETL pipeline解决RAG文件处理问题
在企业内部构建基于大型语言模型(LLM)的应用程序时,数据的提取、转换和加载(ETL)过程至关重要。Spring AI 提供了一个集成的框架,可以简化这一过程,特别是在使用 LLM 进行检索增强生成(RAG)时。在实施 ETL 管道时,可以利用 Spring AI 提供的现成组件和工具,这些组件和工具经过设计,可以协同工作,简化数据处理流程。此外,Spring AI 的模块化设计允许开发者根据具体需求选择合适的组件,并根据应用程序的规模进行扩展。
2024-07-28 11:13:59
900
原创 《史上最简单的SpringAI+Llama3.x教程》-02-Spring AI 灵魂讲解prompt设计
上一节我们使用SpringAI+Llama3.1构建了一个基础的Chat案例,本节将会从Prompt着手深度聊聊在SPringAI中如何更好的使用Prompt。
2024-07-27 23:02:50
708
原创 《史上最简单的SpringAI+Llama3.x教程》-01- Spring AI Chat深度讲解
本文说明使用Ollama+Llama3.1为例进行说明SpringAI Chat的能力应用,其他模型的使用方式如上相同,万变不离其中,同时详细讲解了SpringAI Chat源码设计。
2024-07-27 12:35:27
976
原创 《史上最简单的SpringAI+Llama3.x教程》-00-Spring AI概述,快速入门
Spring AI是一个面向AI工程的应用框架,它的目标是将Spring生态系统设计原则(如可移植性和模块化设计)应用于AI领域,并推广使用POJO(Plain Old Java Object)作为AI领域应用程序的构建块。Spring AI的推出是为了简化包含人工智能功能的应用程序的开发,同时避免不必要的复杂性。该项目的设计理念借鉴了LangChain和LlamaIndex等著名Python项目,但在实现上针对Java环境进行了优化。
2024-07-25 22:09:55
1002
原创 《易车实战学习Langchain开发》-02-模型I/O,关于Prompt、LLMs、Output Parsers不能说的秘密
从Langchain的整体架构来看,Langchain的模型I/O(Model IO)模块是框架的核心组成部分,负责管理与大型语言模型(LLM)的交互。它包括输入、模型和输出三个主要部分,简化了模型输入数据的格式化、模型调用以及输出结果的解析过程。
2024-07-24 23:24:12
802
原创 Ollama 本地部署大模型 | Windows本地部署 Llama3.1 大模型
Ollama是一个开源的大型语言模型部署工具,它可以帮助用户快速在本地部署运行大模型。类似于Docker一样,仅仅用几行命令就可以运行一个大模型。”,之后重启ollama,我把下载模型的目录设置在了"D:\ollama"目录下。由于Ollama在下载模型时,会自动下载到C盘,因此需要设置下载目录。Ollama有一套用于运行和管理模型的 REST API。这样就基本完成了Ollama在本地部署大模型。在安装模型之前需要到模型仓库中获取模型信息。剩下的就是通过三方工具开发自己的大模型应用。
2024-07-23 22:09:22
1433
原创 《易车实战学习Langchain开发》-01-使用Langchain构建“易车”销售平台智能问答系统
项目名称:“易车”——汽车销售智问智答。项目介绍:“易车”作为一个大型的在线汽车销售问答系统,有业务流程和规范,同时也有员工的销售指导手册。新员工入职销售培训时,会分享相关的信息。但是,这些信息分散于内部网和其他部门目录各处,有时不便查询;有时因为文档过于冗长,员工无法第一时间找到想要的内容;有时公司销售政策已更新,但是员工手头的文档还是旧版内容。基于上述需求,我们将开发一套基于各种内部汽车销售知识的 “LLM-QA” 系统。
2024-07-22 23:32:59
1426
原创 《易车实战学习Langchain开发》-00-LLM入门及Langchain 环境
大语言模型(Large Language Model,简称LLM)是一种基于海量文本数据训练的深度学习模型。简单来说,它就像是一个超级聪明的“语言专家”,通过“阅读”互联网上无数的文章、书籍、对话等内容,学会了如何理解和生成人类语言。想象一下,你有一个非常聪明的朋友,她看过无数的书、文章和对话,对各种语言知识和语境都非常熟悉。当你问她一个问题或者让她帮你写一篇文章时,她能够迅速理解你的意图,并给出一个既准确又符合语境的回答或文章。
2024-07-21 16:54:24
843
原创 揭秘python-dotenv:那些鲜为人知的实用窍门
Python-dotenv是一个流行的库,用于在Python项目中管理环境变量。它允许开发者将敏感信息(如数据库密码、API密钥等)存储在.env文件中,而不是硬编码在代码里。这样做的好处是可以在不修改代码的情况下轻松更改应用程序的配置信息,并且由于.env文件通常不会被版本控制系统跟踪,可以防止敏感信息泄露。首先,确保你已经安装了 python-dotenv。文件,并根据提供的参数加载其中的变量到环境变量中。
2024-07-20 09:51:03
625
1
易车实战学习Langchain开发配套文档附件
2024-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人