这阵子在整理各种数据文件,发现这些年写的文字材料还真不少,统计出来各种乱七八糟的文章合集 3700 多篇。突然就有了个大胆的想法:是否可以基于当前火热的各种大模型,结合这些文字材料构建本地知识库?
各种搜索后发现,还真有不少此类应用。就目前个人了解,此类技术主要有两个方向:
基于大模型的增强搜索技术。利用现有的通用大模型(如 GPT 4.0、Claude 2 等提供 API 的闭源大模型、各种开源大模型等),不对已有模型进行额外的训练,仅利用大模型对文字语言的理解能力,从提供的各类文档中识别并总结问题的结果。这种方法容易实施,而且有大量现成的开源代码可用。不过此类模型的最大缺点在于没有对大模型进行针对性的训练,模型创造比较有限,只擅长于本地文档搜索。
对现有大模型进行迁移学习。整理文档资料,将其处理为模型能够识别的数据集,基于当前的大模型,对大模型进行训练。前提是大模型权重数据必须是已知的,而且模型训练需要非常多的计算资源。当前已有一些开源大模型提供了基础权重数据,其中有些模型(如 LLAMA 2 的 7 B、Chat-GLM 2 -6 B 等)可以在本地单机上部署使用(亲测 3090 显卡即可 ),因此有望在本地对这些模型进行微调训练。
前两天开源的 LLAMA 2 虽然评价比较高,不过当前对中文的支持极差。Chat-GLM 2 的中文支持较好,不过个人感觉模型能力稍弱(可能是 ChatGPT 用的多,和 ChatGPT 比起来比较弱),不过前期可以搭一个框架,后期慢慢训练。
之前利用 langchain+ChatGLM-6 B,利用部分自己翻译的 Fluent 文档搭建了个极小型的个人知识库,感觉还是蛮好玩儿的,虽然模型性能表现差了些(额,有时候会胡言乱语)。
过阵子写篇训练过程总结文章,有兴趣的道友可以一起玩儿。
(完)