本文說明用於建置、訓練、部署和使用自訂文件處理模型的 Azure 解決方案。 這些 Azure 服務也提供使用者介面(UI)能力,可在處理過程中標籤或標記文字。
架構
下載此架構的 Visio 檔案。
數據流
下列數據流對應至上圖:
Azure Logic Apps、Azure Data Factory 或 Azure Functions 等協調器會從電子郵件伺服器擷取訊息和附件,以及從檔案傳輸通訊協定伺服器或 Web 應用程式擷取檔案。
Azure Functions 和 Azure Logic Apps 可啟用無伺服器工作負載。 您選擇的服務取決於您對開發、連接器、管理和作業內容等服務功能的偏好。 如需詳細資訊,請參閱 比較 Azure Functions 和 Azure Logic Apps。
請考慮使用 Azure Data Factory 來大量移動資料。
協調器會將擷取的資料傳送至 Azure Blob 儲存體或 Azure Data Lake 儲存體。 他們根據檔案副檔名或客戶詳細資訊等特徵來組織這些商店中的資料。
您可以獨立或組合使用下列 Azure 服務來定型檔和建置自訂模型,以解決各種使用案例。
文件智慧服務工作室:如果文件需要您擷取索引鍵值組,或從影像或 PDF 建立自訂資料表,請使用文件智慧服務工作室來標記資料並定型自訂模型。 如果需要識別文件類型 (稱為 文件分類) ,則在呼叫正確的擷取模型之前,請使用 Document Intelligent Studio 來標記文件並建置模型。
Language Studio:針對基於內容的文件分類,或針對網域特定的實體擷取,您可以在 Language Studio 中定型自訂文字分類或具名實體辨識 (NER) 模型。
Azure Machine Learning 工作室:若要標記文字分類或實體擷取的資料,以搭配 PyTorch 或 TensorFlow 等開放原始碼架構使用,請使用 Machine Learning 工作室、 Python SDK、Azure CLI 或 REST API。 Machine Learning Studio 提供基礎模型的 模型目錄 。 這些基礎模型具有針對各種任務(如文本分類、問答和摘要)的微調功能。 若要微調基礎模型,請使用 Machine Learning Studio UI 或 程式碼。
Azure OpenAI 在 Foundry 模型中:若要在您自己的資料或領域上微調 Azure OpenAI 模型,以完成文字摘要與問答等多項任務,請使用 Microsoft Foundry 入口網站、Python SDK 或 REST API。
若要部署自訂模型並使用它們進行推斷:
Foundry Tools 中的 Azure 文件智慧內建模型部署功能。 使用自訂模型進行推斷是使用 SDK 或 文件模型 REST API 來完成。 在建立模型期間指定的 modelId 或 模型名稱會包含在文件分析的要求 URL 中。 文件智慧服務不需要任何進一步的部署步驟。
Language Studio 提供部署自訂語言模型的選項。 選取要部署的模型,以取得 REST 端點 預測 URL 。 您可以使用 REST 端點或 Azure SDK 用戶端程式庫來推斷模型。
Machine Learning 會將自訂模型部署至線上或批次 Machine Learning 受控端點。 您也可以使用 Machine Learning SDK 部署 至 Azure Kubernetes Service (AKS) 做為 Web 服務。 微調的基礎模型可以透過受控運算或 無伺服器 API 從模型目錄部署。 透過受控計算部署的模型可以使用受控端點進行推斷,其中包括用於即時推論的線上端點和用於批次推論的批次端點。
Foundry 提供多種部署 精細調整的 Azure OpenAI 模型選項。 您可以使用 Python SDK 或 REST API 來部署這些模型。 您也可以將 Meta 或 Llama 等提供者的微調基礎模型部署為 無伺服器 API, 或使用 受管運算。
Components
Azure Logic Apps 是 Azure Integration Services 的一部分。 邏輯應用程式會建立整合應用程式、資料、服務和系統的自動化工作流程。 在此架構中,Logic Apps 會協調從各種來源擷取文件和資料,並觸發文件處理的下游程式。 您可以使用 Azure 儲存體和 Microsoft 365 等服務的 受控連接器 ,在檔案到達儲存體帳戶或收到電子郵件時觸發工作流程。
Azure Data Factory 是受控資料整合服務,用於協調和自動化資料移動和轉換。 在此架構中,Azure Data Factory 會將 轉換活動 新增至管線,例如叫用 REST 端點或在匯入的資料上執行筆記本。
Azure Functions 是無伺服器計算服務,可裝載具有短期進程的事件驅動工作負載。 在此架構中,Functions 可讓工作負載處理傳入文件並觸發模型處理管線。
Blob 儲存體 是一種物件儲存解決方案,用於儲存非結構化資料。 Blob 儲存體支援多種語言的程式庫,例如 .NET、Node.js和 Python。 應用程式可以透過 HTTP 或 HTTPS 存取 Blob 儲存體上的檔案。 Blob 儲存體具有 經常性存取層、非經常性存取層和封存存取層 ,以支援儲存大量資料的成本最佳化。 在此架構中,此帳戶是使用熱層的原始檔案的解決方案。
Data Lake Storage 是可調整的雲端式存放庫,用於儲存和組織大量非結構化資料。 在此架構中,Data Lake Storage 會組織和維護大量擷取的資料,以支援分析、標籤和機器學習工作流程。
文件智慧 是 Foundry 工具的一個組成部分。 在此架構中,它提供了內建的文件分析功能,用於提取列印和手寫的文字、表格和鍵值對。 文件智慧服務具有預先建置的模型,可從發票、文件、收據、身分證和名片擷取資料。 文件智慧服務也有 自訂範本 表單模型和 自訂神經 文件模型,可用來定型和部署自訂模型。
文件智慧服務工作室 提供探索文件智慧服務功能和模型的介面。 您可以使用介面來標記資料並建立自訂文件處理模型。
Foundry Tools 中的 Azure 語言 整合了 Azure 自然語言處理(NLP)服務。 它提供 預先建置和可自訂的選項 和語言理解功能。 使用它來對文件進行分類、識別命名實體以及完成其他 NLP 任務。
Language Studio 是語言中以 Web 為基礎的 UI,可用來建置、定型、管理和部署語言模型。 在此架構中,它支援標記、訓練和部署自訂語言模型,以執行文件處理管道內的分類和實體擷取等任務。 自動標記 支援自訂文字分類,可以自動將文件標記為不同的類別或類別。 該工作室還提供查看 模型性能的選項,包括 F1 分數、精度和召回率。
Azure Machine Learning 是用於大規模模型開發和部署的受控機器學習平台。 在此架構中,它會標記資料、訓練自訂模型 (包括使用開放原始碼架構),以及部署模型以進行推論工作。
Azure OpenAI 提供強大的語言模型和多模態模型作為 REST API,讓你能用來完成各種任務。 在此架構中,Azure OpenAI 模型處理進階語言任務,如 微調模型 ,以提升基礎模型原始訓練中缺失或代表性不足的資料效能。 你也可以利用多家供應商的基礎模型來完成這些任務。
Alternatives
您可以根據特定使用案例,將更多工作流程新增至此案例。
如果文件是影像或 PDF,您可以使用 Azure 光學式字元辨識、 文件智慧服務讀取 API 或開放原始碼程式庫來擷取資料。
您可以使用語言中的預先建置模型進行 文件和交談摘要。
使用預處理程式碼執行文字處理步驟。 這些步驟包括根據文件處理要求對提取的資料進行清理、去除停用詞、詞形還原、詞幹化和文本摘要。 您可以將程式碼公開為 REST API 以進行自動化。 透過與 Azure Logic Apps 或 Azure Functions 擷取程式整合,手動完成或自動化這些步驟。
你可以使用 Foundry 入口 網站來 微調 與部署基礎模型,並建立生成式 AI 應用程式。
Foundry 提供兩種計算選項,分別用於模型作為平台(MaaP)主機、 無伺服器計算與管理運算。 特定模型及區域 支援透過無伺服器 API 進行部署,其提供模型即服務 (MaaS)。
機器學習與 Foundry 共享功能,因此 評估兩個平台 ,並選擇最適合你情境的方案。
你可以在 Foundry Tools 中使用 Azure Content Understanding ,透過定義欄位架構來從文件中擷取結構化資料,建立 自訂分析器 。
案例詳細資料
文件處理涵蓋廣泛的任務。 使用語言和文件智慧服務中可用的預先建置模型,可能很難滿足所有文件處理需求。 您可能需要建立自訂模型,以自動化不同應用程式和網域的文件處理。
模型客製化的主要挑戰包括:
使用相關的鍵值組實體來標記或標籤文字資料,以便於分類和擷取。
管理訓練基礎架構,例如運算和儲存,及其整合。
大規模部署模型以供應用程式取用。
潛在應用情境
下列使用案例可以利用自訂模型進行文件處理:
根據開放原始碼架構建置自訂 NER 和文字分類模型。
從保險和醫療保健等各個垂直行業的文件中提取自定義關鍵值。
標記並擷取特定網域相關實體,超出針對安全或金融等網域的 預先建置 NER 模型 。
從文件建立自訂表格。
提取簽名。
根據內容標記電子郵件或其他文件並對其進行分類。
根據您的資料總結文件或建立自訂問答模型。
考慮事項
這些考量能實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可以用來改善工作負載的品質。 如需詳細資訊,請參閱 Well-Architected Framework。
針對此範例工作負載,實作每個要素都取決於以最佳方式設定和使用每個元件 Azure 服務。
Reliability
可靠性有助於確保您的應用程式可以符合您對客戶的承諾。 如需詳細資訊,請參閱可靠性的設計檢閱檢查清單。
Availability
如需每個架構元件之服務等級協定的詳細資訊,請參閱 授權文件。
如需使用儲存體帳戶設計高可用性應用程式的設定選項的詳細資訊,請參閱 使用異地備援來設計高可用性應用程式。
Resiliency
解決個別服務 (例如函式和儲存體) 的失敗模式,以協助確保在此案例中計算服務和資料存放區的復原能力。 如需詳細資訊,請參閱 依服務的可靠性指南。
機器學習相依於組成服務,例如 Blob 儲存體、計算服務和 AKS。 為了提供機器學習的可靠性,請將每項服務配置為可靠。 欲了解更多關於復原設計的資訊,請參閱業務連續性與災難復原的故障轉移(BCDR)。
針對 Azure OpenAI,請在不同區域佈建兩個或多個 Azure OpenAI 資源,以協助確保持續可用性。 如果發生問題,此方法允許容錯移轉至另一個區域。 如需詳細資訊,請參閱 使用 Azure OpenAI 的 BCDR。
安全性
安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱安全性的設計檢閱檢查清單。
實作資料保護、身份與存取管理,以及針對 Blob Storage、 Foundry Tools for Document Intelligence 與 Language Studio、 Machine Learning 以及 Azure OpenAI 的網路安全建議。
成本優化
成本優化著重於減少不必要的費用,並提升營運效率的方式。 如需詳細資訊,請參閱成本最佳化的設計檢閱檢查清單。
實作此解決方案的總成本取決於您選擇的服務定價。
此解決方案的主要成本包括:
定型和部署機器學習模型的運算成本。
若要協助最佳化成本,請選擇正確的節點類型、叢集大小和節點數目。 機器學習提供定型選項,例如將計算叢集節點數目下限設定為零,以及定義縮減前的閒置時間。 如需詳細資訊,請參閱 管理和最佳化機器學習成本。
資料協調流程持續時間和活動。 對於 Azure Data Factory,Azure 整合執行環境上的複製活動收費是根據使用的資料整合單元數量及完成活動所需時間計算。 新增的協調流程活動執行也會根據其數量收費。
Azure Logic Apps 定價方案取決於您建立和使用的資源。 下列文章可協助您針對特定使用案例選擇合適的方案:
如需特定元件定價的詳細資訊,請參閱下列資源:
使用 Azure 定價計算機 來新增您選擇的元件選項,並預估解決方案的整體成本。
效能效率
效能效率是指工作負載能夠有效率地調整以符合使用者需求。 有關詳細資訊,請參閱效能效率的設計審核清單。
Scalability
若要自動或手動擴展 Functions, 請選擇正確的託管方案。
根據預設,文件智慧服務支援每秒 15 個並行要求。 若要增加此配額, 請建立 Azure 支援票證。
針對在 AKS 上裝載為 Web 服務的 Machine Learning 自訂模型, azureml-fe 前端元件會視需要自動調整。 此元件也會將傳入的推論要求路由至已部署的服務。
為了使部署成為受控端點,請整合 Azure 監視器的自動調整功能以支援自動調整。 如需詳細資訊,請參閱 生產環境中推論的端點。
貢獻者們
本文由 Microsoft 維護。 下列參與者撰寫本文。
主要作者:
- 迪克西特·阿羅拉 |高級工程師
- 喬茨納·拉維 |首席工程師
若要查看非公開的 LinkedIn 個人檔案,請登入 LinkedIn。