iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0

昨天我們做完了一個完整的文本分類的 transformer 了,也準確地預測具有負面意義的詩句,真的是太厲害了。今天我們來看看更方便的 Transformer 用法並解構之,以及如何在 TensorFlow 中加載模型。

簡化程式碼

我們昨天的程式碼,其實可以簡化成下面的方式。

from transformers import pipeline

classifier = pipeline("sentiment-analysis")
classifier(
    [
        "Only those who will risk going too far can definitely find out how far one can go.",
        "Baby shark, doo doo doo doo doo doo, Baby shark!"
    ]
)

會得到下面的結果:

[{'label': 'POSITIVE', 'score': 0.9813831448554993},
 {'label': 'POSITIVE', 'score': 0.9183685779571533}]

注意到我們把昨天詩句中的那個 possibly,改成 definitely,就得到正面的結果。

這樣子的程式碼真的很簡單,就是我們在架環境時試跑過的那段程式碼。但是我們昨天完整地跑過一遍 transformer 的流程,會對於我們明天在做 fine-tuned transformer 時會更有幫助。

下面這張圖就是整個 transformer 的流程,而 pipeline 就是把它們包在一起,讓我們可以更加方便使用。如下圖。

koko hugging face azure machine learning

TensorFlow 加載模型

昨天我們的範例是加載了 PyTorch 的模型,之前有提到 Hugging Face 也支援 TensorFlow。今天我們就來看看如何加載 TensorFlow 的模型。

  1. 只要用 TFAutoModel 就可以載入想要的 transformer model 了。程式碼參考如下。
from transformers import TFAutoModel

tf_model = TFAutoModel.from_pretrained(model_name)
  1. 有的模型,只存在了 PyTorch 的版本,TensorFlow 的版本是不存在的。不過透過 Hugging Face 強大的功能,也能讓你用 TensorFlow 使 PyTorch 的 transformer。下面的程式碼中的 xlm-roberta-base,就是只存在於 PyTorch 版本的 transformer。
tf_model = TFAutoModel.from_pretrained("xlm-roberta-base", from_pt=True)
  1. 在 Hugging Face 的慣例中,pt 一般就是指 PyTorch ,而 tf 是指 TensorFlow。許多內建的功能,都只要再加上 TF 的前綴,就會變成 TensorFlow 版本的功能了。一般支援的是 TensorFlow 2.0 之後的版本。

今天的兩項功能,不禁讓人讚嘆 Hugging Face 真的太方便太好用了。明天我們就來看要如何 fine-tuned transformer 吧!又會是比較硬的內容了。


上一篇
# Day13-Hugging Face Transformer 入門
下一篇
# Day15- Fine-tune Transformer --- 資料處理篇
系列文
變形金剛與抱臉怪---NLP 應用開發之實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言