0%

基于知识库的LLM问答系统参考资料

技术路线图总览:https://github.com/imClumsyPanda/langchain-ChatGLM/blob/master/img/langchain+chatglm.png

关于LLM的相关项目

  • ChatGLM-6B项目的GitHub地址:https://github.com/THUDM/ChatGLM-6B,这个部署特别方便,也可以参考学习如何使用gradio构建webui。ChatGLM-6B算是中文LLM里比较好用的了。
  • ChatGLM2-6B项目的GitHub地址:https://github.com/THUDM/ChatGLM2-6B,部署也很方便,torch 1.12.1版本可能无法使用更优的attention算子,半精度下显存占用大约比ChatGLM-6B高1G,但是token的数量上限显著升高。
  • GLM10B项目的Github地址:https://github.com/THUDM/GLM,这个没用过。

关于知识库检索的LLM的相关项目

Github项目

知乎文章

ModelScope上提供的成品模型

其他

一点体会

  • 大多数知识库检索项目的技术路线图都是类似langchain-ChatGLM项目这种的,但是这个技术路线非常简略。
  • 比如在做搜索的那一步,大多数路线图就是用的向量检索,但是实际上这样做效果很差。
  • 比如在向量检索后加用文本相似度比较模型做重排,效果会好很多。
  • 进一步,这个问题完全可以借鉴专业的检索系统是怎么做的,召回、粗排、精排。
  • 也可以扩充检索信息来源,原来只用向量,那么是否能提取主题词,或是先用模型对分割后的文本块做summarize。
  • 另一方面,文本分块也很重要,是否基于规则的分割就够用了(个人体感是不够用的),那选用什么模型能解决这个问题,怎么处理中文、英文、代码混合的情况?
  • 那个路线图没说的是,检索出参考文本块后也可以做一个上下文拼接。
  • Prompt怎么设计比较好,什么程度的LLM能够满足使用?个人体感像ChatGLM2-6B这种对Prompt的响应就很差,ChatGPT3.5就好很多。这个对最终回答质量的影响也非常大,毕竟需要LLM做的就是从一堆杂乱的信息中提取出有用的部分给用户。