围绕Huggingface访问权展开的斗争
  K9WDEqoiBlLk 2023年12月23日 15 0

这个文章其实之前被排上了日程,但是在队列的很后面,没什么优先级,今天确实是插队了,因为我朋友下周需要帮忙弄Alpaca的模型,然后又自觉交了保护费,我一看这太是那个了,必须安排!!!给他排期提前了...

围绕Huggingface访问权展开的斗争_对象存储

       我挺长时间没上HF了,因为本身最近也没什么新模型想下载,之前老断我,搞得很气,结果今天一登录又这样...

围绕Huggingface访问权展开的斗争_重传_02

当然从log看其实海那边也主动去断来自海这边的connection, 基本互删了,属于是......

       必须承认的是HF,现在已经是在模型社区和训练数据社区里面事实的老大,不能访问它影响还是比较大的,当然有条件可以挂代理,爬ti子,但是这些不在这个文章的讨论范围,而且挺麻烦。

       在和HF斗智斗勇的历程中,主要经历以下几个阶段:

      第一阶段:采用上海移动的IPv6来访问HF的CDN下载站点,这个当时不知道为什么可以,但是我朋友家上海移动的宽带,采用IPv6的解析下,访问HF,速度也还成,用任何方式下载也都没问题

围绕Huggingface访问权展开的斗争_数据_03

然而在上个月也废了,目前的状态是他也访问不了了。

      第二阶段:我因为一直是联通的宽带,本身就用不了他的buff,所以我最开始一直在观察访问不了的原因,结论是HF会主动的关闭来自咱们这边的链接,就写了一个重连的脚本。当时是可用的,因为当时面对的情况是,正在下载着突然断你,但是login什么的是没问题的,参加下图

围绕Huggingface访问权展开的斗争_对象存储_04

      所以通过nohup,然后给重连的脚本逻辑,我放在那就不管了,睡一觉,模型和数据也都下好了,而现在是干脆连过去都不行,所以这个方案也失效了。

      第三阶段:用国内的一些模型库,从前比较好用的是清华的HF镜像站,几乎想要的都有,但是不知道是不是因为敏感性的问题,清华的HF镜像站被关了,目前给国内用户我这边会用到的,可以提供两个备选方案:

      1- 阿里的modelscope, https://modelscope.cn/, 如果你第一次打开这个网站,能感受到阿里满满的野心,应该是想做国内的HF,这个站点的优势是对于国内的新来的模型它都会很快的支持,比如智谱的GLM3-6B,才刚发布,就可以在modelscope上找到,baichuan,通义千问啥的,也都可以找到,还是非常方便的。

 

围绕Huggingface访问权展开的斗争_重传_05

      但是如果你想找一下国外的新出的模型,坦率说,目前这个stage你会比较失望,可能是刚开始的原因吧,我经常在这边经常找不到,还是得去HF上看;另外关于datasets这块,目前如果HF是10分,modelscope能提供的datasets,我给0分吧。

      2- 我个人原来比较愿意用的:aliendao

       我真的是十分喜欢这个站点,严格说它和HF真的好像(它也确实是更像镜像站点)

围绕Huggingface访问权展开的斗争_对象存储_06

      我喜欢它的原因也比较简单,它很好的兼容了HF,而且本身自己带着一套API,可以在下载的时候优选本地的镜像站点,如果本地没有,它会选择去HF上下载,并且自己维护着一套重传机制(我要是早访问过这个网站也不用自己写了,我文章前面说过,重传机制已经没用了)

     其实它的datasets是我对它支持的最重要的原因,基本有一定规模的训练数据多多少少可以在这里找到;现在好像支持企业版了,估计会有cdn加速吧,或者有什么其他的优势,我没用过。

     第四阶段:张良计,过墙梯,曲线救国

     DockerHub+GitHub

     AlphaHinex/hf-models (github.com), 这是一个Git上的贡献者写的API,原理直接说明一下,简单说就是这边并没有封DockerHub(可能这个封了影响更大,毕竟做深度学习的人少,HF可以随便揍),既然有了DockerHub这个漏网之鱼,就可以借助它当一跳,把HF上的模型甚至datasets打包成Docker image然后push到DockerHub上,然后再从DockerHub上下载。

      这个流程听起来很合理啊,但是怎么去下载HF上的模型呢,又回到了最初的问题,这个时候GitHub的Actions登场了,它的本质是一个CI工具,我们在这里用到它的runner,它背后是运行在Global Azure上的一个Standard_DS2_v2虚拟机,它挂了一块80多G的盘,实际能使用的容量大概30G不到吧,如果你的模型超过这个值,可能你要开启多个Actions,多个镜像任务来fulfill你的需求(属实有点麻烦)

      这个方案的好处是,在咱们这边你想下载什么都不会被Ban,因为CI的流程是Out of the wall, 但是除了刚才说的下载空间的限制,还有DockerHub似乎在国内你也别指望它能多快,还是挺搞心态的。

     第五阶段: 富哥们儿可以参考

     第五阶段的核心武器是一个叫azcopy的东西

围绕Huggingface访问权展开的斗争_对象存储_07


     就拿手上这个活儿举个例子吧

围绕Huggingface访问权展开的斗争_数据_08

围绕Huggingface访问权展开的斗争_数据_09

  在Global 随便找一台机器,直接下载

围绕Huggingface访问权展开的斗争_数据_10

然后调用azcopy服务

围绕Huggingface访问权展开的斗争_重传_11

可以看到基本上能达到1.5Gbps的能力传输到Azure国内的对象存储上

围绕Huggingface访问权展开的斗争_重传_12

一共小20G的数据,传了1.5分钟不到,然后在国内的机器上,执行逆向操作,把对象存储的数据copy到训练机器上

围绕Huggingface访问权展开的斗争_重传_13

这边就快一些了,可以达到17Gbps

围绕Huggingface访问权展开的斗争_对象存储_14

总体任务花费了0.3分钟

围绕Huggingface访问权展开的斗争_重传_15

      忘记了我对象存储里面本来有之前训练用的datasets,这玩意也11G,所以大概是27G的数据用了0.3分钟完成

      那么不用azcopy用scp可以不,当然可以,ftp也行,就看你对速度的接受程度,可以选择不同的方式,道理是一样的。

       总结:今天介绍了几种突破封锁访问Huggingface或者替代品的方式吧。丰俭由人,愿意用啥用啥,不是azcopy用不起,而是好多免费方法更有性价比!

        

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月23日 0

暂无评论

推荐阅读
K9WDEqoiBlLk