-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Add a doc with information about components and dependencies #7537
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
Changes from 1 commit
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
8b93f03
Add a doc with information about components and dependencies
ericstj 58ef829
Formatting fixups and edits
ericstj 92dc371
Add a diagram of components
ericstj db19f42
Improve diagram readability
ericstj 079c998
Update mermaid style
ericstj File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,91 @@ | ||
| ML.NET is a modular system where using it involves building a pipeline from data loaders, trainers/estimators (in case of training), transformers (in case of inferencing), and various data structures to facilitate the building of pipelines and representing data. The core of ML.NET – the Microsoft.ML has no external dependencies. It's largely managed code. | ||
|
|
||
|
|
||
|
|
||
| The core ML.NET does have a helper native math library CPUMath - which is only used on .NETFramework. Net6 and later have a managed implementation using intrinsics/TensorPrimitives and do not require the native build of CPUMath. | ||
|
|
||
|
|
||
|
|
||
| Microsoft.ML contains one other native library LDANative which is used by the LatentDirichletAllocationTransformer/LatentDirichletAllocationEstimator to support the LightLDA algorithm. If this component is used it will require the LightLDA native library. The native library is built my ML.NET for linux-arm, linux-arm64, linux-x64, osx-arm64 (M1), osx-x64, win-arm64, win-x64, win-x86. This library has only platform/CRT dependencies. | ||
|
|
||
|
|
||
|
|
||
| Some components that represent an algorithm or binding to another framework are factored into separate packages to allow opt-in to using those and their dependencies. | ||
|
|
||
| ML.NET redistributes Intel MKL as Microsoft.ML.MKL.Redist in which a minimized library is linked with just exports used. This component is follows the support matrix of Intel MKL and is only supported on x86 and x64 architectures: linux-x64, osx-x64 (no longer supported by Intel), win-x64, and win-x86. Similarly some components have light-up to use an Intel OneDAL implementation which is only supported on x64. | ||
ericstj marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| | NuGet Package | Entry-Point Components | Native Dependencies | Status | Notes | | ||
|
|
||
| |-------------------------------------|----------------------------------------------------------------|------------------------------------------------|----------|--------------------------------------------------------------------------------------------| | ||
|
|
||
| | `Microsoft.ML` | `MLContext`, core transforms, trainers | None | Stable | | | ||
|
|
||
| | `Microsoft.Extensions.ML` | `PredictionEnginePool` | None | Stable | | | ||
|
|
||
| | `Microsoft.ML.AutoML` | `AutoCatalog` for AutoML | \*As required by other components\* | Preview | Support varies based on components used | | ||
|
|
||
| | `Microsoft.ML.CodeGenerator` | | None | Preview | Part of AutoML | | ||
|
|
||
| | `Microsoft.ML.CpuMath` | | Optional native | Stable | Internal implementation; only used on .NET Framework | | ||
|
|
||
| | `Microsoft.ML.DataView` | `IDataView` | None | Stable | | | ||
|
|
||
| | `Microsoft.ML.DnnImageFeaturizer.\*` | | None | Preview | Data-only | | ||
|
|
||
| | `Microsoft.ML.Ensemble` | | None | Preview | Supports ML.NET component catalog | | ||
|
|
||
| | `Microsoft.ML.EntryPoints` | | None | Preview | Supports ML.NET component catalog | | ||
|
|
||
| | `Microsoft.ML.Experimental` | | None | Preview | Experimental API | | ||
|
|
||
| | `Microsoft.ML.FairLearn` | `FairlearnCatalog` | None | Preview | | | ||
|
|
||
| | `Microsoft.ML.FastTree` | `FastTreeRankingTrainer` | Optional native acceleration | Stable | Native library used on x86/x64; managed fallback | | ||
|
|
||
| | `Microsoft.ML.ImageAnalytics` | `MLImage` (image exchange type) | `libSkiaSharp` | Stable | Wrapper over SkiaSharp / Google Skia; supported where dependency is supported | | ||
|
|
||
| | `Microsoft.ML.LightGBM` | `LightGbm\*Trainer` | `LightGBM` | Stable | Wrapper over LightGBM; supported where dependency is supported | | ||
|
|
||
| | `Microsoft.ML.MKL.Components` | `SymbolicSgdLogisticRegressionBinaryTrainer` | Intel MKL | Stable | Only works where Intel MKL works | | ||
|
|
||
| | `Microsoft.ML.MKL.Redist` | Internal native Intel MKL | `libomp` | Stable | Not for direct reference; win-x86/x64 only | | ||
|
|
||
| | `Microsoft.ML.OneDal` | Internal native Intel OneDal | Intel OneDAL | Preview | Not for direct reference; x64 only | | ||
|
|
||
| | `Microsoft.ML.OnnxConverter` | Adds ONNX export support | `Microsoft.ML.OnnxRuntime` | Stable | Wrapper over ONNX Runtime; supports "bring your own" runtime | | ||
|
|
||
| | `Microsoft.ML.OnnxTransformer` | `OnnxCatalog` | `Microsoft.ML.OnnxRuntime` | Stable | Wrapper over ONNX Runtime; supports "bring your own" runtime | | ||
|
|
||
| | `Microsoft.ML.Parquet` | `ParquetLoader` | None | Preview | Uses managed Parquet.Net (port of Apache Parquet) | | ||
|
|
||
| | `Microsoft.ML.Recommender` | `MatrixFactorizationTrainer` | LIBMF (bundled) | Stable | Includes libmf built for all runtimes supported by ML.NET | | ||
|
|
||
| | `Microsoft.ML.TensorFlow` | `TensorFlowModel`, `Transformer`, `Estimator` | TensorFlow via `TensorFlow.NET` | Stable | Wrapper over TensorFlow; supports "bring your own" runtime | | ||
|
|
||
| | `Microsoft.ML.TimeSeries` | `ForecastingCatalog` | Intel MKL, `libomp` | Stable | Only works where Intel MKL works | | ||
|
|
||
| | `Microsoft.ML.TorchSharp` | `QATrainer`, `TextClassificationTrainer`, `SentenceSimilarityTrainer` | libTorch via `TorchSharp` | Preview | Wrapper over libTorch; supported where TorchSharp is supported | | ||
|
|
||
| | `Microsoft.ML.Vision` | `ImageClassificationTrainer` | TensorFlow | Stable | Depends on `Microsoft.ML.TensorFlow` for implementation | | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| Other packages: | ||
| | NuGet Package | Entry-Point Components | Native Dependencies | Status | Notes | | ||
|
|
||
| |----------------------------------|--------------------------------------------------|-----------------------------------------------|------------|---------| | ||
|
|
||
| | `Microsoft.Data.Analysis` | `DataFrame` | `Apache.Arrow` | Preview | | | ||
|
|
||
| | `Microsoft.ML.GenAI.\*` | | | Preview | | | ||
|
|
||
| | `Microsoft.ML.Tokenizers.\*` | `Tokenizer` | | Stable | | | ||
|
|
||
| | `Microsoft.ML.SampleUtils` | | | Preview | | | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.