最近一直想基于RAG(检索增强生成,Retrieval-Augmented Generation)和大预言模型(Large Language Model, LLM)技术搭建一套属于自己的个人知识库,以为会涉及到诸多复杂的流程,包括模型调用、界面开发等。今天找到了一点资料,发现特别简单,花了几分钟实现了一下,主要用到了三个软件:
- Ollama
- Docker
- AnythingLLM
1 基本资料介绍
大预言模型已经很常见了,包括ChatGPT、Claude、通义千问等等,此处就不再过多介绍了,这里主要介绍用到的几个软件和基本技术。
1.1 RAG
检索增强生成(RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。大型语言模型(LLM)用海量数据进行训练,使用数十亿个参数为回答问题、翻译语言和完成句子等任务生成原始输出。在 LLM 本就强大的功能基础上,RAG 将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。这是一种经济高效地改进 LLM 输出的方法,让它在各种情境下都能保持相关性、准确性和实用性。
与RAG并生的另一种技术叫监督式微调(SFT),是将LLM模型注入新的知识库并将模型本身进行训练以获得所需要的结果,需要有一定的硬件设备。两种技术并不矛盾,其实互相结合才