# 2021_QQ_AIAC_Tack1_15st
2021QQ浏览器AI算法大赛 赛道一 多模态视频相似度任务 第15名方案
[QQ浏览器AI算法大赛官网](https://algo.browser.qq.com/)
**就不提交就是玩儿~** 队伍
## 目录说明
```shell
checkpoints/ 训练模型保存文件
data/ 数据集
config/ 配置文件
dataset/ 数据读写相关
final_model/ 最终融合模型
model/ 模型定义相关
result/ 中间文件以及结果文件
utils/ 工具类以及方法
pic/ README图片存储
data_analysis.ipynb 数据分析文件
val_tsv.ipynb Pairwise数据划分文件
pretrain_bert.py macbert文本模型预训练
pretrain_transformer.py transformer视频模型预训练
pretrain_hero.py transformer文本视频模型预训练
finetune_bert_trs_hero.py 三模型融合finetune
common_evalue.py 验证预训练模型或者finetune模型
common_test.py 生成test结果
```
## 模型介绍
1. 通过Bert提取文本特征
2. 通过Transformer提取视频特征
3. 通过Transformer提取视频文本融合特征
4. 三种特征通过Attention进行加权融合得到最终embedding
整体预测流程图如下图所示
![整体预测流程图](pic/AIAC.drawio.png)
### 预训练
其中文本Bert预训练,视频Transformer预训练各自是单独通过对tag 10000类多标签预测完成,最后一个transformer预训练则同时输出文本以及视频特征通过对tag 10000类多标签预测完成。总的来说就是一个模型提取文本特征,一个模型提取视频特征,一个模型提取视频和文本的交互特征。
### finetune
> finetune过程中冻结所有训练模型参数
finetune则是通过attention机制加权融合三个预训练模型提取的特征,随后预测pairwise视频对的score,计算mse loss实现训练。
## 前期准备
### 代码下载
[代码下载连接](https://share.weiyun.com/l7rgfQvi),下载其中的`code.zip`
下载后解压到对应目录
### 安装依赖
```shell
pip install -r requriements.txt
```
### 链接数据集
```shell
ln -s xxx/xxx/data ./
```
把数据集链接到本项目文件夹下
![项目文件](pic/Snipaste_2021-10-15_18-31-34.png)
并在data文件夹中新建`desc_test.json`文件,如上图所示
```json
{
"id": "byte",
"tag_id": "int",
"category_id": "int",
"title": "byte",
"frame_feature": "bytes",
"asr_text": "byte"
}
```
### 下载文本预训练模型
[macbert下载连接](https://share.weiyun.com/l7rgfQvi),下载其中的`chinese_macbert_base.zip`
下载macbert预训练模型并放置于data目录下,放置后目录结构如下图
![项目文件](pic/uTools_1634294102754.png)
### 下载checkpoints
[checkpoints下载连接](https://share.weiyun.com/l7rgfQvi),下载其中的`checkpoints.zip`
下载checkpoints预训练模型并放置于根目录下,放置后目录结构如下图
![项目文件](pic/Snipaste_2021-10-15_23-58-05.png)
## PRETRAIN
> 如果不需要预训练则跳过本步骤
### bert预训练
配置文件位于:`config/bert_pretrain_config.yaml`
```shell
python pretrain_bert.py
```
### transformer预训练
配置文件位于:`config/trs_pretrain_config.yaml`
```shell
python pretrain_transformer.py
```
### hero预训练
训练配置文件位于: `config/hero_pretrain_config.yaml`
模型配置文件位于: `config/hero_pretrain.json`
```shell
python pretrain_hero.py
```
## FINETUNE
> 本项目finetune过程使用的都是在预训练过程中spearman最高的模型
> 如果不需要finetune则跳过本步骤
配置文件位于:`config/hero_finetune_config.yaml`
注意配置以下预训练模型的存储路径:
```yaml
TAG_FRAME_TRS_CONV: checkpoints/pretrain/xxx.bin
TAG_TITLE_ASR_BERT: checkpoints/pretrain/xxx.bin
HERO: checkpoints/pretrain/xxx.bin
```
```shell
python finetune_bert_trs_hero.py
```
## TEST
配置文件位于:`config/test.yaml`
注意配置以下`TESTING.CHECKPOINT`路径:
```yaml
TESTING:
BATCH_SIZE: 512
SAVE_PATH: result/result.json
CHECKPOINT: checkpoints/finetune/xxx.bin
```
最终使用模型路径为`checkpoints/finetune/HERO12_FINTUNE_epoch20_0.7925.bin`,本地验证spearman为0.7925,线上为0.82155
```shell
python common_test.py
```
代码会自动生成并压缩结果文件,存储于`result`文件夹中
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【目标受众】: 本项目适合IT相关专业各种计算机技术的源代码和项目资料,如计科、人工智能、通信工程、自动化和电子信息等的在校学生、老师或者企业员工下载使用。 也适合小白学习进阶,可以用作比赛项目、可以进行项目复刻去参加同赛道比赛。 【资源内容】: 源码与竞赛资料:教育部认可的大学生竞赛备赛资料代码、源码、竞赛总结。 功能与质量保证:这个资源库是一个宝贵的学习平台,有助于他们深入了解计算机技术的原理和应用。这些源码经过测试和验证,可以直接运行,方便学生快速上手并开始实践。 【应用场景】: 竞赛准备:适用于各种教育部认可的竞赛,如全国电子设计大赛、全国大学生智能汽车竞赛等,他们可以借助这些资料了解竞赛的规则、要求和技巧。 学习与项目开发:可以用作毕设、课设、作业和竞赛项目的开发基础,可以使用这些源码作为项目开发的基础,快速构建出具有竞争力的作品。 【互动与交流】: 资料鼓励下载和使用这些资源,并欢迎学习者进行沟通交流、互相学习、共同进步。这种互动式的学习方式有助于形成良好的学习氛围,促进知识的共享和传播,为计算机相关专业的学习者提供了一个全面的学习和发展平台。
资源推荐
资源详情
资源评论
收起资源包目录
2021QQ浏览器AI算法大赛 赛道一 多模态视频相似度任务 第15名方案.zip (75个子文件)
资料总结
val_tsv.ipynb 42KB
pretrain_hero.py 7KB
pic
Snipaste_2021-10-15_18-31-34.png 14KB
uTools_1634294102754.png 14KB
Snipaste_2021-10-15_23-58-05.png 22KB
AIAC.drawio.png 112KB
sh_train见readme.sh 0B
data_analysis.ipynb 197KB
pretrain_bert.py 7KB
sh_run.sh 21B
utils
utils.py 1KB
__init__.py 75B
scheduler.py 3KB
iterator_utils.py 2KB
reader.py 10KB
model_load.py 334B
example_pb2.py 18KB
model_saver.py 1KB
dataset
__init__.py 0B
reader_base.py 11KB
hero
mlm.py 6KB
my_dataset.py 10KB
metaloader.py 1KB
hero_dataset.py 34KB
final_model
model_base.py 1KB
finetune_models.py 8KB
common_evalue.py 6KB
model
nextvlad.py 2KB
loss.py 2KB
model_integration.py 842B
finetune_model.py 31KB
models.py 16KB
bmt
my_bmt.py 3KB
blocks.py 5KB
encoder.py 5KB
multihead_attention.py 3KB
my_mlm.py 25KB
hero
layers.py 13KB
my_model.py 20KB
model.py 15KB
embed.py 7KB
encoder.py 19KB
mfm_tag_vit.py 5KB
mlm_tag_bert.py 5KB
modeling_utils.py 5KB
my_model_bert.py 20KB
crossbert.py 4KB
my_cross_trs.py 23KB
my_bert.py 1KB
model_base.py 1KB
my_transformers.py 10KB
common_test.py 3KB
requirements.txt 154B
finetune_bert_trs_hero.py 9KB
pretrain_transformer.py 7KB
.gitignore 2KB
README.md 4KB
config
hero_pretrain.json 2KB
trs_pretrain_config.yaml 2KB
bert_pretrain_config.yaml 2KB
test.yaml 2KB
hero_finetune_config.yaml 2KB
hero_pretrain_config.yaml 6KB
result
pointwise_info.csv 75.84MB
pairwise_score.csv 2.84MB
pairwise_info.csv 4.62MB
category_id_count_info.csv 3KB
test_a_info.csv 2.15MB
graph_info.csv 1.48MB
tag_count_info.csv 630KB
pairwise_finetune_or_val.csv 306KB
pairwise_finetune_or_train.csv 2.61MB
pairwise_finetune_train.csv 2.6MB
pairwise_finetune_val.csv 311KB
test_b_info.csv 2.95MB
共 75 条
- 1
资源评论
- chunhan012024-04-09支持这个资源,内容详细,主要是能解决当下的问题,感谢大佬分享~
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现电力系统仿真计算软件包,包括潮流计算,最优潮流计算等.rar
- 基于matlab实现电力系统各种故障波形仿真,单相接地故障,两相间短路,两相接地短路,三相短路等.rar
- 基于matlab实现电动汽车动力性,爬坡性,续驶里程等性能仿真.rar
- Python动态烟花代码.pdf
- 基于matlab实现串口发送接收数据 可配置端口,波特率等 发送可选择ASCII方式或HEX方式
- matlab基于BP神经网络手写字母识别(单一).zip代码9
- 基于matlab实现编写的串口调试工具,数据接收部分采用中断方式,保证了实时的数据显示
- 基于matlab实现39节点电力系统合闸角调控过程中的机组和负荷的灵敏度计算.rar
- HBase数据库性能调优
- 原生微信小程序源码 - -首字母排序选择
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功