全部文章

Hugging Face平台介绍,使用(最强 Huggingface 入门手册)

1.Huggingface 的简介

Huggingface 即是网站名也是其公司名,随着 transformer 浪潮,Huggingface 逐步收纳了众多最前沿的模型和数据集等有趣的工作,与 transformers 库结合,可以快速使用学习这些模型。目前提到 NLP 必然绕不开 Huggingface。

2.Huggingface 的具体介绍

进入 Huggingface 网站,如下图所示。

image

其主要包含:

Models(模型),包括各种处理 CV 和 NLP 等任务的模型,上面模型都是可以免费获得

Datasets(数据集),包括很多数据集

Spaces(分享空间),包括社区空间下最新的一些有意思的分享,可以理解为 huggingface 朋友圈

Community(社区)

Docs(文档,各种模型算法文档),包括各种模型算法等说明使用文档

Solutions(解决方案,体验等),包括 others

Pricing(dddd) ,懂的都懂

3.Huggingface Models

点开 Models。可以看到下图的任务,再点开+42 Tasks

image

可以看到下图所有的任务。

其中,主要包括计算机视觉、自然语言处理、语音处理、多模态、表格处理、强化学习。

    image image

展开介绍:

Multimodal(多模态):

Feature Extraction(特征提取)、Text-to-Image(文本到图像)、Visual Question Answering(视觉问答)、Image2Text(图像到文本)、Document Question Answering(文档问答)

Computer Vision(计算机视觉任务)

包括 lmage Classification(图像分类),lmage Segmentation(图像分割)、zero-Shotlmage Classification(零样本图像分类)、lmage-to-Image(图像到图像的任务)、Unconditional lmage Generation(无条件图像生成)、Object Detection(目标检测)、Video Classification(视频分类)、Depth Estimation(深度估计,估计拍摄者距离图像各处的距离)

Natural Language Processing(自然语言处理):

包括 Translation(机器翻译)、Fill-Mask(填充掩码,预测句子中被遮掩的词)、Token Classification(词分类)、Sentence Similarity(句子相似度)、Question Answering(问答系统),Summarization(总结,缩句)、Zero-Shot Classification (零样本分类)、Text Classification(文本分类)、Text2Tex(t 文本到文本的生成)、Text Generation(文本生成)、Conversational(聊天)、Table Question Answer(表问答,

1.预测表格中被遮掩单词 2.数字推理,判断句子是否被表格数据支持)

Audio(语音):

Automatic Speech Recognition(语音识别)、Audio Classification(语音分类)、Text-to-Speech(文本到语音的生成)、Audio-to-Audio(语音到语音的生成)、Voice Activity Detection(声音检测、检测识别出需要的声音部分)

Tabular(表格):

Tabular Classification(表分类)、Tabular Regression(表回归)Reinforcement Learning(强化学习):Reinforcement Learning(强化学习)、Robotics(机器人)

模型的使用

一般来说,页面上会给出模型的介绍。例如,我们打开其中一个 fill-mask 任务下下载最多的模型 bert-base-uncased。

image image

可以看到模型描述:

image

使用方法-1

需要提前安装 transformers 库,可以直接 pip install transformers 安装。还有 Pytorch 或 TensorFlow 库,读者自行下载。

下载完后可以使用 pipeline 直接简单的使用这些模型。第一次执行时 pipeline 会加载模型,模型会自动下载到本地,可以直接用。

第一个参数是任务类型,第二个是具体模型名字,第三个是模型下载缓存文件夹。

from transformers import pipeline

unmasker = pipeline('fill-mask',model='bert-base-uncased',cache_dir=r"D:\data\model")

unmasker("Hello I'm a [MASK] model.")

模型下载在本地的地址:

C:\Users\【自己的用户名】\.cache\huggingface\hub 

当然,不同模型使用方法略有区别,直接通过页面学习或文档学习最好

image

4.Huggingface 的 dataset

可以看到有如下任务的数据集。读者可自行打开学习

image

例如,我们打开 Text Classification 任务的 glue 数据集

imageimage

可以看到下图,里面会有数据集的介绍、相关信息和下载方式,读者自行查看。

image

导入数据集方法(提前 pip install datasets)

from datasets import load_dataset
datasets=load_dataset("glue","mrpc",cache_dir=r"D:\learn\learncode\huggingface\demo_4\data\glue")#glue 下还有其他数据集
print(datasets)
train_data=datasets['train']
print(train_data[0])

有了数据后训练模型方法

#下面给出 bert-base-uncased 的例子,实现对两个句子的相似度计算
#导入 tokenizer
from transformers import AutoTokenizer
tokenizer=AutoTokenizer.from_pretrained("bert-base-uncased")#https://huggingface.co/bert-base-uncased
#input=tokenizer('The first sentence!','The second sentence!')#测试
#print(tokenizer.convert_ids_to_tokens(input["input_id"]))
#实际使用 tokenizer 的方法,得到 tokenizer_data
def tokenize_function(example):
    return tokenizer(example["sentence1"],example["sentence2"],truncation=True)
from datasets import load_dataset
datasets=load_dataset("glue","mrpc")
tokenizer_data=datasets.map(tokenize_function,batched=True)
print(tokenizer_data)
#训练参数
from transformers import TrainingArguments
training_arg=TrainingArguments("test-trainer")#训练参数,可以自己去改,参数意思参考https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments
print(training_arg)#看下默认值
#导入模型
from transformers import AutoModelForSequenceClassification
model=AutoModelForSequenceClassification.from_pre_trained("bert-base-uncased",num_labels=2)#num_labels 自己定义了,所以不会导入输出层
#导入数据处理的一个东西 DataCollatorWithPadding,变成一个一个 batch
from transformers import DataCollatorWithPadding
data_collator=DataCollatorWithPadding(tokenizer=tokenizer)
#导入训练器,进行训练,API : https://huggingface.co/docs/transformers/main_classes/trainer#transformers.Trainer
from transformers import Trainer
trainer=Trainer(model,training_arg,train_dataset=tokenizer_data["train"],eval_dataset=tokenizer_data["validation"],data_collator=data_collator,tokenizer=tokenizer)
trainer.train()

5.Huggingface 的 spaces

点开如下图所示。里面有些近些天有趣的东西火热的 apps。image

 

posted @ 2025-08-24 21:54  指尖下的世界  阅读(244)  评论(0)    收藏  举报