Hugging Face(二) - Models详述

Models(模型)是Hugging Face Hub的核心,这里对于如何下载预训练模型,采用Transformers进行加载、微调等做一个充分的介绍。

Models下载

其实用户可以手动下载,比如在页面:下载页面去下载。

也可以通过代码去下载:

from huggingface_hub import hf_hub_download
import joblib

REPO_ID = "stabilityai/stable-diffusion-xl-base-1.0"
FILENAME = "sd_xl_base_1.0.safetensors"

model = joblib.load(
    hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
)

也可以通过Transformers库下载,后面会介绍到。

除了下载外,有很多libraries也支持Hub,或者说这些库和Hub进行了良好的集成,可以参见:模型库

Transformers

Transformers是用于NLP开发的模型,由Hugging Face开发的一个library,和Hub进行了集成,在Hub上面,很多模型都是基于transformers开发的,这些models的功能有很多:

  • NLP:文本分类,命名实体识别,问答,语言模型,摘要,翻译,文本生成
  • 计算机视觉:文本分类,目标检测,分割
  • 音频:语音识别,语音分类
  • 多模态:表格问答,OCR,信息抽取,视频分类,视觉问答

Transformers提供了快速的下载和使用的API,可以使用预训练数据,也可以在用户自己的数据集、文本上进行微调,然后分享到社区中。支持三个最热门的深度学习库:JaxPyTorch 以及 TensorFlow,也就是说,可以用一个框架来训练,用另外一个框架来加载和推理。

模型都是可以在线体验的,比如:


image.png

比较强悍的是,Hugging Face提供了私有模型托管服务,包括模型版本管理,推理API。

安装

需要安装一些必要的库:

$ pip install transformers datasets evaluate accelerate
$ pip install torch

快速上手

  • 使用 pipeline:使用预训练模型做inference的最简单方式
from transformers import pipeline

classifier = pipeline(task='sentiment-analysis')
classifier('you are so beautiful.')

# result
[{'label': 'POSITIVE', 'score': 0.9998807907104492}]

模型会在缓存中保留:

$ ls ~/.cache/huggingface/hub/
models--distilbert--distilbert-base-uncased-finetuned-sst-2-english
models--stabilityai--stable-diffusion-xl-base-1.0
version.txt

要看transformers支持的任务,可以查阅这里

  • 使用 AutoTokenizer, TFAutoModel
from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")
model = AutoModel.from_pretrained("google-bert/bert-base-uncased")

inputs = tokenizer("Hello world!", return_tensors="pt")
outputs = model(**inputs)

注意tokenizer,Tokenizer的作用就是将连续的文本切分成离散的Token,并为每个Token分配一个唯一的标识符(ID),以便于模型进行后续的处理。

Tokenizer的工作原理可以分为两个主要步骤:词汇表构建和文本切分。

1)词汇表构建

词汇表是Tokenizer工作的基础,它包含了所有可能出现的Token。在构建词汇表时,通常会使用大量的语料库数据进行统计,从而得到一个包含所有出现过的单词、标点符号和子词的列表。此外,为了提高模型的泛化能力,通常还会在词汇表中添加一些特殊的Token,如<unk>(未知词)、<pad>(填充词)和<eos>(句尾标记)等。

2)文本切分

在文本切分阶段,Tokenizer会根据词汇表将输入文本拆分成一系列Token。对于每个Token,Tokenizer会查找其在词汇表中的ID,并将这个ID作为该Token的数值表示。如果某个Token不在词汇表中,则通常会将其视为未知词,并使用<unk>的ID进行替换。

  • 在pipeline()中设置model,tokenizer
from transformers import AutoTokenizer, AutoModelForSequenceClassification

model_name = "nlptown/bert-base-multilingual-uncased-sentiment"

model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
classifier("you are not so cool.")

参考transformers详细文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容