目录
一、引言
二、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及查看模型结构