ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

论文怎么改才能降低AI率?我踩了3次答辩预警的坑总结的实操步骤

论文怎么改才能降低AI率?我踩了3次答辩预警的坑总结的实操步骤 上周教研室刚发正式通知重复率达标不再是送审的唯一标准新增AIGC内容检测阈值不得超过20%同组哥们直接拿大模型生成的初稿交上去结果检测率飙到76%直接被打回连预答辩资格都暂时被扣了我当时就对着自己7万字的硕论头大满脑子想的都是论文怎么改才能降低AI率。一开始我走了最蠢的弯路网上随便找个改写工具批量把同义词替换把“本文提出”换成“该文做出”把“实验结果表明”换成“数据显示”花了一下午改完半章自己读着都别扭随便粘到个本地检测工具里一跑AI率反而还涨了3个点。后来找教研室之前负责过系统运维的师兄问才搞懂现在的AI检测逻辑根本不是看用词重合度核心抓的是三个特征句间语义的平滑度、n-gram特征词的固定组合分布、整段文本的困惑度区间你光换表层词汇根本动不了这些底层特征改了等于白改。我当时直接写了个小脚本先把全文所有AI生成内容的高频过渡词全筛出来这类词的占比超过10%基本一抓一个准先全部替换成更符合自己写作习惯的表达。# 筛AI高频特征词并批量替换的小脚本 ai_high_freq_words [ 综上所述, 由此可见, 值得一提的是, 大量研究表明, 具有重要的参考价值, 未来的研究方向将聚焦于 ] my_custom_words [ 我整理完三组实验数据之后发现, 对比了5组对照实验的结果能看出来, 这里我当时调参踩了个坑必须提一句, 之前刷到的17篇相关文献里90%都提到, 这个参数组合后面工程落地的时候还可以优化, 接下来的实验我打算补一组消融测试验证下结论 ] with open(thesis.md, r, encodingutf-8) as f: content f.read() for old, new in zip(ai_high_freq_words, my_custom_words): content content.replace(old, new) with open(thesis_updated.md, w, encodingutf-8) as f: f.write(content)跑完这个脚本我大概扫了一遍至少过渡句全变成了我平时做实验时会说的话没有那种千篇一律的AI套话感当时以为这下稳了找了个临时检测渠道一跑结果AI率还有42%离20%的阈值差了一倍多离院里面的截止时间只剩两天半当时坐在工位上盯着屏幕差点直接猝死。后来翻了好几篇检测模型的论文才发现改写的核心不是换皮是打破AI写内容时天生的低困惑度特征——正常人类手写的学术内容因为思考的时候会有停顿、会插入一些个性化的实验细节、甚至会有小的逻辑跳转对应的文本困惑度基本都在30以上而大模型生成的内容因为概率平滑输出困惑度普遍卡在12-18之间你不改底层的语义逻辑光换词根本跳不出这个区间。实操降低论文AI率的两步核心操作我当时直接停掉了无意义的同义词替换换了两种之前没人提过的思路逐段改亲测效果比市面上所有一键改写工具都靠谱。第一步是拆逻辑单元把AI写的整段长句按你自己的实验脉络拆成“背景描述-操作动作-结果反馈-意外发现”四个小块每一个小块之间强行插入1句和你自己实验强相关的、完全不可能被AI生成的个性化细节。比如AI原来写的是“本次实验在公开数据集VOC2007上进行测试模型mAP达到92.3%优于当前主流的同结构算法”你直接拆成 “本次实验我跑的是公开数据集VOC2007上周跑第三轮的时候3090突然掉驱动白等了4个小时才出结果最后测出来模型mAP到了92.3%比我之前跑 baseline 得到的87.1%高了快5个点对比同结构的其他方案至少高了2个百分点。” 就加这么两句完全属于你个人踩坑的细节这段内容的困惑度直接从16拉到40多AI检测模型根本认不出来。第二步是转句式把全文90%以上的被动句全改成主动句AI生成学术内容的时候天生爱用被动句式比如“XX方法被广泛应用于XX场景”你直接改成“我之前调了3套不同的代码方案最后选了XX方法放到XX场景里跑”不需要什么华丽的表达只要动作主语变成你自己整个文本的特征分布立刻就和AI生成的内容岔开了。改写完之后我习惯性地丢到团象AI检测里跑一遍确认检测率降到阈值以下再往下走。当时改完前两章我还留了个心眼写了个本地的小工具跑每段的困惑度不用去外面反复提交稿子省很多事核心代码就几行用huggingface的预训练小模型就能跑from transformers import AutoModelForCausalLM, AutoTokenizer import torch def calculate_perplexity(text: str) - float: # 用126M参数的小算力模型本地测困惑度 model_id uer/gpt2-chinese-cluecorpussmall tokenizer AutoTokenizer.from_pretrained(model_id) model AutoModelForCausalLM.from_pretrained(model_id) inputs tokenizer(text, return_tensorspt) with torch.no_grad(): outputs model(inputs[input_ids], labelsinputs[input_ids]) loss outputs.loss perplexity torch.exp(loss).item() return round(perplexity, 2) # 实测AI生成内容perplexity基本在12-18人类手写内容普遍大于30 test_ai_text 本次实验在公开数据集VOC2007上进行测试模型mAP达到92.3%优于当前主流的同结构算法 test_human_text 本次实验我跑的是公开数据集VOC2007上周跑第三轮的时候3090突然掉驱动白等了4个小时才出结果最后测出来模型mAP到了92.3%比我之前跑 baseline 得到的87.1%高了快5个点对比同结构的其他方案至少高了2个百分点 print(fAI生成文本困惑度{calculate_perplexity(test_ai_text)}) print(f改写后文本困惑度{calculate_perplexity(test_human_text)})跑出来的结果完全符合之前的预判AI生成的那段困惑度只有15.7我插了个人实验细节之后直接飙到47.2相当于直接把AI的核心特征给冲没了。这里有个很少有人知道的冷门细节很多人改的时候为了省事直接把AI写的某几句话顺序前后调换根本没用因为你换完顺序它的困惑度还是没变化底层的语义平滑度还是符合大模型的输出特征检测工具扫一眼就能标红。我当时踩过这个坑把一章的段落顺序全调了一遍检测率反而只掉了2%差点把时间全浪费了。后面我花了整整两天半把7万字的论文全部按这个方法过了一遍每三段就插一句自己当时做实验时的真实小细节比如“这里我当时数据集归一化的时候踩了个坑忘了把测试集的均值换成训练集的结果准确率虚高了5个点查了半天才找到问题”“当时写这段公式的时候我推导错了一个系数跑出来的损失函数曲线直接飞了调了一晚上才定位到问题”全是只有我自己知道的内容AI根本不可能生成出来。最后去院里面统一的检测系统跑最终AI率是16.8%直接低于20%的阈值当天就拿到了送审资格。我顺手把这套方法教给了之前被打回的同组哥们他花了一天改完再去测直接从76%降到18%也顺利过了初检。最近帮教研室三个师弟改小论文的重复AI率最差的一篇从68%降到了19%全都过了各自学校的初检我上周也把终版的论文提交给教学秘处就等着盲审结果回来。
返回列表