You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

免费版Google Drive仅15GB,如何向Google Colab上传30GB数据集?

解决Colab训练30GB数据集的免费方案

我之前训练大模型时也碰到过一模一样的问题——Drive免费空间不够,但又不想付费升级,下面几个亲测有效的免费方案可以试试:

方案1:直接利用Colab的临时存储空间

Colab的会话本身提供了约100GB的临时本地存储(路径在/content),虽然会话结束后数据会被清空,但完全足够用来存放30GB的数据集进行训练,根本不用碰Drive。操作步骤很简单:

  • 启动Colab会话后,用wgetcurl直接从数据集的公开下载链接拉取数据:
    # 示例:用wget下载压缩包
    !wget https://example.com/your-dataset.zip
    # 解压到临时目录
    !unzip your-dataset.zip -d /content/dataset/
    
  • 如果数据集是分散的多个文件,也可以用批量下载命令处理。训练过程中只要保持会话活跃(比如每隔一段时间点击一下页面,或者用代码自动发送心跳),数据就不会丢失。训练完成后记得把模型文件存到你的Drive里就行。

方案2:拆分数据集分批训练

如果你的模型支持增量训练或者分批加载数据,可以把30GB的数据集拆成几个小于15GB的子块,分批上传到Drive,再在Colab里按需加载:

  • 本地把数据集按类别、数据块或者文件大小拆分,比如用压缩工具分成两个15GB的压缩包;
  • 把拆分后的压缩包分别上传到Drive的不同文件夹;
  • 在Colab挂载Drive后,每次只解压当前训练需要的子块到临时存储,用完后删除临时文件再加载下一批:
    # 挂载Drive
    from google.colab import drive
    drive.mount('/content/drive')
    
    # 解压第一批数据
    !unzip /content/drive/MyDrive/dataset-part1.zip -d /content/temp-data/
    # 训练第一批数据...
    # 删除临时数据,加载第二批
    !rm -rf /content/temp-data/
    !unzip /content/drive/MyDrive/dataset-part2.zip -d /content/temp-data/
    

这个方案适合那些不需要一次性加载全部数据的模型,比如一些基于批次的深度学习模型。

方案3:利用共享Drive空间

如果身边有朋友有多余的Drive空间,或者你自己有多个Google账号,可以通过共享文件夹来凑够空间:

  • 让朋友把数据集上传到他的Drive,然后把文件夹共享给你(设置为“编辑”权限);
  • 在Colab里挂载Drive时,选择访问这个共享文件夹,就能直接读取里面的数据集;
  • 要是你有多个账号,也可以分别在不同账号上传一部分数据集,然后在Colab里挂载多个Drive(用不同的挂载路径):
    # 挂载第一个账号的Drive
    drive.mount('/content/drive1')
    # 挂载第二个账号的Drive(会弹出新的授权窗口)
    drive.mount('/content/drive2')
    

这样两个账号的15GB空间加起来就有30GB,足够存放数据集了。

方案4:直接从公开数据集平台加载

很多大型数据集都托管在Kaggle、Hugging Face Datasets这类平台,Colab可以直接集成这些平台,不用把数据存到Drive:

  • Hugging Face Datasets:如果数据集在Hugging Face上,直接用官方库加载,数据会自动存在Colab临时空间:
    !pip install datasets
    
    from datasets import load_dataset
    # 加载数据集,示例为IMDB数据集
    dataset = load_dataset("imdb")
    
  • Kaggle:先上传你的Kaggle API密钥(在Kaggle账号设置里下载kaggle.json),然后用API下载数据集:
    !pip install kaggle
    !mkdir ~/.kaggle
    !cp kaggle.json ~/.kaggle/
    !chmod 600 ~/.kaggle/kaggle.json
    # 下载指定数据集
    !kaggle datasets download -d username/dataset-name
    !unzip dataset-name.zip
    

注意事项

  • 临时存储的缺点是会话断开后数据会消失,所以训练时尽量不要长时间闲置Colab页面;
  • 如果数据集是私有且没有公开下载链接,优先考虑拆分或共享Drive的方案;
  • 部分Colab会话的临时空间可能因资源紧张略有缩水,下载前可以用!df -h查看当前可用空间。

内容的提问来源于stack exchange,提问作者user2215860

火山引擎 最新活动