[THUDM/ChatGLM-6B][Feature] 请问如何基于特定文本对其中的内容进行解答?

2024-07-12 565 views
7

例如,我有一个博物馆的展品资料,我需要用这个资料作为模型的上下文环境,能够根据资料对用户的提问进行回答。 使得用户提问关于展品的问题,模型能够给出正确的解答。

回答

5

最好是自己建立资料然后Fintune模型,整体会麻烦一些,但是训练得好的话用起来会比较简单效果也好。

简单的方式就是把资料全部分成段落,每个段落建立embedding,然后根据用户提问计算embedding相似的段落,拿着段落作为context放到prompt里面直接向现有的模型进行提问,例如:根据下面的段落请回答用户的这个问题:xxxxxx。这种方式不用自己Finetuen模型,操作简单一些,但是由于每次提问只有少量的段落作为context,无法回答那种需要对不同段落进行联系才能回答的问题。

8

@imClumsyPanda 这个好,但是我还没大看懂,我需要多研究下😂

@AndersonBY 实际上我没有什么finetune经验,所以想请教一下:

  1. finetune需要多大的语料才能达到比较好的效果?博物馆的资料说多不多说少也不少
  2. finetune后的模型会出现编造的现象吗?比如把a的介绍说成b的,或者杂糅多个展品的介绍?
1

@MoCongxin 我做了一个相对简单点的实现,可以看看 langchain-ChatGLM

5

@imClumsyPanda @l15y 非常感谢!

2

发现把您项目Api中qa.top_k…改为3,基本能命中文档,输出效果较好。