7 ChatGPT原理小白教程:训练数据的获取
系列进度
ChatGPT 原理入门 · 第 7 / 18 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
训练数据不是越多越好。对大模型来说,重复数据、低质量页面、版权不清的文本和偏见样本都会进入模型行为。理解数据来源,才能理解模型为什么会有某些习惯和盲区。
读完后可以反过来检查一个公开数据集:它来自哪里,是否去重,是否包含低质量网页,是否有版权或隐私风险。这个习惯对做 RAG、微调和企业知识库也有用,因为数据质量会直接进入最终回答。
在上一篇文章中,我们探讨了“转化器(Transformer)架构”的基本原理,了解了Transformer如何在自然语言处理(NLP)任务中实现优秀表现。在本篇文章中,我们将深入探讨“模型训练”中的关键一环:训练数据的获取。获取高质量的训练数据是构建强大模型的基础。接下来,我们将详细讨论如何获取和处理训练数据,并结合一些实际案例进行说明。
训练数据的重要性
在训练一个像ChatGPT这样的语言模型时,训练数据是至关重要的。数据的质量和多样性直接影响模型的性能。我们的目标是收集能够覆盖广泛主题、语言风格和上下文的文本数据,以确保模型具备良好的理解和生成能力。
理解训练数据获取时,先看数据来源、授权边界、清洗规则、去重策略和质量筛选。数据质量会直接影响模型表现。
训练数据的来源
训练数据可以来自多个渠道,以下是一些主要来源:
读完《ChatGPT原理小白教程:训练数据的获取》不要只停在“看懂了”。回头挑一个步骤动手做一遍,再记录哪里卡住,后面的学习会更稳。
-
公共数据集:
- 有很多现成的公共数据集可供下载和使用。例如,
Wikipedia、Common Crawl和OpenSubtitles都是极其丰富的文本资源。 - 案例:
Common Crawl是一个包含数十亿网页抓取的开放数据集,适合用于训练语言模型。可以通过Python代码下载部分数据:import requests url = "https://data.commoncrawl.org/" response = requests.get(url) print(response.text) # 获取Common Crawl的主页,进一步探索数据
- 有很多现成的公共数据集可供下载和使用。例如,
-
社交媒体和论坛:
- 用户在社交平台(如Twitter、Reddit)上的发言和讨论通常包括丰富的口语化文本和多样的观点。
- 案例:抓取
Reddit的帖子可以用PRAW库(Python Reddit API Wrapper)来实现:import praw reddit = praw.Reddit(client_id='YOUR_CLIENT_ID', client_secret='YOUR_CLIENT_SECRET', user_agent='YOUR_USER_AGENT') subreddit = reddit.subreddit('learnpython') for submission in subreddit.new(limit=10): print(submission.title) # 输出最新的10个帖子标题
-
书籍和论文:
- 电子书和学术论文也为训练数据提供了丰富的内容。
- 可以使用
Project Gutenberg提供的公共领域书籍,或通过arXiv获取科研论文。
-
自有数据:
- 有些公司和机构会利用自身的历史数据进行模型训练,例如用户交互日志、客服记录等。
数据处理
获取数据后,还需要进行数据处理,以保证数据的质量和格式适合模型训练。以下是一些常见的数据处理步骤:
-
去重:
- 删除重复的文本,以避免模型在同样的数据上进行多次训练。
-
清洗:
- 移除无关的内容,例如HTML标签、特殊字符等。可以使用正则表达式进行文本清理:
import re def clean_text(text): text = re.sub(r'<.*?>', '', text) # 移除HTML标签 text = re.sub(r'[^a-zA-Z0-9\s]', '', text) # 移除特殊字符 return text.strip()
- 移除无关的内容,例如HTML标签、特殊字符等。可以使用正则表达式进行文本清理:
-
标注和过滤:
- 根据特定需求,对数据进行标注和过滤。例如,仅选择包含特定关键词的文本。
-
划分数据集:
- 通常需要将数据分为训练集、验证集和测试集。这样的划分有助于评估模型的泛化性能。
数据获取的挑战
在获取和处理训练数据的过程中,可能会面临一些挑战:
-
数据版权:
- 部分数据源的版权问题需要特别注意。确保在使用公共数据时遵循相关的使用规定和许可协议。
-
数据质量:
- 需要保证所收集数据的质量,避免低质量或错误的信息影响模型训练。
-
多样性:
- 我们应尽量确保训练数据的多样性,以使模型能够处理不同类型的查询和语境。
如果《ChatGPT原理小白教程:训练数据的获取》还没完全消化,可以从这张卡片的四个动作重新走一遍。
回看《ChatGPT原理小白教程:训练数据的获取》时,不必一次做大项目,先用一条简单样例确认主线是否清楚。
小结
在我们学习了“训练数据的获取”后,可以看到这一过程在构建ChatGPT模型中是不可忽视的一环。高质量且多样化的训练数据使模型能更好地理解人类语言,并生成更具上下文相关性的响应。在下一篇文章中,我们将进一步探讨“模型训练”中的另一个关键环节——“预训练与微调”。
通过本篇文章的学习,希望你对训练数据的获取有了更加深入的理解,为后续学习奠定了良好的基础。
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
ChatGPT原理小白教程:训练数据的获取适合谁读?
这是 ChatGPT 原理入门 系列第 7 / 18 篇,适合正在学习ChatGPT 原理入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇ChatGPT 原理入门教程要多久?
按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读