文章目录
- 1 AnythingLLM是如何工作的
- 2 AnythingLLM中的几个关键参数和配置
- 2.1 分块处理
- 2.2 Embedding嵌入模型
- 2.3 TopK检索召回
- 2.4 LLM 大模型首选项
- 2.5 减少幻觉的设定技巧
- 3 告别幻觉和睁眼说瞎话
- 3.1 关键原则
- 3.2 关键机理剖析
- 3.2.1 Pin固定的含义
- 3.2.2 Chunk Size与向量数Vector Count
- 3.2.3 TopK检索召回片段数
- 4 参考附录
1 AnythingLLM是如何工作的
在AnythingLLM中,我们不会读取您的整个文件系统,然后将其报告给LLM,因为它会浪费99%的时间。
相反,您的查询是根据您的文档文本矢量数据库处理的,我们会从被认为与您的提示 “相关” 的文档中取回4-6个文本块。
例如,假设你有一个包含数百个食谱的工作空间,不要问“给我3种高卡路里食物的标题”。这个LLM会断然拒绝这一点!但是为什么呢?
当你将检索增强生成(RAG)用于文档聊天机器人时,你的整个文档文本不可能适合大多数大语言模型(LLM)的上下文窗口。将文档分割成文本块,然后将这些文本块存储在向量数据库中,这样可以更容易地根据你的查询,用相关信息片段来 “增强” 大语言模型的基础知识。
让我们将AnythingLLM视为一个框架或管道。
(1)创建了一个工作区。
LLM只能看到嵌入在此工作区中的文档。如果未嵌入文档,LLM将无法查看或访问该文档的内容。
(2)您上传文档。
这使得 “移动到工作区” 或 “嵌入” 文档成为可能。上传会获取您的文档并将其转换为文