instavm.io/blog/llm-anti-patterns这篇文章总结了日常用大模型时的一些“反模式”,也就是我们在使用 LLM 时应该极力避免的习惯或行为。1. “我以前没告诉过你吗?” —— 关于上下文资源的浪费 问题: 上下文(Context)是一种稀缺资源,价格昂贵且有限("worth its weight in gold")。很多开发者习惯在同一个会话中反复发送相同的信息或文本,造成极大的浪费。 典型案例: 在“计算机操作”(Computer Use)场景中,当鼠标从 A 点移动到 B 点时,屏幕画面几乎没有变化(可能只是鼠标移动了 1 毫米)。但由于没有优化,系统会在每一次 API 调用中都发送一张新的、几乎重复的截图。这不仅浪费了 Token,还增加了延迟。 讽刺的现状: 某些大公司一方面推出了“上下文管理工具”来帮助开发者压缩/删除冗余信息,另一方面在他们自己的“计算机操作”API 中却做着完全相反的事情——在那里面重复发送几乎一样的截图。 解决方案: 应该只在状态发生显著变化时才发送新的截图或信息。作者团队为此开源了一个名为 click3 的工具,专门解决这个问题。2. 让 LLM 做它不擅长的事 (Not playing to model strengths)—— 强行让文科生做理科题 问题: 很多时候我们试图强迫 LLM 直接通过“思考”来解决它本质上不擅长的任务。 典型案例: 1️⃣生成带文字的图片: 直接让模型生成一张包含特定文字的图片,效果通常不好。 2️⃣数数: 比如让 LLM “数一下这个字符串里有多少个字母 r”。由于 LLM 基于 Token 预测,它非常不擅长这种精确的字符计数。 解决方案: 利用 LLM 的编程能力来解决这些问题,而不是利用它的推理能力。 1️⃣与其让它直接生成文字图片,不如让它写一段 Python 代码来绘制图片。 2️⃣与其让它直接数数,不如让它写一段代码来计算字符串长度。3. 忽视“大海捞针”效应 —— 随着上下文填充,准确率会下降 问题: 许多开发者认为只要上下文窗口没满,就可以无限往里面塞东西。但实际上,随着上下文被填满,模型的注意力会分散,准确率(Accuracy)会显著下降。 现象: 这就是著名的“大海捞针”现象——模型往往能记住开头和结尾的信息,但很容易忽略中间的大段信息。 解决方案: 保持上下文的精简。要做到“具体”和“精确”,只添加最相关的上下文,不要指望模型能从海量噪音中自动提取关键信息。4. 期望魔法能解决确定性问题 (Expecting magic for deterministic tasks)—— 概率模型 vs 确定性逻辑 问题: 试图用一个概率模型(LLM)去解决必须 100% 准确的确定性问题(Deterministic requirements)。 观点: LLM 是基于概率的,它并不具备像 CPU 那样的严密逻辑运算能力。 解决方案: 将确定性的需求转移到确定性的代码执行层。 不要问 LLM:“如果 A>B 且 C
instavm.io/blog/llm-anti-patterns这篇文章总结了
蚁工厂
2025-11-29 20:53:01
0
阅读:0