天池-基于预训练任务的泛化能力

该博客详细记录了一位参赛者在天池大赛中,如何利用Linux进行模型训练和Mac平台的Docker提交过程。首先在Linux环境下,通过conda安装torch1.6.0,克隆baseline项目,下载并处理数据,使用预训练模型进行训练。然后在Mac上,初次接触Docker,通过阿里云获取镜像,构建并提交结果。整个过程包括Dockerfile的编写,镜像构建,以及结果的推送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

这是基于Datawhale的一次学习机会,其中涉及到了transformer,torch,以及docker的应用。
比赛链接
baseline链接

流程

由于本地的计算资源有限,所以是会有切换平台(mac, linux)进行操作,不同平台承担的工作如下

  1. Linux平台(模型训练部分) 根据提供的额baseline结果,跑通对应的模型
  2. mac平台(docker部分) 根据docker,进行结果的提交

Linux平台(模型部分)

  1. 版本适配: 使用的是torch 1.6.0版本(小坑 在配torch版本的时候,使用pip install下载,用清华镜像之类的会快一些 但经常会出现跟cuda版本适配的问题,还是推荐用conda下载,下载可以根据清华镜像,先查看是否有对应的版本号,然后进行下载,这部分我是抄的这里的作业 )
  2. 模型训练
    将baseline项目克隆到本地
> git clone https://github.com/finlay-liu/tianchi-multi-task-nlp.git

到本地后对应的项目情况
在这里插入图片描述
3. 数据下载及处理

wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531841/OCEMOTION_train1128.csv
wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531841/b/ocemotion_test_B.csv
wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531841/TNEWS_train1128.csv
wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531841/b/tnews_test_B.csv
wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531841/OCNLI_train1128.csv
wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531841/b/ocnli_test_B.csv

将下载好的数据,存放与对应的数据集名称下,并将对应文件夹下的train.csv文件更改为total.csv以及test文件更改为test.csv

然后返回原始的目录下,运行数据处理的脚本

python generate_data.py
  1. 预训练模型下载
    huggingface中文预训练的网页中下载config.json、vocab.txt和pytorch_model.bin,把这三个文件放进tianchi-multi-task-nlp/bert_pretrain_model文件夹下。

  2. 模型训练
    如果上述步骤没问题的话,就可以进行模型的训练了
    根据train.py

python train.py

其中 下述的超参内容可以根据自己的机器情况或者其他实际需求进行更改。

train(epochs=20,batchSize=16, device='cuda:0', lr=0.0001, use_dtp=True, pretrained_model=pretrained_model, tokenizer_model=tokenizer_model, weighted_loss=True)
  1. 结果查看
    预测结果
    (ง •_•)ง 如果您能到这一步,大概就恭喜你,渡劫渡了一半

  2. 结果打包
    运行结果预测的脚本,以及到结果的页面进行打包

python  inference.py
zip -r ./result.zip ./*.json

MAC平台(docker提交部分)

由于先前是没有接触过docker部分,才算比较是渡劫(头裂)
相关的参考资料
mac的docker资料
天池的docker资料
mac中docker的安装

根据上述资料的话,是需要在阿里云上申请镜像的,然后会有一个个人主页,可以在个人主页中找到一些后续的需要使用到的信息
我的构建后长如下这个X样
在这里插入图片描述

  1. 准备
    在这里插入图片描述
    最终提交的文件夹中,有上述的这些内容(那个DS的忽略)

  2. 构建镜像后的登陆

sudo docker login --username=xxx@mail.com registry.cn-hangzhou.aliyuncs.com

3.** 使用本地Dockefile进行构建**

进入到submission文件夹中,根据镜像构筑对应的项目

docker build -t registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0 .

构筑后,会有如此一行

Successfully built ed0c4b0e545f

这是待会需要用到的一个id
(根据群友的提示,也可以使用如下的指令查看到这一部分的id值)

docker images
  1. 结果提交

使用docker tag 指向对应的id号

sudo docker tag ed0c4b0e545f registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0

使用docker push 进行结果的提交

docker push registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0

各处的id以及版本号,需要根据个人进行修改,至此就可以完成提交(了吧?)

后续的进度会继续在本篇进行更新

本项目主要基于PaddleHub通过预训练模型Erine-tiny在中文7情感分类数据集OCEMOTION上进行微调从而完成7分类情感分析模型的搭建,并基于PyQt5完成了最终中文微情感分析系统的开发,支持单条和批量文本细粒度情感分类预测,具有前沿性和广泛的应用价值。同时全流程教程讲解将带你拿下一个完整文本分类项目的开发! PaddleHub实战:基于OCEMOTION的中文微情感分析系统 完整项目地址:https://aistudio.baidu.com/aistudio/projectdetail/2211726 二.项目亮点: a.不同于传统的情感2分类(正向和负向),本项目使用了7分类数据集OCEMOTION可以达到更细粒度的情感分析,从而可以更好分析用户评论中表达情感,具有前沿性和广泛的应用价值。 b.基于PaddleHub通过预训练模型Erine-tiny的微调完成情感分析模型的搭建。基于大规模未标注语料库的预训练模型(Pretrained Models, PTM) 能够习得通用的语言表示,将预训练模型Fine-tune到下游任务,能够获得比传统分类模型Lstm等更出色的表现,也成为了目前竞赛及项目的主流选择。另外,预训练模型能够避免从零开始训练模型。 c.面向小白的全流程实战教程,全流程细致讲解带你拿下一个完整的文本分类实战项目!项目可扩展性高,感兴趣的也可以在其基础上做出更多的优化或迁移到类似的文本分类项目中去哦! 三.情感分析研究意义: 在评论网站、论坛、博客和社交媒体中,可以获得大量表达意见的文本。而这些文本数据都是非结构化的,没有以预先定义的方式组织,数据量庞大通常难以分析、理解和分类,既费时又费钱。而在情感分析系统的帮助下,这种非结构化信息可以依靠自动化业务流程以有效且低成本的方式大规模转换为结构化数据,极大减少人工标注成本,提高效率。情感分析在舆情监控、话题监督、口碑分析等商业分析领域有着非常重要的应用价值。目前该技术也已有着较广泛的应用,例如新浪微博运用情感分析对全网数据进行挖掘构建舆情大数据平台。电商平台运用情感分析来进行商品评论挖掘,作为推荐系统的一部分提高营销效果。小度机器人通过识别用户在聊天中的情绪,帮助选择出更匹配用户情绪的文本进行回复。在不远的未来,情感分析也将成为现代公司不可或缺的工具。但目前情感分析仍然局限于有限的简单分类主要为2分类,而有限的情感分类并不能很好地挖掘文本中包含的微情感,不能很好地满足需求。故细粒度的情感分析研究具有前沿性和更广泛的应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值