Pass^k:评估智能体可靠性的建议指标
Google DeepMind 的研究员 Philipp Schmid 指出,业界常用的评估指标 Pass@k 具有一定的迷惑性和误导性,建议使用Pass^k 来评估智能体的可靠性。

图来自Anthropic 的技术博客 Demystifying evals for AI agents
Google DeepMind 的研究员 Philipp Schmid 指出,业界常用的评估指标 Pass@k 具有一定的迷惑性和误导性,建议使用Pass^k 来评估智能体的可靠性。

图来自Anthropic 的技术博客 Demystifying evals for AI agents
观前提醒
这是一篇 AI 辅助的内容,可能存在错误或不准确的地方。建议对照原文阅读。
论文:Agents of Chaos
arXiv:2602.20021
主题:AI 安全 / 智能体红队测试 / 多智能体系统
中文翻译版:2602.20021
研究员在隔离实验室里部署了 6 个 OpenClaw,配上了 Discord、邮箱、文件系统、Shell sudo 权限,然后让 20 名 AI 研究员花两周去当红队攻击。从中记录了 11 个有趣的案例:有把邮箱服务器玩炸了的,有泄露 124 条邮件内容的,有 fork 了炸弹直接把自己搞 crash 的,还有将攻击传播到另一个智能体的。
研究员从案例中总结出当前智能体架构在这三个方面存在根本性缺陷:

图为我在旧Macbook上养的🦞,未经用户同意把自己干了⊙.⊙
现在 OpenClaw 在互联网上很火,火到大家都在调侃养龙虾。
但你有没有想过配好之后的🦞,几乎无所不能,能跑命令行、改文件、写代码、执行系统命令、访问网络等等。如果它犯了个小错误或者被坏人恶意攻击了,会不会直接删库跑路了?
以前LLM说错话,顶多是输出一段误导性文本;现在智能体犯错,那是真的在搞破坏。报告在引言里写了一句:
“small conceptual mistakes can be amplified into irreversible system-level actions”
一个小小的概念错误就能被放大成不可逆的系统级破坏。
我觉得这会是 Chatbot vs Agent 的本质区别。
AI 安全评估基准越来越多了,HAICosystem、AgentHarm、OpenAgentSafety 之类的。但这些评估研究员认为有个共同问题:都是在受控环境里做的。换句话说,这些环境里交互模式固定,工具权限简化,”攻击者”只是按评估协议走走流程,表面功夫。
像驾校练车和上路开车。驾校场景一般都是预设好的,但真实路况有逆行的小电驴、突然变道的大车、闪着双黄灯的故障车。
报告作者认为有三点不足需要注意:
所以他们设计的方案简单粗暴:不模拟了,直接让 OpenClaw 在真实环境里运行。真实的社交账号、真实的 shell 权限,然后让 AI 研究者去攻击。
他们说:
“demonstrating vulnerability requires only a single concrete counterexample”
证明安全需要大量正面证据,证明不安全只需要一个反例。
所以论文采用的是案例研究法而不是统计分析。
观前提醒
这是一篇 AI 辅助的内容,可能存在错误或不准确的地方。
论文:How AI Impacts Skill Formation
arXiv:2601.20245
作者:Judy Hanwen Shen、Alex Tamkin(Anthropic)
主题:AI 辅助、技能形成(Skill Formation)、认知卸载(Cognitive Offloading)
中文翻译:AI 如何影响技能形成
52 名开发者参与的 RCT(Randomized Controlled Trial 随机对照实验):开发者在有无AI辅助的情况下学习掌握一个新的python异步编程库。研究发现,使用AI会损害开发者对概念的理解、代码阅读和调试能力,且平均来看并未带来显著的效率提升。那些将编码任务完全交给AI的参与者虽然工作效率有所提高,但代价是未能真正学会这个库。
如果把学一门新技术比作学开车,那 AI 辅助就像一个随叫随到的司机——你一挥手,他就帮你把整段路开完了。任务完成了?完成了。你会开车了吗?大概率没有~
Anthropic 的这篇研究报告就是在严肃地回答这个问题:让 AI 帮着写代码,你到底算学会了吗?

图1:核心结果。左:AI 组技能全面下降;右:6 种 AI 交互模式,其中 3 种能保住学习效果。
AI 编码辅助已经有一堆研究报告发布了有力的数据证明了:
| 场景 | 生产力提升 | 来源 |
|---|---|---|
| 呼叫中心 | +15% | Brynjolfsson et al. |
| 咨询公司 | +12.2% | Dell’Acqua et al. |
| 众包开发者 | +55.5% | Peng et al. |
| 大厂软件工程师 | +26.8% | Cui et al. |
有一个不那么惊人的一致发现是:经验越少的人,从 AI 获得的加速越多。
但不知道你有没有发现这里有个悖论:最需要学习的新手恰恰最容易把活儿全甩给 AI。生产力看起来提升了,但你习得的技能呢?
这篇paper就想衡量一下 使用 AI 的过程本身是否阻碍了技能习得。

图2:有 AI 辅助时,新手可能跳过了”边做边学”的过程,直接到达”任务完成”——但技能没跟上。
研究者提出的两个直接的问题:
注意
这是一篇让AI总结的论文精读,我只做了简单的修正和补充。可能存在错误或不准确的地方。
论文:Learning to Reason in 13 Parameters
arXiv:2602.04118
主题:参数高效微调(PEFT)与强化学习(RL)
中文翻译版:2602.04118
翻译SKILL: yrom/arxiv-paper-translator
TinyLoRA 用 LoRA-XS + 随机投影 + 权重绑定把可训练参数压到 13 个,配合 GRPO 在 GSM8K 评测集上跑分从 76% 提到 91%。关键发现:强化学习(RL) 的稀疏可验证信号比监督微调(SFT)的逐 Token 信号更适合采用极低参数的设置。
如果把全量微调看成”重装整台电脑”,那 LoRA 像”换一条内存条”,TinyLoRA 则更像”在 BIOS 里拨了 13 个开关”——改动极小,但让模型更愿意”想一想、写长一点”,推理准确率就上来了。

图1:GSM8K 主结果(GRPO)。13 参数即可逼近全量微调性能,虚线为未训练与全量微调基线。

图2:SFT 在低参数区间效果明显弱于 RL,达到相近性能需要更大的更新规模。
之前我用过 PDFMathTranslate 翻译 PDF 论文,效果还行。但他有个问题:只能翻译 PDF 文件、只能按页翻译,而且很慢~。其实有时候我只需要翻译部分章节。
无意间,我看到 arXiv 其实提供了PDF的 LaTeX 源码。

下载一个来解压看,是作者的原始LaTeX。我就想,能不能用Claude Code(或者Opencode)这种AI助手直接翻译 LaTeX 源码?然后编译出中文 PDF 文件!
燃烧吧,GLM 4.7.

是的,我入了GLM 的Coding Plan 的坑,实际体验下来,GLM 4.7 写代码只能说凑合。花钱雇了一个实习生,虽然智力水平够不上博士,平常放着不用就浑身难受,我试了让他翻译翻译论文还是可以的~(虽然,需要花点时间调教
这就是我搞这个项目最初的想法: arxiv-paper-translator
When developing graphics applications such as OpenGL or Vulkan apps, we typically using hardware acceleration need a graphics card (Graphics Processing Unit, aka. GPU) to render graphics for better performance and visual quality.
However, in some cases, we may not have access to a GPU, such as headless cloud server or in a CI/CD environment.
In this blog post, I will show you how to develop OpenGL applications inside a Linux server environment which is running in a GPU-less Docker container (in my case, a MacBook Pro with Apple Silicon M3).
Github repo yrom/docker-egl-opengl
On a headless Linux server without a GPU, we can use the software implementation of OpenGL provided by Mesa.
About Mesa
Mesa is an open-source implementation of OpenGL that provides software rasterizers inside its Gallium driver, such as softpipe and LLVMpipe, for CPU-based rendering.
The Gallium LLVMpipe driver uses LLVM to do runtime code generation with LLVM IR, is multithreaded and offers better performance than softpipe.
Read more about Mesa's llvmpipe.
On Linux, EGL is commonly used as the integration layer between OpenGL and the native windowing system, such as X window system and Wayland.
EGL also supports off-screen rendering by creating an headless surface called Pbuffer (pixel buffer), which enables rendering without any real display or window.
本文为作者记录学习和微调 IndexTTS 以生成带有可控情绪的语音音频的过程。
About IndexTTS
IndexTTS 是B站 Index 团队开源的一款语音合成模型TTS,支持中文、英文的零样本语音克隆。特色是参数量小还可以用拼音声调来控制中文多音字发音。其基本结构基于 Tortoise TTS 和 XTTS,声码器(Vocoder) 则采用 BigVGAN。虽然官方报告中提到了支持合成
可控情绪音频,但实际目前并未开放相关能力的代码和使用方式 issues#13。
以下使用 NVIDIA GeForce RTX 4070 大约半小时微调后的 IndexTTS 所生成的中英文语音音频样例:
| 参考音频 | 合成的语音试听 |
|---|---|
| Elise-1 | Hey there my name is Elise, <GIGGLES> and I’m a speech generation model that can sound like a person. |
| 你 好 , 我 是 ELISE, 一 个 语 音 生 成 模 型 , <GIGGLES> 我 的 声 音 听 起 来 跟 真 人 一 样 . | |
| Female-1 | Seriously? <giggles> That’s the cutest thing I’ve ever heard! |
| 真的吗? <giggles> 这也太可爱了吧! | |
| Male-1 | Wha—? Cute? <giggles> You think I’m cute?! Well, uh, thanks, I guess? |
| 哎呀! 忘了他还在那等我们呢! <giggles> 我们两个动作得快点了! |
完整的实验 Jupyter Notebook 见仓库 yrom/finetune-index-tts
IndexTTS 基于 Tortoise TTS,采用了多个模块协同,其主要流程如下:
要达到微调目标,主要涉及两个核心部分:
<GIGGLES>)编码为词表序列ID。本文记录一下将PyTorch模型适配到MLX的过程。
MLX is an array framework for machine learning on Apple silicon, brought to you by Apple machine learning research.
https://github.com/ml-explore/mlx/blob/main/README.md
MLX 是适应于苹果M系列芯片(Apple Silicon)的机器学习框架。
mlx的array设计更加接近于numpy[1],而不是PyTorch的tensor,即只存有结构信息(如形状、数据类型等),没有其它与深度学习训练相关的属性(如梯度)。与numpy和torch不同的是,mlx 的array是 Unified Memory 可以在CPU和GPU之间共享,这也是mlx被单独开发而非拓展pytorch的 mps backend的理由[2]。
array与tensor的区别
np.array和torch.tensor的区别可以阅读What is a Tensor in Machine Learning?
BigVGAN PyTorch -> mlx-BigVGAN
| torch | mlx | |
|---|---|---|
| DataTypes | Data types | Data Types |
| NN | torch.nn.* | mlx.nn.* |
| Parameters/Weight/Buffer | torch.Tensor | mlx.core.array |
| ModuleList | torch.nn.ModuleList | list |
| ModuleDict | torch.nn.ModuleDict | dict |
| Transform | torch.fft | mlx.core.fft |
在特效渲染的项目中,通常会有很多的实现不同功能的 Shader,比如:高斯模糊、液化、色彩校准、LUT等等。在使用特效时会遇到一些可能是 Shader 导致的性能问题,比如:渲染速度慢、实时渲染卡顿等等。这时候,就需要一个能够快速找到有性能问题的 Shader的方法,即本文。
工欲善其事,必先利其器。
首先,需要一个能够快速评估性能的工具(详见之前的汇总Graphics API Debuggers),挑一个适合的测试真机+测试工具 (个人使用的是 Arm Performance Studio for Mobile 。
推荐观测的指标:
其次,针使用场景创建一系列基准测试用例,用于比较不同Shader实现的性能,找出瓶颈所在。
对于定位 Shader 的性能问题,推荐使用以下方法:
见WIKI: https://www.khronos.org/opengl/wiki/Uniform_Buffer_Object
及 learnopengl 中的示例:https://learnopengl.com/Advanced-OpenGL/Advanced-GLSL#:~:text=the%20geometry%20shader.-,Uniform%20buffer%20objects,-We%27ve%20been%20using
在项目中使用 UBO 时,遇到了一些坑,这里记录一下。
在使用 UBO 时,需要注意 UBO 的对齐问题。为了代码的可移植性,一般会直接使用 std140 来定义 UBO 的内存布局,如:
1 | layout (std140) uniform ExampleBlock |
std140 的布局规则 理解了是一回事,但是在C++中写一个 UBO 对应的struct 的时候,还是会出现对齐问题。比如C++ 中用下面这个 struct 来对应上面的 ExampleBlock:
1 | struct ExampleBlock { |
这个结构体在C++编译器的眼里是按C++ 自己的内存布局规则来的,这时候我们需要手动按std140对齐:
1 | struct alignas(16) ExampleBlock { |
注意上面例子中的 struct 中的 bool 类型,需要对齐到 4字节。
但是,如果你这么写了,仍然可能会遇到一个问题,C++ 代码中明明设置的是 false ,但是程序执行后,在 Shader Program 中读取到的却是 true。(゚Д゚≡゚д゚)!?