在 Windows 應用程式中使用機器學習模型
本指南將透過解決常見問題、共用基本概念和資源,以及提供如何在Windows 應用程式中使用 AI 和 ML 模型的建議,協助應用程式開發人員使用人工智慧 (AI) 和 機器學習 (ML) 模型。
機器學習 (ML) 是人工智慧 (AI) 的分支,可讓計算機從數據中學習並做出預測或決策。
ML 模型 是可在數據上定型的演算法,然後部署以執行各種工作,例如內容產生、推理內容、影像辨識、自然語言處理、情感分析等等。
Windows 應用程式可以利用 ML 模型來增強其功能和用戶體驗的幾種方式,包括:
- 應用程式可以使用 Generative AI 模型來瞭解複雜的主題,以摘要、重寫、報告或展開。
- 應用程式可以使用模型,將自由格式內容轉換成您的應用程式可以理解的結構化格式。
- 應用程式可以使用語意搜尋模型,讓使用者依意義搜尋內容,並快速尋找相關的內容。
- 應用程式可以使用自然語言處理模型來推理複雜的自然語言需求,並規劃和執行動作來完成用戶的詢問。
- 應用程式可以使用影像操作模型,以智慧方式修改影像、清除或新增主旨、高檔或產生新內容。
- 應用程式可以使用預測性診斷模型來協助識別和預測問題,並協助引導使用者或為其執行。
結合 Windows Copilot Runtime 數種方式與利用 AI 的作業系統互動。 這包括現成可用的 AI 支援功能,稱為 Windows Copilot Runtime APIs。 如需支援上述案例的現成功能和 API 的指引,請參閱 在 Windows 應用程式中 開始使用 AI 支援的 API。
直接 Windows Copilot Runtime APIs 在 Windows 裝置上執行本機,不過您也可以選擇透過現成的 API 使用雲端式模型。 無論是在本機或雲端中執行,這些 API 會抽象化基礎 ML 模型,因此您不需要進行任何優化、格式化或微調。
不過,您可能會想要尋找自己的 ML 模型,以在 Windows 本機使用。 您可能需要優化此模型,使其在 Windows 裝置上正確執行,或微調模型,使其使用您特定使用案例或公司專屬的自定義數據進行定型。 本文將涵蓋一些概念、工具和 開放原始碼 連結庫,以協助您完成此程式。
小型語言模型 (SLM) 的設計目的是要精簡且有效率,通常會針對較小的數據集上特定工作或網域進行定型,以允許以更快的推斷效能時間在本機儲存及執行模型。 SLM 會受限於用來定型的數據量,而不是提供與大型語言模型 (LLM) 一樣廣泛的知識或複雜推理。 不過,SLA 可以在本機使用時提供更安全且符合成本效益的 LLM 替代方案,因為它們需要較少的計算能力來執行和改善數據隱私權,方法是將聊天資訊安全地保存在裝置的本機。
SLM 更適合本機使用,因為在裝置上執行 ML 模型表示大小不能超過執行它之裝置的儲存和處理功能。 大部分的 LLM 太大而無法在本機執行。
Microsoft Phi-2 和 Phi-3 模型是 SLM 的範例。
大型語言模型 (LLM) 已針對大量數據進行定型,且參數數量較多,因此記憶體大小會更加複雜且更大。 由於其大小,LLM 可能更能夠了解數據中的更細微和複雜模式,涵蓋更廣泛的知識範圍,並能夠使用更複雜的模式。 它們也需要更大量的計算資源來進行定型和推斷。 大部分的 LLM 都無法在本機裝置上執行。
OpenAI 語言模型 GPT-4o、GPT-4 Turbo、GPT-3.5 Turbo、DALL-E 和 Whisper 都是 LLM 的範例。
如需在本機使用SLM與雲端中LLM之間的差異進一步指引,請參閱 考慮在Windows應用程式中使用本機與雲端式 AI 支援的 API。
已準備好使用的開放原始碼 ML 模型 ,而且 可以使用您自己的數據或喜好設定來自定義 ,可在各種地方使用,其中一些最受歡迎的包括:
- 擁抱臉部:由 Transformers 連結庫提供超過 10,000 個預先定型 ML 模型的中樞,用於自然語言處理。 您可以尋找文字分類、問答、摘要、翻譯、產生等等的模型。
- ONNX 模型動物園:ONNX 格式預先定型 ML 模型的集合,涵蓋各種領域和工作,例如電腦視覺、自然語言處理、語音等等。
- Qualcomm AI Hub:一種平臺,可讓您存取針對 Qualcomm Snapdragon 裝置優化的各種 ML 模型和工具。 您可以尋找影像、視訊、音訊和感測器處理的模型,以及用於在行動裝置上建置和部署 ML 應用程式的架構、連結庫和 SDK。 Qualcomm AI Hub 也為開發人員和研究人員提供教學課程、指南和社群支援。
- Pytorch 中樞:預先定型的模型存放庫,旨在協助研究重現並啟用新的研究。 它是簡單的 API 和工作流程,提供改善機器學習研究重現性的基本建置組塊。 PyTorch Hub 是由預先定型的模型存放庫所組成,專為協助研究重現而設計。
- TensorFlow 中樞:TensorFlow 預先定型 ML 模型和可重複使用元件的存放庫,這是建置和定型 ML 模型的常用架構。 您可以尋找影像、文字、視訊和音訊處理的模型,以及傳輸學習和微調。
- 模型 Zoo:針對各種架構和工作,策展和排名最佳 開放原始碼 ML 模型的平臺。 您可以依類別、架構、授權和評等來流覽模型,並查看每個模型的示範、程式代碼和檔。
某些模型連結庫 不是要透過應用程式自定義 和散發,而是在開發生命週期中實際操作探索和探索的實用工具,例如:
- Ollama:Ollama 是各種工作的現成 ML 模型市集,例如臉部偵測、情感分析或語音識別。 您可以按下滑鼠,瀏覽、測試和整合模型到您的應用程式。
- LM Studio:Lmstudio 是一種工具,可讓您使用拖放介面,從自己的數據建立自定義 ML 模型。 您可以選擇不同的 ML 演算法、預先處理和視覺化您的資料,以及定型和評估您的模型。
每當您在 Windows 應用程式中找到具有使用 ML 模型的目標時,強烈建議遵循在 Windows 上開發負責任的產生 AI 應用程式和功能指引。 本指南將協助您瞭解治理原則、做法和程式、識別風險、建議測試方法、利用仲裁者和篩選等安全措施,以及在選取安全且負責的模型時呼叫特定考慮。
根據模型的類型、來源和格式,以及應用程式類型而定,在 Windows 應用程式中使用不同的 ML 模型。
您將找到 ML 模型的一些格式包括:
ONNX:代表和交換不同架構和平臺之 ML 模型的開放標準。 如果您在 ONNX 格式中找到預先定型的 ML 模型,您可以使用 ONNX Runtime (ORT) 在 Windows 應用程式中載入和執行模型。 ORT 可讓您存取裝置的硬體加速推斷功能,並將 ML 模型的效能優化。 如果您有不同類型的預先定型 ML 模型,例如 PyTorch 或 TensorFlow,您可以使用 Olive 之類的模型優化工具將其轉換成 ONNX。 如需使用 Olive 的說明,請參閱使用 Microsoft Olive 微調 SLM (Generative AI 應用程式架構旅程系列)。 如需建立和使用 ONNX 模型的教學課程,請參閱 GitHub 上的 ONNX 教學課程。 如需示範如何在 Windows 應用程式中使用 ONNX 模型的範例,請參閱 Windows 範例庫上的 AI。
PyTorch:P ython 和C++介面提供的非常受歡迎的開放原始碼深度學習架構。 這可能是您針對 ML 模型找到的最常見格式。 如果您想要在 Windows (C# 或 C++) 應用程式或 Web 應用程式中使用 PyTorch ML 模型,可以使用 TorchSharp 和 LibTorch,這些是 PyTorch 連結庫的 .NET 和C++系結。 TorchSharp 和 LibTorch 可讓您建立、載入及操作張量、建置和執行神經網路,以及使用 PyTorch 格式儲存和載入模型。 如需範例,請參閱 TorchSharp 範例、 適用於部署的 TorchScript、 PyTorch C++範例。 如需 Web 應用程式,請參閱 使用 ONNX Runtime建置 Web 應用程式。 如需如何使用 DirectML 執行 PyTorch 模型的範例,請參閱 Windows 範例庫上的 AI。
TensorFlow 是另一個熱門的開放原始碼軟體連結庫,適用於機器學習和人工智慧,可用來建置和部署各種工作的機器學習模型。
Web 應用程式的 WebNN API:Web 標準,可根據 WebIDL 和 JavaScript API,在瀏覽器中存取類神經網路硬體加速。 它可讓 Web 開發人員在用戶端有效率地建立和執行機器學習模型,而不需要依賴雲端服務或原生連結庫。 GitHub 上的 WebNN 範例。 在 Windows 範例庫的 AI 中使用 WebNN 範例ONNX Runtime。
AI Toolkit 適用於 Visual Studio Code 的 VS Code 擴充功能可讓您在本機下載並執行 AI 模型。 AI Tookit 也可以協助您:
- 使用 REST API 在直覺式遊樂場或應用程式中測試模型。
- 微調您的 AI 模型,無論是在本機還是雲端中(在虛擬機上),以建立新的技能、改善回應的可靠性、設定回應的音調和格式。
- 微調熱門的小語言模型(SLM),如 Phi-3 和 Mistral。
- 將您的 AI 功能部署至雲端,或使用在裝置上執行的應用程式。
DirectML 是低階 API,可讓您的 Windows 裝置硬體使用裝置 GPU 或 NPU 來加速 ML 模型的效能。 將 DirectML 與 ONNX Runtime 配對通常是讓開發人員大規模將硬體加速 AI 帶給其使用者的最直接方式。 深入瞭解: DirectML 概觀。