当前位置:   article > 正文

Huggingface 详细使用教程_huggingfacebgeembeddings 用法

huggingfacebgeembeddings 用法

Hugging face 背景: 起初是一家聊天机器人公司,后面开源了一个transformers库,聊天机器人业务没有起色,机器学习库迅速活了起来,目前模型585659,数据集 Datasets128,253,成了机器学习界的github。

之所以获得巨大的成功,一方面让甲方企业的小白,尤其是入门者快速使用上大佬训练的超级牛逼的模型,另外一方面,开放的文化和态度,以及利他的精神特别吸引人,Huaggingface上面很多业界大牛提交新的模型,越来越多的数据和模型更加丰富。一方面有人提供模型,另外一方面有人消费模型,这样让双方的效率大大提高了,确实是个不错的Idea。

画重点,在国内huggingface 也是非常广泛的,一些开源的架构本质上就是利用transform 上面的模型进行微调,很多NLP工程师招聘条目也明确要求熟悉Huggingface transform 库的使用,重点由于huggingface 提供了模型又提供了数据集,因此入门非常简单,你甚至不用知道,GPT,BERT就能使用它的模型,下面是怎么调用模型的步骤。

1.hugging face 能做什么

  官方网站:

  官方网站:https://huggingface.co/

Models:训练模型,hugging face 有数以万计的模型可以使用

Datasets:数据集,hugging face 有数以万计的数据可以直接拿来使用

Spaces:最初是展示AI模型构建的应用,hugging face 很容让的部署你已经构建的应用

2.hugging face 如何使用

  1. pip install huggingface-hub==0.17.3
  2. pip install transformers==4.34
  3. #如果 conda 频道提供了您所需的特定版本(比如 4.0),且该版本在 4.0 之后,您可以尝试指定版本安装,尽管您提供的信息未给出明确的示例。通常,指定版本的 conda 命令格式如下:conda install -c huggingface transformers=4.0
  1. import os
  2. # 注意os.environ得在import huggingface库相关语句之前执行。
  3. os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
  4. from huggingface_hub import hf_hub_download

3.下载单个文件hf_hub_download  

hf_hub_download是huggingface官方支持(Downloading files/hf_hub_download)的下载模型或数据集的方法。该方法涉及的参数如下

\

实际上用到的参数并不多,一般情况下只需设置repo_id,filename,subfolder,local_dir,token参数即可

  • repo_id:仓库名称
  • filename:需要下载的文件名
  • subfolder:需要下载的文件在仓库中的哪一个文件夹(可选)
  • repo_type:仓库类型(可选),如果不填写就默认下载的是model,否则需要设置对应值(如下载数据集就设为datase)
  • evision:指定Git的修订版本(可选)
  • library_name:对象对应的库的名称(可选)
  • library_version:库的版本号(可选)
  • cache_dir:缓存文件存储的文件夹路径(可选)
  • local_dir:下载的文件存放的目录(可选)
  • local_dir_use_symlinks:与 local_dir 参数一起使用的选项。如果设置为 “auto”,则会使用缓存目录,并根据文件大小将文件复制或创建符号链接到本地目录。如果设置为 True,则无论文件大小如何,都将创建符号链接。如果设置为 False,则文件将从缓存中复制(如果已存在),或者从Hub下载而不缓存。
  • user_agent:指定用户代理信息,可以是一个字典或一个字符串(可选)
  • force_download:如果该文件已经在本地缓存中存在,是否强制性下载文件(可选)
    proxies: 设置代理服务器(可选)

  • etag_timeout:当获取ETag时,等待服务器发送数据的最长时间(以秒为单位)。如果服务器在这段时间内没有响应,将放弃请求(可选)

  • resume_download:如果设置为 True,可以继续之前中断的下载操作,即继续下载先前未完成的文件(可选)

  • token:用于下载的身份验证令牌,如果设置为 True,则从HuggingFace配置文件夹中读取令牌。如果是一个字符串,它将被用作身份验证令牌。(可选)

  • local_files_only:如果设置为 True,则避免下载文件,如果本地缓存中存在文件,则返回本地缓存文件的路径(可选)

  • legacy_cache_layout:如果设置为 True,则使用旧的文件缓存布局,即只需调用 hf_hub_url() 然后进行缓存下载。这已经不推荐使用,因为新的缓存布局更强大。(可选)

个别情况下,我们只需要下载大模型文件,不需要下载整个项目仓库,使用hf_hub_download进行下载即可。参数设置同上解释。

使用snapshot_download下载整个仓库快照,如下几个参数注意下:allow_patterns选择需要下载的文件类型,通过ignore_patterns设置需要忽略的文件类型。
resume_download=True,表示允许断点续传,整个很有必要。
etag_timeout=100,超时阈值,默认10秒,这里自己根据情况修改。
更多参数详情可访问:https://huggingface.co/docs/huggingface_hub/v0.16.3/guides/download

  1. from huggingface_hub import hf_hub_download
  2. hf_hub_download(repo_id="internlm/internlm2-chat-7b", filename="config.json",local_dir="D:/ai")

  1. import os
  2. # 注意os.environ得在import huggingface库相关语句之前执行。
  3. os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
  4. from huggingface_hub import hf_hub_download
  5. def download_model(source_url,local_dir):
  6. # 使用huggingface原地址
  7. # source_url ="https://huggingface.co/internlm/internlm2-chat-7b/blob/main/config.json"
  8. # 使用huggingface-镜像地址
  9. # source_url = "https://hf-mirror.com/internlm/internlm2-chat-7b/blob/main/config.json"
  10. if 'blob' in source_url:
  11. sp = '/blob/main/'
  12. else:
  13. sp = '/resolve/main/'
  14. if 'huggingface.co' in source_url:
  15. url = 'https://huggingface.co/'
  16. else:
  17. url = 'https://hf-mirror.com'
  18. location = source_url.split(sp)
  19. repo_id = location[0].strip(url) # 仓库ID,例如:"BlinkDL/rwkv-4-world"
  20. cache_dir = local_dir + "/cache"
  21. filename = location[1]# 大模型文件,例如:"RWKV-4-World-CHNtuned-7B-v1-20230709-ctx4096.pth"
  22. print(f'开始下载\n仓库:{repo_id}\n大模型:{filename}\n如超时不用管,会自定继续下载,直至完成。中途中断,再次运行将继续下载。')
  23. while True:
  24. try:
  25. hf_hub_download(cache_dir=cache_dir,
  26. local_dir=local_dir,
  27. repo_id=repo_id,
  28. filename=filename,
  29. local_dir_use_symlinks=False,
  30. resume_download=True,
  31. etag_timeout=100
  32. )
  33. except Exception as e :
  34. print(e)
  35. else:
  36. print(f'下载完成,大模型保存在:{local_dir}\{filename}')
  37. break
  38. if __name__ == '__main__':
  39. source_url = "https://huggingface.co/internlm/internlm2-chat-7b/blob/main/config.json"
  40. source_url = "https://hf-mirror.com/internlm/internlm2-chat-7b/blob/main/config.json"
  41. # source_url = "https://hf-mirror.com/internlm/internlm2-chat-7b/blob/main/config.json"
  42. #目录地址windows系统
  43. download_model(source_url,local_dir = r'D:\ai')

4.下载整个库 snapshot_download

  1. import time
  2. from huggingface_hub import snapshot_download
  3. repo_id = "LinkSoul/Chinese-Llama-2-7b"
  4. local_dir = 'd:/ai/models1'
  5. cache_dir = local_dir + "/cache"
  6. while True:
  7. try:
  8. snapshot_download(cache_dir=cache_dir,
  9. local_dir=local_dir,
  10. repo_id=repo_id,
  11. local_dir_use_symlinks=False,
  12. resume_download=True,
  13. allow_patterns=["*.model", "*.json", "*.bin",
  14. "*.py", "*.md", "*.txt"],
  15. ignore_patterns=["*.safetensors", "*.msgpack",
  16. "*.h5", "*.ot",],
  17. )
  18. except Exception as e :
  19. print(e)
  20. # time.sleep(5)
  21. else:
  22. print('下载完成')
  23. break

文件将被下载到本地缓存文件夹。https://huggingface.co/docs/huggingface_hub/guides/manage-cache

5、登录

Hugging Face Hub 使用令牌对应用进行身份验证(请参阅文档). 要登录您的机器,请运行以下命令行:

  1. huggingface-cli login
  2. # or using an environment variable
  3. huggingface-cli login --token $HUGGINGFACE_TOKEN

6、创建一个存储库 create_repo

要创建一个新存储库,请运行以下代码:

  1. from huggingface_hub import create_repo
  2. create_repo(repo_id="super-cool-model")

7.上传单个文件 upload_file

  1. from huggingface_hub import upload_file
  2. upload_file(
  3. path_or_fileobj="/home/lysandre/dummy-test/README.md",
  4. path_in_repo="README.md",
  5. repo_id="lysandre/test-model",
  6. )

8.上传整个文件 upload_folder

  1. from huggingface_hub import upload_folder
  2. upload_folder(
  3. folder_path="/path/to/local/space",
  4. repo_id="username/my-cool-space",
  5. repo_type="space",
  6. )

 【Hugging Face】如何从hub中下载文件_snapshot_download-CSDN博客【AI之路】使用huggingface_hub通过huggingface镜像站hf-mirror.com下载大模型(附代码,实现大模型自由)_huggingface镜像网站-CSDN博客

附录

huggingface中文社区
https://huggingface.co/blog/zh

Pipeline使用介绍

飞桨AI Studio星河社区-人工智能学习与实训社区

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/422894
推荐阅读
  

闽ICP备14008679号