【AI大模型】Transformers大模型庫(四):AutoTokenizer

目錄???????

一、引言?

二、自動分詞器(AutoTokenizer)

2.1 概述

2.2 主要特點

2.3 代碼示例

三、總結


一、引言?

?這里的Transformers指的是huggingface開發的大模型庫,為huggingface上數以萬計的預訓練大模型提供預測、訓練等服務。

🤗 Transformers 提供了數以千計的預訓練模型,支持 100 多種語言的文本分類、信息抽取、問答、摘要、翻譯、文本生成。它的宗旨是讓最先進的 NLP 技術人人易用。
🤗 Transformers 提供了便于快速下載和使用的API,讓你可以把預訓練模型用在給定文本、在你的數據集上微調然后通過 model hub 與社區共享。同時,每個定義的 Python 模塊均完全獨立,方便修改和快速研究實驗。
🤗 Transformers 支持三個最熱門的深度學習庫: Jax, PyTorch 以及 TensorFlow — 并與之無縫整合。你可以直接使用一個框架訓練你的模型然后用另一個加載和推理。

本文重點介紹自動分詞器(AutoTokenizer)。

二、自動分詞器(AutoTokenizer)

2.1 概述

AutoTokenizer是Hugging Face transformers庫中的一個非常實用的類,它屬于自動工廠模式的一部分。這個設計允許開發者通過一個統一的接口來加載任何預訓練模型對應的分詞器(tokenizer),而無需直接指定分詞器的精確類型。這意味著,當你知道模型的名稱時,你可以使用AutoTokenizer自動獲取與該模型匹配的分詞器,而不需要了解分詞器的具體實現細節。

2.2 主要特點

  • ?模型兼容性:通過模型名稱自動匹配合適的分詞器,支持BERT、RoBERTa、Albert、DistilBERT、T5等眾多模型。
  • ?便捷性:簡化了代碼,無需根據模型類型手動選擇分詞器類。
  • ?靈活性:對于新發布的模型,只要其分詞器在Hugging Face模型庫中可用,AutoTokenizer.from_pretrained就能加載。

2.3 代碼示例

使用這些特殊標記的例子,比如在BERT模型中準備輸入:?

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"#使用國內hf鏡像
os.environ["CUDA_VISIBLE_DEVICES"] = "2"
os.environ["TF_ENABLE_ONEDNN_OPTS"] = "0"from transformers import AutoTokenizer# 加載BERT的分詞器
tokenizer = AutoTokenizer.from_pretrained('bert-base-chinese')# 使用分詞器處理文本
text = "你好,我在北京的互聯網公司工作"
tokenized_text = tokenizer.tokenize(text)
print(tokenized_text)
"""
['你', '好', ',', '我', '在', '北', '京', '的', '互', '聯', '網', '公', '司', '工', '作']
"""# 或者直接編碼為模型輸入的格式
encoded_text = tokenizer.encode(text)
print(encoded_text)
"""
[101, 872, 1962, 8024, 2769, 1762, 1266, 776, 4638, 757, 5468, 5381, 1062, 1385, 2339, 868, 102]
"""# 對于更復雜的輸入準備,可以使用encode_plus
encoded_plus = tokenizer.encode_plus(text, add_special_tokens=True)
print(encoded_plus)
"""
{'input_ids': [101, 872, 1962, 8024, 2769, 1762, 1266, 776, 4638, 757, 5468, 5381, 1062, 1385, 2339, 868, 102], 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
}
"""

參數說明?

  • from_pretrained: 這不是一個方法,而是用來創建AutoTokenizer實例的類方法。它根據提供的模型名稱或路徑加載對應的分詞器。
  • tokenize: 將文本字符串轉換為詞元(tokens)的列表。
  • encode: 將文本轉換為模型輸入的數字序列(token IDs)。
  • encode_plus: 除了生成token IDs,還提供額外的數據結構,如attention_mask、token_type_ids等,適合復雜輸入準備。以及提供句子編碼拼接功能。
  • batch_encode_plus: 對一批文本進行編碼,可以自動處理填充和截斷,以確保所有輸入具有相同的長度。
  • decode: 將token IDs轉換回文本字符串。
  • save_pretrained: 保存分詞器到本地目錄,以便之后使用。
  • 特定于模型的方法: 不同的分詞器可能有特定的方法,如處理特定的編碼規則、特殊標記等,但這些不是所有分詞器都通用的。

這些方法的具體行為和可用參數可能會根據加載的分詞器類型(如BertTokenizer、RobertaTokenizer等)有所不同

三、總結

本文對使用transformers的AutoTokenizer進行介紹,他最大的特點是允許開發者通過一個統一的接口來加載任何預訓練模型對應的分詞器(tokenizer),而無需直接指定分詞器的精確類型。這意味著,當知道模型的名稱時,可以使用AutoTokenizer自動獲取與該模型匹配的分詞器。

如果您還有時間,可以看看我的其他文章:

《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大模型訓練與推理實戰

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

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

相關文章

PMAT安裝及使用(Bioinformatics工具-021)

01 背景 PMAT 是一個高效的組裝工具包,用于利用第三代(HiFi/CLR/ONT)測序數據組裝植物線粒體基因組。PMAT 還可以用于組裝葉綠體基因組或動物線粒體基因組。 PMAT:使用低覆蓋度HiFi測序數據的高效植物線粒體組裝工具包-文獻精讀…

python字符串的進階

在上一篇文章的 密碼破解器 中,我們回顧了循環專題的知識點。 while 循環和 for 循環是 Python 中的兩大循環語句,它們都可以實現循環的功能,但在具體使用時略有差別。當循環次數不確定時,我們選用 while 循環;當循環…

【限免】雜波環境下線性調頻脈沖、巴克碼、頻率步進脈沖雷達MTI、脈沖壓縮【附MATLAB代碼】

文章來源:?微信公眾號:EW Frontier/ 智能電磁頻譜算法 本代碼主要模擬雜波環境(飛機、地雜波、鳥類信號)下,Chirp脈沖、巴克碼脈沖、頻率步進脈沖雷達信號的脈沖壓縮及MTI、匹配濾波。 MATLAB主代碼 % 生成雷達信號…

做任務賺錢的app有哪些?(真實可靠能做任務賺錢軟件app推薦)

在數字化時代,通過手機APP做任務賺錢已成為一種流行的兼職方式。這些APP為用戶提供了完成小任務以賺取現金或獎勵的機會。以下是一些真實可靠的做任務賺錢的APP推薦,幫助您在空閑時間增加收入。 賞幫賺是一個正規的兼職接單賺錢平臺,在這個平…

MariaDB數據導入與導出操作演示

文章目錄 整個數據庫導出導入先刪除庫然后再導入 參考這里: MariaDB數據庫導出導入. 整個數據庫 該部分演示:導出數據庫,然后重建數據庫,并導入數據的整個過程。 導出 Win R ,打開運行輸入cmd并回車,然…

迅雷極簡易下載

一、簡介 1、迅雷是一家全球領先的去中心化服務商,以技術構建商業,以服務創造共識,從而建立一個高效可信的存儲與傳輸網絡。 迅雷成立于2003年,總部位于中國深圳,2014年于納斯達克上市(納斯達克股票代碼&a…

Linux系統管理磁盤管理003

操作系統: CentOS Stream9 測試過程: 模擬磁盤被沾滿, 創建文件 測試腳本 for i in seq 10do# echo $idd if/dev/zero of./$i-$RANDOM.txt bs1M count1024 Done[rootlocalhost ~]# vim 2.txt [rootlocalhost ~]# sh 2.txt 記錄了10240 的…

OPPO 文件傳輸 - 將文件從 OPPO 手機傳輸到 PC 的 5 種方法

OPPO手機以其出色的拍照功能而聞名,尤其是新推出的OPPO Find X2系列,它配備了高清前置鏡頭和超夜景模式,讓您輕松拍出精彩瞬間。當您需要將這些照片或其他文件從OPPO手機傳輸到PC時,以下是五種簡便的方法。 第 1 部分&#xff…

UI設計公司-藍藍設計-交通行業ui設計解決方案

來百度APP暢享高清圖片 這是北京蘭亭妙微科技有限公司(簡稱藍藍設計)在交通行業的一些ui設計經驗,我們建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習&#xff0…

電路方案分析(十九)快速響應過流事件檢測電路

快速響應過流事件檢測電路 1.設計需求2.設計方案3.設計說明4.仿真驗證 tips&#xff1a;方案參考來自TI參考設計&#xff0c;僅供學習交流使用。 1.設計需求 2.設計方案 這是一種快速響應單向電流檢測解決方案&#xff0c;通常稱為過流保護 (OCP)&#xff0c;可提供 < 2μ…

【AI大模型】基于Langchain和Openai借口實現英文翻譯中文應用

&#x1f680; 作者 &#xff1a;“大數據小禪” &#x1f680; 文章簡介 &#xff1a;本專欄后續將持續更新大模型相關文章&#xff0c;從開發到微調到應用&#xff0c;需要下載好的模型包可私。 &#x1f680; 歡迎小伙伴們 點贊&#x1f44d;、收藏?、留言&#x1f4ac; 目…

【python009】Python處理某區域邊界經緯度數據至geohash

1.熟悉、梳理、總結項目研發實戰中的Python開發日常使用中的問題、知識點等&#xff0c;如Python處理某區域邊界經緯度數據至geohash&#xff0c;便于時空交集。 2.歡迎點贊、關注、批評、指正&#xff0c;互三走起來&#xff0c;小手動起來&#xff01; 3.歡迎點贊、關注、批評…

net/http與gin框架的關系分析

要想學好 gin 框架&#xff0c;首先要學習 net/http 服務&#xff0c;而二者的關系又是重中之重。 本文所要做的任務就是將二者“連接” 起來&#xff0c;讓讀者掌握其中之精髓。 一、Golang HTTP 標準庫示例 使用 golang 啟動 http 服務非常簡單&#xff0c;就是一個標準的 C…

【數據庫初階】SQL--DCL

文章目錄 DCL1. 基本介紹2. 用戶管理2.1 查詢用戶2.2 創建用戶2.3 修改用戶密碼2.4 刪除用戶 3. 權限控制3.1 查詢權限3.2 授予權限3.3 撤銷權限 4. DCL總結 DCL 更多數據庫MySQL系統內容就在以下專欄&#xff1a; 專欄鏈接&#xff1a;數據庫MySQL 1. 基本介紹 DCL英文全稱是…

45-3 護網溯源 - 為什么要做溯源工作

官網:CVERC-國家計算機病毒應急處理中心 西工大遭網絡攻擊再曝細節!13名攻擊者身份查明→ (baidu.com) 護網溯源是指通過技術手段追蹤網絡攻擊的來源和行為,其重要性體現在以下幾個方面: 安全防御:了解攻擊源頭可以幫助組織加強網絡安全防御,及時采取措施防止攻擊的再次…

NXP i.MX8系列平臺開發講解 - 3.14 Linux 之Power Supply子系統(二)

專欄文章目錄傳送門&#xff1a;返回專欄目錄 Hi, 我是你們的老朋友&#xff0c;主要專注于嵌入式軟件開發&#xff0c;有興趣不要忘記點擊關注【碼思途遠】 目錄 1. 前言 2. 芯片簡介 2. 系統原理設計 2. 設備樹相關 本文實操是基于Android11 系統下i.MX8MQ環境下&#x…

基礎復習---二進制補碼

1.二進制補碼表示法基于以下原理&#xff1a; 正數的補碼&#xff1a;正數的補碼與其原碼&#xff08;即直接表示的二進制形式&#xff09;相同。 負數的補碼&#xff1a;負數的補碼是其絕對值的二進制表示&#xff08;即正數的補碼&#xff09;&#xff0c;然后取反&#xff…

代碼隨想錄算法訓練營第十三天| 102. 二叉樹的層序遍歷、226.翻轉二叉樹、101. 對稱二叉樹

102. 二叉樹的層序遍歷 題目鏈接&#xff1a;102. 二叉樹的層序遍歷 文檔講解&#xff1a;代碼隨想錄 狀態&#xff1a;dfs沒寫出來&#xff0c;bfs不知道如何分層 import java.util.*;public class BinaryTreeLevelOrderTraversal {// 用于存儲每一層的節點值List<List<…

rocketmq No route info of this topic 問題排查

Broker配置項 autoCreateTopicEnable true 如果是單節點(master),注釋掉這里的配置 #有三個值&#xff1a;SYNC_MASTER&#xff0c;ASYNC_MASTER&#xff0c;SLAVE&#xff1b;同步和異步表示Master和Slave之間同步數據的機制&#xff1b; #brokerRole SYNC_MASTER Pytho…