返回列表

[7th Place Solution] Generate Data with Non-Instruction-Tuned Models

593. LLM - Detect AI Generated Text | llm-detect-ai-generated-text

开始: 2023-10-31 结束: 2024-01-22 AI安全与对抗 数据算法赛
作者: Hao Mei (Kaggle 贡献者)
竞赛排名: 第7名
发布时间: 2024-01-24

赛前话

首先,非常感谢Kaggle、Learning Agency Lab和范德堡大学组织了这场有趣的竞赛。向你们所有人致敬!🎩 这是我第一次参加Kaggle竞赛,学习曲线真是一段奇妙的旅程。
竞赛早期,我对TF-IDF方法在实际场景中效果如何心存疑虑。这种怀疑促使我深入研究基于语言模型的方法,并坚持没有回头。我完全没想到排行榜的变动会如此剧烈,最终结果也真的让我感到惊讶。

最终解决方案

我的"核心秘诀"是仅使用非指令微调模型来生成数据。如果我们查看竞赛中提供的3篇生成文章,它们看起来越来越人性化。更重要的是,它们都没有通用的ChatGPT回答格式。我相信这是主办方给出的一条重要提示。
在阅读了James的帖子这篇精彩文章后(简单来说:指令微调对响应多样性有不利影响),我从slimpajama生成了约40万篇非文章文本,并使用persuade 2.0生成了2.5万篇文章。使用的模型是未经微调的Falcon-7B、Mistral-7B和Llama2-7B,温度参数范围0.8到1.2,top p值0.8到0.98,频率惩罚0到0.3。
然后我简单地用这个数据集微调了一个DeBERTa-v3-large模型,上下文长度为512,推理长度为1024。在3090上单次训练大约需要8小时。我尝试过用1024长度训练,但结果更差。我找不到太多关于为什么会这样的信息,所以欢迎就此提供见解。
在我的最终方案中,我将处于第40到第60百分位的预测替换为基本TF-IDF + SGD模型的结果。这个调整使我的CV分数略有提高,但对LB影响甚微。

模型 数据集 公开LB 私有LB
DeBERTa-v3-base-512 仅persuade 0.869 0.875
DeBERTa-v3-base-512 persuade & slimpajama 0.921 0.920
DeBERTa-v3-base-1024 persuade & slimpajama 0.910 0.901
DeBERTa-v3-large-512 persuade & slimpajama 0.942 0.965
DeBERTa-v3-large-1024 persuade & slimpajama 0.922 0.957
DeBERTa-v3-large-512 + TF-IDF persuade & slimpajama 0.942 0.965

提示工程

我生成文章的提示如下:

(100分) [文章说明] 你的文本应约为500字。\\n\\n\\n\\n\n姓名: [基于性别的随机姓名]\n年级: [年级]\n日期: [随机日期]\n[文章标题]\n[一篇来自persuade 2.0的清理后文章]\\n\\n\\n\\n\n姓名: [相同性别的另一个随机姓名]\n年级: [相同年级]\n日期: [相同日期]\n[文章标题]\n

年级和性别信息直接来自persuade 2.0数据集。我为每篇persuade 2.0文章生成10个版本,然后使用嵌入相似性和莱文斯坦距离过滤掉与人类示例文章过于相似的生成结果。随后根据长度和重复度进一步筛选生成内容。

失败尝试列表

  • 将文章分割成语义块列表,嵌入每个块,然后在顶部训练双向LSTM。(得分 0.763)
  • 相同架构,但在每对相邻块的差异上训练LSTM。(得分 0.685)
  • 鲁棒编码 以对抗字符级对抗攻击。
  • 滑动窗口推理并平均logits。(得分 0.929)
  • 在测试集上进行MLM预训练(使用deberta-v3-xsmall训练10个epoch),然后在数据集上微调。(得分 0.689)
  • 还有很多甚至没有通过本地CV验证的想法。
同比赛其他方案