프로젝트 소개

ML.NET은 .NET 생태계를 위해 구축된 크로스 플랫폼 오픈 소스 머신러닝 프레임워크입니다. 이 프레임워크의 핵심 가치는 .NET 개발자가 머신러닝 전문 지식이나 Python 또는 R과 같은 다른 언어에 대한 유창함 없이도 애플리케이션 내에서 커스텀 머신러닝 모델을 구축, 학습, 배포 및 활용할 수 있게 한다는 점입니다. 이 프레임워크는 전체 파이프라인을 포함합니다. 파일 및 데이터베이스에서의 데이터 로딩, 데이터 변환, 그리고 내장된 ML 알고리즘 라이브러리가 포함됩니다. 분류, 예측, 이상 탐지 등 일반적인 시나리오를 지원합니다. 자체 트레이너 외에도 ML.NET은 TensorFlow 및 ONNX 모델을 활용할 수 있어 지원 시나리오의 범위를 넓히고 프레임워크의 확장성을 높입니다. 플랫폼 지원 범위는 넓습니다. ML.NET은 .NET Core를 통해 Windows, Linux 및 macOS에서 실행되며, .NET Framework를 통해 Windows에서도 실행됩니다. 또한 ARM64, Apple M1 및 Blazor WebAssembly에서도 실행되지만 일부 문서화된 플랫폼 제한 사항이 있습니다. 모든 플랫폼에서 64비트가 지원되며, 32비트는 Windows에서 지원되지만 TensorFlow 및 LightGBM 관련 기능은 제외됩니다. 배포는 NuGet을 통해 이루어집니다. 주요 패키지는 Microsoft.ML이며, .NET Core CLI(`dotnet add package Microsoft.ML`), NuGet 패키지 관리자(`Install-Package Microsoft.ML`), Visual Studio의 패키지 관리자 또는 Paket을 통해 설치할 수 있습니다. 데일리 빌드도 Azure DevOps 피드에 게시됩니다. 이 프로젝트는 .NET Core 2.1 이상 또는 .NET Framework 4.6.1 이상(4.7.2 이상 권장)을 요구합니다. README에 표시된 일반적인 워크플로우는 다음과 같습니다: MLContext를 생성하고, 텍스트 로더로 CSV를 로드하며, 텍스트를 피처링하고 이진 분류 트레이너(FastTree)를 추가하는 학습 파이프라인을 구축한 후, 모델을 적합(fit)시키고, 새로운 입력을 점수화하기 위한 예측 엔진을 생성합니다. README는 전체 예제를 위한 별도 샘플 저장소(dotnet/machinelearning-samples)와 함께 문서, API 참조, 튜토리얼 및 YouTube 재생 목록을 가리킵니다. 릴리스 주기는 .NET 릴리스 트레인과 연동됩니다. 주요 ML.NET 릴리스는 주요 .NET 릴리스와 함께 연 1회 출시됩니다(예: ML.NET 1.7은 2021년 11월 .NET 6와 함께, ML.NET 2.0은 .NET 7과 함께 등). 유지보수를 위한 릴리스 브랜치가 관리됩니다. CI 커버리지는 CentOS, Ubuntu, macOS, Windows x64, Windows Full Framework, Windows x86 및 Windows .NET Core 3.1을 포함하며, Debug 및 Release 구성 모두를 지원합니다. ML.NET은 MIT 라이선스 하에 있으며, 상업적으로 무료로 사용할 수 있고 .NET Foundation의 프로젝트입니다. 이 프로젝트는 기여를 환영하며 Discord에 활발한 커뮤니티가 있고, 정기적으로 .NET Machine Learning Community Standup이 진행됩니다.