編輯

共用方式為


在 Windows 應用程式中使用 AI 的常見問題

一般

如何將 AI 整合到 Windows 用戶端應用程式中?

您可以將 AI 整合到 Windows 應用程式中,可透過兩個主要方法達成:本機模型或雲端式模型。 針對本機模型選項,您可以利用既有的模型,或使用 TensorFlow 或 PyTorch 等平臺來定型您自己的模型,然後透過 OnnxRuntime 將其併入您的應用程式。 Windows Copilot 運行時間提供各種功能的 API,包括 OCR 或使用 Phi 矽模型。 另一方面,將模型裝載在雲端上,並透過 REST API 存取模型,可讓應用程式透過將大量資源的工作委派給雲端來保持簡化。 如需詳細資訊,請參閱在 Windows 應用程式中使用 機器學習 模型。

哪些程式設計語言最適合在 Windows 用戶端應用程式中開發 AI?

您可以使用您偏好的任何程式設計語言。 例如,C# 通常用於建立 Windows 用戶端應用程式。 如果您需要對低階詳細數據的更多控制,C++是一個很好的選擇。 或者,您可能考慮使用 Python。 您也可以使用 Windows 子系統 Linux 版 (WSL) 在 Windows 上執行以 Linux 為基礎的 AI 工具。

Windows 用戶端應用程式的最佳 AI 架構為何?

我們建議使用 OnnxRuntime

在 Windows 用戶端應用程式中使用 AI 時,應該如何處理數據隱私權和安全性?

開發 AI 支援的 app 時,尊重使用者數據的隱私權和安全性非常重要。 您應該遵循數據處理的最佳做法,例如加密敏感數據、使用安全連線,以及在收集數據之前取得使用者同意。 您也應該對使用數據的方式保持透明,並讓使用者控制其數據。 請務必閱讀 在 Windows 上開發負責任的 Generative AI 應用程式和功能。

在 Windows 用戶端應用程式中執行 AI 的系統需求為何?

使用 AI 的 Windows 應用程式系統需求取決於 AI 模型的複雜度,以及所使用的硬體加速。 對於簡單模型,新式 CPU 可能就已足夠,但對於更複雜的模型,可能需要 GPU 或 NPU。 您也應該考慮應用程式的記憶體和記憶體需求,以及雲端式 AI 服務所需的網路頻寬。

如何在 Windows 用戶端應用程式中優化 AI 效能?

若要將 Windows 應用程式中的 AI 效能優化,您應該考慮使用硬體加速,例如 GPU 或 NPU 來加速模型推斷。 Windows Copilot+ 膝上型電腦已針對 AI 工作負載優化,可為 AI 工作提供顯著的效能提升。 另 請參閱適用於Visual StudioCode的AI工具組概觀

我可以在 Windows 用戶端應用程式中使用預先定型的 AI 模型嗎?

是,您可以在 Windows 應用程式中使用預先定型的 AI 模型。 您可以從因特網下載預先定型的模型,或使用雲端式 AI 服務來存取預先定型的模型。 然後,您可以使用 OnnxRuntime 之類的架構將這些模型整合到您的應用程式中。

什麼是 DirectML?

DirectML 是適用於機器學習的低階 API,可為各種支援的硬體和驅動程式的常見機器學習工作提供 GPU 加速,包括 AMD、Intel、NVIDIA 和 Qualcomm 等廠商的所有 DirectX 12 功能 GPU。

什麼是 ONNX?

Open Network Neural Exchange 或 ONNX 是表示 ML 模型的開放式標準格式。 常見的 ML 模型架構,例如 PyTorch、TensorFlow、SciKit-Learn、Keras、Chainer、MATLAB 等,可以匯出或轉換成標準 ONNX 格式。 一旦使用 ONNX 格式,模型就可以在各種平台和裝置上執行。 ONNX 適用於使用不同於定型格式的 ML 模型。

什麼是 ORT?

OnnxRuntime 或 ORT 是一種統一運行時間工具,可用於在不同的架構中執行模型(PyTorch、TensorFlow 等),支持硬體加速器(裝置 CPU、GPU 或 NPU)。

ONNX 與其他 ML 架構有何不同,例如 PyTorch 或 TensorFlow?

PyTorch 和 TensorFlow 可用來開發、定型及執行 AI 應用程式中使用的深度學習模型。 PyTorch 通常用於研究,TensorFlow 通常用於產業部署,而 ONNX 是一種標準化 的模型交換格式 ,可橋接差距,讓您視需要在架構之間切換,並跨平臺相容。

什麼是 NPU? 與 CPU 或 GPU 有什麼不同?

類神經處理單元或 NPU 是專為執行 AI 工作而設計的專用 AI 晶片。 NPU 的焦點與 CPU 或 GPU 的焦點不同。 中央處理器或 CPU 是計算機中的主要處理器,負責執行指令和一般用途計算。 圖形處理單元或 GPU 是專為轉譯圖形而設計並針對平行處理優化的特製處理器。 它能夠轉譯複雜的影像,以進行影片編輯和遊戲工作。

NPU 的設計目的是要加速深度學習演算法,並可從計算機的 CPU 或 GPU 中移除部分工作,讓裝置更有效率地運作。 NPU 是專為加速類神經網路工作而建置的。 它們擅長以平行方式處理大量數據,因此非常適合影像辨識或自然語言處理等常見 AI 工作。 例如,在影像辨識工作期間,NPU 可能會負責對象偵測或影像加速,而 GPU 則負責影像轉譯。

如何找出我的裝置具有何種CPU、GPU或 NPU?

若要檢查 Windows 裝置上的 CPU、GPU 或 NPU 類型及其執行方式,請開啟 [任務管理器] [Ctrl + Alt + Delete],然後選取 [效能 ] 索引標籤,您將能夠查看電腦的 CPU、記憶體、Wi-Fi、GPU 和/或 NPU,以及其速度、使用率和其他數據的相關信息。

什麼是 WinML?

WinML 或 Windows 機器學習 是在 Windows 裝置上部署硬體加速機器學習 (ML) 模型的高階 API,可讓開發人員利用裝置的功能來執行模型推斷。 重點是模型載入、系結和評估。 WinML 會利用 ONNX 模型格式。

有用的 AI 概念

什麼是大型語言模型 (LLM)?

LLM 是一種以達成一般用途語言產生和理解功能而聞名的 機器學習 (ML) 模型。 LLM 是人工神經網路,可藉由學習大量文字文件的統計關聯性,在計算密集的自我監督和半監督訓練過程中取得功能。 LLM 通常用於文字產生,這是一種產生 AI 的形式,鑒於某些輸入文字,會產生最有可能在傳回中建立一致且內容相關句子的文字(或「標記」。 也有小型語言模型(SLM)具有較少的參數和更有限的容量,但可能更有效率(需要較少的計算資源)、符合成本效益且適合特定網域。

什麼是ML模型定型?

在 機器學習 中,模型定型牽涉到將數據集饋送至模型(LLM 或 SLM),以便從數據中學習,讓模型可以根據該數據做出預測或決策,並辨識模式。 它也可能牽涉到反覆調整模型參數,以優化其效能。

什麼是推斷?

使用定型機器學習模型對新看不見的數據進行預測或分類的程序稱為「推斷」。 在數據集上定型語言模型之後,學習其基礎模式和關聯性,即可將此知識套用至真實世界的案例。 推斷是 AI 模型的真相時刻,其會測試在定型期間學習的資訊,以做出預測或解決工作。 使用現有模型進行推斷的程式與定型階段不同,這需要使用定型和驗證數據來開發模型並微調其參數。

什麼是ML模型微調?

微調是機器學習中的關鍵步驟,其中預先定型的模型會調整為執行特定工作。 微調會從頭開始,而不是從頭開始定型模型(通常是在大型數據集上定型),並使用較小的工作特定數據集來調整其參數。 藉由微調,模型會學習工作特定功能,同時保留預先定型期間取得的一般知識,進而改善特定應用程式的效能。

什麼是提示工程?

提示工程是一種策略性方法,用於產生 AI 來塑造語言模型的行為和回應。 它牽涉到精心製作輸入提示或查詢,以達到語言模型所需的結果(例如 GPT-3 或 GPT-4)。 藉由設計有效的提示,您可以引導 ML 模型產生您想要的回應類型。 技術包括調整措辭、指定內容,或使用控制程式代碼來影響模型輸出。

什麼是硬體加速(關於 ML 模型定型)?

硬體加速是指使用特製化計算機硬體,其設計目的是加速 AI 應用程式,超越一般用途 CPU 的可達成目標。 硬體加速可提升機器學習工作的速度、能源效率和整體效能,例如定型模型、進行預測,或將計算卸除至專用硬體元件,這些硬體元件擅長平行處理深度學習工作負載。 GPU 和 NPU 都是硬體加速器的範例。

想要在其應用程式中套用 AI 功能的 資料科學家、ML 工程師和應用程式開發人員之間有何差異?

建立和使用 ML 模型的程式包含三個主要角色:資料科學家負責定義問題、收集和分析數據、選擇和定型 ML 演算法,以及評估和解譯結果。 他們會使用 Python、R、Jupyter Notebook、TensorFlow、PyTorch 和 scikit-learn 等工具來執行這些工作。 ML 工程師:負責在生產環境中部署、監視和維護 ML 模型。 他們會使用 Docker、Kubernetes、Azure ML、AWS SageMaker 和 Google Cloud AI Platform 等工具,以確保 ML 模型的延展性、可靠性和安全性。 應用程式開發人員:負責將 ML 模型整合到應用程式邏輯、UI 和 UX。 他們會使用 Windows Copilot Runtime、OnnxRuntime 或 REST API 之類的工具,並處理使用者輸入和輸出。 每個角色都牽涉到不同的責任和技能,但需要這些角色之間的共同作業和通訊才能達到最佳結果。 視專案的大小和複雜度而定,這些角色可由相同人員或不同的小組執行。