天天看點

Hugging Face 入門指南

作者:小心程式猿QAQ

一、Hugging Face 網站互動

Hugging Face 的網站是一個非常重要的資源,你可以在這裡找到大量的預訓練模型和資料集,也可以線上使用模型,或者參與到社群的讨論。

  1. 模型庫:Hugging Face 的模型庫是一個非常重要的資源。你可以在這裡找到大量的預訓練模型,包括各種語言的模型,以及各種任務的模型。你可以通過搜尋框搜尋你感興趣的模型,或者通過分類标簽來篩選模型。每個模型的頁面都包含了模型的基本資訊,如模型的結構、訓練資料、性能名額等,以及如何在代碼中使用這個模型的示例。
  2. 資料集庫:Hugging Face 的資料集庫包含了大量的自然語言處理資料集。你可以在這裡找到各種語言的資料集,以及各種任務的資料集。每個資料集的頁面都包含了資料集的基本資訊,如資料集的來源、結構、大小等,以及如何在代碼中使用這個資料集的示例。
  3. 線上模型使用:Hugging Face 的網站提供了線上使用模型的功能。你可以在模型的頁面中找到這個功能。你隻需要在輸入框中輸入文本,然後點選 "Compute" 按鈕,就可以看到模型的預測結果。這是一個非常友善的功能,可以讓你快速地試用各種模型,而不需要寫任何代碼。
  4. 社群:Hugging Face 還有一個活躍的社群。你可以在這裡找到各種讨論和問題,也可以發表你自己的觀點和問題。這是一個非常好的學習資源,你可以在這裡找到很多有用的資訊,也可以和其他使用者交流經驗。

二、使用 Python 代碼

Hugging Face 的 Transformers 庫是一個非常強大的工具,它提供了大量的預訓練模型,以及這些模型的訓練和使用工具。

設定Token

一般在使用dHugging Fac的強大功能之前,會申請下token,并且配置下token:HUGGING_FACE_HUB_TOKEN 是一個用于身份驗證的令牌,它允許你通路 Hugging Face Hub 上的私有模型和資料集。如果你在 Hugging Face Hub 上有私有的模型或資料集,或者你需要通過 API 進行一些操作(例如上傳模型),那麼你就需要這個令牌。

按照以下步驟擷取和配置你的 HUGGING_FACE_HUB_TOKEN:

  1. 擷取 HUGGING_FACE_HUB_TOKEN:首先,你需要登入到 Hugging Face 的網站。然後,點選右上角的你的使用者名,從下拉菜單中選擇 "Settings"。在 "Settings" 頁面中,你可以找到 "API tokens" 部分。點選 "Create a new token",然後輸入一個描述,點選 "Create"。你就會看到你的新的 API 令牌。請注意,這個令牌隻會顯示一次,是以請確定你已經複制并儲存好了。
  2. 配置 HUGGING_FACE_HUB_TOKEN:有了 API 令牌後,你就可以在你的環境中配置它了。你可以将它設定為環境變量,這樣所有的 Hugging Face 庫都可以使用它。在 Unix 系統中,你可以使用以下指令來設定環境變量:
bash複制代碼export HUGGING_FACE_HUB_TOKEN=your_token
           

在這個指令中,your_token 是你的 API 令牌。你需要将它替換為你實際的令牌。

在 Python 代碼中,你也可以直接設定這個令牌:

python複制代碼import os

os.environ['HUGGING_FACE_HUB_TOKEN'] = 'your_token'
           

同樣,your_token 是你的 API 令牌,你需要将它替換為你實際的令牌。

使用Transformer

以下是如何使用 Python 代碼來使用 Transformers 庫的基本步驟:

  1. 安裝 Transformers 庫:首先,你需要在你的 Python 環境中安裝 Transformers 庫。你可以使用 pip 來安裝:
python複制代碼pip install transformers
           
  1. 加載模型和分詞器:在 Transformers 庫中,每個模型都有一個對應的分詞器。分詞器的任務是将原始的文本資料轉換為模型可以處理的格式。你可以使用 from_pretrained 方法來加載模型和分詞器:
python複制代碼from transformers import AutoModel, AutoTokenizer

model = AutoModel.from_pretrained('bert-base-uncased')
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
           

在這個例子中,我們加載了一個名為 "bert-base-uncased" 的模型和分詞器。你可以将這個名稱替換為你想要使用的任何模型的名稱。

  1. 預處理資料:在你可以使用模型之前,你需要先将你的資料預處理成模型可以接受的格式。這通常包括分詞、轉換為模型的輸入格式等步驟。你可以使用分詞器的 encode_plus 或 __call__ 方法來完成這個步驟:
python複制代碼inputs = tokenizer('Hello, world!', return_tensors='pt')
           

在這個例子中,我們将一個簡單的句子 "Hello, world!" 預處理成了模型的輸入格式。return_tensors='pt' 參數表示我們希望傳回 PyTorch 的張量。

  1. 使用模型:一旦你有了模型的輸入資料,你就可以使用模型進行預測了。你可以直接将輸入資料傳遞給模型,模型将傳回預測的結果:
python複制代碼outputs = model(**inputs)
           

在這個例子中,outputs 是一個包含了模型預測結果的對象。具體的内容取決于你使用的模型的類型。

以上就是使用 Hugging Face 的 Transformers 庫的基本步驟。你可以根據你

的具體需求,調整這些步驟,例如使用不同的模型,或者處理不同的資料。

三、訓練模型

除了使用預訓練的模型,你也可以使用 Transformers 庫來訓練你自己的模型。以下是訓練模型的基本步驟:

  1. 準備資料:首先,你需要準備你的訓練資料。你的資料應該是一個包含了輸入和目标的資料集。你可以使用任何你喜歡的方式來準備你的資料,隻要最後你可以将它轉換為模型的輸入格式。
  2. 定義模型:然後,你需要定義你的模型。你可以使用 Transformers 庫提供的任何模型,或者你自己定義的模型。你需要確定你的模型的輸入和輸出和你的資料集比對。
  3. 定義訓練參數:接下來,你需要定義你的訓練參數。這包括學習率、批次大小、訓練輪數等。你可以根據你的具體需求來設定這些參數。
  4. 訓練模型:最後,你可以開始訓練你的模型。你可以使用 Transformers 庫提供的 Trainer 類來訓練你的模型。Trainer 類提供了一系列的功能,如模型儲存、日志記錄、學習率調整等。

以上就是訓練模型的基本步驟。你可以根據你的具體需求,調整這些步驟,例如使用不同的優化器,或者使用不同的損失函數。

四、總結

Hugging Face 是一個非常強大的工具,無論你是在網站上互動,還是在代碼中使用,都可以找到大量的資源和功能。希望這篇指南可以幫助你開始使用 Hugging Face,如果你有任何問題,都可以在 Hugging Face 的社群中尋找答案,或者直接向 Hugging Face 的開發者提問。

以上就是這篇 Hugging Face 的入門指南的第一部分,我會在下一次發送中繼續介紹如何使用 Hugging Face 的其他功能。

繼續閱讀