为了提高问答「准确率」,有两个优化方向
1、增加训练集数据
2、增加提问上下文语料,答案就在其中
OpenAI 是不允许用户来训练数据的,他的 model 是固定且通用的。所以增加训练集数据并不可行。
使用chatgpt 嵌入,让chatgpt根据语料内容回答。
实际应用,产品客服、产品介绍、某专业技能问答。
我们只能使用方法
2 :提供提问上下文(context)。
在 openai 提供的能力中,可以在 prompt 中增加上下文语料,来提高 回复 准确率。
但是我们如何从自己的语料库(由语料片段组成)中,找到和提问相关(答案需要在上下文语料中)的 context 呢?
openai 提供了 Embedding 的接口,可以用 input (输入一段文字)来计算一坨 embedding 向量值。
我们可以通过将(语料片段的向量)与(问题的向量)取(最相似的向量),来判断问题和语料片段的相似(similarity)度,
这样我们在 prompt 里,把最相似的语料片段作为 context 放进 prompt ,就可以得到最正确的 completion。