【AI大模型】Transformers大模型庫(十二):Evaluate模型評估

?

目錄

一、引言?

二、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及查看模型結構

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/36649.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36649.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/36649.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于Flask開發的前后端交互項目(可用于期末大作業) MySQL數據庫 文件上傳 Spider爬蟲 Echarts可視化展示 JS動態

項目描述: 開發一個基于Flask框架開發的前后端交互項目,項目內容為 東京奧運會 。對各個需要填寫的字段做了數據驗證,非法信息會被JS攔截提醒不合法;還對未登錄就訪問做了攔截,阻止未登錄就訪問。 前端:HT…

idea 開發工具properties文件中的中文不顯示

用idea打開一個項目,配置文件propertise中的中文都不展示,如圖: 可修改idea配置讓中文顯示: 勾選箭頭指向的框即可,點擊應用保存,重新打開配置文件,顯示正常

Java開發環境配置

一、JDK 下載JDK:Java Downloads | Oracle 配置環境變量:09、Java入門:Path、JAVA_HOME環境變量配置_嗶哩嗶哩_bilibili 二、IDEA 下載IDEA: Download IntelliJ IDEA – The Leading Java and Kotlin IDE (jetbrains.com) 建…

HotSpot 垃圾收集器

文章目錄 前言HotSpot 垃圾收集器1. 查看jdk默認垃圾收集器命令2. 查看當前服務使用的是哪個垃圾收集器:3. 常用的垃圾收集器3.1. 并行垃圾收集器(Parallel Garbage Collector)3.2. CMS 垃圾收集器(Concurrent Mark-Sweep Garbage Collector&…

情感分析方法與實踐

第1關:情感分析的基本方法 情感分析簡介 情感分析,又稱意見挖掘、傾向性分析等。簡單而言,是對帶有情感色彩的主觀性文本進行分析、處理、歸納和推理的過程。在日常生活中,情感分析的應用非常普遍,下面列舉幾種常見的…

Gradle學習-3 Gradle插件

1、Gredle插件是什么 Gradle插件是用于擴展和增強Gradle構建系統的功能模塊通過插件,Gradle可以執行各種構建任務,如編譯代碼、打包應用、運行測試等 Gradle插件主要分為:二進制插件、腳本插件 二進制插件二進制插件是預編譯的、可以復用的…

web學習筆記(七十二)

目錄 1.vue2通過$parent實現組件傳值——父傳子 2.vue2 通過$children實現組件傳值——子傳父 3. provide和inject傳值(依賴注入) 4.vue2如何操作dom 5.vue2如何拿到最新的dom 6.filters過濾器 7.vue2的生命周期 8.vuex的用法 1.vue2通過$parent…

Oracle分析表和索引(analyze)

分析表 analyze table tablename compute statistics; 分析索引 analyze index indexname compute statistics; 該語句生成的統計信息會更新user_tables這個視圖的統計信息,分析的結果被Oracle用于基于成本的優化生成更好的查詢計劃 對于使用CBO(Cost-Base Optimization)很有好…

大數據開發需要哪些職場知識

職場是個人情世故的江湖,除了專業技能,成功的大數據開發人員還需要掌握多種職場知識。以下是一些重要的職場知識和技能,結合實際例子詳細說明。 目錄 理論知識與工程實踐理論知識工程實踐例子 項目經驗總結項目管理總結和反思例子 做事方式方…

一招教你搞定Windows系統指定IP不變[固定IP地址方法]

1.打開控制面板,找到“網絡和Internet” 點擊進入: 2.點擊打開“網絡和共享中心”后,選擇“更改適配器選項”。 3.點擊 “查看此連接的狀態”, 接著點擊“詳細信息” 查看信息。記錄當前的IP地址是 10.88.x.xx,后面我們…

Linux驅動開發筆記(九)IIC子系統及其驅動

文章目錄 前言一、IIC驅動框架二、總線驅動2.1 iic總線的運行機制2.2 重要數據結構2.2.1 i2c_driver結構體2.2.2 i2c總線結構體 2.3 匹配規則 三、設備樹的修改四、設備驅動的編寫4.1 相關API函數4.1.1 i2c_add_adapter( )4.1.2 i2c_register_driver( )4.1.3 i2c_transfer( )4.…

Spring+SpringMVC+MyBatis整合

目錄 1.SSM介紹1.1 什么是SSM?1.2 SSM框架1.2.1 Spring1.2.2 SpringMVC1.2.3 MyBatis 2.SSM框架整合2.1 建庫建表2.2 創建工程2.3 pom.xml2.4 log4j.properties2.5 db.properties2.6 applicationContext-dao.xml2.7.applicationContext-tx.xml2.8 applicationContex…

Redis-在springboot環境下執行lua腳本

文章目錄 1、什么lua2、創建SpringBoot工程3、引入相關依賴4、創建LUA腳本5、創建配置類6、創建啟動類7、創建測試類 1、什么lua “Lua”的英文全稱是“Lightweight Userdata Abstraction Layer”,意思是“輕量級用戶數據抽象層”。 2、創建SpringBoot工程 3、引入相…

新能源汽車CAN總線故障定位與干擾排除的幾個方法

CAN總線是目前最受歡迎的現場總線之一,在新能源車中有廣泛應用。新能源車的CAN總線故障和隱患將影響駕駛體驗甚至行車安全,如何進行CAN總線故障定位及干擾排除呢? 目前,國內機動車保有量已經突破三億大關。由于大量的燃油車帶來嚴峻的環境問題,因此全面禁售燃油車的日程在…

汽車租賃系統

摘 要 隨著汽車租賃市場的快速發展,為了提高汽車租賃服務的效率和用戶體驗,本論文設計與實現了一款基于Java的汽車租賃系統。 該系統采用B/S架構,利用JavaWeb技術和MySQL數據庫實現了車輛信息管理、在線車輛租賃、門店出車模塊、租賃訂單信息…

1. Tensorrt-llm 基礎

1.Tensorrt-llm安裝 os: ubuntu 22.04 1.1搭建docker 環境 切換到 root 用戶 sodu passwd root 更新apt sudo apt-get update --fix-missing 更新docker sudo apt-get upgrade docker-ce 安裝nvidia 容器運行時,避免如下錯誤 Error response from daemon…

Android Kotlin 中的閉包函數

閉包函數是現代編程語言中一個重要的概念,Kotlin 作為一種現代的 JVM 語言,自然也支持閉包函數。本文將詳細介紹閉包函數的概念、在Kotlin 中的使用方法,以及一些常見的應用場景。 什么是閉包函數? 閉包函數,也稱為閉…

每天一個項目管理概念之WBS

項目管理中的工作分解結構(Work Breakdown Structure,簡稱WBS)是規劃和管理項目的核心工具之一,它通過將復雜的項目任務細分為更小、更易管理的部分來提高項目執行的效率與效果。WBS不僅有助于明確項目范圍,還為時間管…

[RPI] istoreos安裝esphome

esphome可以提供了一個集成的編譯環境,同時他又可以通過無線方式更新firmware,這無疑方便了我們的開發工作。 istoreos商店沒有提供esphome,所以我們需要自己用‘類似’命令行的方式來安裝, 1. 拉取esphome鏡像 依次點擊左側邊欄Docker -> 鏡像,輸入esphome/esphome…

【LeetCode面試經典150題】117. 填充每個節點的下一個右側節點指針 II

一、題目 117. 填充每個節點的下一個右側節點指針 II - 力扣(LeetCode) 給定一個二叉樹: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每個 next 指針,讓這個指針指向其下一個右側節點。如果找不到下一個…