简单按照datawhale给的task2的文档学习了一下,主要还是学习了Data-Juicer相关的知识。
1.Data-juicer 初探
简单理解一下,Data juicer就是提供给你许多数据处理方法,包括Formatter、Mapper、Filter、Deduplicator和Selector,涉及图像、文本、声音以及多模态数据,通过组合这些方法实现不同的数据处理增强pipline,最终实现高质量的数据的产出。
可以看到这个工具与我们的赛题是非常契合的,因此比赛官方也是推荐使用这个工具来实现数据增强方法。下面提供了一些多模态相关的方法,比如Task1中的dj菜单中就用到了image_captioning_mapper方法。
算子 | 描述 |
---|---|
image_captioning_from_gpt4v_mapper | 基于gpt-4-vision和图像生成文本 |
image_captioning_mapper | 生成样本,其标题是根据另一个辅助模型(例如 blip2)和原始样本中的图形生成的。 |
image_diffusion_mapper | 用stable diffusion生成图像,对图像进行增强 |
video_captioning_from_frames_mapper | 生成样本,其标题是基于一个文字生成图片的模型和原始样本视频中指定帧的图像。不同帧产出的标题会拼接为一条单独的字符串。 |
image_text_matching_filter | 保留图像-文本的分类匹配分(基于BLIP模型)在指定范围内的样本 |
image_text_similarity_filter | 保留图像-文本的特征余弦相似度(基于CLIP模型)在指定范围内的样本 |
phrase_grounding_recall_filter | 保留从文本中提取的名词短语在图像中的定位召回率在一定范围内的样本 |
video_frames_text_similarity_filter | 保留视频中指定帧的图像-文本的特征余弦相似度(基于CLIP模型)在指定范围内的样本 |
除此之外还有一些数据清洗的方法,比如
算子 | 描述 |
---|---|
fix_unicode_mapper | 修复损坏的 Unicode 字符 |
nlpcda_zh_mapper | 使用 nlpcda 库对中文文本进行简单增强 |
image_text_similarity_filter | filter samples according to the similarity between text and images |
DJ提供了相当多的算子,大家可以都去尝试一下,看看效果。 |
2.Data-juicer 配置改进
在官方提供的配置基础上添加了,去重流程的改进后,最终的评测分数得到了小幅度的提升来到了0.8,初步验证了流程和方法的有效性。
旧:
新:
更多的可能只能大家自己去探索了
问题:
在使用DJ的算子的时候碰到了一个网络问题,无法自动下载需要的模型,只能手动从HF上下载到本地,使用了如下的代码
from huggingface_hub import snapshot_download
snapshot_download(repo_id="openai/clip-vit-base-patch32",
cache_dir="../better_synth_challenge_baseline/models",
token='hf_xxxxxx')
注意看是否需要token,去HF的个人界面创建一个token