伯克利研究院推出Ghostbuster用于检测由LLM代笔的文本

Ghostbuster的架构,用于检测人工智能生成文本的最先进的新方法

像 ChatGPT 这样的大型语言模型写得非常好,但事实上,它们已经成为一个棘手的问题。学生们已经开始使用这些模型代写作业,导致一些学校禁止 ChatGPT。此外,这些模型也容易产生带有事实错误的文本,因此谨慎的读者可能想知道生成人工智能工具是否被用来代写新闻文章或其他来源,然后再相信它们。

教师和读者可以做些什么以应对?现有的检测人工智能生成文本的工具有时在处理与训练数据不同的数据时表现不佳。此外,如果这些模型错误地将真实的人类写作归类为人工智能生成的,它们可能会危及那些真实作品受到质疑的学生。

Ghostbuster,这是一种检测人工智能生成文本的最先进的方法。Ghostbuster 的工作原理是在几个较弱的语言模型下找到在文档中生成每个标记的概率,然后根据这些概率组合函数作为最终分类器的输入。Ghostbuster 不需要知道使用什么模型来生成文档,也不需要知道在该特定模型下生成文档的概率。这一特性使 Ghostbuster 对于检测可能由未知模型或黑盒模型生成的文本特别有用,例如流行的商业模型 ChatGPT 和 Claude,这些模型的概率不可用。我们特别感兴趣的是确保Ghostbuster 能够很好地概括,因此我们评估了文本生成的一系列方式,包括不同的领域(使用新收集的论文、新闻和故事数据集)、语言模型或提示。

人工创作和 AI 生成的文本示例

为什么采用这种方法

目前许多人工智能生成的文本检测系统很难对不同类型的文本进行分类(例如,不同的写作风格,或不同的文本生成模型或提示)。仅使用困惑的简单模型通常无法捕获更复杂的特征,并且在新的写作领域中表现尤其差。事实上,我们发现,在某些领域,包括非英语母语人士的数据,仅困惑的基线比随机基线更糟糕。同时,基于大型语言模型(如 RoBERTa)的分类器很容易捕获复杂的特征,但对训练数据拟合过度且泛化效果不佳:我们发现 RoBERTa 基线具有灾难性的最坏情况泛化性能,有时甚至比仅困惑的基线更差。零样本方法在不对标记数据进行训练的情况下,通过计算文本由特定模型生成的概率来对文本进行分类,当实际使用不同的模型生成文本时,也往往表现不佳。

Ghostbuster 的工作原理

Ghostbuster 使用三个阶段的训练过程:计算概率、选择特征、 和分类器训练。

计算概率:我们通过计算在一系列较弱的语言模型(一个单元模型、一个三元模型和两个非指令调优的 GPT-3 模型,ada 和 davinci)下生成文档中每个单词的概率,将每个文档转换为一系列向量。

选择特征:我们使用结构化搜索程序来选择特征,其工作原理是 (1) 定义一组组合概率的向量和标量运算,以及 (2) 使用正向特征选择搜索这些操作的有用组合,重复添加最佳剩余特征。

分类器训练:我们根据基于概率的最佳特征和一些额外的手动选择特征训练线性分类器

结果

当在同一领域进行训练和测试时,Ghostbuster 在所有三个数据集中都取得了 99.0 F1,比 GPTZero 高出 5.9 F1,比 DetectGPT 高出 41.6 F1。在域外,Ghostbuster 在所有条件下的平均 F1 为 97.0,比 DetectGPT 高出 39.6 F1,比 GPTZero 高出 7.5 F1。当在所有数据集上进行域内评估时,我们的 RoBERTa 基线达到了 98.1 F1,但其泛化性能不一致。Ghostbuster 在除创意写作领域外的所有领域都优于 RoBERTa 基线,并且平均而言,域外表现比 RoBERTa 好得多(13.8 F1 利润率)。

 

关于 Ghostbuster 域内和域外性能的结果

为了确保 Ghostbuster 对用户提示模型的一系列方式(例如请求不同的写作风格或阅读水平)具有鲁棒性,我们评估了 Ghostbuster 对几种提示变体的鲁棒性。Ghostbuster 以 99.5 F1 的成绩超越了这些提示变体的所有其他测试方法。为了测试跨模型的泛化性,我们评估了 Claude 生成的文本的性能,其中 Ghostbuster 的性能也优于所有其他测试方法的 92.2 F1。

AI 生成的文本检测器通过轻微编辑生成的文本而被愚弄。我们研究了 Ghostbuster 对编辑的鲁棒性,例如交换句子或段落、重新排序字符或用同义词替换单词。句子或段落级别的大多数更改不会显着影响性能,但如果通过重复释义、使用商业检测规避器(如 Undetectable AI)或进行大量单词或字符级别的更改来编辑文本,则性能会平稳下降。在较长的文档上,性能也最好。

由于人工智能生成的文本检测器可能会将非英语母语人士的文本错误地归类为人工智能生成的文本,因此我们评估了 Ghostbuster  在非英语母语人士写作方面的表现。所有测试的模型在三个测试数据集中的两个数据集上的准确率都超过95%,但在第三组较短的论文中表现更差。然而,文档长度可能是这里的主要因素,因为 Ghostbuster 在这些文档(74.7 F1)上的表现几乎与在类似长度的其他域外文档(75.6到93.1 F1)上的表现一样好。

希望将 Ghostbuster 应用于文本生成可能被禁止使用的真实案例(例如,ChatGPT 撰写的学生论文)的用户应注意,较短的文本、与 Ghostbuster 训练的领域相去甚远的领域(例如,不同种类的英语)、非英语母语人士的文本、人工编辑的模型生成或通过提示 AI 模型修改人类创作的输入生成的文本更有可能出现错误。为了避免算法上的危害,我们强烈反对在没有人工监督的情况下自动惩罚涉嫌使用文本生成的行为。相反,如果将某人的写作归类为 AI 生成可能会伤害他们,我们建议谨慎地、人机交互地使用 Ghostbuster 。Ghostbuster 还可以帮助处理各种低风险应用程序,包括从语言模型训练数据中过滤 AI 生成的文本,并检查在线信息源是否是 AI 生成的。

结论

Ghostbuster 是一种最先进的 AI 生成的文本检测模型,在测试领域中具有 99.0 F1 性能,与现有模型相比取得了实质性进展。它可以很好地泛化到不同的领域、提示和模型,并且非常适合从黑盒或未知模型中识别文本,因为它不需要访问用于生成文档的特定模型的概率。

Ghostbuster 的未来方向包括为模型决策提供解释,并提高对专门试图欺骗探测器的攻击的鲁棒性。人工智能生成的文本检测方法也可以与水印等替代方案一起使用。我们还希望 Ghostbuster 能够在各种应用程序中提供帮助,例如过滤语言模型训练数据或在网络上标记 AI 生成的内容。

源码:https://github.com/vivek3141/ghostbuster

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/379401.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Git的基础操作指令

目录 1 前言 2 指令 2.1 git init 2.2 touch xxx 2.3 git status 2.4 git add xxx 2.5 git commit -m xxxx 2.5 git log及git log --prettyoneline --all --graph --abbrev-commit 2.6 rm xxx 2.7 git reset --hard xxx(含小技巧) 2.8 git reflog 2.9 mv xxx yyy 1…

vue 引入 百度地图API 和 路书

公司项目中&#xff0c;偶尔都会涉及到地图的使用&#xff0c;这里以百度地图为例&#xff0c;我们梳理一下引用流程及注意点 账号和获取密钥 百度地图示例 百度地图 类参考 1、账号和获取密钥 // api.map.baidu.com/api?typewebgl&v3.0&ak您的密钥<script type…

如何运行心理学知识(心流)来指导工作和生活

如何运用心流来指导工作和生活 如何联系我 作者&#xff1a;鲁伟林 邮箱&#xff1a;thinking_fioa163.com或vlinyes163.com GitHub&#xff1a;https://github.com/thinkingfioa/ReadingSummary 版权声明&#xff1a;文章和记录为个人所有&#xff0c;如果转载或个人学习…

Nature Machine Intelligence 使用机器学习驱动的可拉伸智能纺织手套捕捉复杂的手部动作和物体交互

研究背景 对灵巧手运动的精确实时跟踪在人机交互、元宇宙、机器人和远程医疗等领域有着广泛的应用。当前的可穿戴设备中的大多数仅用于检测精度有限的特定手势&#xff0c;并且没有解决与设备的可靠性、准确性和可清洗相关的挑战。对传感器直接放置在用户的手上有严格的要求&am…

MVC框架学习

大一的时候写过一个mvc框架的跑酷游戏&#xff0c;但是那时候基础不扎实&#xff0c;没学明白也没听懂。现在深入的学习一下 以下内容参考&#xff1a;MVC 模式 | 菜鸟教程 (runoob.com) MVC 模式 MVC 模式代表 Model-View-Controller&#xff08;模型-视图-控制器&#xff…

搜索插入位置[简单]

一、题目 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为O(log n)的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2 示例…

【linux开发工具】vim详解

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 “学如逆水行舟&#xff0…

项目02《游戏-11-开发》Unity3D

基于 项目02《游戏-10-开发》Unity3D &#xff0c; 任务&#xff1a;飞行坐骑 首先创建脚本&#xff0c; 绑定脚本&#xff0c; using UnityEngine; public class Dragon : MonoBehaviour{ [SerializeField] private float speed 10f; public Transfo…

如何判断线程池已经执行完所有任务了?

目录 不判断的问题 方法1&#xff1a;isTerminated 缺点分析 扩展&#xff1a;线程池的所有状态 方法2&#xff1a;getCompletedTaskCount 方法说明 优缺点分析 方法3&#xff1a;CountDownLatch&#xff08;推荐&#xff09; 优缺点分析 方法4&#xff1a;CyclicBar…

微软.NET6开发的C#特性——委托和事件

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;看到不少初学者在学习编程语言的过程中如此的痛苦&#xff0c;我决定做点什么&#xff0c;下面我就重点讲讲微软.NET6开发人员需要知道的C#特性&#xff0c;然后比较其他各种语言进行认识。 C#经历了多年发展…

计算机网络基本知识(二)

文章目录 概要分层为什么分层怎么分层&#xff1f;1.实体2.协议3.服务 分层基本原则正式认识分层详细例子解释 总结 概要 分层知识&#xff1a;概念理解 分层 为什么分层 大致以上五点 为了解决上面的问题&#xff08;复杂&#xff09; 大问题划分为小问题 怎么分层&#…

Stable Diffusion 模型下载:Disney Pixar Cartoon Type B(迪士尼皮克斯动画片B类)

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 这是我之前的模型迪士尼皮克斯卡通类型A与我自己训练的Lora在中途旅程图像上的合并结果。与之前的版本相比&#xff0c;男性和老年人看起来更像真正的皮克斯角色&a…

黄金交易策略:手工同向单减保留仓

虽然保留仓的仓位不大&#xff0c;扛个一年半载不是问题&#xff0c;但闲着也可以手工处理掉&#xff08;10000点以内的不要处理&#xff09;。挑一个最大的单&#xff0c;同向相同的手数&#xff0c;并把两单的止盈设置中位数&#xff08;也没有这么严格&#xff0c;差不多就好…

Node.js之npm单独与批量升级依赖包的方式

Node.js之npm单独与批量升级依赖包的方式 文章目录 Node.js之npm单独与批量升级依赖包的方式npm查看与升级依赖包1. 单独安装或升级最新版本2. 查看依赖但不升级1. npm outdated2. npm update 3. 批量升级新版本4. npm-check-updates1. 全局安装2. ncu查看可升级的版本3. 升级依…

【Linux驱动】块设备驱动(三)—— 块设备读写(不使用请求队列)

并非每种块设备都会用到请求队列&#xff0c;从上节可以知道&#xff0c;请求队列的作用是管理和调用IO请求&#xff0c;那么反过来想&#xff0c;如果IO请求较少&#xff0c;那就可以无需使用请求队列。在以下情况中&#xff0c;可以不使用请求队列。 单任务环境: 当系统中只有…

懒人精灵 之 Lua 捕获 json解析异常 ,造成的脚本停止.

Time: 2024年2月8日20:21:17 by:MemoryErHero 1 异常代码 Expected value but found T_END at character 12 异常代码 Expected value but found T_OBJ_END at character 223 处理方案 - 正确 json 示范 while true do--Expected value but found T_END at character 1--Ex…

tab 切换类交互功能实现

tab切换类交互&#xff1a; 记录激活项&#xff08;整个对象/id/index)动态类型控制 下面以一个地址 tab 切换业务功能为例&#xff1a; <div class"text item" :class"{active : activeAddress.id item.id}" click"switchAddress(item)"…

python-pandas查漏补缺

1. create labels for Series 2. 3. 4. 用平均数等去填empty的格子 5. 6. 7.

Pandas 数据处理-排序与排名的深度探索【第69篇—python:文本数据处理】

文章目录 Pandas 数据处理-排序与排名的深度探索1. sort_index方法2. sort_values方法3. rank方法4. 多列排序5. 排名方法的参数详解6. 处理重复值7. 对索引进行排名8. 多级索引排序与排名9. 更高级的排序自定义10. 性能优化技巧10.1 使用nsmallest和nlargest10.2 使用sort_val…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Stepper组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Stepper组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Stepper组件 鸿蒙&#xff08;HarmonyOS&#xff09;仅能包含子组件StepperIte…