在 Windows 應用程式中使用 機器學習 模型
本指南將透過解決常見問題、共用基本概念和資源,以及提供如何在Windows 應用程式中使用 AI 和 ML 模型的建議,協助應用程式開發人員使用人工智慧 (AI) 和 機器學習 (ML) 模型。
機器學習 (ML) 是人工智慧 (AI) 的分支,可讓計算機從數據中學習並做出預測或決策。
ML 模型 是可在數據上定型的演算法,然後部署以執行各種工作,例如內容產生、推理內容、影像辨識、自然語言處理、情感分析等等。
Windows 應用程式如何運用 ML 模型?
Windows 應用程式可以利用 ML 模型來增強其功能和用戶體驗的幾種方式,包括:
- 應用程式可以使用 Generative AI 模型來瞭解複雜的主題,以摘要、重寫、報告或展開。
- 應用程式可以使用模型,將自由格式內容轉換成您的應用程式可以理解的結構化格式。
- 應用程式可以使用語意搜尋模型,讓使用者依意義搜尋內容,並快速尋找相關的內容。
- 應用程式可以使用自然語言處理模型來推理複雜的自然語言需求,並規劃和執行動作來完成用戶的詢問。
- 應用程式可以使用影像操作模型,以智慧方式修改影像、清除或新增主旨、高檔或產生新內容。
- 應用程式可以使用預測性診斷模型來協助識別和預測問題,並協助引導使用者或為其執行。
AI 支援的 API 中的 ML 模型
結合 Windows Copilot Runtime 數種方式與利用 AI 的作業系統互動。 這包括現成可用的 AI 支援功能和 API,我們稱之為 Windows Copilot Library。 如需支援上述某些案例的現成功能和 API 的指引,請參閱 在 Windows 應用程式中 開始使用 AI 支援的 API。
Windows Copilot Library模型會直接在 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 模型
已準備好使用的開放原始碼 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 應用程式和功能指引。 本指南將協助您瞭解治理原則、做法和程式、識別風險、建議測試方法、利用仲裁者和篩選等安全措施,以及在選取安全且負責的模型時呼叫特定考慮。
如何? 優化 ML 模型以在 Windows 上執行?
根據模型的類型、來源和格式,以及應用程式類型而定,在 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。
如何? 微調 ML 模型,並搭配我的自定義數據在 Windows 上執行?
AI Toolkit 適用於 Visual Studio Code 的 VS Code 擴充功能可讓您在本機下載並執行 AI 模型。 AI Tookit 也可以協助您:
- 使用 REST API 在直覺式遊樂場或應用程式中測試模型。
- 微調您的 AI 模型,無論是在本機還是雲端中(在虛擬機上),以建立新的技能、改善回應的可靠性、設定回應的音調和格式。
- 微調熱門的小語言模型(SLM),如 Phi-3 和 Mistral。
- 將您的 AI 功能部署至雲端,或使用在裝置上執行的應用程式。
如何使用 AI 功能利用硬體加速以提升效能
DirectML 是低階 API,可讓您的 Windows 裝置硬體使用裝置 GPU 或 NPU 來加速 ML 模型的效能。 將 DirectML 與 ONNX Runtime 配對通常是讓開發人員大規模將硬體加速 AI 帶給其使用者的最直接方式。 深入瞭解: DirectML 概觀。