如何下载commoncrawl语料
概述
近期业务团队需要下载 commoncrawl 语料,commoncrawl 是什么东西就不赘述了,这里只描述一下如何在短时间内进行大量的下载。
下载方案
业务团队提出需求后,他们的期望肯定是越快越好,但是这个快,不仅取决于技术人员,还取决于钱和预算,作为技术人员,你需要平衡好预算和速度,毕竟语料是存在 AWS S3 的,全世界人民都可以下载。技术方案取决于公司本身机房运营商的公网 IP,带宽等,下面的方案是针对我司来定制的。
公有云下载
公有云方案就是相对灵活,申请公网 IP 还是比较容易的,而且 quota 一般都不小,随便申请一两百个,云厂商还是很欢迎的。按之前在某云上的测试结果看,7.5MiB/s 的平均速度还是可以保证的。按这个时间来计算,如果要下载 commoncrawl 最新分片的话,按90TB的大小计算,一个公网 IP 大约需要145天可以下载完,如果你觉得时间太长了,那就用100个 IP 同时下载,那么时间将会变成1.5天,大大节约了时间。弊端就是可能需要考虑一下,公有云出云的流量费在0.5/GB,也就是光流量费可能就要四五万的费用。
IDC机房下载
公司有租用机房,也有预算内的公网 IP 和带宽(具体数字就不透露了),因此选择用公司机房下载也是可行的,只是相对来说不如公有云弹性大,比如申请更多的公网 IP 以及更大带宽的物理线路,是可能机房那边进行施工的,而且一般来说申请的运营商的公网 IP 数量多了的话,还需要走对方运营商的审批,流程复杂,可能会无法预估实际的耗时。
下图是我们实测的结果,虽然走 IDC 运营商的网络下载有时候高峰速度可以达到40-60MiB/s,但也要留意到在这个速度并不是很稳定,虽然平均速度不低于公有云下载的速度,但也要考虑到通过 aws s3 客户端拉取文件失败的时候需要重新下载,那么实际在下载过程中,在网速太低或者网络质量不稳定的情况下,即使是并行下载,也可能会有多个文件需要重新下载。从我们的经验看,失败率很高,所以会导致整体的下载效率比较低。
当然了,作为 IDC 的大客户,在带宽、流量这些基础设施前还是有些议价空间的,因此下载这批数据的成本可能会比公有云稍低一些,大家酌情考虑。
总结
下载这么多语料对业务有没有帮助呢?毕竟这个流量费算下来价格可不菲。当然了,这个可能就不是我们基础架构考虑的事情了,只能说项目上线之后让数据说话吧。