码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 2024腾讯游戏安全技术竞赛-机器学习赛道


    决赛赛题链接https://gss.tencent.com/competition/2024/doc/2024%E8%85%BE%E8%AE%AF%E6%B8%B8%E6%88%8F%E5%AE%89%E5%85%A8%E6%8A%80%E6%9C%AF%E7%AB%9E%E8%B5%9B-%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0-%E5%86%B3%E8%B5%9B.zip

    今年的题目是游戏跨语言恶意内容识别 ,题目比较简洁,数据也简单,只有0-1标签和语句.但是想要拿高分不容易,训练集少是一方面,跨语言也是一方面.相较于往年的题目,数据集非常有限(往年甚至有70G的数据),也从机器学习进化到了深度学习.

    题目介绍

    参赛者需要基于英语数据集开发一款跨语言恶意文本识别模型,最终模型将在包含英语、阿语、土语、俄语的测试集上评估效果,并取各语种的 F-score 平均值作为评定最终成绩的依据。

    比赛提供的数据集:

    1. 训练集及相关数据集:

    • 8k 条带标注数据(英语),文件名:train.txt
    • 4*20k 条无标注数据(每个语种各 20k),文件名:unlabel_text.txt
    • 4*5k 条 ChatGPT 标注数据(每个语种各 5k),文件名:labeled_text_by_ChatGPT.txt。 prompt 见文件 labeled_text_by_ChatGPT_prompt.txt。
    • 50k 平行语料(以英语为原语言,通过 ChatGPT 翻译获取)文件名:parallel_text_by_ChatGPT.txt。prompt 见文件 parallel_text_by_ChatGPT_prompt.txt。

    2. 验证集:

    • 4*100 条带标注数据(每个语种各 100),文件名:dev_ar.txt、dev_en.txt、dev_ru.txt、dev_tr.txt

    3. 测试集:4*1k 无标注数据(每个语种各 1k),与验证集同分布,不对外提供。

    这个赛题机制比较特别,一般比赛直接提供测试集或者分数排行榜,本赛题啥也不给,完全黑盒状态,不能通过排行榜去判断自己模型的好坏,唯一评判标准只有验证集.结果就跟买彩票一样.


    赛题分析

    题目给出了baseline:

    采用 twitter-xlm-roberta-base 作为基础模型,https://huggingface.co/cardiffnlp/twitter-xlm-roberta-base.
    合并训练集和验证集作为训练集,训练参数:learning_rate=1e-5;batch_size=64;train_epoch=3;
    最终指标:0.674094

    一般情况下,根据比赛时间的长短,选择是否更换模型.这次比赛初赛3天,决赛5天(本来没有5天的,但是提前开赛了,感觉缺少了优势).时间比较短就没有必要更换基础模型了,最多找一下微调的模型.

    废话:XLM-RoBERTa(XLM-R)是由Facebook AI团队在2019年11月发布的模型,作为其原始的XLM-100模型的更新。XLM-R是基于Transformer的语言模型,都依赖于掩码语言模型目标,并且都能够处理100种不同语言的文本。它已经证明能在各种跨语言任务上达到行业领先的性能表现,并在需要多语言理解和迁移学习的场景中尤其有用。

    针对数据集,唯一能直接使用的训练集只有8k 条带标注数据(英语),其他未标注数据和GPT标注数据慎用(实测直接用会降分).所以要寻找公开的数据集(题目提到比赛不限制使用任何开源数据、模型、代码).

    最后是训练方法,baseline中提到合并训练集和验证集作为训练集.而我们没有测试集,唯一的评价标准只有验证集,所以不能一开始就直接使用验证集进行训练,应该根据其他训练集在验证集上的表现,把评价指标拉到最高后,再使用验证集进行训练.


    一些想法

    模型

    由于初赛只有两种语言,所以没有想着要使用其他微调过的模型,直接使用了baseline进行训练,可到了决赛却有4种语言,应该选用更好的微调模型,可以以验证集评价在线模型.

    这里给出一些微调模型的比较(在验证集上评估,评价指标为准确率):

    • szzzzz/xlm-roberta-base-text-toxic

      https://huggingface.co/szzzzz/xlm-roberta-base-text-toxic

    • cardiffnlp/twitter-xlm-roberta-base(baseline)

      https://huggingface.co/cardiffnlp/twitter-xlm-roberta-base

    • EIStakovskii/xlm_roberta_base_multilingual_toxicity_classifier_plus

      https://huggingface.co/EIStakovskii/xlm_roberta_base_multilingual_toxicity_classifier_plus

    • airKlizz/xlm-roberta-base-germeval21-toxic-with-data-augmentation

      https://huggingface.co/airKlizz/xlm-roberta-base-germeval21-toxic-with-data-augmentation

    szzzzzcardiffnlpEIStakovskiiairKlizz
    en0.360.40.660.62
    ru0.660.30.610.53
    ar0.520.360.650.63
    tr0.390.390.520.55
    平均0.550.360.610.58

    如果在初赛的时候就选择了一个指标较高的模型,结果应该会更好.

    数据集

    GitHub - aymeam/Datasets-for-Hate-Speech-Detection: Datasets for Hate Speech Detection

    Multi-lingual HateSpeech Dataset | Kaggle(MultiLanguageTrainDataset.csv)

    词汇 GitHub - valeriobasile/hurtlex: A multilingual lexicon of words to hurt.

    英语

    数据集

    xhate

    Davidson et al., 2017

    俄语

    数据集

    xhate

    Automatic Toxic Comment Detection in Social Media for Russian

    Detection of Abusive Speech for Mixed Sociolects of Russian and Ukrainian Languages

    Russian South Park

    土耳其语

    数据集

    xhate

    offenseval_2020

    Turkish Hate Speech Analysis

    turkish-toxic-language

    turkish-offensive-language-detection

    阿拉伯语

    数据集

    Let-Mi

    MLMA

    L-HSAB

    Arabic Hate Speech Dataset 2023

    SSTD

    实际测试只有部分数据集能提分,其他数据集都不太行.我认为是打标签的规则不一样,所以GPT的数据和其他数据集需要慎用.

    训练

    我的方法是先集中力量提升某一语言的指标(数据集要筛选,降分的不用),然后在提升下一语言的时候,把之前的数据集和新语言的数据集合并进行训练,防止练了这个语言,上一语言又不行了.最后拿验证集进行训练.


    可能有用的方法

    1. 每种语言单独训练一个模型,开头加个语种分类器.这个应该不违规,达到下面这个限制应该就行
    2. 想办法使用GPT标注的数据和无标注数据.我觉得聚类可能不太行,想了一种比较简单的方法.因为唯一已知的打标签方法只有验证集和英语的训练集,所以通过去学习他们的打标签规则去给无标签的数据集生成标签.也就是先用非验证集数据把模型指标拉到最高,然后加入验证集进行训练.把这个训练好的模型作为标签生成模型,对GPT标注的数据(不是翻译的数据)进行打标签,根据生成的标签和GPT的标签进行融合,筛选出两者标签相同的数据.再把这些数据放入指标最高的模型进行训练,如果有提升,则逐渐扩展到给无标注数据打标签.翻译的数据最好不要用,翻译质量不好掌握.GPT打的标签也不要直接使用,联想能力太强,导致过渡解读语句.
  • 相关阅读:
    第63篇 QML 之 JS中的代码块、条件语句
    GBase8s数据库select有ORDER BY 子句6
    CSS的行内、内嵌、链接三引入方式+属性:color\font\text\backgroun\list\样式的继承\id#锚点
    函数相乘和相除的导数及证明
    【TAPD】实践:TAPD 项目管理配置
    2023互联网中秋礼盒大比拼!
    是什么让EDI如此困难?
    Opengl ES之踩坑记
    分享一下开发回收废品小程序的步骤
    MobPush丨 iOS端快速集成方法
  • 原文地址:https://blog.csdn.net/qq_28247201/article/details/138171648
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号