?
目錄
一、引言?
二、Evaluate模型評估
2.1 概述
2.2?使用方法
2.2.1?步驟1: 導入必要的庫
2.2.2 步驟2: 加載模型和分詞器
2.2.3 步驟3: 準備數據集
2.2.4 步驟4: 數據預處理?
2.2.5 步驟5: 創建訓練和評估數據集?
2.2.6 步驟6: 設置訓練參數并創建Trainer
2.2.7 步驟7: 進行模型評估?
三、總結
一、引言?
?這里的Transformers指的是huggingface開發的大模型庫,為huggingface上數以萬計的預訓練大模型提供預測、訓練等服務。
🤗 Transformers 提供了數以千計的預訓練模型,支持 100 多種語言的文本分類、信息抽取、問答、摘要、翻譯、文本生成。它的宗旨是讓最先進的 NLP 技術人人易用。
🤗 Transformers 提供了便于快速下載和使用的API,讓你可以把預訓練模型用在給定文本、在你的數據集上微調然后通過 model hub 與社區共享。同時,每個定義的 Python 模塊均完全獨立,方便修改和快速研究實驗。
🤗 Transformers 支持三個最熱門的深度學習庫: Jax, PyTorch 以及 TensorFlow — 并與之無縫整合。你可以直接使用一個框架訓練你的模型然后用另一個加載和推理。
本文重點介紹Evaluate模型評估
。
二、Evaluate模型評估
2.1 概述
Transformers庫中的evaluate
API主要用于評估模型在特定數據集上的性能。雖然Transformers庫本身沒有直接提供一個名為evaluate
的獨立API函數,但通常通過Trainer
類的evaluate
方法來實現模型評估。下面是一個使用Python和Transformers庫進行模型評估的基本步驟,假設你已經有了一個預訓練模型和相應的數據集處理器。
2.2?使用方法
2.2.1?步驟1: 導入必要的庫
from transformers import AutoModelForSequenceClassification, AutoTokenizer, Trainer, TrainingArguments
from datasets import load_dataset
2.2.2 步驟2: 加載模型和分詞器
model_name = "bert-base-uncased"
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
2.2.3 步驟3: 準備數據集
這里假設你使用的是Hugging Face的datasets
庫加載數據,例如IMDB數據集。?
dataset = load_dataset("imdb")
2.2.4 步驟4: 數據預處理?
定義一個函數來對數據進行編碼,適合模型輸入。?
def preprocess_function(examples):return tokenizer(examples["text"], truncation=True, padding='max_length')encoded_dataset = dataset.map(preprocess_function, batched=True)
2.2.5 步驟5: 創建訓練和評估數據集?
train_dataset = encoded_dataset['train']
eval_dataset = encoded_dataset['test']
2.2.6 步驟6: 設置訓練參數并創建Trainer
training_args = TrainingArguments(output_dir='./results', # 輸出目錄evaluation_strategy="epoch", # 每個epoch評估一次per_device_eval_batch_size=16, # 評估時的批次大小
)trainer = Trainer(model=model,args=training_args,train_dataset=train_dataset,eval_dataset=eval_dataset
)
2.2.7 步驟7: 進行模型評估?
# 使用Trainer的evaluate方法進行評估
eval_result = trainer.evaluate()
print(eval_result)
三、總結
以上代碼展示了如何使用Transformers庫中的Trainer
類來評估模型。評估結果將包含各種指標,如準確率,具體指標還要取決于你的模型。
如果您還有時間,可以看看我的其他文章:
《AI—工程篇》
AI智能體研發之路-工程篇(一):Docker助力AI智能體開發提效
AI智能體研發之路-工程篇(二):Dify智能體開發平臺一鍵部署
AI智能體研發之路-工程篇(三):大模型推理服務框架Ollama一鍵部署
AI智能體研發之路-工程篇(四):大模型推理服務框架Xinference一鍵部署
AI智能體研發之路-工程篇(五):大模型推理服務框架LocalAI一鍵部署
《AI—模型篇》
AI智能體研發之路-模型篇(一):大模型訓練框架LLaMA-Factory在國內網絡環境下的安裝、部署及使用
AI智能體研發之路-模型篇(二):DeepSeek-V2-Chat 訓練與推理實戰
AI智能體研發之路-模型篇(三):中文大模型開、閉源之爭
AI智能體研發之路-模型篇(四):一文入門pytorch開發
AI智能體研發之路-模型篇(五):pytorch vs tensorflow框架DNN網絡結構源碼級對比
AI智能體研發之路-模型篇(六):【機器學習】基于tensorflow實現你的第一個DNN網絡
AI智能體研發之路-模型篇(七):【機器學習】基于YOLOv10實現你的第一個視覺AI大模型
AI智能體研發之路-模型篇(八):【機器學習】Qwen1.5-14B-Chat大模型訓練與推理實戰
AI智能體研發之路-模型篇(九):【機器學習】GLM4-9B-Chat大模型/GLM-4V-9B多模態大模型概述、原理及推理實戰
《AI—Transformers應用》
【AI大模型】Transformers大模型庫(一):Tokenizer
【AI大模型】Transformers大模型庫(二):AutoModelForCausalLM
【AI大模型】Transformers大模型庫(三):特殊標記(special tokens)
【AI大模型】Transformers大模型庫(四):AutoTokenizer
【AI大模型】Transformers大模型庫(五):AutoModel、Model Head及查看模型結構