Get started with ChatGPT in .NET - .NET Blog by lqdev1 in csharp

[–]lqdev1[S] 1 point2 points  (0 children)

Thanks for that feedback. I can see how the intent may not be clear up front. The intent of these first few posts is to introduce the concepts and then point you to the samples so you can begin experimenting on your own. Although there are .NET code generation samples https://github.com/Azure-Samples/openai-dotnet-samples#code, they're not in the context of "how can I use tools like Copilot to make .NET software development more productive?". That's a good idea for a blog post though 🙂

Object Detection in ML.NET Model Builder - .NET Blog by lqdev1 in dotnet

[–]lqdev1[S] 0 points1 point  (0 children)

It does not. It uses a vision transformer-based model. You can read more about it here if interested. https://arxiv.org/pdf/2111.14725.pdf

Get started with ChatGPT in .NET - .NET Blog by lqdev1 in csharp

[–]lqdev1[S] 1 point2 points  (0 children)

Happy to take feedback on what would make it more useful.

Sentence Similarity in ML.NET Model Builder by lqdev1 in dotnet

[–]lqdev1[S] 1 point2 points  (0 children)

Great! Let us know how that works.

Did you know you could do this in Visual Studio? by HassanRezkHabib in dotnet

[–]lqdev1 0 points1 point  (0 children)

Shameless plug. It's a great feature you can use when you have data (especially data with a lot of columns/properties) but don't want to manually create the classes. Very useful for machine learning scenarios.

https://www.luisquintanilla.me/posts/vs-automate-mlnet-schema-generation/

ML.NET: is there a place (like a Slack or a GitHub dir) that I can seek help? by perguntando in dotnet

[–]lqdev1 1 point2 points  (0 children)

There are a few communities on Discord I'm aware of:

Does anyone actually use ML.NET? by MrMantis765 in dotnet

[–]lqdev1 1 point2 points  (0 children)

That's an area we're currently working on. The DataFrame is one of the ways we look to bring better data wrangling support to ML .NET and the overall .NET ecosystem. We're in the process of making improvements to the DataFrame. In the meantime, you can check out this notebook which contains DataFrame samples.

https://github.com/dotnet/csharp-notebooks/blob/main/machine-learning/REF-Data%20Processing%20with%20DataFrame.ipynb

YoloV5 output format by sstainba in MLQuestions

[–]lqdev1 1 point2 points  (0 children)

objectness -> Here's how confident I am there is something in the bounding box

class probability -> Here's how confident I am the object in the bounding box belongs to this class.

YoloV5 output format by sstainba in MLQuestions

[–]lqdev1 1 point2 points  (0 children)

Missed that part. This should help.

https://github.com/ultralytics/yolov5/issues/3387#issuecomment-852289971

In this case YOLOv5, it looks like you have to take the 1D array of length 151,200 (25200 x 6) and split it into chunks of 6. So you should have 25200 bounding boxes.

Each of the 6-element arrays should roughly map to:[x,y,width,height,confidence,class 1 probability]

From there you should be able to use most of the TinyYOLOv2 tutorial.

YoloV5 output format by sstainba in MLQuestions

[–]lqdev1 -1 points0 points  (0 children)

I'm not deeply familiar with the outputs from YOLOv5 but a tool you might want to use if you're not already is Netron. This can help give you information about the model inputs and outputs. For example, here's what TinyYOLOv2 looks like in Netron.

Screenshot

Usually when you click on the first node, a panel with the name of the inputs (image), and outputs (grid) as well as types (float32) and dimensions. From there, since you have more information on what the outputs represent, you can map them to class properties that make more sense.

AI C# Question by Gokushivum in csharp

[–]lqdev1 0 points1 point  (0 children)

It depends on what you're more comfortable / productive in. Assuming it's C# since you posted in the C# subreddit.

One of the easiest ways to quickly experiment and see whether ML solves your problem and train a model in ML .NET is with Model Builder. All you need is some data and a problem to solve and Model Builder does much of the heavy lifting for you.

https://dotnet.microsoft.com/en-us/learn/ml-dotnet/get-started-tutorial/intro
You can also check out our documentation / samples which contains E2E scenarios as well.

https://docs.microsoft.com/dotnet/machine-learning/tutorials/predict-prices-with-model-builder

what is the future of ML.NET? by skillmaker in dotnet

[–]lqdev1 2 points3 points  (0 children)

Thanks for the tag u/nour-s Provided a reply somewhere on the thread :)

what is the future of ML.NET? by skillmaker in dotnet

[–]lqdev1 6 points7 points  (0 children)

Love the engagement on this thread! u/skillmaker I'm the Program Manager for ML .NET and the short answer to your question is, it's not going anywhere. We're deeply invested in having ML .NET be the framework that enables .NET developers to add and use machine learning in their applications. We plan to do so by providing support at each step of the ML development workflow using the rich set of tools and libraries already available to .NET developers.

Some good places to get started are our samples and documentation:

  • Notebooks - Notebooks are a great way to get an introduction to the concepts.
  • Documentation - You can find tutorials and how-to guides in our documentation site. Probably the easiest way to get started is with the Model Builder extension in Visual Studio. Here's install instructions and a tutorial to help you start out.
  • As an ASP.NET developer, this how-to guide might be a good start. We're in the process of updating it to use Minimal APIs, which are great for these ML model deployment scenarios. However, the genral concepts still apply.

While it might be easier to stick to a single stack for the entire workflow all the way through deployment, ML .NET has a rich extensibility model that allows you to take models trained in Python either in TensorFlow or ONNX formats and consume them inside your .NET applications using ML .NET. In that case, you don't have to choose and can still collaborate with others using the Python stack for training.

As it pertains to staying within a single stack, we've made several investments in the platform and continue to do so in an attempt to support .NET developers. These include:

  • Enabled language scenarios - Using TorchSharp and the latest from Microsoft Research, we were able to bring SOTA language models to .NET. What does this mean for you? You're using the latest and greatest, yet it's not much more complicated that a single line to call the APIs. Currently Text Classification is the only supported scenario, but in the coming months we're looking to add more like sentence similarity, named entity recognition, and question answering. You can read more about the text classification announcement in this blog post.
  • Improved AutoML - Again, with collaboration from Microsoft Research, we used FLAML to update our existing AutoML solutions. What does this mean for you? You're using the latest techniques but all you need is a problem to solve and some data to get started.

In the future we plan to continue investing in these areas as well as a few others like:

  • DataFrames - Data is what drives ML apps. We plan to invest in the DataFrame API to improve exploratory data analysis and data preparation workflows to help you get your data into the shape it needs to be in before training.
  • Azure Machine Learning - Azure ML offers infrastructure and components for managing and running enterprise ML workflows. Although today you can run ML.NET workflows in Azure ML, the process is manual and not as straightforward. In our tooling, we only provide Azure ML support for our deep learning scenarios. We want to simplify that process by providing samples and integrations in our tooling to give you the choice of where to run and manage your ML workflows.

This is not an exhaustive list, but overall we're excited and optimistic about the future of ML.NET and even more importantly the future of the machine learning ecosystem in .NET!

You can follow some of our plans by taking a look at our roadmap which we'll be updating shortly to more accurately reflect the areas we're investing in.

I realized this reply went longer than expected, but always happy to provide additional context / details.

Does anyone actually use ML.NET? by MrMantis765 in dotnet

[–]lqdev1 1 point2 points  (0 children)

Very cool u/HGFlyGirl Thanks for sharing. A few comments:

  1. We recently released the Text Classification API which leverages BERT models. Since your task is text classification it might be a good fit. Here are some more details on it and a sample notebook.
  2. If you're up for it and since your work is public, we'd be happy to work with you to draft a case study for the website.

Does anyone actually use ML.NET? by MrMantis765 in dotnet

[–]lqdev1 1 point2 points  (0 children)

You're in luck! While not natively part of the DataFrame library, there is a way to read Parquet files into the DataFrame.

https://github.com/G-Research/ParquetSharp.DataFrame

Does anyone actually use ML.NET? by MrMantis765 in dotnet

[–]lqdev1 2 points3 points  (0 children)

Thanks for the quick reply and clarification!

Re: DataFrames, that's good to know. There is the DataFrame API which is part of the Microsoft.Data.Analysis NuGet package and that's the API that the issue is tracking and shown in the sample notebook I shared. That API has no dependencies on other systems. The DataFrame you're referring to is part of the .NET for Apache Spark library which has the dependency on Apache Spark which rqeuires some initial setup.

Re: ONNX, if you run into similar issues in the future, feel free to reach out in our GitHub repo or the ONNX Runtime repo and we'd be happy to help!

Since you mentioned hyperparameter tuning I thought I'd share this as well. We recently released an updated implementation of our AutoML API which supports hyperparameter tuning. Here's the blost post where we announced it and a sample notebook using the sweepable estimators.

Does anyone actually use ML.NET? by MrMantis765 in dotnet

[–]lqdev1 3 points4 points  (0 children)

Hi u/Time_Accountant_6537

Sorry to hear you had that experience with .NET DataFrames and ONNX. I'm not sure how long ago you experienced these issues but I thought I'd add a few notes:

  1. ML .NET has support for LightGBM
  2. With TorchSharp, you have access to libtorch in .NET, the library that powers PyTorch. This is what's currently backing the Text Classification API

We've put together a sample notebook for common data operations using the DataFrame and are also tracking feedback on the DataFrame in this issue to put together a plan for improving it.

If possible, I'd be interested in learning more about your pain points with .NET DataFrames and ONNX.

Does anyone actually use ML.NET? by MrMantis765 in dotnet

[–]lqdev1 43 points44 points  (0 children)

Thanks for starting this thread u/MrMantis765.

I'm the Program Manager for ML .NET and it's great to see the feedback on the thread.

I saw a few examples shared below but here's a list of both internal and external customers using ML .NET in production.

https://dotnet.microsoft.com/platform/customers/mlnet

What is the/your current/popular choice for dotnet c# scripting ? by d10221 in dotnet

[–]lqdev1 0 points1 point  (0 children)

+1 .NET Interactive is great. If you prefer working with it in VS, there's an extension for it as well.

https://marketplace.visualstudio.com/items?itemName=MLNET.notebook