内容:
_1. 相关机器学习(ML)概念的回顾(精确度/召回、LLM的直觉)
- 使用序列概率作为LLM置信度
- 过滤低质量的LLM输出的一个案例研究的成果_
大型语言模型(LLM)如ChatGPT、Claude、LLaMA非常强大,但仍处于起步阶段,可能会带来一些独特的风险。有时,这些模型似乎能理解情况,并轻松回答问题。然而,其他时候,它们可能会输出无关的信息,甚至凭空捏造(编造信息)。
据报道,ChatGPT编造了一些法律案例,这些案例随后被一家律所引用。详情请参阅《卫报》相关报道。
为什么用LLM?注:LLM的具体含义需根据上下文进一步解释。
许多公司正在探索使用大型语言模型(LLM)和机器学习来改善客户体验的方式。一个常见的应用场景是解决客户支持问题。例如,一家公司每天可能收到数千个支持请求,其中一些可以通过内部文档解答(例如,“如何添加一个承包商?”、“如何将员工状态改为兼职?”)。在这种情况下,基于LLM的问题回答服务可以帮助客户通过自然语言提问快速找到答案。
在这种应用中,确保高度的信心,模型能够准确理解请求并给出准确的回答是至关重要的。让我们看看一种可能的方法,通过模型的置信度来实现。
ML 快速回顾 精确率-召回率曲线 (PR曲线)在传统机器学习(ML)的建模方法中,我们经常通过对模型置信度的控制来避免输出质量差。
- 通常,低置信度的输出更可能包含错误。
- 我们力求在这种权衡中找到平衡:最大化向用户展示的“准确的预测”数量(高召回率),并最小化向用户展示的“错误的预测”数量(高精确率)。
- 我们选择一个合适的置信度阈值来达到这种平衡。
ROC曲线 和 精确率-召回曲线 (PR曲线) 是观察这种平衡的常见方式。
PR曲线的例子,如图所示,每个点表示模型在不同信心阈值下的表现情况 [来源:]
不过,LLM的输出是自由形式的文本,而是一个类别标签和置信度,与传统机器学习系统不同。因此,这些技术似乎不太适合依赖LLM的机器学习系统。但在我们放弃之前(剧透:我们其实可以接近我们所需的结果),让我们来看看LLM实际做了什么。
看:GPT 感觉生成预训练的变压器(GPT)是常见的大型语言模型架构。(参见维基百科上的词条了解更多信息)
- GPT 模型使用有限的词汇表(标记)—— T
- 在生成序列中的每个标记位置,GPT 计算词汇 T 的可能性分布—— P(T_i | 上下文)。可以将其视为一种 n-gram 模型(n-gram 语言模型),其中标记的概率是通过一个大型神经网络(GPT-4 有 1.76 万亿个参数)来估计的。
- GPT 的“知识”实际上是每个标记在当前上下文中的条件概率形式存储的(见图 1)。
图1 [来源] GPT/LLM 计算出当前上下文“the boy went to the ____”中最有可能出现的词的概率分布。利用其对世界的理解,LLM 最有可能的是,一个典型的男孩更可能去游乐场或学校,而不是去往医院。(GPT/LLM 模型)
我们能从这些token log-probabilities中学到些什么?
在大型语言模型中找到自信 LLM 的置信度分数我们在机器翻译的文献中寻找检测幻觉的指导,这些文献中经常使用transformer机器学习模型。
- “我们假设,模型在产生幻觉时并没有表现出信心。”[1] 这可以通过日志概率来捕捉。
- Seq-Logprob(即“LLM 信心值”)—— 序列生成的日志概率平均值。如果 GPT 生成序列“the boy went to the playground”,这些 logprobs 为([-0.25, -0.1, -0.15, -0.3, -0.2, -0.05]),我们计算 GPT 的信心值如下:
llm_confidence = np.mean([-0.25, -0.1, -0.15, -0.3, -0.2, -0.05]) # -0.175
长度为 L 的 LLM 输出,计算每个位置的 top-likelihood 标记 P(y_k|… 平均概率。
为什么这好:
- 质量不错。 “Seq-Logprob 是最好的启发法,并且与基于参考的 COMET 表现相当。模型越不自信,生成的翻译就越可能不好” [1]
- 免费使用。 “Seq-Logprob 分数很容易通过 LLM 生成” [1]
在实现大型语言模型服务时,我们可以:
- 收集输出的Seq-LogProb(置信度得分),以了解预期输出的置信度分布。Logprob得分可以通过OpenAI API获取。[3]
- 监控LLM输出在置信度分布的低端部分。
-
使用这个决策阈值*,你可以:
a) 拒绝低质量的响应
b) 为低置信度的响应引入专家审核
c) 尝试收集更多信息,使LLM更加有信心:大型语言模型的置信度对变化很敏感。因此,需要根据提示的改变来调整置信度边界
Figure 2: average LLM confidence distribution over a sample of 1K generations. A nice normal distribution.
在我的测试过程中,我发现不自信的回答往往含糊其辞或过于宽泛(见图3左侧),更可能胡编乱造,也不太可能遵循提示中的指导,比如提供来源(见图3右侧),或者参与对话。自信的回答通常指令明确,准确理解问题和解决方案。利用这些信息,我们可以筛选出不自信的回答,避免它们被呈现给客户。
如图3所示:用户提问的示例回答(左)。置信度与LLM回复是否包含来源链接的关系(二进制)。
常见问题解答示例. 利用LLM的置信度来过滤LLM的失误为了实际探索这种方法,我进行了一次小实验。我将1000个支持请求提交给我们的问答大语言模型(LLM)服务,记录了LLM的置信度分数。
然后我让我们的客户支持专家将LLM生成的输出标记为“高质量”或“质量差”。这给了我一个二分类标签,我可以将其与LLM的置信评分对应,使两者相匹配。
这项案例研究揭示了最自信和最不自信的大型语言模型(LLM)回复之间存在69%的相对差距。(见图4)
图4:等大小区间的平均准确率与LogProbs置信度及其误差棒。准确率最高的置信区间为76%,准确率最低的置信区间为45%
现在我们有了方法来调节LLM系统的敏感度,这使我们更接近传统ML系统,并且可以更精确地控制成功率。
大模型 精准率-召回率曲线使用我们的二元标签和LLM置信度作为敏感度,我们甚至能够为LLM系统绘制出一条实际的PR曲线!
Figure 5: LLM precision-recall curve for FAQ service case study
我们可以将其视为“幕后”。即使我们不总是看到,这也发生在大多数生成的LLM“推理”的幕后。
这将帮助我们有效防止质量差的回答被客户看到。
结论如下:这样的更可靠的LLM系统- LLM 的置信度评分在捕捉不实信息和区分劣质与优质 LLM 输出方面极为有效。
- 我们可以以自动化手段在 LLM 系统中实现更好的用户体验设计(比如专家审核)。
[1] 大海捞针:神经机器翻译中的幻译研究,Nuno M. Guerreiro 等人
(https://aclanthology.org/2023.eacl-main.75.pdf)
[2] 更近的相关研究:利用语义熵检测大规模语言模型中的幻觉
-
https://cookbook.openai.com/examples/使用对数概率
[4]相信还是不相信你的LLM — 一个相关的想法是,利用多个生成结果间的互信息来衡量LLM的置信度
共同學習,寫下你的評論
評論加載中...
作者其他優質文章