一日一技:助力大语言模型训练,无压力爬取六百亿网页

这是「进击的Coder」的第 832 篇技术分享

作者:kingname

来源:未闻 Code

阅读本文大概需要 8 分钟。

ChatGPT 一炮而红,让国内很多公司开始做大语言模型。然后他们很快就遇到了第一个问题,训练数据怎么来。有些公司去买数据,有些公司招聘爬虫工程师。但如果现在才开发爬虫,那恐怕已经来不及了。

即使爬虫工程师非常厉害,可以破解任意反爬虫机制,可以让爬虫跑满网络带宽,可是要训练出 GPT-3 这种规模的大语言模型,这个数据并不是一天两天就能爬完的。并且,有很多老网站的数据,早就被删除了,爬虫想爬也爬不到。

如果你看了今天这篇文章,那么恭喜你,你即将知道如何快速获取 600 亿网站的数据。从 2008 年开始爬取,这些网站数据横跨 40 多种语言。截止我写这篇文章的时候,最新的数据积累到了 2023 年 2 月。只要是 Google 现在或者曾经搜索得到的网站,你在这里都能找到。唯一制约你的,就是你的硬盘大小——仅仅 2023 年 1 月和 2 月的网页加到一起,就有 400TB。而且所有这些数据,完全免费!不需要注册登录!不需要梯子!不需要下载任何额外软件!只需要浏览器或者 Linux 中的 wget 命令就能直接下载。

这个项目叫做 Common Crawl[1],官网长这样:

d8f2b4ff1af7b5c433b815b673e89b7d.png

获取数据的方法,网站已经写到了 Get Started[2] 中。我们来看看这个页面的第一段话:

67a10ad1fc5aa7f5b70782bd3923e299.png

The Common Crawl corpus contains petabytes of data collected since 2008. It contains raw web page data, extracted metadata and text extractions.

Common Crawl语料库包含了上PB的数据。这些数据从2008年开始收集。他包含了网页的原始页面HTML、提取出来的元信息和纯文本。

Common Crawl 的数据保存在亚马逊 S3 上面,我们可以直接通过 HTTP 来下载。当然如果你硬盘够大,你可以写代码来批量下载全部数据,这个时候可以使用 Python 的 boto3 模块访问 S3.

我用 HTTP 下载的方式,来给大家演示一下这个数据怎么下载和使用。我们在上面提到的 Get Started 页面,找到你想下载数据的时间点。例如我想下载 2023 年 1 月和 2 月的网站数据,如下图所示:

e3dd6914bc196ad6b5f281645262a43f.png

点击红框中的链接,进入一个新的页面。如下图所示:

ada0f9c7d083f2bb6abbbba8b2668dde.png

从这个页面上,我们可以看到这个数据集的简介。2023 年 1 月到 2 月的数据,从 1 月 26 号开始抓取,到 2 月 9 号截止。包含 315 亿个页面。原始数据不压缩的情况下有 400TB。这些网站来自 3300 万个域名,130 亿个之前没有抓过的 URL。

在这个页面,我们可以看到一个表格,这里面显示了不同的数据类型:

f986588a1efcfad087f17cd3eb13813b.png

其中WARC files文件,记录的是网页的原始 HTML 代码。WET files文件,记录的是简单处理后,提取出来的网页所有纯文本。

大家不要被最后一列的数据大小吓到了。你不需要一次性下载这么大的数据。

以 WARC 文件为例,点击File List中的链接,会自动下载一个很小的压缩文件warc.paths.gz。这个文件需要使用 gunzip 命令来解压缩。这个命令理论上在 macOS 和 Linux 中都是自带的。使用如下命令解压缩:

gunzip warc.paths.gz

解压完成以后,会生成一个warc.paths的文件。这个文件有 9.2MB,也非常的小。我们可以使用 vim 或者 less 命令查看里面的内容,如下图所示:

73ec92ea0e368fe9974d84c4c02b35fd.png

这里面列出来的是不同时间段的文件。我们可以依次下载每个文件,分别解压缩。这样分文件,是 Common Crawl 为了方便大家下载而做的。否则一次性下载几十 TB,谁受得了。

我们随便找一个地址,例如crawl-data/CC-MAIN-2023-06/segments/1674764494826.88/warc/CC-MAIN-20230126210844-20230127000844-00001.warc.gz。把这个地址前面拼接上域名https://data.commoncrawl.org/,因此完整的 URL 应该是:https://data.commoncrawl.org/crawl-data/CC-MAIN-2023-06/segments/1674764494826.88/warc/CC-MAIN-20230126210844-20230127000844-00001.warc.gz。这就是能够下载这个时间段数据的 URL 了。这个压缩文件有好几个 G,因此不建议直接在浏览器上面打开这个 URL。我们可以使用 wget 命令来下载。当然你也可以用迅雷来下。

40baffa01a92c0b9497dc5f5a1c4770d.png

下载完成以后,会得到一个CC-MAIN-20230126210844-20230127000844-00001.warc.gz文件,继续使用gunzip命令解压缩,得到CC-MAIN-20230126210844-20230127000844-00001.warc文件。这个文件本质上是一个文本文件,可以使用 vim 或者 less 命令查看:

a49e164cab31323c5da224eaa7ff57d3.png

这里面记录的是网站的元信息和 HTML。数据是以 WARC 格式储存的。关于这个格式,在上面提到的 Get Started 页面可以看到具体的说明:

7333bc819884f3b2b178a3deb79b2de9.png

你可以直接写一个程序来解析,或者安装一些现成的程序来解析,并转成 JSON 或者其他格式。Ubuntu 下面可以使用 apt 命令安装 warcat 来解析,这里就不多说了。如果不知道怎么解析也可以问一问 ChatGPT。

我们再来看一下WET文件,打开以后如下图所示:

2cc5a7d43097cde5a52991b47e8162f7.png

算是一个比较粗糙的正文提取方法,仅仅是把页面上的所有文本全部提取出来了而已。

如果你想让新闻类、博客类文章的提取效果更好,那么可以试一试把这个 WARC 格式里面的 HTML 提取出来,然后使用我的 GNE[3] 来提取正文,提取效果就会好非常多:

a53fe9600b8eda1b6f0f7b1a0a5c2b68.png

总结

众所周知,中文互联网是封闭的互联网。但不要因此就觉得现在已经没有良心网站了。Common Crawl 就属于这样的良心网站,完全免费,不需要注册登录,没有任何限制,不需要安装任何软件,直接获取 15 年来绝大部分网站的原始数据。

希望这些数据,能让我们自己的大模型更进一步。

[1]

Common Crawl: https://commoncrawl.org/

[2]

Get Started: https://commoncrawl.org/the-data/get-started/

[3]

GNE: https://github.com/GeneralNewsExtractor/GeneralNewsExtractor

9403ef16ec0b8c719fd148b7b7c2365d.png

End

崔庆才的新书《Python3网络爬虫开发实战(第二版)》已经正式上市了!书中详细介绍了零基础用 Python 开发爬虫的各方面知识,同时相比第一版新增了 JavaScript 逆向、Android 逆向、异步爬虫、深度学习、Kubernetes 相关内容,‍同时本书已经获得 Python 之父 Guido 的推荐,目前本书正在七折促销中!

内容介绍:《Python3网络爬虫开发实战(第二版)》内容介绍

6d64dd1ac1bfadc1b029234c7519e050.jpeg

扫码购买

0e4183a0ea368c5c96eff93b5c136604.png

好文和朋友一起看~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/66424.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GoDaddy惨遭网页插入JavaScript脚本

2019独角兽企业重金招聘Python工程师标准>>> Oracle软件工程师Igor Kromin在自己的部落格揭露,他意外发现网域注册与网页托管商GoDaddy,会在没有经过使用者同意之下,将JavaScript脚本注入到托管网站中。Igor Kromin之所以发现GoDa…

围观!有钱人是如何惨遭被绿的?

来 源:费加罗夫人(ID:iiiFigaro) 要想生活过得去 基金难免有点绿 不如我们就直接当一回勇士 直面绿绿的人生 前方高能 请欣赏迷人的绿色风景 基金能涨多少 就看各位爸爸的在看有多少了???? *关于作者:费加罗夫人…

阿里内网惨遭开源的“顶级Nginx完全开发指南”

Nginx是著名的Web服务器,性能优异,运行效率远超传统的 Apache、Tomcat,广泛应用于国内外诸多顶级互联网公司。 Nginx功能强大,架构复杂,学习、维护和开发的门槛较高。为了帮助大家跨越这一障碍,小编就给大家分享一份据说是华为大…

免费换电池还倒塞用户200,iPhone惨遭“耐用”反噬

多年来 iPhone 最为诟病的几个缺点之一肯定少不了电池。 在 Android 已经普及4、5000mAh 大电池加快充组合的情况下,iPhone 仅有 Pro Max(Plus)勉强及格。 更难受的是今年3月,官方换电池还迎来了幅度不小的涨价。 苹果这是在建议我…

一经推出就惨遭GitHub哄抢,什么SQL优化笔记如此出众?

收获不止SQL的优化,抓住SQL的本质 收获,不止SQL优化,真正实用好工具。从数据库体系结构、表和索引设计、高效SQL写法、高级SQL语法、多种优化工具等知识,甚至还得分析业务特点,以及了解优化器的缺点都提供了很好的方法…

android8.0索尼z5,Z5 惨遭抛弃?索尼公布 Android 8.0 升级机型

索尼在 IFA 上发布了预搭载 Android 8.0 奥利奥的 Xperia XZ1/XZ1 Compact 后,同时放出了可以升级 Android O 的具体机型名单,我们来看一下。Xperia X Xperia X Performance Xperia XZ Xperia X Compact Xperia XZ Premium Xperia XZs Xperia XA1 Xperia…

Windows Phone惨遭微软放弃

微软在电脑操作系统上的用户保有量一直处于遥遥领先的地位,特别是最新的Windows 10系统,一经推出,市场表现就比较好,但相比起来,微软的手机操作系统Windows Phone就被贴上“差等生”的标签了。 自微软2013年9月2日收购…

腾讯申请元宇宙相关商标,惨遭被驳回

根据企查查信息显示:最近,腾讯音乐娱乐科技(深圳)有限公司申请的“律动元宇宙”商标遭到驳回,目前商标状态为等待驳回复审,商标申请日期为 2021 年 9 月。 除了腾讯,此前多家公司申请元宇宙相关…

mate10 Android 功耗,华为mate10续航评测比拼惨遭完爆

国行华为mate10正式发布,被花粉们最关心的价格十分感人,售价3899元起!除了价格还有最关心的就是电池续航,据了解这次华为mate10和mate10 pro电池容量都是4000毫安。就在国行mate10发布后,国外就有测评达人将一加5、三星…

iPhone14 全系配置曝光,性能惨遭阉割

产业分析师郭明錤给出了最新 iPhone14 的预测报告,最值得注意的是配置方面。 郭明錤认为,在 iPhone14 系列中,仅有两款 iPhone14 Pro 会升级到 A16 处理器,而另外两款 iPhone14 将继续采用 A15 处理器(iPhone13同款&am…

一位姐姐的朋友惨遭前同事诈骗

请注意,现在的骗子花样越来越多了,所有向你所要个人信息,提供借贷的,都不要信任。 待我慢慢到来,就是这位姐姐的朋友,跟她以前的男同事发生的一起贷款,征信,诈骗的事件 那前同事让这…

亚马逊App换logo,惨遭全网黑

西雅图IT圈:seattleit 【今日作者】 Powerball选号机 身体和灵魂总有一个要 走在买PowerBall的路上 不知道有没有小伙伴注意到 最近自己手机上出现一了个 不大眼熟的App logo 这个App就是亚马逊本逊 过去许多年来它的图标 一直是个购物推车 改版前后的两个logo的样子…

某程序员哀叹:提出离职后被公司挽留,千万别留!自己拒绝offer留下来,却惨遭边缘化!...

‍‍ ‍‍提了离职被公司挽留,该不该留? 这大概是许多职场人都会遇到的问题,一位程序员用亲身经历告诉大家:千万别留! 楼主提离职后被挽留,拒了offer留下来,没想到领导态度变得很差,…

druid的java占位符条件查询,惨遭DruidDataSource和Mybatis暗算,导致OOM

先遭DruidDataSource袭击 事发 一个平凡的工作日,我像往常一样完成产品提出的需求的业务代码,突然收到了监控平台发出的告警信息。本以为又是一些业务上的bug导致的报错,一看报错发现日志写着java.lang.OutOfMemoryError: Java heap space。 …

上班时间做“副业”被抓,程序员惨遭解雇,还要退还所有工资

大家好,我是校长。 01 做副业被抓 前几天看到 CSDN 报道的一篇新闻。有一个程序员在一个月内两次未能在截止期限之前顺利完成工作,然后呢,主管很生气,很恼火。由于团队项目不能按时完成的话,团队其他的成员的绩效也会跟…

惨遭恶搞的微软与 Github

来源 | 公众号:程序猿 恭喜 GitHub 正式加入 Office 365 大家庭! 怎样?有其他开发者吗? 这简直是神预言 GitHub被收购后,GitLab 露出了欣慰的表情 很遗憾,现在不是了 我们的时代要来了 透过屏幕&#xff0c…

惨遭 openssl 不同版本毒打的一天

事情是这样的,是由一个加密的sql文件引发的惨案。 我被这些报错信息毒打了差不多8个小时,然后终于找到了答案,之所以写下来这篇文章,希望能帮到与我遭受同样痛苦的人。 先来看下这个文件: test.des3 里面是个sql文件 我的解密环境…

android wear评测,Android Wear 中国版:惨遭阉割

Android Wear 中国版:惨遭阉割 当得知Moto 360二代要在国内上市的时候,人们开始觉得Moto 360二代这次身负重任,被认为是谷歌重返中国的开端。因此,我们评测过程中就是用安卓手机来作为测试对象,安装的是中国版的Androi…

直播 RTM 推流在抖音的应用与优化

动手点关注 干货不迷路 背景 随着互联网技术以及网络基建的快速发展和普及,视频直播已经成为了一种越来越普遍的娱乐和社交方式。无论是个人还是企业,都可以通过视频直播平台进行直播活动,向观众展示自己的生活、工作或者产品。同时&#xff…

视频号如何使用OBS推流?

一、视频号OBS推流教程 视频号obs推流需要向官方申请开通,请按照如下方法操作开通: 【注意】在申请前一定要完成视频号的认证 第一步:复制链接在浏览器打开,视频号绑定微信扫码登陆视频号助手 画布分辨率:横屏设置比…