一,报名及相关注册:
报名地址:2024 iFLYTEK A.I.开发者大赛-讯飞开放平台
计算平台:魔搭社区,绑定阿里云账号即可正常使用。
二,运行baseline
- 文件下载:代码,数据集,语言包:代码及数据集可在群文档中找到,语言包点击跳转下载对应版本
- 在魔搭平台中使用gpu环境,将文件上传至对应目录,并将dataset解压,把语言包放进去,并安装。
unzip dataset.zip cd dataset pip install en_core_web_trf-3.7.3-py3-none-any.whl
- 从头运行代码并取得submit结果。
三,提交
上传submit文件即可
四,对代码的想法
鉴于本人实力很差,只提供自己的看法,有错请大佬口下留情。
我看完代码后感觉应该加个学习率调度器,应该可以让初期收敛更快,后期减少学习率细化权重。
from torch.optim.lr_scheduler import StepLR
# 初始化优化器
optimizer = initialize_optimizer(model)
# 设置学习率调度器
scheduler = StepLR(optimizer, step_size=30, gamma=0.1)
# 在训练循环中更新学习率
for epoch in range(N_EPOCHS):
train_loss = train(model, train_iterator, optimizer, criterion, CLIP)
valid_loss = evaluate(model, valid_iterator, criterion)
scheduler.step() # 更新学习率
此外,还可以做一些数据清洗,同义词替换等操作,以下是一个简单的数据清洗。
import re
def clean_text(text):
# 去除HTML标签
text = re.sub(r'<.*?>', '', text)
# 去除无关的非文本内容,如特殊字符等
text = re.sub(r'[^\w\s]', '', text)
# 去除多余的空格
text = re.sub(r'\s+', ' ', text).strip()
return text
def preprocess_text(en_data, zh_data):
cleaned_en_data = [clean_text(line) for line in en_data]
cleaned_zh_data = [clean_text(line) for line in zh_data]
return cleaned_en_data, cleaned_zh_data