微軟發佈ML.NET 1.0,可一鍵添加機器學習模型

今天,我們很高興宣佈發佈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添加到現有應用程序中。

ML.NET模型構建器

瞭解有關ML.NET模型構建器的更多信息

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 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類型,例如數據幀

感謝創建者

在此,我們特別鳴謝該項目的貢獻者,是他們的努力讓.NET開發人員可以使用機器學習。

amiteshenoy,beneyal,bojanmisic,Caraul,dan-drews,DAXaholic,dhilmathy,dzban2137,elbruno,endintiers,f1x3d,feiyun0112,forki,harshsaver,
helloguo,hvitved,Jongkeun,JorgeAndd,JoshuaLight,jwood803,kant2002,kilick,Ky7m,llRandom,malik97160,MarcinJuraszek,mareklinka,
Matei13,mfaticaearnin,mnboos,nandaleite,Nepomuceno nihitb06,Niladri24dutta,PaulTFreedman,Pielgrin,pkulikov,Potapy4,Racing5372,
rantri,rantri,rauhs,robosek,ross-p-smith,SolyarA,Sorrien,suhailsinghbains,terop,ThePiranha,Thomas-S-B,timitoc,tincann,v-tsymbalistyi,
van-tienhoang,veikkoeeva和yamachu

非常感謝,
ML.NET團隊

原文鏈接:
https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章