今天,我們很高興宣布發布 ML.NET 1.0。ML.NET 是一個免費的、跨平台的開源機器學習框架,旨在將機器學習(ML)的強大功能引入.NET 應用程序。
ML.NET GitHub:https://github.com/dotnet/machinelearning
入門 @ http://dot.net/ml
ML.NET 允許你使用 C#或 F#訓練、構建和發布自定義機器學習模型,用於情景分析、問題分類、預測、推薦等場景。你可以在我們的ML.NET 樣品庫中查看這些常見的場景和任務。
ML.NET 最初是在微軟研究院內部研發,后來演變成許多微軟產品使用的重要框架,例如 Windows Defender、Microsoft Office(Powerpoint 設計思想、Excel 圖表推薦)、Azure 機器學習、PowerBI 關鍵影響者等!
自推出以來,許多組織都在使用 ML.NET,如 SigParser(垃圾郵件檢測)、William Mullens(法律問題分類)和 Evolution 軟件(榛子水分檢測)。
ML.NET 1.0 版本添加了新的預覽功能,如自動機器學習(AutoML)功能,ML.NET CLI 和 ML.NET Model Builder 等新工具,這意味着,現在為你的應用程序添加機器學習模型只需點擊右鍵!
本文的其余部分重點介紹這些新體驗。
-
ML.NET 核心組件
-
自動機器學習預覽
-
ML.NET 模型生成器預覽
-
ML.NET CLI 預覽
-
ML.NET 入門
-
未來計划
ML.NET 核心組件
ML.NET 旨在提供終端工作流程,以便在機器學習(預處理、特征工程、建模、評估和操作)的各個步驟中將 ML 用於.NET 應用程序。ML.NET 1.0 提供以下關鍵組件:
-
數據表示
-
基本 ML 數據管道數據類型,如 IDataView——基本數據管道類型
-
閱讀器支持從分隔文本文件或 IEnumerable 對象中讀取數據
-
支持機器學習任務:
-
二進制分類
-
多級分類
-
回歸
-
排序
-
異常檢測
-
聚類
-
推薦(預覽)
-
數據轉換和特性化
-
文本
-
分類
-
特征選擇
-
規范化和缺失值處理
-
圖像特征化
-
時間序列(預覽)
-
支持 ONNX 和 TensorFlow 模型集成(預覽)
-
其他
-
模型理解和解釋
-
用戶定義的自定義轉換
-
架構操作
-
支持數據集操作和交叉驗證
自動機器學習預覽
如今,機器學習入門學習過程非常艱難。在構建自定義機器學習模型時,你必須確定為你的場景選擇機器學習任務(即分類或回歸?),將你的數據轉換為 ML 算法可以理解的格式(例如文本數據 - > 數字向量),並微調這些 ML 算法以達到最佳性能。如果你是 ML 新手,這些步驟中的每一步都會非常艱巨!
自動機器學習通過自動確定如何轉換輸入數據並選擇性能最佳的 ML 算法,使你能夠輕松構建一流的自定義 ML 模型,使你的 ML 之旅更加簡單。
ML.NET 中的 AutoML 支持處於預覽階段,我們目前支持回歸(用於價格預測等場景)和分類(用於情感分析、文檔分類、垃圾郵件檢測等場景)ML 任務。
你可以使用 ML.NET Model Builder、ML.NET CLI 或直接使用 AutoML API(可在此處找到樣本)三種形式在 ML.NET 中體驗 AutoML。
對於不熟悉機器學習的用戶,我們建議從 Visual Studio 中的 ML.NET 模型構建器和任何平台上的 ML.NET CLI 開始。AutoML API 對於你想要動態構建模型的場景也非常方便。
模型生成器預覽
為了簡化.NET 開發人員構建 ML 模型的過程,我們今天也很高興地發布 ML.NET 模型構建器。使用 ML.NET 模型構建器,只需右鍵單擊即可將機器學習添加到你的應用程序中!
Model Builder 是一個簡單的 UI 工具,供開發人員使用自己的數據集,通過 AutoML 使構建最佳的 ML 模型。除此之外,Model Builder 還可以生成模型訓練和模型消耗代碼,以達到最佳性能,讓你快速將 ML 添加到現有應用程序中。
Model Builder 目前處於預覽階段,歡迎試用並告訴我們你的想法!
ML.NET CLI 預覽
ML.NET CLI(命令行界面)是我們今天推出的另一個新工具!
ML.NET CLI 是一個 dotnet 工具,允許使用 AutoML 和 ML.NET 生成 ML.NET 模型。ML.NET CLI 可以快速遍歷你的數據集以獲取特定的 ML 任務(目前支持回歸和分類)並生成最佳模型。
CLI 除了生成最佳模型外,還允許用戶為最佳性能模型生成模型訓練和模型消耗代碼。
ML.NET CLI 是跨平台的,可以輕松添加到.NET CLI。Model Builder Visual Studio 擴展還使用 ML.NET CLI 提供模型構建器功能。
你可以通過此命令安裝 ML.NET CLI。
dotnet tool install -g mlnet
下圖顯示了 ML.NET CLI 構建情感分析數據集。
ML.NET CLI 目前也處於預覽狀態,歡迎試用並分享你的想法!
開始吧!
從頭開始使用 ML.NET 很簡單,你可以通過幾個簡單的步驟來完成,如下所示。 下面的示例顯示了如何使用 ML.NET 進行情緒分析。
//Step 1. Create a ML Context var ctx = new MLContext(); //Step 2. Read in the input data for model training IDataView dataReader = ctx.Data .LoadFromTextFile<MyInput>(dataPath, hasHeader: true); //Step 3. Build your estimator IEstimator<ITransformer> est = ctx.Transforms.Text .FeaturizeText("Features", nameof(SentimentIssue.Text)) .Append(ctx.BinaryClassification.Trainers .LbfgsLogisticRegression("Label", "Features")); //Step 4. Train your Model ITransformer trainedModel = est.Fit(dataReader); //Step 5. Make predictions using your model var predictionEngine = ctx.Model .CreatePredictionEngine<MyInput, MyOutput>(trainedModel); var sampleStatement = new MyInput { Text = "This is a horrible movie" }; var prediction = predictionEngine.Predict(sampleStatement);
你還可以探索各種其他學習資源,如 ML.NET 的教程和資源,以及 ML.NET 示例、演示產品推薦、異常檢測和更多實際操作等流行方案。
ML.NET 的下一步
今天發布 ML.NET 1.0 的同時,我們的團隊已經在努力為 ML.NET 1.0 版發布以下功能。
-
其他 ML 場景的 AutoML 體驗
-
改進了對深度學習場景的支持
-
支持其他其他來源,如 SQL Server、CosmosDB、Azure Blob 存儲等。
-
在 Azure 上橫向擴展以進行模型訓練和消耗
-
使用模型構建器和 CLI 時,支持其他 ML 方案和功能
-
用於 Apache Spark 和 ML.NET 的.NET 大規模機器學習的本地集成
-
.NET 中的新 ML 類型,例如數據幀