微调篇「数据集构建」保姆级教程来了!
Datawhale干货
作者:吴锦凤,Datawhale优秀学习者
封面来源:code秘密花园
前篇:零基础入门:DeepSeek微调教程来了!
这次是「数据集构建」保姆级教程第一篇,会持续更新。
一、开源数据网站下载
Kaggle: /
ModelScope:
hugging face:
百度飞桨:
二、构建数据集(大致步骤说明)
1. 明确目标
- 定义问题:确定你要解决的问题或任务。(比如,你需要构建医疗领域的数据集,那么你应该搜索相关医疗的资料~有的时候问题不是很明确,这个时候就需要实际探究本质上你需要什么。)
- 确定数据类型:明确需要的数据类型(文本、图像、音频等)。
(ps:强调!!!以及非常需要关注构建的数据集是否符合你要后训练模型的数据格式~)
2. 数据收集(这一步就是收集所有你能收集到的相关的数据)
- 内部数据:从现有数据库、日志等获取数据。【如果有条件】
- 外部数据:通过公开数据集、相关网站配合ai抽取等方式获取。
- 数据生成:如有必要,可通过模拟或合成数据。【非必须】
3. 数据标注
- 手动标注:人工标注数据。
- 自动标注:使用工具或预训练模型进行标注。
4. 数据清洗
- 处理缺失值:填充或删除缺失数据。
- 去重:删除重复数据。
- 格式统一:确保数据格式一致。
- 异常值处理:识别并处理异常值。
大批量数据处理步骤 第一步:依托传统大数据平台(如 Hive、HBase、Flink、MySQL 等),对数据进行初步清洗,剔除明显错误或异常的数据。 第二步:借助人工智能技术,对数据中的错别字、语法错误、逻辑问题等进行智能修复,并结合标准数据集进行校准,提升数据质量与准确性。 第三步:开展人工终审,通过随机抽查的方式,对经过前两级处理的数据进行最终审核,确保数据的完整性和可靠性。
5. 数据增强【非必须,具体看情况调节】
- 图像:旋转、裁剪等。
(1)旋转
细节:旋转角度通常在一定范围内随机选择,如±30°或±45°,以模拟不同视角的图像。
操作步骤:使用图像处理库(如OpenCV或Albumentations)对图像进行旋转操作。如果图像有标注框(如目标检测任务),标注框也需要同步旋转。
代码语言:javascript代码运行次数:0运行复制import albumentations as A
transform = A.RandomRotate90(p=0.5) # 随机旋转90度
augmented_image = transform(image=image)['image']
(2)裁剪
细节:随机裁剪图像的一部分,裁剪区域可以是固定大小或随机大小。裁剪时需要注意保留关键信息。
操作步骤:使用随机裁剪函数,如Albumentations的RandomCrop。
代码语言:javascript代码运行次数:0运行复制transform = A.RandomCrop(width=400, height=400, p=0.3)
augmented_image = transform(image=image)['image']
(3)其他增强
亮度调整:通过调整图像的亮度来模拟不同光照条件。
噪声添加:向图像添加随机噪声,增强模型的鲁棒性。
代码语言:javascript代码运行次数:0运行复制transform = A.Compose([
A.RandomBrightnessContrast(p=0.3),
A.GaussianBlur(blur_limit=3, p=0.2)
])
augmented_image = transform(image=image)['image']
- 文本:同义词替换、回译等。(即增加噪声数据)
(1)同义词替换
细节:在句子中随机选择一些词语,用它们的同义词替换。注意替换后的句子语义应保持一致。
操作步骤:使用词典或词嵌入模型(如Word2Vec)找到同义词并替换
(2)回译(就是英翻中,中翻英,意......无限套娃中ing)
细节:将文本翻译成一种语言,再翻译回原语言,可能会引入一些语义变化。
操作步骤:使用机器翻译API(如Google Translate)进行翻译。
- 音频:变速、加噪声等。
(1)变速
细节:调整音频的播放速度,但保持音调不变。
操作步骤:使用音频处理库(如librosa)对音频进行变速处理。
(2)加噪声
细节:向音频中添加背景噪声,增强模型对噪声的鲁棒性。
操作步骤:从噪声库中选择噪声并叠加到音频上。
为什么添加噪声?(补充内容)
在数据集中添加噪声的主要目的是增强模型的鲁棒性。具体原因包括:
- 1. 模拟真实场景:真实世界中的图像通常包含噪声(如传感器噪声、压缩噪声等)。通过在训练数据中添加噪声,模型能够更好地适应实际应用中的噪声环境。
- 2. 防止过拟合:噪声可以作为一种正则化手段,防止模型过度依赖训练数据中的特定特征,从而提高泛化能力。
- 3. 数据增强:噪声添加是数据增强的一种方式,能够增加数据的多样性,帮助模型学习更广泛的特征。