ml.net例子笔记2-概念和Widnows AI Studio

发布时间 2023-12-16 15:08:53作者: 2012

一 机器学习和ml.net

1 Python 机器学习库

在Python中,工具和库的生态系统可以分为五个主要领域:

  • 数据处理
  • 数据可视化
  • 数值计算
  • 模型训练
  • 神经网络

这可能不全,因为此外还有其他许多的库,它们负责其他任务,并专注于机器学习的一些特定领域,比如自然语言处理和图像识别。

使用Python时,构建机器学习管道的步骤通常在笔记本的范围内进行。所谓“笔记本”,是在特定Web或本地交互环境中创建的文档,称为Jupyter Notebook(参见 https://jupyter.org )。每个笔记本都包含可执行的Python代码富格式文本数据网格、图表和图片的组合。通过它们,可以建立并分享我们自己的开发故事在某种程度上,“笔记本”相当于 VisualStudio中的一个“解决方案”。在“笔记本”中,可以执行诸如数据操作、绘图和训练等任务,而且可以使用一些预定义的、经过实战检验的库。

1) 神经网络

浅层学习是机器学习的一个领域,涵盖一系列广泛的基本问题,如回归和分类。在浅层学习的领域之外,还有深度学习和神经网络。还有更多专门的库用于在Python中构建神经网络。

TensorFlow可能是训练深度神经网络的最流行的库。它是一个综合框架的一部分,可以在不同层次上进行编程。例如,可以使用高层次的Keras API来构建神经网络,或者手动构建所需要的拓扑结构,并通过代码指定前进和激活步骤、自定义层和训练循环。总的来说,TensorFlow 是一个端到端的机器学习平台,也提供了用于训练和部署的机制。

Keras(https://keras.io)可能是切入令人眼花缭乱的深度学习世界的最简单方法。它提供了一个非常直接的编程界面,至少在快速原型设计时很方便。要注意的是,可以在TensorFlow 中使用 Keras。

还有一个选择是PyTorch,可以从https://pytorch.org 获取。PyTorch基于现有C语言库的 Python 改编,专门用于自然语言处理和计算机视觉。在这三个神经网络选项中,Keras 目前是最理想的切入点。只要它能满足自己的诉求,就可以把它作为一个首选的工具。需要构建复杂的神经网络时,PyTorch 和 TensorFlow则是首选,但它们使用不同的方法来完成任务。TensorFlow 要求在训练神经网络之前先定义好整个网络的拓扑结构。相比之下,PyTorch采用了一种更敏捷的方法并提供了一种更动态的方式来对图进行修改。在某些方面,它们的差异可以概括为“瀑布式与敏捷式”。PyTorch 比较年轻,还不像TensorFlow那样已经建立了一个庞大的社区。

2) Python模型最终使用方式

使用Python,可以很容易地找到建立和训练机器学习模型的方法。模型最终是一个二进制文件,它必须加载到一个客户端应用程序并被调用,通常情况下,是一个Java或.NET应用程序作为ML 模型的客户端应用程序。

使用训练好的模型有三种主要的方式。

1 在Web 服务中托管训练好的模型,并通过 REST或gRPC API访问。

2在应用程序中将训练好的模型作为一个序列化的文件导入,并通过它所基于的基础结构(例如TensorFlow或scikit-learn)所提供的编程接口(API)与之进行交互,前提是基础结构要为客户端应用程序的语言提供绑定。

3 训练好的模型通过新的通用ONNX格式对外公开,客户端应用程序集成一个用于使用ONNX二进制文件的包装器(wrapper)。

虽然 Web 服务选项最常用,但如果只是为了使用训练好的模型,那么最捷的方式似乎应该是客户端语言所特有的一个直接的 API。

2 ML.NET概述

ML.NET首次发布于2019年春季,是一个免费的跨平台和开源的NET框架用于建立和训练机器学习模型并在.NET应用程序中托管这些ML模型。详情可以参考 https://dotnet.microsoft.com/zh-cn/apps/machinelearning-ai/ml-dotnet

ML.NET旨在为数据科学家和开发人员提供Python生态系统中能找到的同一系列功能(参考上面的描述)。

此外,熟悉NET框架和C# 及F# 编程语言的人都非常熟悉所有这些编程步骤MLNET最有趣的地方在于,它提供了一个相当务实的编程平台,围绕预定义学习任务的思路进行布置。即使是机器学习的新手,也可以用它配备的库相对容易处理常见的机器学习场景,比如情感分析、欺诈检测或价格预测,与前面介绍的Python生态系统的支柱相比,ML.NET虽然基本上可以认为是scikit-Learn 模型构建库的对应物,但它另外还包括一些可以在Pandas或NumPy中找到的、用于数据准备和分析的基本设施。ML.NET还允许使用深度学习模型(尤其是TensorFlow和ONNX)。

另外,开发者可以通过模型生成器(ModelBuilder)来训练图像分类和物体检测模型。最值得注意的是,整个 ML.NET库是建立在整个.NETCore 框架强大的功能之上的

整个ML.NET框架以一组NuGet包的形式提供。如果要开始构建模型,不再需要其他更多的东西。从16.6.1版本开始,Visual Studio 还提供了模型生成器向导,可以分析输入数据并选择最佳的可用算法。

二 Windows AI Studio 

微软在北京时间11月16日开幕的Ignite 2023大会中,面向开发者推出了全新的“Windows AI Studio”体验,在Win11系统上可以简化、加速AI应用的开发工作。

Windows AI Studio 通过将 Azure AI Studio 和其他目录(如 Hugging Face)的前沿 AI 开发工具和模型融合到一起,来简化生成式 AI 应用的开发。

Windows AI Studio 使开发人员能够微调、自定义和部署先进的小型语言模型 (SLM),以便在其 Windows 应用本地使用 SLM。 它提供一个端到端引导式工作区设置程序,其中包括模型配置 UI 和引导式演练,以微调常用 SLM(如 Phi)以及 Llama 2 和 Mistral 等先进模型。

开发人员可以使用集成到工作区中的提示流和 Gradio 模板快速测试其微调的模型。

https://github.com/microsoft/windows-ai-studio

vs code中安装

https://marketplace.visualstudio.com/items?itemName=ms-windows-ai-studio.windows-ai-studio

安装的必须条件:

  • Windows AI Studio will run only on NVIDIA GPUs for the preview, so please make sure to check your device spec.
  • WSL Ubuntu distro 18.4 or greater should be installed and is set to default prior to using Windows AI Studio. 

 

看如下的一些GPU需求和性能【GPU至少8G内存】,没有满足需求的GPU 无法使用

 

如下是在vs code中进行数据训练的详细截图和说明