ML.NET 3.0 增強了深度學習和數據處理能力

.NET團隊在 2023.11.28 在博客上正式發佈了 ML.NET 3.0::https://devblogs.microsoft.com/dotnet/announcing-ml-net-3-0/[1],強調了兩個主要的興趣點,即深度學習和數據處理,使開發人員能夠完全在 .NET 生態系統中創建注入 AI 的應用程序。開源 ML.NET 框架[2]的主要賣點,旨在幫助開發人員能夠使用C#和F#構建自定義ML模型並將其集成到應用程序中。這是通過命令行 (CLI) 和模型生成器等工具完成的,或者創建像大型語言模型 (LLM) 這樣的結構來完成,這些模型爲 ChatGPT 和 無處不在的“Copilot”AI 助手提供支持。

image

深度學習

深度學習是機器學習的一個子集,使用鬆散地類似於人腦行爲的人工神經網絡,以便從大量數據甚至非結構化數據等輸入中“學習”。深度學習場景在v3.0版本中得到了大幅擴展,在三個領域具有新功能:對象檢測、命名實體識別和問答。

ML.NET 3.0 中的對象檢測是一種高級形式的圖像分類,它不僅可以對圖像中的實體進行分類,還可以對它們進行定位,因此非常適合圖像包含多個不同類型的對象的場景。在v3.0中,通過與TorchSharp和ONNX模型的集成,對象檢測功能得到了提升,Microsoft特別指出了TorchSharp支持的對象檢測API。這些代表了在 ML.NET 框架內利用深度學習技術的重要一步。

對象檢測API的底層技術包括微軟研究院開發的基於Transformer的神經網絡架構技術。這種方法表明了深度學習的現代趨勢,特別是在計算機視覺方面。

TorchSharp 還有助於增強命名實體識別和問答,這兩個常見的 ML 領域是自然語言處理 (NLP)的一部分。在 ML.NET 3.0 中,通過利用之前引入的 TorchSharp RoBERTa 文本分類功能,解鎖了這兩種方案的增強功能。“NER和QA訓練器都包含在 Microsoft.ML.TorchSharp 3.0.0包[3]和命名空間Microsoft.ML.TorchSharp中。


數據處理


數據處理方面主要是通過對 DataFrame(一種用於存儲和操作數據的結構)以及新的 IDataView 互操作性功能的許多增強功能和 bug 修復,改進了方案。加載、檢查、轉換和可視化數據的重要步驟要強大得多。

具體注意事項包括:

  • 增強的 <-> 轉化:IDataViewDataFrame 添加了對 ReadOnlyMemory<char>和 VBufferDataFrameColumn<T>列類型的支持,其中的值作爲並支持所有支持基元。
  • 增加列數據容量:列現在可以存儲超過 2 GB 的數據,從而消除了以前的限制。
  • Apache Arrow 集成:識別 Apache Arrow 的Date64列數據。
  • 擴展的數據加載功能:包括使用 ADO.NET 的 SQL 數據庫的導入和導出功能。此外,可以從任何IEnumerable集合加載數據並將其導出到System.Data.DataTable .
  • 在 DataFrame 之間追加數據:DataFrame列名匹配時,允許將數據從一個追加到另一個,從而放寬了對列順序的約束。
  • 重複列名的處理: DataFrame.LoadCsv增強了管理重複列名的功能,提供了重命名它們的選項。
  • 改進了算術性能和空值處理:列克隆、二進制比較方案和算術運算的優化。
  • 調試器增強功能:調試器中具有長名稱的列的可讀性更好。

Microsoft還指出了新的張量基元集成,它們不會直接影響開發任務,但確實提供了顯着的性能改進。AutoML 可自動將機器學習應用於數據的過程,也得到了增強,增強了模型生成器和 ML.NET CLI 中的相關體驗。

有關上述所有更改和其他更改的更多信息,請參見 發行說明[4] .

展望未來,開發團隊現在正在制定 .NET 9 和 ML.NET 4.0 的計劃,模型生成器和 ML.NET CLI 預計將更快地更新,以便使用 ML.NET 3.0 版本。繼續擴展深度學習場景和集成,我們將繼續增強DataFrame,


相關鏈接

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