HuggingFace
HuggingFace 是類似于 GitHub 的社區,它主要提供各種的模型的使用,和 github 不同的是,HuggingFace 同時提供了一套框架,進行模型推理,模型訓練、和模型庫文件的管理等等。本文將介紹,如何快速使用 HuggingFace框架,包括 Pipeline,AutoModel 等。
Pipeline
通過 Pipeline 進行模型推理,代碼中可以看到pipeline 傳入了一個參數,第一參數為 task,傳入的是 Task, Task對應是那個模型呢?通過源代碼我們看到默認分類模型使用的是 Bert模型:
from transformers import pipeline
classifier = pipeline("sentiment-analysis")
classifier("We are very happy to show you the 🤗 Transformers library.")
AutoClass
使用 AutoXXX 加載模型模型,或者根據不同的模型導入 Tokenizer或者 Processor,HuggingFace 框架做了一層抽象,對于某一類模型,例如文本模型,模型架構架構相似但是參數維度可能不一樣,這種情況下,通過 AutoTokenizer 我們就可以獲取到不同模型 Tokenizer,而不用為每個模型都定義一個處理類。以下是兩個例子:
from transformers import AutoTokenizertokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")from transformers import AutoImageProcessorimage_processor = AutoImageProcessor.from_pretrained("google/vit-base-patch16-224")
所以當要模型處理器時,無論是文本模型還是視覺模型,先要找 HuggingFace 中 Auto 打頭的類。
數據處理
HuggingFace 處理數據主要通過兩個方法
load_dataset_builder
方式返回 dataset 元數據,描述數據集信息:
ds_builder = load_dataset_builder("rotten_tomatoes")
#描述信息
ds_builder.info.description
#數據集特征
ds_builder.info.features
{'label': ClassLabel(num_classes=2, names=['neg', 'pos'], id=None),'text': Value(dtype='string', id=None)}
load_dataset
用于導入數據,這個 split 代表獲取數據集中的訓練、驗證或者測試類型的數據
load_dataset("PolyAI/minds14", name="en-US", split="train")
總結
HuggingFace 框架使用起來很簡單,通過 Pipeline 可以進行模型的推理,如果需要訓練,通過 AutoClass 導入模型處理器例如 Tokenizer 或者 Processor,在導入訓練數據集,同時也可以使用 PEFT 進行 Lora 微調。