# 需求

老师:现有的 AI 还不太可控,可靠性不强,对企业来说,微调大模型意义不大。我是想在个性数据表的基础上使用 AI,把所有的数据喂给 ai 来训练,变成把现有数据整理为 20 个数据表比如人际关系表、科研工作表。提问 xxx 的手机号为多少时?不是由 AI 来回答,由 AI 来确定,上面这句话应该属于哪个表 (比如确定为人际关系表),再从人际关系表中找出相应的信息来返回。

看法:基于知识库问答?也许并不需要 "整理成 20 个数据表",

# 学习

# 技术方案选型

目前,大模型已经可以通过对自然语言的理解揣摩用户意图,并对原始知识进行汇总、整合,进而生成更具逻辑和完整性的答案。然而,仍存在以下几个问题,导致我们不能直接使用这些模型来对特定领域知识进行问答。

  • 专业性不足:作为通用大模型,对专业领域知识的训练不足,可能会产生幻觉以及信息丰富度不足的问题。
  • 时效性问题:模型的训练数据基于某个时间之前的数据,缺乏最新的信息,每次添加新数据都会导致高昂的训练成本。
  • 安全性问题:模型无法访问企业内部私密文档,且这些文档不能直接用于 Fine-Tuning。

为了解决这些问题,业界采用了如下几种技术手段来为大型模型提供额外知识。

  • Fine-Tuning(微调):使用特定领域的知识对基础大模型进行微调,以改变神经网络参数的权重。虽然适用于特定任务或风格,但需要大量资源和高质量的训练数据。
  • Prompt 工程:将行业领域的知识作为输入消息提供给模型,让模型对消息中的知识进行分析和处理。这种方法在正确性和精度上表现良好,但有文本长度限制,对于大规模数据不够高效。
  • 与传统搜索结合:使用传统搜索技术构建基础知识库,然后使用大语言模型处理用户请求,对召回结果进行二次加工。这种方法具有更高的可控性和效率,并适用于大规模数据。

为了确保准确性和效率,我们选择了第 2 种和第 3 种方式相结合的方案,通过向量数据库将知识外挂作为大模型记忆体,使用 LangChain 作为基础开发框架来构建知识库问答系统,最终依靠 Prompt 工程和大模型进行交互。

# 引用

数据库运维工作量直接减少 50%,基于大模型构建智能问答系统的技术分享 - 知乎 (zhihu.com)