跳到主要內容

【Hugging Face】Ep.2 初探新手村, 打造專屬的翻譯官

 

圖片來源

我們已經介紹過關於Transformer模型的平台「【Hugging Face】Ep.1 平凡人也能玩的起的AI平台」,而這次就來實際動手進行開發,讓我們自己的AI自己做。

由於AI模型的訓練往往都會比較耗時, 因此建議需要有GPU環境會比較有效率一些, 否則訓練模行動輒好幾個小時才能看到結果, 一來一往之間, 當我們調好一版可用的模型時已經浪費了不少青春去了…。

基本上怎麼開始呢? 其實有分為兩條路徑, 一條是全部自己擁有, 將環境架設於本地端, 另一種則是使用雲端服務, 例如學術研究的Google Colab, 我們都會分別示範如何開始。

主題

這次的任務是自行打造一個翻譯官, 幫我們將中文翻譯成英文, 預計使用的模型為「Helsinki-NLP/opus-mt-zh-en」, 就讓我們分別示範如何在本地端與Google Colab上使用吧!

本地端

當我們非常Care數據是應該私有的, 不流於雲上時, 這時候本地端架設會是較好的選擇, 但相對應的也要有足夠的硬體, 成本相對較高。

另外會建議基於Docker、Container這種容器化技術為基礎進行環境架設, 如此一來才能夠避免因為系統環境的因素導致訓練失敗或者辨識失敗…等狀況。

首先請安裝一下Docker, 請參考「Install Docker Engine」, 至於什麼是Docker, 我們之後會另外撰寫一篇來進行介紹, 並在此補充, 這邊假設您已經是Docker/Container專家為基礎進行說明。

安裝完畢後就是選用合適的image了, 所謂image就是所謂的映像檔(虛擬機時期常常聽到的), 這邊會建議使用nvidia官方的image「PyTorch Release Notes」, 這邊我們會選用「nvcr.io/nvidia/pytorch:22.12-py3」這個版本來進行示範。

基本上Docker安裝完畢之後, 我們會用docker compose來管理配置的部份, 大致上如下:

version: "3.8"
services:
  jupyter:
    image: nvcr.io/nvidia/pytorch:22.12-py3
    tmpfs:
      - /tmp
    ports:
      - "8888:8888"
    volumes:
      - ./:/workspace
    runtime: nvidia
    command: jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root --NotebookApp.token='test'

接著啟動我們的環境

docker compose up -d

再來開啟jupyter的網站:http://127.0.0.1:8888/login, 然後將token=text輸入就可以進行登錄了。

圖片來源

登入成功之後, 我們就可以來創建一個筆記本。

圖片來源

安裝一下必要元件。

!pip install transformers

#  This tokenizer cannot be instantiated. Please make sure you have `sentencepiece` installed in order to use this tokenizer.
!pip install sentencepiece

!pip install sacremoses

接著進行翻譯任務。

from transformers import pipeline
translator = pipeline("translation", model='Helsinki-NLP/opus-mt-zh-en') #使用翻譯任務
translator('這是一個很困難的問題')

最終結果如下,成功幫我們進行翻譯。

圖片來源

Google Colab

當我們不想維護硬體時, 雲端的Google Colab就是最好的選擇了, 因為它整合了完整的python環境, 讓我們可以透過類似Jupyter的方式進行開發, 並分享腳本, 基本上比較適合學生、數據資料學家或是 AI 研究人員, 可以快速驗證概念或者訓練方向是否正確, 支援CPU、GPU甚至TPU, 但要注意的是除了CPU以外其他的運算單元都是會有額度限制的, 超過額度可是得付費的。

怎麼開始使用Google Colab呢? 請參考「【Google Colab系列】台股分析預備式: Colab平台與Python如何擦出火花?」, 假設你已經學會如何開筆記本了, 那就讓我們開始吧!

首先安裝一下最重要的Transformers元件吧

!pip install transformers

#  This tokenizer cannot be instantiated. Please make sure you have `sentencepiece` installed in order to use this tokenizer.
!pip install sentencepiece

!pip install sacremoses

接著進行翻譯任務。

from transformers import pipeline
translator = pipeline("translation", model='Helsinki-NLP/opus-mt-zh-en') #使用翻譯任務
translator('這是一個很困難的問題')

最終得到翻譯結果。

圖片來源

今天的範例都在這裡「📦huggingface/opus_mt_zh_en.ipynb」歡迎自行取用。

如何使用請參閱「【Google Colab系列】台股分析預備式: Colab平台與Python如何擦出火花?」。

結語

整個過程非常的簡單, 幾行指令就讓我們完成翻譯的任務, 過往可能需要付費才能使用的API,如今都可以自行擁有了, HuggingFace上有很多模型及任務可以使用, 不妨親自動手玩看看, 會讓我們對於AI領域有更進一步的認識喔, 下一個篇章將會陸續介紹不同的任務與不同的模型, 甚至自己動手訓練模型, 就讓我們持續學習下去吧!

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 - 為什麼要加入?

歡迎加入一起練習寫作,賺取知識!

留言

這個網誌中的熱門文章

java西元民國轉換_各種不同格式

C#資料庫操作(新增、修改、刪除、查詢)

【Excel好好玩】 自己的資產自己管!善用Google Sheet來幫我們評估貸款

這次介紹的主題是關於Excel的貸款還款計畫試算,我們人生中總會遇到需要大筆金額的花費,但當資金不夠時就得進行貸款,而貸款之前如果我們能夠審慎評估,並分析自己的還款能力之後在進行凍作,相信風險會小很多,因此就自己動動手來使用Google Sheet進行試算吧! 基本資料 ● 貸款總額: 1000000 ● 貸款期數: 84月 ● 年利率: 2.11% ● 月利率: 0.18% P.S 月利率 = 年利率 / 12 重要函式 PMT : 這是Google Sheet內建的重要年金計算公式,我們可以善用這個公式來計算固定利率及期數的固定攤還本息。因為PMT函式計算出的結果為負數,所以前面加上-號轉成正數。 動手做 首先我們在Excel表上列出我們的基本資料 圖片來源 其中月利率的部分就使用公式「=B4/12」 接著我們填上第一列的期數跟餘額 圖片來源 =B2 =B3 使用關鍵PMT函數來計算本息的部分 因為PMT函式計算出的結果為負數,所以前面加上-號轉成正數。 -PMT(貸款利率(月利率), 貸款期數, 貸款總額) =-PMT($B$5,$B$3,$B$2) 圖片來源 計算利息 利息 = 貸款餘額 x 月利率 =B8*$B$5 圖片來源 計算本金 本金 = 本息 - 利息 =C8-D8 圖片來源 製作第二列餘額的部分 餘額的部分 = 上一期的餘額 - 上一期的本金 圖片來源 接著拖曳該兩列往下拉,即可查看每一期的利息與本金 圖片來源 結語 雖然市面上已經有很多貸款銀行都提供了試算功能,但如果我們想要進一步管理自己的資產時,就需要將每一期的金額給計算出來,因此才會將公式運用在Excel表,讓我們的資產管理表能夠結合負債,進一步評估我們理財行動的下一步,希望這樣的經驗可以幫助到正在理財道路上打拼的夥伴,讓我們透過有效的管理,幫助荷包長大吧! 喜歡撰寫文章的你,不妨來了解一下: Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入? 歡迎加入一起練習寫作,賺取知識,累積財富!