HuggingFace 国内下载 阿里云盘下载速度20MB/s

文章目录

    • 效果展示
    • 思路
    • 阿里云盘API工具 aligo
      • 安装aligo
      • aligo教程
      • 实战
    • 保存模型到阿里云盘
      • 海外服务器下载模型
      • 装包
      • aligo的上传代码
    • 国内下载
    • 其他方式

效果展示

Huggingface被屏蔽了,根本下载不了。

阿里云盘下载速度最高可达20MB/s,平均17MB/s左右。【注意:这是会员的速度,阿里云盘的会员可以通过签到白嫖】

其实百度网盘应该也是可以的,但是百度网盘限速啊!
阿里云盘现在每天签到都可以领取一天的会员。感谢阿里巴巴

国内使用阿里云盘下载完成一个26G的模型权重,只花了半个小时
HuggingFace 国内下载 阿里云盘下载速度20MB/s_第1张图片

思路

其实阿里云盘、百度云盘等,肯定都存储过了Huggingface 的模型参数。
我们的解决思路就是在阿里云盘上,存储上对应的模型权重,然后直接使用阿里云盘进行下载。海外服务器通常是linux系统,所以需要使用阿里云盘API。
请添加图片描述

阿里云盘API工具 aligo

点击查看Aligo github
方便在linux服务器上使用,只需要填入一个刷新的token就可以了。

安装aligo

pip install aligo

aligo教程

请读者自行浏览

  • wiki
  • 案例

实战

  1. chrome抓包 获得refresh_token
    HuggingFace 国内下载 阿里云盘下载速度20MB/s_第2张图片
import aligo
from aligo import Aligo
refresh_token = "抓包拿到的refresh_token"
ali = Aligo(refresh_token=refresh_token)

查看你的用户信息,就知道是否登录成功了

print(ali.get_user())

保存模型到阿里云盘

前提:你要有海外的云服务器(colab、亚马逊、甲骨文等),海外服务器先下载模型,使用阿里云盘的API工具(比如:aligo等),把模型权重上传到阿里云盘中。

模型参数上传到阿里云盘会非常快,文件秒传,耗时半分钟左右。因为这些权重文件在阿里云盘中已经有了。

文件秒传:
文件上传时,首先会在本地计算文件的md5和字节数。服务器根据(md5,字节数)区分用户上传的文件是否已经在服务器中。如果用户上传的文件已经在服务器中了,那么用户就不需要重新上传一遍了。这就是我们发现有时候向云盘上传大型文件会特别快的原因。

海外服务器下载模型

装包

大模型(LLM)的下载方式,仅供参考
在jupyter(.ipynb文件),装如下几个包

!pip install transformers \
	fairscale \
	fire \
	sentencepiece \
	accelerate \
	bitsandbytes
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer

model_path = "LinkSoul/Chinese-Llama-2-7b-4bit"

tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False)
if model_path.endswith("4bit"):
    model = AutoModelForCausalLM.from_pretrained(
            model_path,
            load_in_4bit=True,
            torch_dtype=torch.float16,
            device_map='auto'
        )
else:
    model = AutoModelForCausalLM.from_pretrained(model_path).half().cuda()

HuggingFace 国内下载 阿里云盘下载速度20MB/s_第3张图片
在运行上述代码的时候,最好有GPU,不然会报错。

不用GPU的代码如下,这需要你有20G左右的RAM

    model = AutoModelForCausalLM.from_pretrained(
            model_path
        )

如果上述报错解决不了,也没有关系。那么就只纯粹下载模型权重即可:

  • git lfs install
  • git clone xxx.git

aligo的上传代码

remote_folder = ali.get_folder_by_path('xxx/阿里云盘文件保存路径')
ali.upload_folder(
	'/content/Chinese-Llama-2-7b', # 海外服务器云文件
	parent_file_id=remote_folder.file_id
)

国内下载

在linux服务器上,使用阿里云盘的API,下载模型权重


# 阿里云盘上的文件夹路径
file = ali.get_folder_by_path('xxx/models--LinkSoul--Chinese-Llama-2-7b-4bit')
# 阿里云盘上的文件路径
# file = ali.get_folder_by_path('xxx/data.json')

local_folder = '本地文件夹路径'
if file.type == 'file':
    ali.download_file(file=file, local_folder=local_folder)
else:
    ali.download_folder(folder_file_id=file.file_id, local_folder=local_folder)

其他方式

  • 使用Docker和百度网盘的可以查看这个github项目 点击查看

直说吧,我不会Docker,如果你有这方面的教程,欢迎你分享给我。

你可能感兴趣的:(huggingface,transformer,自然语言处理)