Skip to content

Commit 8481c2a

Browse files
ML.NET 2.0 Release Notes (#6435)
* Initial commit * Reworded ONNX * minor nit * Update with wikipedia article * Update docs/release-notes/2.0/release-2.0.0.md Thanks @justinormont Co-authored-by: Justin Ormont <[email protected]> Co-authored-by: Justin Ormont <[email protected]>
1 parent 025e373 commit 8481c2a

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# [ML.NET](http://dot.net/ml) 2.0.0
2+
3+
This release is going out alongside .NET 7 continuing with our plan to align with the broader .NET release cycle.
4+
5+
## Release Notes
6+
7+
The main themes for this release are:
8+
9+
- New natural language processing (NLP) APIs powered by [TorchSharp](https://github.com/dotnet/torchsharp)
10+
- AutoML improvements
11+
12+
Below are some of the highlights from this release:
13+
14+
### Deep Learning
15+
16+
- **Text Classification API** ([#4512](https://github.com/dotnet/machinelearning/pull/4512)) - The Text Classification API lets use you a TorchSharp implementation of the [NAS-BERT](https://arxiv.org/abs/2105.14444) model developed by Microsoft Research, and added it to ML.NET. The NAS-BERT model is a variant of BERT. If you're interested in learning more, you can check out the [blog post](https://devblogs.microsoft.com/dotnet/introducing-the-ml-dotnet-text-classification-api-preview/) from earlier this year.
17+
- **Sentence Similarity API** ([#6390](https://github.com/dotnet/machinelearning/pull/6390)) - The Sentence Similarity API uses the same NAS-BERT model as the Text Classification API. However, instead of classifying text, it determines the similarity of two sentence. Similar to a regression problem, given two sentences as input, the model provides a score or numerical value determining the similarity between those two sentences.
18+
- **Tokenizers support** ([#6272](https://github.com/dotnet/machinelearning/pull/6272)) - As part of the work to introduce the Text Classification and Sentence Similarity APIs, we needed tokenizers for processing text. In this release, the `EnglishRoberta` tokenization model used by the text classification and sentence similarity APIs is supported. For more generic scenarios other than `EnglishRoberta`, there's also support for [Byte-Pair Encoding (BPE)](https://en.wikipedia.org/wiki/Byte_pair_encoding) algorithm which means you can load custom vocabulary files and use them to process your text. These tokenization APIs are available as part of the `Microsoft.ML.Tokenizers` NuGet package.
19+
20+
### AutoML
21+
22+
- **Featurizer API** ([#6205](https://github.com/dotnet/machinelearning/pull/6205)) - The Featurizer API automates parts of the data preparation steps in the model development cycle.
23+
- **Sweepable API** ([#6108](https://github.com/dotnet/machinelearning/pull/6108)) - The Sweepable API allows ML.NET users to create their own search space and pipeline for hyper-parameter optimization(HPO). For more information, see the [proposal](https://github.com/dotnet/machinelearning/issues/5992).
24+
- **Search Space API** ([#6132](https://github.com/dotnet/machinelearning/pull/6132)) - The Search Space API allows you to configure the hyperparameter search range of parameters for a pipeline and estimator.
25+
- **Tuner API** ([#6140](https://github.com/dotnet/machinelearning/pull/6140)) - The Tuner API provides the option to define and choose the tuner which defines the strategy used to navigate the search space during hyperparameter optimization. As of this release you have an option to choose from:
26+
- CostFrugalTuner: low-cost HPO algorithm, this is an implementation of [Frugal Optimization for Cost-related Hyperparameters](https://arxiv.org/abs/2005.01571).
27+
- SMAC: Bayesian optimization using random forest as regression model.
28+
- EciCostFrugalTuner: CostFrugalTuner for hierarchical search space. This will be used as default tuner if AutoMLExperiment.SetPipeline get called.
29+
- GridSearch
30+
- RandomSearch
31+
- **Experiment API** ([#6140](https://github.com/dotnet/machinelearning/pull/6140)) - The Experiment API builds on the Sweepable API and enables defaults for the separate pipeline, search space, and tuner making it simpler to create and train models using AutoML. For more information, see the [proposal](https://github.com/dotnet/machinelearning/pull/6118).
32+
33+
## Enhancements
34+
35+
### ONNX
36+
37+
- **Support for 1 unknown dimension** ([#6265](https://github.com/dotnet/machinelearning/pull/6265))
38+
- **Support saving model with ONNX GPU flag** ([#6143](https://github.com/dotnet/machinelearning/pull/6143)) - Prior to this change, when you saved an ML.NET model that contained ONNX as part of the pipeline, the flag to use the GPU was not saved. This change fixes that.
39+
40+
### DataFrame
41+
42+
- **DateTime column support** ([#6302](https://github.com/dotnet/machinelearning/pull/6302)) - Adds the `DateTime` type as a `PrimitiveDataFrameColumn`. This allows better conversion between `IDataView` and the `DataFrame`.
43+
- **Improve performance of DataFrame merge operation** ([#6150](https://github.com/dotnet/machinelearning/pull/6150)) Thanks @mzasov!
44+
- **Create DataFrame from TabularDataResource** ([#6099](https://github.com/dotnet/machinelearning/pull/6099) & [#6123](https://github.com/dotnet/machinelearning/pull/6123)) - This change enables users to convert KQL and SQL kernel values to `DataFrame` in notebooks. Thanks @colombod!
45+
46+
## Breaking changes
47+
48+
- **Remove System.Drawing dependency** ([#6363](https://github.com/dotnet/machinelearning/pull/6363)) - Starting with .NET 6, `System.Drawing` is [only supported on Windows](https://learn.microsoft.com/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only). As a result, we've replaced it with the `MLImage` class for image handing. In code where you previously represented image data as `Bitmap`, use `MLImage` instead.
49+
- **Default Transformer scope set to Scoring** - ML.NET provides the ability to set the `TransformerScope` depending on the purpose. Prior to this change, calling `Transform` to apply the transformations to data defaulted to use the `Everything` scope unless otherwise specified. As of this release, the scope has changed to `Scoring` which means for scoring scenarios, you no longer need to provide an empty label as part of your inputs.

0 commit comments

Comments
 (0)