如何为GPT/LLM模型添加额外知识?

retrieve-then-generate:类ChatGPT Retrieval Plugin的技术方案

核心:根据 输入query 检索本地/私有数据库/文档中的文档片段(检索可以是文本检索或者基于向量的检索),作为扩充的上下文 context,通过 prompt template 组合成一个完整的输入,继而调用模型生成response。

简版工作流:chunk -> index -> retrieve -> construct input -> LLM

推荐开源工具:

(1)OpenAI 的官方插件:ChatGPT Retrieval Plugin

(2)llama-index:https://github.com/jerryjliu/llama_index,提供了一个本地/私有数据收集(ingestion)和数据索引(indexing)的解决方案,构建起外部数据和 LLM 之间的接口。

一个利用 llama-index 定制个人论文检索的示例:llama_index/examples/paul_graham_essay at main · jerryjliu/llama_index。

(在没有OpenAI API的情况下,llama-index 支持调用自定义的 LLM。)

(3)LangChain:https://github.com/hwchase17/langchain,也是为了更好的构建外部数据、其他应用与 LLM 进行交互的接口框架。

LangChain应用参考示例:GPT-4 & LangChain——PDF聊天机器人-地表最强全文搜索。

llama-index 和 LangChain 可以组合使用,LangChain 中提供了 面向不同任务的 prompt template 和 prompt chain。


蓝海大脑 京ICP备18017748号-1