iT邦幫忙

2022 iThome 鐵人賽

DAY 1
4
AI & Data

變形金剛與抱臉怪---NLP 應用開發之實戰系列 第 1

# Day1-變形金剛與抱臉怪的基本介紹

寫在最前面

本系列文的標題「變形金剛與抱臉怪---NLP 應用開發之實戰」,只是為了譁眾取寵,這系列是要講 Transformer 與 Hugging Face,這兩個是目前學術界和產業界處理各種自然語言處理 (NLP) 的最常用的模型架構與開源工具。今日之後的文章會以 Transformer 和 Hugging Face 來稱呼,就不繼續使用這麼譁眾取寵的翻譯了。

關於變形金剛

2017 年 Google 發表了一篇論文,叫做 「Attention Is All You Need」,裡面介紹了一個全新的 neural network architecture 叫做 Transformer,其表現遠比 RNN 架構的 neural network 還要來得好。隔年又有另外一篇論文,提出了一套 fine-tuning 自然語言模型的方法,ULMFiT ,使得自然語言模型的 Transfer learning 有了大幅度的進展。兩大基於 Transformer 的自然語言處理架構,Generative Pretrained Transformer (GPT)和 Bidirectional Encoder Representations from Transformers (BERT),就此誕生了。

綜合以上兩篇論文,關於 Transformer 架構有三大重點,分別是:

  1. Encoder-decoder 的架構
  2. Attention 的機制
  3. Transfer learning

這部份非常的理論,超難超硬,會放在後面做講解,會優先學習實務上的東西。

關於抱臉怪

關於自然語言處理的論文很多,而且每個實驗室所開發出來的模型,如果要移植到自己的應用程式上面也很困難,尤其是有的用 Tensorflow,有的又用 PyTorch,更甚者用其他的框架。而 Hugging Face 的出現,就是試圖解決這類的問題。他們把這些不同架構的模型,包成規格統一的 API ,讓工程師可以更容易使用,進而讓這些先進的模型落地在各行各業。

Hugging Face 已經是目前業界做自然語言處理應用的最主流工具了。它主要的支援三種深度學習框架,分別是 PyTorch、TensorFlow 和 JAX,並可以在它們之間輕鬆切換。本系列文章會盡量以 PyTorch 為主。

用 Hugging Face 來做中文的自然語言處理,也會在更後面的部分做教學。前半段的內容都會以英文為主。內容會包含文本分類、產生、摘要、問答、模型效能優化、部署等等的內容。

關於開發環境

因為是要訓練自然語言處理的模型,如果你有 GPU 的電腦會是最好的。如果沒有的話也沒關係,仍有下列的替代方案。

  1. Google Colab
  2. Kaggle Notebooks
  3. Azure Machine Learning
  4. AWS Sage Maker

這些都有 Jupyter notebook 和 GPU 的開發環境。收費與否會隨著該公司的政策改變,建議在使用前先查詢一下。

本系列文會以 Azure Machine Learning 為主,這是一套機器學習服務,是一整套集成的平台。你可以在這個平台上完成整個 AI 的專案,從資料的管理與清洗、到訓練模型、部署模型、管理模型、重新訓練與再部署、維運管理、團隊協作等等,整套 MLOps 的流程,都可以在 Azure ML 上面完成。雖然是收費的,但是對於建立開發環境很方便。

本系列文大部份只使用 Jupyter Notebook 相關的功能,如果有時間的話可以再來聊 Hugging Face 在 Azure ML 上的整合。


下一篇
# Day2-Hugging Face 架構與三大神器
系列文
變形金剛與抱臉怪---NLP 應用開發之實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言