【Hugging Face】Ep.4 文字與模型的轉換器Tokenizer

閱讀時間約 6 分鐘
前面我們介紹了「【Hugging Face】Ep.1 平凡人也能玩的起的AI平台」, 我們都知道「詞」是NLP世界中的最小單元, 關於詞的知識歡迎參考:
簡單來說,主要的目的是將文本轉換為模型可以處理的數據, But…, 他主要的任務並不是像jieba…等斷詞器一樣, 而是很單純的扮演文字與模型的橋接器。
經過上述知識的洗禮, 我們對於詞也具有一定的基礎認知, 在「Hugging Face」的平台裡, 處理詞也提供了非常好用的Tokenizer工具, 就讓我們好好的來認識一下唄!

兩種標記技巧

詞(Word-based)
基於「詞」的標記方式會將一段文本進行斷詞, 假設一文本如下:
Jim Henson was a puppeteer
可以被斷詞成:
Jim
Henson
was
a
puppeteer
最基本的方法有「基於空格」、「基於標點符號」…, 目前處理斷詞的框架有「NLTK」、「SpaCy」、「Gensim」等, 不妨親自玩玩看斷詞, 未來Hugging Face的斷詞層若需要抽換成特定領域語言時也會較為容易。
字元(Character-based)
基於「字元」的標記方式會將文字拆成單一的字符, 這種方式的詞彙量較小, 但帶來的資訊量價值大, 因為不同語言的詞與詞之間是具有語言學組合的關係,也會表達出不同的意義。
Jim Henson was a puppeteer
J
i
m
.
.
.
有沒有更好的「斷詞」處理方式?
BPE、WordPiece、SentencePiece、Unigram分別適用於不同的語言模型, 後續也會獨立章節來介紹這部份。

標記化

我們就實際來使用Hugging Face的API來進行說明,這邊我們使用「ckiplab/bert-tiny-chinese」這個模型來進行。
from transformers import AutoTokenizer

# Initialize tokenzier and model
tokenizer = AutoTokenizer.from_pretrained("ckiplab/bert-tiny-chinese")

# Input text
text = "今天的天氣很好。"
tokens = tokenizer.tokenize(text)
tokens

# ['今', '天', '的', '天', '氣', '很', '好', '。']
轉換成ID編碼
當我們第一步將文字拆為單詞之後通常稱為標記(Token), 第二步就是將這些標記(Token)轉為模型看得懂的數字(ID)。
ids = tokenizer.convert_tokens_to_ids(tokens)
ids

# [791, 1921, 4638, 1921, 3706, 2523, 1962, 511]
解碼
我們也可以透過解碼函式將ID解回文字。
decoded_string = tokenizer.decode([791, 1921, 4638, 1921, 3706, 2523, 1962, 511])
decoded_string

# 今 天 的 天 氣 很 好 。
這就是Tokenizer的主要目的, 扮演著模型與文字之間的轉換器。

加載與儲存

加載的部份。
from transformers import AutoTokenizer

# Initialize tokenzier and model
tokenizer = AutoTokenizer.from_pretrained("ckiplab/bert-tiny-chinese")
經過加工後儲存成自訂的斷詞器可以這樣。
tokenizer.save_pretrained("custom")
關於更進階的的使用方式可以參考「https://huggingface.co/learn/nlp-course/zh-TW/chapter6/3?fw=pt」。
今天的範例都在這裡「📦 huggingface/tokenizers.ipynb」歡迎自行取用。

結語

初步了解到Hugging Face架構之後深深感受到標準化的好處, 有點像是鴻海MIH平台一般, 賦能給各個開發者到這個平台共同發展AI模型, 雖說獲利模式是否足以支撐起一家公司仍待時間進行驗證, 但平台已經讓各種NLP技術的發展更快速, 也縮小著技術屏障的隔閡。
喜歡撰寫文章的你,不妨來了解一下:
歡迎加入一起練習寫作,賺取知識!

更多關於【Hugging Face 系列】…

為什麼會看到廣告
avatar-img
118會員
264內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
Part-of-Speech Tagging, POS是詞性標注的全名, 主要為詞彙標上語言中的語法類別或用途, 再進行後續的分析與處理, 就想像成文件歸檔的動作, 每個文件貼上一個標籤類別, 而透過這些標籤類別進行關聯性的分類歸檔。 一個句子最基本的組成單位是「詞」這在我們之前幾個篇章都有談過,如
我們有想過嗎? 一句簡單的話語, 竟然隱含著豐富的句法結構與規則, 而句法就是依著這樣的規則組合而成, 形成一個完整的句子, 隨著資料量越大, 透過規則與關聯性, 機器就能夠根據我們的話語進行拆解, 並試圖理解我們的意圖進行更貼心的服務, 隨著Chatgpt的興起, 我們也見證到AI的新里程碑, 資
上一篇「【Hugging Face】Ep.2 初探新手村, 打造專屬的翻譯官」我們學習到如何架設起Hugging Face的環境了,接下來我們就介紹一下重要的Datasets吧! AI模型訓練最重要的燃料就是「資料」了, 而HuggingFace的Dataset也公開了不少的資料集, 非常適合我們進
我們已經介紹過關於Transformer模型的平台「【Hugging Face】Ep.1 平凡人也能玩的起的AI平台」,而這次就來實際動手進行開發,讓我們自己的AI自己做。 由於AI模型的訓練往往都會比較耗時, 因此建議需要有GPU環境會比較有效率一些, 否則訓練模行動輒好幾個小時才能看到結果, 一
它到底是什麼? 簡單說Hugging Face是人工智慧開源平台,開發者發表和共享預訓練模型、資料庫和示範檔案等。Hugging Face共享超過10萬個預訓練模型,上萬資料庫,包括微軟、Google、彭博、英特爾等各行業上萬機構都有使用Hugging Face。 理念與目標 我們都知道最近火紅的O
正常來說這種大型LLM公司都會有內容審查功能, 照理說不應該讓AI回答有害的、暴力的…等負面回應, 以Chatgpt來說經實驗後確實是如此, 但仍可以透過欺騙的方式讓它間接的回答, 有一點挖坑給AI跳的概念…。 好人形象的ChatGPT 非常聰明的閃避掉違法的問題, 看來內部已經經過嚴格的審查過程,
Part-of-Speech Tagging, POS是詞性標注的全名, 主要為詞彙標上語言中的語法類別或用途, 再進行後續的分析與處理, 就想像成文件歸檔的動作, 每個文件貼上一個標籤類別, 而透過這些標籤類別進行關聯性的分類歸檔。 一個句子最基本的組成單位是「詞」這在我們之前幾個篇章都有談過,如
我們有想過嗎? 一句簡單的話語, 竟然隱含著豐富的句法結構與規則, 而句法就是依著這樣的規則組合而成, 形成一個完整的句子, 隨著資料量越大, 透過規則與關聯性, 機器就能夠根據我們的話語進行拆解, 並試圖理解我們的意圖進行更貼心的服務, 隨著Chatgpt的興起, 我們也見證到AI的新里程碑, 資
上一篇「【Hugging Face】Ep.2 初探新手村, 打造專屬的翻譯官」我們學習到如何架設起Hugging Face的環境了,接下來我們就介紹一下重要的Datasets吧! AI模型訓練最重要的燃料就是「資料」了, 而HuggingFace的Dataset也公開了不少的資料集, 非常適合我們進
我們已經介紹過關於Transformer模型的平台「【Hugging Face】Ep.1 平凡人也能玩的起的AI平台」,而這次就來實際動手進行開發,讓我們自己的AI自己做。 由於AI模型的訓練往往都會比較耗時, 因此建議需要有GPU環境會比較有效率一些, 否則訓練模行動輒好幾個小時才能看到結果, 一
它到底是什麼? 簡單說Hugging Face是人工智慧開源平台,開發者發表和共享預訓練模型、資料庫和示範檔案等。Hugging Face共享超過10萬個預訓練模型,上萬資料庫,包括微軟、Google、彭博、英特爾等各行業上萬機構都有使用Hugging Face。 理念與目標 我們都知道最近火紅的O
正常來說這種大型LLM公司都會有內容審查功能, 照理說不應該讓AI回答有害的、暴力的…等負面回應, 以Chatgpt來說經實驗後確實是如此, 但仍可以透過欺騙的方式讓它間接的回答, 有一點挖坑給AI跳的概念…。 好人形象的ChatGPT 非常聰明的閃避掉違法的問題, 看來內部已經經過嚴格的審查過程,
你可能也想看
Google News 追蹤
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Bidirectional Encoder Representations from Transformers (BERT) 只有 Encoder Layer,沒有 D
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 的重要性已經被公認了,因此在 Hugging Face 中亦有被實作,呼叫方式如下: !pip -q install transformers
Thumbnail
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們在AI說書 - 從0開始 - 42中,見識了 Tokenizer 做的事情了,以下來羅列幾個要點: 它將原始文字轉成小寫 有可能將原始文字再進行切割 通常 T
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 中的 Attention 機制是 'Word-to-Word' 操作,抑或是 'Token-to-Token' 操作,白話來講就是:「對於句子中
為了將輸入文本轉換成深度學習模型可以使用的嵌入向量, 我們需要先將「輸入文本 Input Text」轉為「符元化文本 Tokenized Text」。 而實際上「符元化文本 Tokenized Text」與「嵌入向量 Embedding Vector」之間, 還有一個步驟稱為「符元
延續使用Meta釋出的模型,實作Chat GPT - Part 2 我們已經確定可以進入HuggingFace之後,就要來載入模型,其對應程式為: Model_Config = transformers.AutoConfig.from_pretrained( Mode
第一步先在Python環境中安裝本次專案需要用到的Library,相關指令如下: !pip install accelerate==0.21.0 !pip install transformers==4.31.0 !pip install tokenizers==0.13.3 !pip insta
現代大語言模型建構於Transformer結構。 Transformer結構是源自於2017年著名論文 Attention Is All You Need的深度神經網路結構。 原始的Trasformer是為了機器翻譯發展,當初的任務是將英文翻譯成德文與法文。 Transformer
Thumbnail
Emojiton是一個能將文字轉化為表情符號的AI工具,將幫助你解決文案表情符號的挑選困擾,讓你的文案更加生動。立刻到Emojiton網站使用看看,輸入想要的文字,它就會自動推薦Emoji給你使用了。立刻收藏、追蹤、分享,學習更多關於個人品牌建立和AI工具的教學!
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Bidirectional Encoder Representations from Transformers (BERT) 只有 Encoder Layer,沒有 D
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 的重要性已經被公認了,因此在 Hugging Face 中亦有被實作,呼叫方式如下: !pip -q install transformers
Thumbnail
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們在AI說書 - 從0開始 - 42中,見識了 Tokenizer 做的事情了,以下來羅列幾個要點: 它將原始文字轉成小寫 有可能將原始文字再進行切割 通常 T
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 中的 Attention 機制是 'Word-to-Word' 操作,抑或是 'Token-to-Token' 操作,白話來講就是:「對於句子中
為了將輸入文本轉換成深度學習模型可以使用的嵌入向量, 我們需要先將「輸入文本 Input Text」轉為「符元化文本 Tokenized Text」。 而實際上「符元化文本 Tokenized Text」與「嵌入向量 Embedding Vector」之間, 還有一個步驟稱為「符元
延續使用Meta釋出的模型,實作Chat GPT - Part 2 我們已經確定可以進入HuggingFace之後,就要來載入模型,其對應程式為: Model_Config = transformers.AutoConfig.from_pretrained( Mode
第一步先在Python環境中安裝本次專案需要用到的Library,相關指令如下: !pip install accelerate==0.21.0 !pip install transformers==4.31.0 !pip install tokenizers==0.13.3 !pip insta
現代大語言模型建構於Transformer結構。 Transformer結構是源自於2017年著名論文 Attention Is All You Need的深度神經網路結構。 原始的Trasformer是為了機器翻譯發展,當初的任務是將英文翻譯成德文與法文。 Transformer
Thumbnail
Emojiton是一個能將文字轉化為表情符號的AI工具,將幫助你解決文案表情符號的挑選困擾,讓你的文案更加生動。立刻到Emojiton網站使用看看,輸入想要的文字,它就會自動推薦Emoji給你使用了。立刻收藏、追蹤、分享,學習更多關於個人品牌建立和AI工具的教學!