北京模板建站,公司的介绍怎么写,精湛的网站建设,《网页制作与网站建设》整理并翻译自DeepLearning.AILangChain的官方课程#xff1a;Question Answer#xff08;源代码可见#xff09; 本节介绍使用LangChian构建文档上的问答系统#xff0c;可以实现给定一个PDF文档#xff0c;询问关于文档上出现过的某个信息点#xff0c;LLM可以给出关于该… 整理并翻译自DeepLearning.AI×LangChain的官方课程Question Answer源代码可见 本节介绍使用LangChian构建文档上的问答系统可以实现给定一个PDF文档询问关于文档上出现过的某个信息点LLM可以给出关于该信息点的详情信息。这种使用方式比较灵活因为并没有使用PDF上的文本对模型进行训练就可以实现文档上的信息点问答。本节介绍的Chain也比较常用它涉及到了嵌入embedding和向量存储vector store。
笔者注embedding指的是将一个实体映射到高维空间以高维向量的形式存储以最大限度地capture其信息自然语言处理使用embedding方式表示单词即词向量。自然语言处理语境下embedding都指的是word embedding词嵌入
首先是一个简单的例子 下面解释了一下底层原理
LLM‘s on Documents 文档上的大语言模型 由于最大token数限制LLM最多只能一次性处理几千个token。因而如果有一个文档级别的信息远大于几千tokenLLM没办法直接处理因而引入词嵌入embedding和向量存储vector store来解决这个问题 Embedding 词嵌入
嵌入向量捕捉上下文/含义相似指语义相似内容地文本对应相似的向量
如下图句子1)和2)语义相似因而它们的表示向量也相似。 因而我们可以使用表示向量的相似程度来判定两句话的相似程度在回答文档上的问题时先找出和提问相似的信息作为输入喂给LLM期望LLM能根据相似信息做出解答。
笔者注事实上LLM内部就是将文本转化为词向量tokenizer来处理的直接以向量形式存储节省了文本到向量的转化步骤。
Vecotor Database 向量数据库 当一个查询输入时先将其向量化然后跟向量数据库里面的所有项对比找出最相似的n项。 查询结果放入输入的上下文中喂给LLM得到回复。
下面分步解释过程 使用CSVLoader对象loader加载一个csv文件里面存放了户外服装相关信息打印第一行信息如上图。
因为文本量比较少不需要分块因而可以直接创建embedding查看一个embedding其实是一组词向量 上述过程可以使用RetrievalQA chain轻松实现
Stuff method 原材料方法 原材料是最简单的方法只需要将所有的原始数据放到prompt中作为上下文喂给语言模型。 优点只需调用一次LLM。LLM可以一次性访问所有数据。 缺点LLM有上下文长度对于大型文档或者多个文档超过上下文长度时无法生效。
additional methods 额外方法 Map_reduce将文档每一个块和提问一起输入一个LLM中汇总所有LLM结果再使用一个LLM处理拿到最终答案。 很有效可以处理任意数量的文档还可以并行但很贵且独立对待每一个文档即忽略了文档之间的关联性 Refine从一个块和LLM中得到回复之后再把结果作为下一轮的输出不断优化到最后一个块得到最终结果。 好处时考虑了文档之间的关联性和map_reduce代价相同 Map_rank处理所有块给每一个块和LLM的结果打分选一个分最高的作为最终结果。 需要LLM有能力给结果打分和map_reduce代价相同也没有考虑文档之间的关联性