7 数据集准备之数据收集与清洗

在本篇教程中,我们将聚焦于数据集准备的重要环节——数据收集与清洗。这一阶段的工作直接影响微调效果,因此需要认真对待。在前一篇中,我们讨论了相关库与工具的准备工作。现在,让我们深入探讨如何有效收集和清洗数据,以确保我们的 LLM 微调工作顺利开展。

数据收集

1. 确定数据来源

在进行数据收集之前,首先要明确数据的需求。这意味着:

  • 任务定义:明确你希望 LLm 执行的具体任务是什么,例如文本生成、分类、问答等。
  • 数据形式:根据任务确定所需数据的形式,可能是文本、对话、图像描述等。

示例

假设我们要微调一个语言模型,使其更好地生成诗歌。我们可能需要从以下来源收集数据:

  • 公共数据集:如 Kaggle、UCI Machine Learning Repository 等提供的现成数据集。
  • 网络抓取:通过爬虫技术抓取相关网站的内容。
  • 社交媒体:从 Twitter、Reddit 等平台收集用户生成的内容。

2. 数据抓取工具

在获取数据时,有几种常见的工具可以使用:

  • Beautiful Soup 和 Requests:用于抓取网页内容。
  • Scrapy:一个强大的抓取框架,适合大规模数据收集。
  • API 接口:许多网站(如 Twitter)提供 API 供用户获取数据。

代码示例

以下是一个使用 Beautiful Soup 抓取诗歌网站数据的简单例子:

1
2
3
4
5
6
7
8
9
import requests
from bs4 import BeautifulSoup

url = 'https://example.com/poems'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

poems = soup.find_all(class_='poem-content')
poem_list = [poem.get_text() for poem in poems]

3. 数据存储

在抓取数据后,需要考虑如何存储。常见的数据存储方式包括:

  • CSV 文件:适于小规模数据,便于读取和写入。
  • 数据库:如 MySQL、MongoDB,用于处理大规模数据。
  • JSON 文件:适用于结构化数据,易于分享和存储。

数据清洗

数据清洗是确保数据质量的关键步骤。原始数据可能包含很多噪声信息,我们需要对其进行处理。

1. 去除冗余

  • 重复数据:检查数据集中是否存在重复的条目。
  • 无效数据:删除无法解析或显然无意义的内容。

数据去重代码示例

以下代码示例展示了如何使用 Pandas 去除重复数据:

1
2
3
4
5
import pandas as pd

# 假设数据已经存储在 CSV 文件中
data = pd.read_csv('poems.csv')
cleaned_data = data.drop_duplicates()

2. 数据规范化

规范化是指将数据转换为一致的格式。常见的处理方式有:

  • 文本清理:去除多余的空格、特殊字符,转换为统一的格式(如小写)。
  • 长度过滤:根据业务需求过滤掉过短或过长的样本。
1
2
3
4
5
6
def clean_text(text):
text = text.strip() # 去除前后的空格
text = text.lower() # 转为小写
return text

cleaned_poem_list = [clean_text(poem) for poem in poem_list if 10 < len(poem) < 300]

3. 标注与分类

在某些情况下,你可能需要对数据进行标注或分类,以便于后续使用。例如,情感分类任务需要将文本标注为“积极”、“消极”或“中性”。

4. 数据抽样与分割

为了验证模型的效果,通常需要将数据集分为训练集、验证集和测试集。常规的分割比例为 80/10/10 或 70/15/15。

1
2
3
from sklearn.model_selection import train_test_split

train_data, test_data = train_test_split(cleaned_poem_list, test_size=0.2, random_state=42)

小结

在本篇中,我们详细介绍了数据收集与清洗的过程,从确定数据来源到选择合适的工具,再到数据的规范化和标注。数据的质量直接决定你微调后的模型性能,因此请在这一阶段投入足够的精力。

在下一篇教程中,我们将讨论如何对收集到的数据进行格式化,以便于 LLM 的微调过程。在此之前,请确保你已经完成了数据收集与清洗的所有步骤。

7 数据集准备之数据收集与清洗

https://zglg.work/llm-fine-tuning-tutorial/7/

作者

AI免费学习网(郭震)

发布于

2024-08-11

更新于

2024-08-12

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论