如何为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