• Hi ~ 我是 Immerse
• 本文首发于【沉浸式趣谈】,我的个人博客https://yaolifeng.com也同步更新。
• 转载请在文章开头注明出处和版权信息。
• 如果本文对您有所帮助,请点赞、评论、转发,支持一下,谢谢!
基上篇文章说道在五一期间看的 Google Prompt Enginner 白皮书,自己对 LLM 的工作原理有了更深的理解,这篇文章也是结合自己的理解做一个小结
这篇文章想聊聊 LLM 是咋“思考”的?它使用了那些核心策略让 AI 快速响应下一步的?
在白皮书中提到,在 LLM 中,使用了贪婪解码(Greedy Decoding)的方式,而这种方式是一种最简单、最直接的文本生成策略。
个人觉得简单来说就是:它的每一步都会选择“当前最好”的词,不管后面会不会翻车,有没有更适合的词。也就是“走一步看一步,绝不回头”,它的主要特点就是快,让 LLM 能快速获取下一个词,从而更快的响应。
但问题在于它会错过更适合的“词”组合
它的主要核心思想就是:在生成文本序列的每一步,选择当前概率最高的词元,然后将这个词元添加到已生成的序列中,作为下一步要预测的上下文内容
它的大体工作流程:
1. 开始:比如你输入:“今儿个天气真...”
2. 查找:LLM 就会拿到你这句话,在它那个巨大的概率词库寻找
3. 确定当前选择的词:看哪个词概率最高,比如找到了“不错”,且有 80% 的概率,然后就会选择这个词
4. 拼接:然后把刚才选择的“不错”这个词你的那句话后面,就成了:“今儿个天气真不错”。
5. 循环往复,直到“词穷”:然后 LLM 会继续用 “今儿个天气真不错” 这句话,再去查找下一个词是啥, 循环往复
它的大体的工作流程:
大体的工作流程
举个例子:
假设你要让 AI 生成一个句子:“我想吃__”
• 第一步,它在词汇表中找到了 “苹果” 这两个字概率最高(比如 80%),直接选择“苹果”,组成了“我想吃苹果”
• 第二步,选择“苹果”后,它可能觉得“派”概率最高(比如 70%),现在就组合成了 “我想吃苹果派” 这句话
如图
这里 LLM 每一步都选了“当下最好(也是概率最高)”的词,最终的结果就成功了 “苹果派”。
但是这句话并不通顺。我觉得 “我想吃火锅” 好像更合理一点。
所以贪婪解码只管眼前,打死都不回头
它的优点:
•简单高效:每一步中只会选择当下概率最高的词,从而提升响应速度。
缺点:
•容易短视:局部最优 ≠ 全局最优,这就会可能导致重复、不合逻辑的结果产生。(比如会生成“好的好的好的……”这种循环)
虽然贪婪解码简单高效,但它牺牲了结果的流畅性和多样性,因为它不会考虑长远的可能性
但 LLM 并不只是使用贪婪解码,直接就会返回对应的结果。
在实际应用中,它还采用了其他更复杂的解码策略,比如Top-K 采样和Top-P等等限制。这些规则综合起来就能让 LLM 生成的结果更加自然、更多样化
其他好文推荐
领取专属 10元无门槛券
私享最新 技术干货