Skip to content

Add release notes for ML.NET 0.4 #656

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 7, 2018
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions docs/release-notes/0.4/release-0.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# ML.NET 0.4 Release Notes

Today we are releasing ML.NET 0.4. During this release we have started
exploring new APIs for ML.NET that enable functionality that is missing from
the current APIs. We welcome feedback and contributions to the
conversation (relevant issues can be found [here](https://github.com/dotnet/machinelearning/projects/4)). While the
focus has been on designing the new APIs, we have also moved several
components from the internal codebase to ML.NET.

### Installation

ML.NET supports Windows, MacOS, and Linux. See [supported OS versions of .NET
Core
2.0](https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0-supported-os.md)
for more details.

You can install ML.NET NuGet from the CLI using:
```
dotnet add package Microsoft.ML
```

From package manager:
```
Install-Package Microsoft.ML
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we link to how to build your own copy?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is necessary for the release notes (it's more about getting started with using the package as opposed to building it).


### Release Notes

Below are some of the highlights from this release.

* Added SymSGD learner for binary classification
([#624](https://github.com/dotnet/machinelearning/pull/624))

* [SymSGD](https://arxiv.org/abs/1705.08030) is a technique for
parallelizing
[SGD](https://en.wikipedia.org/wiki/Stochastic_gradient_descent)
(Stochastic Gradient Descent). This enables it to sometimes perform
faster than existing SGD implementations (e.g. [Hogwild
SGD](https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.trainers.stochasticgradientdescentbinaryclassifier?view=ml-dotnet)).
* SymSGD is available for binary classification, but can be used in
multiclass classification with
[One-Versus-All](https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.models.oneversusall?view=ml-dotnet)
* SymSGD requires adding the Microsoft.ML.HalLearners NuGet package to your project
* The current implementation in ML.NET does not yet have multi-threading
enabled due to build system limitations (tracked by
[#655](https://github.com/dotnet/machinelearning/issues/655)), but
SymSGD can still be helpful in scenarios where you want to try many
different learners and limit each of them to a single thread.
* Documentation can be found
[here](https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.trainers.symsgdbinaryclassifier?view=ml-dotnet)
Copy link
Contributor

@glebuk glebuk Aug 7, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.trainers.symsgdbinaryclassifier?view=ml-dotnet [](start = 13, length = 103)

currently not available, perhaps needs to be released together? #Closed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, mentioned in the PR description that the docs.microsoft.com links will be available after the official release.


* Added Word Embeddings Transform for text scenarios
([#545](https://github.com/dotnet/machinelearning/pull/545))

* [Word embeddings](https://en.wikipedia.org/wiki/Word_embedding) is a
Copy link
Contributor

@justinormont justinormont Aug 7, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd say "words or phrases".

  • Word embeddings is a
    technique for mapping words or phases to numeric vectors of relatively low
    dimension (in comparison with the high dimensional n-gram extraction).
    These numeric vectors are intended to capture some of the meaning of the
    words so they can be used for training a better model. As an example,
    SSWE (Sentiment-Specific Word Embedding) can be useful for sentiment
    related tasks. #resolved

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Addressed in next commit.

technique for mapping words or phrases to numeric vectors of relatively low
dimension (in comparison with the high dimensional n-gram extraction).
These numeric vectors are intended to capture some of the meaning of the
words so they can be used for training a better model. As an example,
SSWE (Sentiment-Specific Word Embedding) can be useful for sentiment
related tasks.
* This transform enables using pretrained models to get the embeddings
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can note the word embeddings are automatically downloaded on first use. (So users don't worry about downloading them).

We may also want to state:
"The transform supports custom pre-trained models in common text formats (Word2vec, fastText, GloVe, etc), allowing users to train word embedding models on their data and use in ML.NET."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I'll add this note. Regarding custom pretrained models, let's make sure we cover that in the documentation instead as it is a more advanced scenario.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. We should write-up a "how to train" a custom model section in the docs.

(i.e. the embeddings are already trained and available for use).
* Several options for pretrained embeddings are available:
[GloVe](https://nlp.stanford.edu/projects/glove/),
[fastText](https://en.wikipedia.org/wiki/FastText), and
[SSWE](http://anthology.aclweb.org/P/P14/P14-1146.pdf). The pretrained model is downloaded automatically on first use.
* Documentation can be found
[here](https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.transforms.wordembeddings?view=ml-dotnet).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link will be available after the official release.


Additional issues closed in this milestone can be found
[here](https://github.com/dotnet/machinelearning/milestone/3?closed=1).

### Acknowledgements

Shoutout to [dsyme](https://github.com/dsyme),
[SolyarA](https://github.com/SolyarA),
[dan-drews](https://github.com/dan-drews),
[bojanmisic](https://github.com/bojanmisic),
[jwood803](https://github.com/jwood803),
[sharwell](https://github.com/sharwell),
[JoshuaLight](https://github.com/JoshuaLight), and the ML.NET team for their
contributions as part of this release!