ml.net例子筆記2-概念和Widnows AI Studio
一 機器學習和ml.net
1 Python 機器學習庫
在Python中,工具和庫的生態系統可以分為五個主要領域:
- 數據處理
- 數據可視化
- 數值計算
- 模型訓練
- 神經網絡
這可能不全,因為此外還有其他許多的庫,它們負責其他任務,并專注于機器學習的一些特定領域,比如自然語言處理和圖像識別。
使用Python時,構建機器學習管道的步驟通常在筆記本的范圍內進行。所謂“筆記本”,是在特定Web或本地交互環境中創建的文檔,稱為Jupyter Notebook(參見 https://jupyter.org )。每個筆記本都包含可執行的Python代碼富格式文本數據網格、圖表和圖片的組合。通過它們,可以建立并分享我們自己的開發故事在某種程度上,“筆記本”相當于 VisualStudio中的一個“解決方案”。在“筆記本”中,可以執行諸如數據操作、繪圖和訓練等任務,而且可以使用一些預定義的、經過實戰檢驗的庫。
1) 神經網絡
淺層學習是機器學習的一個領域,涵蓋一系列廣泛的基本問題,如回歸和分類。在淺層學習的領域之外,還有深度學習和神經網絡。還有更多專門的庫用于在Python中構建神經網絡。
TensorFlow可能是訓練深度神經網絡的最流行的庫。它是一個綜合框架的一部分,可以在不同層次上進行編程。例如,可以使用高層次的Keras API來構建神經網絡,或者手動構建所需要的拓撲結構,并通過代碼指定前進和激活步驟、自定義層和訓練循環??偟膩碚f,TensorFlow 是一個端到端的機器學習平臺,也提供了用于訓練和部署的機制。
Keras(https://keras.io)可能是切入令人眼花繚亂的深度學習世界的最簡單方法。它提供了一個非常直接的編程界面,至少在快速原型設計時很方便。要注意的是,可以在TensorFlow 中使用 Keras。
還有一個選擇是PyTorch,可以從https://pytorch.org 獲取。PyTorch基于現有C語言庫的 Python 改編,專門用于自然語言處理和計算機視覺。在這三個神經網絡選項中,Keras 目前是最理想的切入點。只要它能滿足自己的訴求,就可以把它作為一個首選的工具。需要構建復雜的神經網絡時,PyTorch 和 TensorFlow則是首選,但它們使用不同的方法來完成任務。TensorFlow 要求在訓練神經網絡之前先定義好整個網絡的拓撲結構。相比之下,PyTorch采用了一種更敏捷的方法并提供了一種更動態的方式來對圖進行修改。在某些方面,它們的差異可以概括為“瀑布式與敏捷式”。PyTorch 比較年輕,還不像TensorFlow那樣已經建立了一個龐大的社區。
2) Python模型最終使用方式
使用Python,可以很容易地找到建立和訓練機器學習模型的方法。模型最終是一個二進制文件,它必須加載到一個客戶端應用程序并被調用,通常情況下,是一個Java或.NET應用程序作為ML 模型的客戶端應用程序。
使用訓練好的模型有三種主要的方式。
1 在Web 服務中托管訓練好的模型,并通過 REST或gRPC API訪問。
2在應用程序中將訓練好的模型作為一個序列化的文件導入,并通過它所基于的基礎結構(例如TensorFlow或scikit-learn)所提供的編程接口(API)與之進行交互,前提是基礎結構要為客戶端應用程序的語言提供綁定。
3 訓練好的模型通過新的通用ONNX格式對外公開,客戶端應用程序集成一個用于使用ONNX二進制文件的包裝器(wrapper)。
雖然 Web 服務選項最常用,但如果只是為了使用訓練好的模型,那么最捷的方式似乎應該是客戶端語言所特有的一個直接的 API。
2 ML.NET概述
ML.NET首次發布于2019年春季,是一個免費的跨平臺和開源的NET框架用于建立和訓練機器學習模型并在.NET應用程序中托管這些ML模型。詳情可以參考 https://dotnet.microsoft.com/zh-cn/apps/machinelearning-ai/ml-dotnet 。
ML.NET旨在為數據科學家和開發人員提供Python生態系統中能找到的同一系列功能(參考上面的描述)。
此外,熟悉NET框架和C# 及F# 編程語言的人都非常熟悉所有這些編程步驟MLNET最有趣的地方在于,它提供了一個相當務實的編程平臺,圍繞預定義學習任務的思路進行布置。即使是機器學習的新手,也可以用它配備的庫相對容易處理常見的機器學習場景,比如情感分析、欺詐檢測或價格預測,與前面介紹的Python生態系統的支柱相比,ML.NET雖然基本上可以認為是scikit-Learn 模型構建庫的對應物,但它另外還包括一些可以在Pandas或NumPy中找到的、用于數據準備和分析的基本設施。ML.NET還允許使用深度學習模型(尤其是TensorFlow和ONNX)。
另外,開發者可以通過模型生成器(ModelBuilder)來訓練圖像分類和物體檢測模型。最值得注意的是,整個 ML.NET庫是建立在整個.NETCore 框架強大的功能之上的。
整個ML.NET框架以一組NuGet包的形式提供。如果要開始構建模型,不再需要其他更多的東西。從16.6.1版本開始,Visual Studio 還提供了模型生成器向導,可以分析輸入數據并選擇最佳的可用算法。
二 Windows AI Studio
微軟在北京時間11月16日開幕的Ignite 2023大會中,面向開發者推出了全新的“Windows AI Studio”體驗,在Win11系統上可以簡化、加速AI應用的開發工作。
Windows AI Studio 通過將 Azure AI Studio 和其他目錄(如 Hugging Face)的前沿 AI 開發工具和模型融合到一起,來簡化生成式 AI 應用的開發。
Windows AI Studio 使開發人員能夠微調、自定義和部署先進的小型語言模型 (SLM),以便在其 Windows 應用本地使用 SLM。 它提供一個端到端引導式工作區設置程序,其中包括模型配置 UI 和引導式演練,以微調常用 SLM(如 Phi)以及 Llama 2 和 Mistral 等先進模型。
開發人員可以使用集成到工作區中的提示流和 Gradio 模板快速測試其微調的模型。
https://github.com/microsoft/windows-ai-studio
vs code中安裝
https://marketplace.visualstudio.com/items?itemName=ms-windows-ai-studio.windows-ai-studio
安裝的必須條件:
- Windows AI Studio will run only on NVIDIA GPUs for the preview, so please make sure to check your device spec.
- WSL Ubuntu distro 18.4 or greater should be installed and is set to default prior to using Windows AI Studio.

看如下的一些GPU需求和性能【GPU至少8G內存】,沒有滿足需求的GPU 無法使用

如下是在vs code中進行數據訓練的詳細截圖和說明