因为随着大模型在各行各业的渗透除文本数据外诸如表格和图形数据等越来越多的结构化数据正被融入 系统。
比如在一些h的场景下就需要将用户的内容转化为语句进行数据库查询这就是--。
再比如工业设计场景下可能需要将用户的转化为设计指令或者设备控制指令这就是--h。 在查询构建环节我们将实现--、--h和-(让大模型自行构建)三种优化方案。 v(检索) 在检索的时候用户的问题会被输入到嵌入模型中进行向量化处理然后系统会在向量数据库中搜索与该问题向量语义上相似的知识文本或历史对话记录并返回。
在朴素中系统会将所有检索到的块直接输入到 生成回答导致出现中间内容丢失、噪声占比过高、上下文长度限制等问题。 在检索环节我们将实现k(重排序(纠正性)等方案。
(生成) 在生成环节可能会出现以下问题: 第一当系统忽略了以特定格式(例如表格或列表)提取信息的指令时输出可能会出现格式错误; 第二输出错误或者输出不完整比如对于一些比较类问题的处理往往不尽 洪都拉斯电报筛选 人意以及可能出现的幻觉问题; 第三可能会输出一些不太符合人类社会偏好政治不正确的回答 在生成环节我们将重点介绍-方案。
要覆盖所有上面提到的优化环节需要较长的内容篇幅因此风叔会分成几篇文章来写。接下来我们先从整体上看看一个最小化的系统是如何实现的。 二、构建最小化的v 系统 发展初期其核心框架由索引、检索和生成构成这种范式被称作v 。
v 的原理非常简单包括以下三个步骤: 索引:这一过程通常在离线状态下进行将原始文档或数据进行清洗并分块然后将分块后的知识通过模型生成语义向量并创建索引。 检索:对用户输入的问题使用相同的模型计算嵌入和文档块嵌入之间的向量相似度然后选择相似度最高的前个文档块作为当前问题的增强上下文信息。
生成:将原始和相关文档合并为新的提示然后由大型语言模型基于提供的信息回答问题。如果有历史对话信息也可以合并到提示中用于进行多轮对话。 下面风叔通过实际的源码详细介绍如何构建一个最小化的v 系统。