dotnet / machinelearning

ML.NET is an open source and cross-platform machine learning framework for .NET.
https://dot.net/ml
MIT License
9.02k stars 1.88k forks source link

A few questions #51

Closed xoofx closed 5 years ago

xoofx commented 6 years ago

Hey,

That's a great initiative to see a machine learning FW for .NET 👍

I have a couple of questions about the rationale behind the project:

Thanks!

helloguo commented 6 years ago

In addition to @xoofx 's questions, is there a project road map?

xoofx commented 6 years ago

@helloguo I guess at https://github.com/dotnet/machinelearning/blob/master/ROADMAP.md ?

helloguo commented 6 years ago

Thank you! @xoofx

fiigii commented 6 years ago

What is the plan about multi-machine, multi-CPU, GPU (and multi-GPU) support?

Additionally, what is the plan about vectorizing the fundamental computation via .NET Core hardware intrinsics (e.g., SSE, AVX, FMA, etc.)?

Related to https://github.com/dotnet/machinelearning/issues/56

danmoseley commented 6 years ago

@GalOshri

GalOshri commented 6 years ago

Thank you for the feedback and questions! ML.NET is an extensible framework and we plan to explore how to integrate with libraries like CNTK, TensorFlow, and Accord.NET to enable them as part of ML.NET. Take a look at this blog post with a few more details. One of our goals is to provide consistent APIs that can cover a variety of different components/libraries/approaches.

We’ve highlighted some of the components that are available in the 0.1 release in the release notes. The API docs also have a list of learners. More learners are coming soon. Please let us know if there are any specific learners that you need.

Distributed training is on our roadmap, but we’d love to understand your requirements.

@asthana86 will have more details regarding #56.

bratan05 commented 6 years ago

Hope to work with you when I finish my phd. I'm intrigued.

veikkoeeva commented 6 years ago

Will there be more documentation on the components? I would like to understand better what is the purpose of it in the pipeline (e.g. why is file mandatory?).

While trying to fix the tests, I happened to notice there's matrix and vector code interspersed in some of the functions. I don't know the plan, or the way this projects works, but would it be OK to contemplate refactoring things like matrices and vectors to components of their own? How about larger issues if the project is still young?

Some things in no particular order, to make the discussion more concrete:

KrzysztofCwalina commented 6 years ago

The code would be easier to handle in production if logging data to streams were removed and tracing and logging facilities used like in other .NET frameworks (at least in the newerones, e.g. MEL and EventId).

@eerhardt this is something you are looking into, aren't you?

KrzysztofCwalina commented 6 years ago

In distributed setting especially it might be prudent to make a policy to remove DateTime.Now from the codebase.

filed #110 (updated) to do a scrub

eerhardt commented 6 years ago

The code would be easier to handle in production if logging data to streams were removed and tracing and logging facilities used like in other .NET frameworks (at least in the newerones, e.g. MEL and EventId).

@eerhardt this is something you are looking into, aren't you?

Yes, I've been working/thinking on ways we can make this area better. The first line of thinking is to try to use DiagnosticSource. MEL may be appropriate in some cases, but it may be a dependency we don't want to take.

filed #57 to do a scrub

I think you meant #110 😉

veikkoeeva commented 6 years ago

@eerhardt I refer to https://github.com/aspnet/Logging/issues/612 for background discussion in the larger .NET sphere. That particular thread links into deeper and quite long discussion about the state of logging and tracing and distributed tracing (technical trace, business logs, distributed setting too). The Orleans maintainers have worked on this too (with the community too), so you might want to ping their experiences or ask at https://gitter.im/dotnet/orleans. At least @galvesribeiro and @jdom have been involved.

@GalOshri I didn't notice to link https://gitter.im/Microsoft/CNTK?at=59887b6b614889d475275902 earlier. I see there's a good opportunity to combine Orleans and ML.NET, which is partially why I was wondering that host thing. :) Orleans has now heterogenous siloes and it would be great to combine actors in a live, production system with a machine learning framework suited to the task (as a production system and build tooling on Orleans).

veikkoeeva commented 6 years ago

Adding here feedback discussion on logging and tracing and paging @eerhardt just in case: https://github.com/Microsoft/ApplicationInsights-dotnet-server/issues/913.

codemzs commented 5 years ago

We can make this issue closed as the questions have been answered.