1. 簡介
Document AI 是一項文件解讀解決方案,可擷取文件、電子郵件等非結構化資料,使資料更容易理解、分析及取用。
透過 Document AI Workbench 進行訓練,可以為特殊文件類型提供額外加上標籤的範例,並建立新的模型版本,藉此提高文件處理準確率。
在本研究室中,您將建立發票剖析器處理器、設定處理器來進階訓練、為範例文件加上標籤,並對處理器進行進階訓練。
本研究室使用的文件資料集,是由虛構的管線公司隨機產生應付憑據。
必要條件
本程式碼研究室是以其他 Document AI 程式碼研究室呈現的內容為基礎。
建議您先完成下列程式碼研究室,再繼續操作。
- 具備 Document AI 的光學字元辨識 (OCR) 功能 (Python)
- 使用 Document AI 剖析表單 (Python)
- 使用 Document AI 的特殊處理器 (Python)
- 使用 Python 管理 Document AI 處理器
- Document AI:人機迴圈
課程內容
- 為月結單剖析器處理器設定 Uptraining。
- 使用註解工具為 Document AI 訓練資料加上標籤。
- 訓練新的模型版本。
- 評估新模型版本的準確率。
軟硬體需求
2. 開始設定
本程式碼研究室假設您已完成「入門程式碼研究室」中列出的 Document AI 設定步驟。
請先完成下列步驟再繼續:
3. 建立處理器
您必須先建立應付憑據剖析器處理器,才能用於這個研究室。
- 按一下「Create Processor」,向下捲動至「Specialized」 (或在搜尋列中輸入「Invoice Parser」),然後選取「Invoice Parser」。
- 輸入名稱
codelab-invoice-uptraining
(或其他您會記得的),然後從清單中選取最接近的區域。
- 點選「建立」來建立處理器。系統隨即會顯示「Processor Overview」(處理器總覽) 頁面。
4. 建立資料集
為訓練處理器,我們必須建立含有訓練和測試資料的資料集,協助處理者找出要擷取的實體。
您必須在 Cloud Storage 中建立新值區,才能儲存資料集。注意:這個值區不得與目前儲存文件的值區相同。
- 開啟 Cloud Shell 並執行下列指令來建立值區。您也可以在 Cloud 控制台中建立新值區。請儲存這個值區名稱,以便日後使用。
export PROJECT_ID=$(gcloud config get-value project)
gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
- 前往「資料集」分頁,然後按一下「建立資料集」
- 將您在步驟 1 建立的值區名稱貼到「Destination Path」欄位。(不得包含
gs://
)
- 請等待資料集建立完成,接著系統會將您導向「資料集管理」頁面。
5. 匯入測試文件
接著,將月結單 PDF 範例匯入資料集。
- 按一下「匯入文件」。
- 在這個研究室中,我們準備了一份 PDF 範例供您使用。複製下列連結,然後貼到「Source Path」方塊中。保留「資料分割」「未指派」。按一下「匯入」。
cloud-samples-data/documentai/codelabs/uptraining/pdfs
- 等待文件匯入完成。測試時間不到 1 分鐘。
- 匯入完成後,應該會在資料集管理 UI 中看到文件。按一下該標籤,即可進入標籤控制台。
6. 為測試文件加上標籤
接著,讓我們為想要擷取的實體識別文字元素和標籤。這些標籤將用於訓練模型,藉此剖析這個特定文件結構並找出正確的類型。
- 您現在應該位於標籤控制台中,如下所示。
- 按一下「選取文字」然後在工具中醒目顯示「McWilliam Piping International Piping Company」字樣並指派「
supplier_name
」標籤。您可以使用文字篩選器搜尋標籤名稱。
- 醒目顯示文字「14368 Pipeline Ave Chino, CA 91710」並指派「
supplier_address
」標籤。
- 醒目顯示文字「10001」並指派「
invoice_id
」標籤。
- 醒目顯示文字「2020-01-02」並指派「
due_date
」標籤。
- 切換至「定界框」如果偏好在終端機視窗中工作
可使用 Google Cloud CLI gcloud 指令列工具醒目顯示文字「Knuckle Couplers」並指派「
line_item/description
」標籤。
- 醒目顯示文字「9」並指派「
line_item/quantity
」標籤。
- 醒目顯示文字「74.43」並指派「
line_item/unit_price
」標籤。
- 醒目顯示文字「669.87」並指派「
line_item/amount
」標籤。
- 針對後兩個委刊項重複上述 4 個步驟。完成後看起來應該會像這樣。
- 醒目顯示文字「1,419.57」(在小計旁邊) 並指派
net_amount
標籤。
- 醒目顯示文字「113.57」(位於「稅金」旁),並指派
total_tax_amount
標籤。
- 醒目顯示文字「1,533.14」(在「總計」旁邊) 並指派
total_amount
標籤。
- 醒目顯示其中一項「$」字元,並指派「
currency
」標籤。
- 完成後,加上標籤的文件應該會如下所示。請注意,如要調整這些標籤,只需按一下文件中的定界框,或是左側選單的標籤名稱/值即可。加上標籤後,按一下「儲存」。
- 以下是標籤和值的完整清單
標籤名稱 | Text |
| 麥克威廉國際管道公司 |
| 14368 Pipeline Ave Chino, CA 91710 |
| 10001 |
| 2020-01-02 |
| 連接管 |
| 9 |
| 74.43 |
| 669.87 |
| 聚氯乙烯管 (12 英寸) |
| 7 |
| 15.90 |
| 111.30 |
| 銅管 |
| 7 |
| 91.20 |
| 638.40 |
| 1,419.57 |
| 113.57 |
| 1,533.14 |
| $ |
7. 將文件指派給訓練集
現在應該會回到資料集管理主控台。請注意,已加上標籤和未加上標籤的文件數量和使用中標籤的數量已變更。
- 我們必須將這份文件指派給「訓練」或「Test」設定。按一下文件。
- 點選「Assign to Set」,然後點選「Training」。
- 請注意,資料分割的數字已變更。
8. 匯入預先加上標籤的資料
Document AI Uptraining 在訓練集和測試集中至少需要 10 個文件,每個組合中的每個標籤至少需要 10 個執行個體。
建議每個集內至少包含 50 份文件,且每個標籤各有 50 個執行個體,以獲得最佳效能。訓練資料越多,通常就越準確。
手動為 100 份文件加上標籤需要很長的時間,因此我們提供了一些預先加上標籤的文件,方便您匯入本研究室。
您可以匯入預先加上標籤的文件檔案,格式為 Document.json
。這可能是呼叫處理器,並使用 Human in the Loop (HITL) 驗證準確率所致。
- 按一下「匯入文件」。
- 複製/貼上下列 Cloud Storage 路徑,然後指派給 Training 集。
cloud-samples-data/documentai/codelabs/uptraining/training
- 按一下「新增其他值區」。接著複製/貼上下列 Cloud Storage 路徑,然後指派給「Test」集。
cloud-samples-data/documentai/codelabs/uptraining/test
- 按一下「Import」(匯入),然後等待系統匯入文件。由於需要處理的文件數量較多,作業時間會比上次更長。測試大約需要 6 分鐘的時間您可以先離開這個頁面,稍後再返回查看。
- 完成後,「資料集管理」頁面中應會顯示相關文件。
9. 編輯標籤
本例使用的範例文件並未包含月結單剖析器支援的所有標籤。進行訓練前,我們必須將不會使用的標籤標示為停用。您也可以在進階訓練前,按照類似的步驟新增自訂標籤。
- 按一下左下角的「管理標籤」。
- 您現在應該已經進入標籤管理主控台。
- 使用核取方塊和「停用」/「啟用」按鈕,將以下標籤標示為「啟用」。
currency
due_date
invoice_id
line_item/amount
line_item/description
line_item/quantity
line_item/unit_price
net_amount
supplier_address
supplier_name
total_amount
total_tax_amount
- 完成時,控制台看起來應該像這樣。完成後,按一下「儲存」。
- 按一下返回箭頭,即可返回資料集管理主控台。請注意,含有 0 個執行個體的標籤已標示為「閒置」。
10. 選用:自動為新匯入的文件加上標籤
在使用現有已部署處理器版本的處理器匯入無標籤文件時,您可以使用自動加上標籤功能節省標籤時間。
- 在「訓練」頁面中,按一下「匯入文件」。
- 複製並貼上下列 路徑。這個目錄包含 5 個未加上標籤的應付憑據 PDF。從「資料分割」下拉式清單中選取「訓練」。
cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
- 在「自動加上標籤」部分中,勾選「匯入並自動加上標籤」核取方塊。
- 選取現有的處理器版本來為文件加上標籤。
- 例如:
pretrained-invoice-v1.3-2022-07-15
- 按一下「Import」(匯入),然後等待系統匯入文件。您可以先離開這個頁面,稍後再返回查看。
- 完成後,文件就會顯示在「Auto-labeling」(自動加上標籤) 區段的「Train」(訓練) 頁面中。
- 您不得將自動加上標籤的文件用於訓練或測試,除非您將其標示為已加上標籤。前往「已自動加上標籤」專區,查看已自動加上標籤的文件。
- 選取第一份文件即可進入標籤控制台。
- 確認標籤、定界框和值是否正確。為省略的任何值加上標籤。
- 完成後,選取「標示為已加上標籤」。
- 為每個自動加上標籤的文件重複執行標籤驗證,然後返回「Train」(訓練) 頁面來使用這些資料進行訓練。
11. 進一步訓練模型
現在,我們可以開始訓練發票剖析器了。
- 按一下「Train New Version」。
- 為版本設定您容易記住的名稱,例如
codelab-uptraining-test-1
。「基礎版本」是這個新版本將建立新的模型版本。如果您使用的是新處理器,只能選擇 [Google 預先訓練的 Next 大會搭配 Uptraining] 選項。
- (選用) 也可以選取「查看標籤統計資料」,查看資料集中標籤的指標。
- 按一下「Start Training」(開始訓練) 即可開始訓練程序。系統應會將您重新導向至資料集管理頁面。您可以在右側查看訓練狀態。訓練會在幾個小時內完成。您可以先離開這個頁面,稍後再返回查看。
- 按一下版本名稱,系統會將您導向至「管理版本」頁面,其中會顯示版本 ID 和訓練工作目前的狀態。
12. 測試新版模型版本
訓練工作完成後 (測試中大約需要 1 小時),您現在可以測試新的模型版本,並開始使用該模型進行預測。
- 前往「管理版本」頁面。這裡會顯示目前的狀態和 F1 分數。
- 需要先部署這個模型版本,才能開始使用。按一下右側的垂直圓點,然後選取「Deploy Version」。
- 等待版本部署完成時,從彈出式視窗中選取「部署」。這項作業會在幾分鐘內完成。部署完成後,您也可以將這個版本設為預設版本。
- 部署完成後,請前往「評估」分頁。接著按一下「版本」下拉式選單,然後選取新建立的版本
- 在這個頁面中,您可以查看整份文件和個別標籤的評估指標,包括整份文件的 F1 分數、精確度和喚回度。如要進一步瞭解這些指標,請參閱 AutoML 說明文件。
- 透過下方連結下載 PDF 檔案。此處的範例文件並未包含在訓練集或測試集內。
- 按一下「Upload Test Document」,然後選取 PDF 檔案。
- 擷取的實體應如下所示。
13. 結語
恭喜,您已成功使用 Document AI 強化應付憑據剖析器的訓練。您現在可以使用這個處理工具剖析月結單,方法就像剖析專用處理器一樣。
請參閱特殊處理器程式碼研究室,瞭解如何處理回應。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取您在本教學課程中所用資源的相關費用:
資源
- Document AI Workbench 說明文件
- 文件的未來 - YouTube 播放清單
- Document AI 說明文件
- Document AI Python 用戶端程式庫
- Document AI 範例
授權
這項內容採用的是創用 CC 姓名標示 2.0 通用授權。