首页 > 其他分享 >Hugging Face 的应用

Hugging Face 的应用

时间:2024-09-09 19:36:23浏览次数:10  
标签:pipeline -- 模型 huggingface Hugging Face json snapshots 应用

大纲

Hugging-Face 介绍

  • Hugging-Face 大语言模型 LLM 管理
  • Transformers 机器学习框架
  • 文本生成推理 (TGI)

Hugging Face

Hugging-Face -- 大语言模型界的 Github

Hugging Face 专门开发用于构建机器学习应用的工具。该公司的代表产品是其为自然语言处理应用构建的 transformers 库,以及允许用户共享机器学习模型和数据集的平台

大模型平台 hugging face

国内对标 -- 百度千帆

百度智能云千帆大模型平台(以下简称千帆或千帆大模型平台)是面向企业开发者的一站式大模型开发及服务运行平台。千帆不仅提供了包括文心一言底层模型和第三方开源大模型,还提供了各种 AI 开发工具和整套开发环境,方便客户轻松使用和开发大模型应用。支持数据管理、自动化模型 SFT 以及推理服务云端部署的一站式大模型定制服务,助力各行业的生成式 AI 应用需求落地。

百度千帆

国内对标 -- 魔搭社区

ModelScope 社区成立于 2022 年 6 月,是一个模型开源社区及创新平台,由阿里巴巴通义实验室(Institute for Intelligent Computing),联合 CCF 开源发展委员会,共同作为项目发起方。社区联合国内 AI 领域合作伙伴与高校机构, 致力于通过开放的社区合作,构建深度学习相关的模型开源社区,并开放相关模型创新技术,推动基于“模型即服务”(Model-as-a-Service)理念的模型应用生态的繁荣发展。

Hugging Face 是行业风向标

  • 开发者仓库 Hub
  • 机器学习模型 Hub
  • 数据集 Hub
  • 机器学习算法库与封装工具
  • 解决方案
  • 文档

大语言模型管理

通过 Git 下载大模型

git lfs install
#模型会下载到本地目录,并不在hugging face的标准管理目录里,可能会导致后续Transformers库重新下载
git clone https://huggingface.co/google/owlv2-base-patch16-ensemble

客户端工具 huggingface_hub


python -m pip install huggingface_hub
# 需要开启代理
huggingface-cli login

高速下载


python -m pip install huggingface_hub[hf_transfer]

#缺点:目前还不支持代理,导致下载大文件可能有时候更慢。
export HF_HUB_ENABLE_HF_TRANSFER=1

huggingface-cli download gpt2 config.json

huggingface-cli 用法


(base) hogwarts: llama seveniruby$ huggingface-cli -h
usage: huggingface-cli <command> [<args>]

positional arguments:
  {env,login,whoami,logout,repo,upload,download,lfs-enable-largefiles,lfs-multipart-upload,scan-cache,delete-cache}
                        huggingface-cli command helpers
    env                 Print information about the environment.
    login               Log in using a token from huggingface.co/settings/tokens
    whoami              Find out which huggingface.co account you are logged in as.
    logout              Log out
    repo                {create, ls-files} Commands to interact with your huggingface.co repos.
    upload              Upload a file or a folder to a repo on the Hub
    download            Download files from the Hub
    lfs-enable-largefiles
                        Configure your repository to enable upload of files > 5GB.
    lfs-multipart-upload
                        Command will get called by git-lfs, do not call it directly.
    scan-cache          Scan cache directory.
    delete-cache        Delete revisions from the cache directory.

options:
  -h, --help            show this help message and exit

使用示例

huggingface-cli login
huggingface-cli download gpt2
huggingface-cli download gpt2 config.json
huggingface-cli download gpt2 --revision main

使用 Hub client library 管理


from huggingface_hub import hf_hub_download
hf_hub_download(repo_id="google/pegasus-xsum", filename="config.json")

from huggingface_hub import hf_hub_download
hf_hub_download(
    repo_id="google/pegasus-xsum",
    filename="config.json",
    revision="4d33b01d79672f27f001f6abade33f22d993b151"
)

hugging face 的本地缓存文件结构


#文件快照
./snapshots
./snapshots/187d69aae616814bc1386bdfe38e256518d17637
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/added_tokens.json
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/tokenizer_config.json
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/special_tokens_map.json
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/config.json
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/README.md
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/merges.txt
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/.gitattributes
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/pytorch_model.bin
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/vocab.json
./snapshots/187d69aae616814bc1386bdfe38e256518d17637/preprocessor_config.json
#真正的文件缓存
./blobs
./blobs/76e821f1b6f0a9709293c3b6b51ed90980b3166b
./blobs/69feda8b53b1c9e2a85ae756bf58c120c3c1b4b4a4d97d4876578c1809a63d76
./blobs/39808ac074d69141c0b2f065d16f56dfa5194cac
./blobs/1c4c373d81adc0c63bb3368a89f4a92574395c2c
./blobs/b24bfd579e8682df31c7794a3e1c3ef6a9a22a7a
./blobs/5ff4ac542d5e800dd3aadbdcda354868b5f24ddd
./blobs/a6344aac8c09253b3b630fb776ae94478aa0275b
./blobs/dfc1049705d082052a81e7d18bde6d11fc137a0d
./blobs/ee790e862e5a47398da080893272d3c2b76cf0e5
./blobs/469be27c5c010538f845f518c4f5e8574c78f7c8

#分支,指定分支有助于解决重复下载问题
./refs
./refs/main

hugging face transformers 机器学习框架

Transformers 库

Transformers 是一个预训练的最先进模型库,用于自然语言处理 (NLP)、计算机视觉以及音频和语音处理任务。该库不仅包含 Transformer 模型,还包含非 Transformer 模型,例如用于计算机视觉任务的现代卷积网络。Transformers 提供 API 和工具,可轻松下载和训练最先进的预训练模型,它支持 PyTorch、TensorFlow 和 JAX 之间的框架互操作性。

Transformers 能力

  • 自然语言处理:文本分类、命名实体识别、问答、语言建模、摘要、翻译、多项选择和文本生成。
  • 计算机视觉:图像分类、对象检测和分割。
  • 音频:自动语音识别和音频分类。
  • 多模态:表格问答、光学字符识别、扫描文档信息提取、视频分类和视觉问答。

Task Description Modality Pipeline identifier
Text classification assign a label to a given sequence of text NLP pipeline(task=“sentiment-analysis”)
Text generation generate text given a prompt NLP pipeline(task=“text-generation”)
Summarization generate a summary of a sequence of text or document NLP pipeline(task=“summarization”)
Task Description Modality Pipeline identifier
Image classification assign a label to an image Computer vision pipeline(task=“image-classification”)
Image segmentation assign a label to each individual pixel of an image (supports semantic, panoptic, and instance segmentation) Computer vision pipeline(task=“image-segmentation”)
Object detection predict the bounding boxes and classes of objects in an image Computer vision pipeline(task=“object-detection”)
Task Description Modality Pipeline identifier
Audio classification assign a label to some audio data Audio pipeline(task=“audio-classification”)
Automatic speech recognition transcribe speech into text Audio pipeline(task=“automatic-speech-recognition”)
Task Description Modality Pipeline identifier
Visual question answering answer a question about the image, given an image and a question Multimodal pipeline(task=“vqa”)
Document question answering answer a question about the document, given a document and a question Multimodal pipeline(task=“document-question-answering”)
Image captioning generate a caption for a given image Multimodal pipeline(task=“image-to-text”)

快速开始

pip install transformers datasets
pip install torch
pip install tensorflow

#测试
python -c "from transformers import pipeline; print(pipeline('sentiment-analysis')('we love you'))"

pipeline api 使用
pipe = pipeline("text-classification")
pipe("This restaurant is awesome")

#输出
[{'label': 'POSITIVE', 'score': 0.9998743534088135}]

使用第三方库

pipe = pipeline(model="FacebookAI/roberta-large-mnli")
pipe("This restaurant is awesome")

#输出
[{'label': 'NEUTRAL', 'score': 0.7313136458396912}]

图像识别


def test_zero_shot_object_detector():
    with open('coco_sample.png', mode='rb') as f:
        image = Image.open(f)
        object_detector = pipeline('object-detection', revision='main')

        predictions = object_detector(image)
        print(json.dumps(predictions, indent=2, ensure_ascii=False))

#输出
[
  {
    "score": 0.9982201457023621,
    "label": "remote",
    "box": {
      "xmin": 40,
      "ymin": 70,
      "xmax": 175,
      "ymax": 117
    }
  },
  {
    "score": 0.9960021376609802,
    "label": "remote",
    "box": {
      "xmin": 333,
      "ymin": 72,
      "xmax": 368,
      "ymax": 187
    }
  },
  {
    "score": 0.9954745173454285,
    "label": "couch",
    "box": {
      "xmin": 0,
      "ymin": 1,
      "xmax": 639,
      "ymax": 473
    }
  },
  {
    "score": 0.9988006353378296,
    "label": "cat",
    "box": {
      "xmin": 13,
      "ymin": 52,
      "xmax": 314,
      "ymax": 470
    }
  },
  {
    "score": 0.9986783862113953,
    "label": "cat",
    "box": {
      "xmin": 345,
      "ymin": 23,
      "xmax": 640,
      "ymax": 368
    }
  }
]

文本生成推理 Text Generation Inference

Text Generation Inference

文本生成推理 (TGI) 是一个用于部署和服务大型语言模型 (LLM) 的工具包。TGI 为最流行的开源 LLM 提供高性能文本生成,包括 Llama、Falcon、StarCoder、BLOOM、GPT-NeoX 和 T5。


model=tiiuae/falcon-7b-instruct
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run

docker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4 --model-id $model

model=teknium/OpenHermes-2.5-Mistral-7B
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run

docker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4 --model-id $model

TGI 接口

curl 127.0.0.1:8080/generate \
    -X POST \
    -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":20}}' \
    -H 'Content-Type: application/json'

编程使用 TGI


import requests

headers = {
    "Content-Type": "application/json",
}

data = {
    'inputs': 'What is Deep Learning?',
    'parameters': {
        'max_new_tokens': 20,
    },
}

response = requests.post('http://127.0.0.1:8080/generate', headers=headers, json=data)
print(response.json())
# {'generated_text': '\n\nDeep Learning is a subset of Machine Learning that is concern

标签:pipeline,--,模型,huggingface,Hugging,Face,json,snapshots,应用
From: https://www.cnblogs.com/hogwarts/p/18405157

相关文章

  • VBA高级应用30例应用3在Excel中的ListObject对象:循环列出当前工作表中的表
    《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。本套教程共三册三......
  • 基于“SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI
      近年来,国内外学者在生态系统的敏感性、适应能力和潜在影响等方面开展了大量的生态脆弱性研究,他们普遍将生态脆弱性概念与农牧交错带、喀斯特地区、黄土高原区、流域、城市等相结合,评价不同类型研究区的生态脆弱特征,其研究内容主要包括脆弱性的时空演变、动态监测、影响机......
  • 京东鸿蒙上线前瞻——使用 Taro 打造高性能原生应用
    背景2024年1月,京东正式启动鸿蒙原生应用开发,基于HarmonyOSNEXT的全场景、原生智能、原生安全等优势特性,为消费者打造更流畅、更智能、更安全的购物体验。同年6月,京东鸿蒙原生应用尝鲜版上架华为应用市场,计划9月完成正式版的上架。早在2020年,京东与华为就签署......
  • OpenGL ES通过缩小GLSurfaceView来解决纹理贴图变形的问题
    一、概述在使用OpenGLES做纹理贴图的时候,图片有小有大。默认情况下纹理是撑满整个屏幕的。这就导致大图会被压扁、小图会被拉伸。这种体验相当不好。解决此问题的其中一种方式是:通过缩小GLSurfaceView的宽或高来解决问题。ps:公式可以看做是固定的,直接使用即可。......
  • 深圳MES系统在制造业的应用与发展
    深圳MES在制造业的应用与发展呈现以下几个特点: 应用范围广泛:深圳制造业涵盖了电子、通信、汽车、机械等多个领域,MES系统在这些领域的应用非常广泛。不同行业的企业可以根据自身的需求和特点,定制化地应用MES系统来实现生产管理的数字化和智能化。制造业智能化转型:随着信息技术......
  • 《数据资产管理核心技术与应用》读书笔记-第四章:数据质量的技术实现(三)
    《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,全书共分10章,第1章主要让读者认识数据资产,了解数据资产相关的基础概念,以及数据资产的发展情况。第2~8章主要介绍大数据时代数据资产管理所涉及的核心技术,内容包括元数据的采集与存储、数据血缘、数据质量、数据监控与......
  • 在 Android 应用中使用 VideoView 播放视频的示例
    这段代码片段是在Android应用中使用VideoView播放视频的示例。下面是对代码的详细解析:代码解析findViewById<VideoView>(R.id.vv).apply{setVideoURI("${baseURL}VideoSrc/${o.getString("Src")}".toUri())start()}查找​VideoView​控件:findViewById<Vi......
  • 区块链应用的密钥管理
    管理什么密钥?在区块链应用的基础组件中通常有这样一种功能,需要持续不断的向区块链中发送交易,比如arbitrum的Sequencer需要持续不断的发送L2的区块,stark需要发送单步证明/rBlock发布的交易,chainlink需要定时发送datafeed交易。而这每一笔交易都需要L1上的账户做签名,如何安全的使......
  • 飞牛等nas下部署dweebUI,扩展安装119个精选docker应用
    简介dweebui是一个类似之前介绍的portainer-ce和dockge的docker管理器,但是他有个优点是和1panel一样自带了很多便捷安装的docker应用,缺点是英文界面,毕竟是国外软件,但是对于飞牛nas做个补充来说还是不错的官网:https://www.dweebui.com/预览效果:安装搭建本次部署还是一......
  • 聚道云软件连接器9月新增应用合集(1)
    9月更新概要新增应用:应用1:太力商城应用2:万里牛应用3:梓如商旅应用4:百胜E3新增应用应用1:太力商城太力商城是3C自营B2B网上商城,主营产品包括手机、平板电脑及其他相关智能设备,还有产品操盘、渠道、市场、物流、信息流及资金流等服务。已打通接口:POST产品信息查询接口P......