AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: AxBench 是由斯坦福大学推出,用于评估语言模型可解释性方法的基准测试框架,支持概念检测和模型转向任务,帮助研究者系统地比较不同控制技术的有效性。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


大家好,我是蚝油菜花,今天跟大家分享一下 AxBench 这个由斯坦福大学推出的评估语言模型控制方法的基准测试框架。

🚀 快速阅读

AxBench 是斯坦福大学推出的一个基准测试框架,用于评估语言模型的可解释性方法。它通过合成数据生成训练和评估数据,支持概念检测和模型转向两个核心功能。AxBench 提供了统一的评估平台,帮助研究者系统地比较不同语言模型控制方法的有效性。

  1. 核心功能:概念检测和模型转向任务。
  2. 技术原理:基于合成数据生成、内部表示干预和多维度评分机制。

AxBench 是什么

axbench

AxBench 是由斯坦福大学推出的一个基准测试框架,旨在评估语言模型(LM)的可解释性方法。该框架通过生成合成数据来训练和评估不同的模型控制技术,特别是在概念检测和模型转向两个方面表现优异。AxBench 为研究者提供了一个统一的平台,便于系统地评估和比较各种语言模型控制方法的有效性,推动语言模型的安全性和可靠性研究。

AxBench 的设计目标是帮助研究者更好地理解如何通过干预模型的内部表示来实现特定的输出控制,从而提高模型在实际应用场景中的可靠性和可控性。它不仅支持多种语言模型和任务设置,还扩展到了不同的概念描述,使得大规模实验和基准测试成为可能。

AxBench 的主要功能

  • 概念检测(Concept Detection, C):基于标记的合成数据,评估模型对特定概念的识别能力,使用 ROC AUC 作为评估指标。
  • 模型转向(Model Steering, S):基于长文本生成任务,评估模型在干预后的表现,用语言模型“裁判”对生成文本的三个维度(概念相关性、指令相关性、流畅性)进行评分。
  • 提供统一的评估框架:支持多种语言模型控制方法,如提示、微调、稀疏自编码器等,便于比较不同方法的优劣。
  • 生成合成数据:根据自然语言概念描述生成训练和评估数据,支持大规模实验和基准测试,包括生成正例、负例和难负例。
  • 支持多种评估指标:除了 ROC AUC 外,还包括基于语言模型“裁判”的多维度评分。

AxBench 的技术原理

  • 合成数据生成

    • 正例:基于提示语言模型生成包含目标概念的文本。
    • 负例:基于提示语言模型生成不包含目标概念的文本。
    • 难负例:生成与目标概念语义相关但不激活该概念的文本,增加评估的难度和区分度。
  • 概念检测评估

    • 使用标记的合成数据作为训练集,训练概念检测器(如线性探针、差值均值等),并基于 ROC AUC 评估检测器对概念的分类能力。
  • 模型转向评估

    • 基于干预模型的内部表示(如添加特定方向的向量),让模型生成的文本更符合目标概念。
    • 用语言模型“裁判”对生成文本的三个维度(概念相关性、指令相关性、流畅性)进行评分,综合评估转向效果。
  • 支持多种方法

    • 包括提示(Prompting)、微调(Finetuning)、稀疏自编码器(SAEs)、线性探针(Linear Probes)等。
    • 提供多种表示干预方法的实现,如 ReFT-r1,基于学习特定方向的向量干预模型的内部表示,实现对模型输出的控制。

如何运行 AxBench

1. 安装依赖

我们建议使用 uv 作为 Python 虚拟环境管理工具,但你可以使用任何 venv 管理器。

git clone git@github.com:stanfordnlp/axbench.git
cd axbench
uv sync # 如果使用 uv

设置 API 密钥:

import os
os.environ["OPENAI_API_KEY"] = "your_openai_api_key_here"
os.environ["NP_API_KEY"] = "your_neuronpedia_api_key_here"

下载必要的数据集到 axbench/data

uv run axbench/data/download-seed-sentences.py
cd axbench/data
bash download-2b.sh
bash download-9b.sh
bash download-alpaca.sh

2. 运行简单演示

要运行一个完整的演示,请执行以下命令:

bash axbench/demo/demo.sh

3. 数据生成

如果你使用的是预生成的数据,可以跳过此步骤。

生成训练数据:

uv run axbench/scripts/generate.py --config axbench/demo/sweep/simple.yaml --dump_dir axbench/demo

生成推理数据:

uv run axbench/scripts/generate_latent.py --config axbench/demo/sweep/simple.yaml --dump_dir axbench/demo

要修改数据生成过程,编辑 simple.yaml 文件。

4. 训练

训练并保存你的方法:

uv run torchrun --nproc_per_node=$gpu_count axbench/scripts/train.py \
  --config axbench/demo/sweep/simple.yaml \
  --dump_dir axbench/demo

对于其他配置,参考以下命令:

torchrun --nproc_per_node=$gpu_count axbench/scripts/train.py \
  --config axbench/sweep/wuzhengx/2b/l10/no_grad.yaml \
  --dump_dir axbench/results/prod_2b_l10_concept500_no_grad \
  --overwrite_data_dir axbench/concept500/prod_2b_l10_v1/generate

5. 推理

概念检测

运行推理:

uv run torchrun --nproc_per_node=$gpu_count axbench/scripts/inference.py \
  --config axbench/demo/sweep/simple.yaml \
  --dump_dir axbench/demo \
  --mode latent

对于不平衡的概念检测,使用以下命令:

uv run torchrun --nproc_per_node=$gpu_count axbench/scripts/inference.py \
  --config axbench/sweep/wuzhengx/2b/l10/no_grad.yaml \
  --dump_dir axbench/results/prod_2b_l10_concept500_no_grad \
  --overwrite_metadata_dir axbench/concept500/prod_2b_l10_v1/generate \
  --overwrite_inference_data_dir axbench/concept500/prod_2b_l10_v1/inference \
  --mode latent_imbalance
模型转向

运行转向实验:

uv run torchrun --nproc_per_node=$gpu_count axbench/scripts/inference.py \
  --config axbench/demo/sweep/simple.yaml \
  --dump_dir axbench/demo \
  --mode steering

6. 评估

概念检测

评估概念检测结果:

uv run axbench/scripts/evaluate.py \
  --config axbench/demo/sweep/simple.yaml \
  --dump_dir axbench/demo \
  --mode latent

启用 wandb 日志记录:

uv run axbench/scripts/evaluate.py \
  --config axbench/demo/sweep/simple.yaml \
  --dump_dir axbench/demo \
  --mode latent \
  --report_to wandb \
  --wandb_entity "your_wandb_entity"
模型转向

评估转向效果:

uv run axbench/scripts/evaluate.py \
  --config axbench/demo/sweep/simple.yaml \
  --dump_dir axbench/demo \
  --mode steering

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
3月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
175 11
|
3月前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
80 4
|
1月前
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
100 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
11天前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
20天前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.49 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.49 (macOS, Linux, Windows) - 开源渗透测试框架
32 0
Metasploit Framework 6.4.49 (macOS, Linux, Windows) - 开源渗透测试框架
|
3月前
|
数据采集 人工智能 自动驾驶
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
VSI-Bench是由李飞飞和谢赛宁团队推出的视觉空间智能基准测试集,旨在评估多模态大型语言模型(MLLMs)在空间认知和理解方面的能力。该基准测试集包含超过5000个问题-答案对,覆盖近290个真实室内场景视频,涉及多种环境,能够系统地测试和提高MLLMs在视觉空间智能方面的表现。
114 16
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
|
3月前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
872 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
2月前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
135 15
|
3月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
104 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
3月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
75 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架

热门文章

最新文章