当前位置: 首页 > news >正文

论文阅读:2023 EMNLP SeqXGPT: Sentence-level AI-generated text detection

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328

SeqXGPT: Sentence-level AI-generated text detection

https://aclanthology.org/2023.emnlp-main.73/

https://github.com/Jihuai-wpy/SeqXGPT

https://www.doubao.com/chat/2100380373277954

速览

论文“SeqXGPT: Sentence-Level AI-Generated Text Detection”提出了SeqXGPT这一用于句子级AI生成文本检测的新方法,其主要包含以下关键部分:

  1. 利用白盒大语言模型的对数概率列表作为特征:SeqXGPT创新性地使用来自白盒大语言模型(LLMs)的对数概率列表作为检测句子是否为AI生成的特征。这些特征以类似语音处理中“波”的方式组合,具有独特的结构,难以被LLMs学习和模仿。通过这种方式,SeqXGPT能够挖掘出文本中与AI生成相关的信息,为后续的检测提供有力依据。
  2. 基于卷积和自注意力网络构建模型:为了处理这些特殊的特征,论文基于卷积和自注意力网络搭建了SeqXGPT模型。卷积网络可以有效提取文本中的局部特征,捕捉句子中的关键信息片段;自注意力网络则能够考虑文本中各个位置之间的关联,更好地理解句子的整体语义和上下文关系。两者结合,使得SeqXGPT能够全面、深入地分析输入句子的特征,准确判断句子是由人类撰写还是AI生成。
  3. 具体模型架构组成
    • 困惑度提取和对齐(Perplexity Extraction and Alignment):从白盒LLMs中提取对数概率信息,计算文本的困惑度。困惑度可衡量模型对句子的预测难度,AI生成的文本和人类撰写的文本在困惑度上存在差异。将计算得到的困惑度进行对齐处理,使其能够作为后续模型处理的有效特征。
    • 特征编码器(Feature Encoder):采用Transformer结构作为特征编码器。它接收经过处理的困惑度特征,通过多头注意力机制和多层感知机对特征进行深度编码,将其转换为更具表达力的上下文特征,为分类任务做准备。
    • 线性分类层(Linear Classification Layer):根据特征编码器输出的上下文特征,使用线性分类器对句子进行分类,判断其为AI生成或人类撰写,输出最终的检测结果。

在实验中,SeqXGPT在句子级和文档级的AI生成文本检测任务中均表现出色,显著超越了基线方法,展现出良好的性能和泛化能力 。

github

这个GitHub项目 SeqXGPT 聚焦于句子级别的AI生成文本检测,其主要功能和结构如下:

项目概述

  • 项目名称:SeqXGPT
  • 项目描述:这是论文 “SeqXGPT: Sentence-Level AI-Generated Text Detection” 的官方代码仓库。
  • 开源资源:包含了与SeqXGPT相关的所有数据集、模型、训练和测试代码。

核心功能

推理服务器
  • 使用了四个开源的大语言模型(LLMs)来构建SeqXGPT的原始特征和Sniffer的对比特征,包括GPT2-xl(1.5B)、GPT-Neo(2.7B)、GPT-J(6B)和LLaMA(7B)。
  • 可以通过 backend_api.py 启动推理服务器,示例命令如下:
python backend_api.py --port 6006 --timeout 30000 --debug --model=gpt2 --gpu=0
模型类

代码中定义了多个模型类,如 SnifferGPT2ModelSnifferChatGLMModelSnifferGPTJModel 等,这些模型类继承自 SnifferBaseModel,并实现了计算困惑度(PPL)和文本生成的方法。

  • 计算困惑度:每个模型类都有 forward_calc_ppl 方法,用于计算输入文本的困惑度。
  • 文本生成:每个模型类都有 forward_gen 方法,用于根据输入文本生成新的文本。
检测功能

DetectGPT/detect_gpt.py 中实现了访问推理服务器的功能,用于检测文本是否为AI生成。具体步骤如下:

  1. 读取输入文件中的文本样本。
  2. 对每个文本样本进行扰动处理,生成多个扰动文本。
  3. 计算扰动文本和原始文本的困惑度。
  4. 将困惑度信息保存到输出文件中。

代码结构

  • backend_utils.py:定义了一些基础工具类,如 __init__ 方法中初始化了基础模型和基础分词器。
  • backend_model.py:定义了多个模型类,包括不同的预训练模型(如GPT2、ChatGLM、GPT-J等),并实现了困惑度计算和文本生成的方法。
  • backend_api.py:用于启动推理服务器,根据命令行参数选择不同的模型。
  • DetectGPT/detect_gpt.py:实现了访问推理服务器的功能,用于检测文本是否为AI生成。
  • SeqXGPT/dataloader.py:定义了数据处理和转换的方法,将数据转换为张量和掩码。

依赖库

项目的 requirements.txt 文件中列出了所有依赖库,包括 transformerstorchhttpxmsgpack 等。

相关文章:

  • 盛铂科技国产SLMF315超低相位噪声频率综合器介绍
  • SpringBoot有几种获取Request对象的方法
  • 龙虎榜——20250321
  • 第五章 起航18 管理会议信息同步
  • 计算机操作系统(三) 操作系统的特性、运行环境与核心功能(附带图谱更好对比理解))
  • 游戏引擎学习第173天
  • JAVA————十五万字汇总
  • QPrintDialog弹出慢的问题
  • 图表的黄金比例
  • clamav服务器杀毒(Linux服务器断网状态下如何进行clamav安装、查杀)
  • Office 2024 专业版系统安装
  • 黑马程序员-微服务开发-MybatisPlus的使用
  • 【LLM学习】论文学习-Qlora: QLoRA: Efficient Finetuning of Quantized LLMs
  • docker compose部署minio报错
  • 到底爱不爱我
  • 【数据挖掘】数据预处理——以鸢尾花数据集为例
  • 网络空间安全(41)权限维持
  • 蓝桥与力扣刷题(蓝桥 立方变自身)
  • DeepBI:重构流量逻辑,助力亚马逊广告实现高效流量增长
  • UML中的类图、时序图等常见图形的作用和基本元素
  • 美股全线收涨:道指涨逾千点,纳斯达克中国金龙指数涨5.4%
  • 马上评丨为护士减负,不妨破除论文“硬指标”
  • 中美经贸高层会谈在瑞士日内瓦开始举行
  • 巴基斯坦外长:近期军事回应是自卫措施
  • 上海发布首份直播电商行业自律公约,禁止虚假宣传、商业诋毁
  • 上海证监局规范辖区私募经营运作,6月15日前完成自评自纠