SynapseML이란?

SynapseML(이전에는 MMLSpark)은 대규모로 확장 가능한 ML(기계 학습) 파이프라인을 간편하게 만들 수 있는 오픈 소스 라이브러리입니다. SynapseML은 텍스트 분석, 비전, 변칙 검색 등의 다양한 기계 학습 작업에 간단하고 구성 가능하며 분산된 API를 제공합니다. SynapseML은 Apache Spark 분산 컴퓨팅 프레임워크를 기반으로 하며 SparkML/MLLib 라이브러리와 동일한 API를 공유하므로, SynapseML 모델을 기존 Apache Spark 워크플로에 원활하게 포함할 수 있습니다.

SynapseML을 사용하면 확장성 있는 인텔리전트 시스템을 구축하여 변칙 검색, 컴퓨터 비전, 딥 러닝, 텍스트 분석 등과 같은 도메인의 과제를 해결할 수 있습니다. SynapseML은 단일 노드, 다중 노드 및 탄력적으로 크기를 조정할 수 있는 컴퓨터 클러스터에서 모델을 학습시키고 평가할 수 있습니다. 이렇게 하면 리소스를 낭비하지 않고 작업을 스케일링할 수 있습니다. SynapseML은 Python, R, Scala, Java 및 .NET에서 사용할 수 있습니다. 뿐만 아니라 해당 API는 다양한 데이터베이스, 파일 시스템 및 클라우드 데이터 저장소를 추상화하여 데이터가 어디에 있든 실험을 간소화합니다.

SynapseML을 사용하려면 Scala 2.12, Spark 3.0 이상 및 Python 3.6 이상이 필요합니다.

SynapseML의 주요 기능

모델을 만들고, 학습시키고, 채점하는 데 사용되는 통합 API

SynapseML은 내결함성 분산 프로그램 개발을 간소화하는 통합 API를 제공합니다. 특히 SynapseML은 확장 가능하고 데이터 및 언어에 구애받지 않는 단일 API 아래에 다양한 기계 학습 프레임워크를 노출하며 일괄 처리, 스트리밍 및 애플리케이션 서비스를 위해 작동합니다.

통합 API는 여러 도구, 프레임워크, 알고리즘을 표준화하고 분산 기계 학습 환경을 간소화합니다. 이를 통해 개발자는 서로 다른 기계 학습 프레임워크를 신속하게 구성하고, 코드를 깔끔하게 유지하고, 둘 이상의 프레임워크가 필요한 워크플로를 사용할 수 있습니다. 예를 들어 웹 감독 학습 또는 검색 엔진 만들기와 같은 워크플로에는 여러 서비스와 프레임워크가 필요합니다. SynapseML은 이러한 복잡성으로부터 사용자를 보호합니다.

미리 빌드된 인텔리전트 모델 사용

SynapseML의 여러 도구는 레이블이 지정된 큰 학습 데이터 세트가 필요 없습니다. 대신 SynapseML은 비즈니스 및 연구와 관련된 대규모 AI 과제를 신속하게 해결할 수 있도록 Azure AI 서비스처럼 미리 빌드된 인텔리전트 서비스를 위한 간단한 API를 제공합니다. SynapseML을 사용하면 개발자는 50개가 넘는 여러 첨단 ML 서비스를 시스템과 데이터베이스에 직접 포함할 수 있습니다. 이처럼 즉시 사용 가능한 알고리즘은 다양한 문서를 구문 분석하고, 다중 화자 대화를 실시간으로 전사하고, 텍스트를 100개가 넘는 언어로 번역할 수 있습니다. 사전 빌드된 AI를 사용하여 작업을 신속하게 해결하는 방법에 대한 추가 예를 보려면 SynapseML "인지" 예를 참조하세요.

SynapseML을 Azure AI 서비스와 빠르고 효율적으로 통합할 수 있도록 SynapseML에는 서비스 지향 워크플로에 대한 여러 최적화가 도입되었습니다. 특히 SynapseML은 일반적인 제한 응답을 자동으로 구문 분석하여 작업 때문에 백 엔드 서비스에 과부하가 걸리지 않도록 합니다. 또한 지수 백오프를 사용하여 신뢰할 수 없는 네트워크 연결 및 실패한 응답을 처리합니다. 마지막으로, Spark의 작업자 컴퓨터는 늘 Spark에 대한 새로운 비동기 병렬 처리 기본 형식을 처리합니다. 비동기 병렬 처리를 사용하므로 작업자 머신은 서버의 응답을 기다리는 동안 요청을 보낼 수 있으며 처리량을 10배 높일 수 있습니다.

ONNX와의 광범위한 에코시스템 호환성

SynapseML을 사용하면 개발자는 ONNX(Open Neural Network Exchange) 프레임워크를 통해 여러 ML 에코시스템의 모델을 사용할 수 있습니다. 이렇게 통합하면 몇 줄의 코드만으로 다양한 클래식 및 딥 러닝 모델을 대규모로 실행할 수 있습니다. SynapseML은 작업자 노드에 ONNX 모델을 분산하고, 처리량을 높이기 위해 입력 데이터를 일괄 처리 및 버퍼링하고, 하드웨어 가속기에서 작업 일정을 관리하는 작업을 자동으로 처리합니다.

ONNX를 Spark로 가져오면 개발자가 딥 러닝 모델을 스케일링하는 데 도움이 될 뿐 아니라, 다양한 ML 에코시스템에서 분산 유추가 가능합니다. 특히 ONNXMLTools는 SynapseML을 사용하여 더 빠르고 분산된 유추가 가능하도록 모델을 TensorFlow, scikit-learn, Core ML, LightGBM, XGBoost, H2O 및 PyTorch에서 ONNX로 변환합니다.

책임 있는 AI 시스템 빌드

모델을 빌드한 후에는 연구원과 엔지니어가 모델 배포 전에 모델의 제한 사항과 동작을 이해해야 합니다. SynapseML은 모델이 특정 예측을 수행하는 이유와 학습 데이터 세트를 개선하여 편견을 제거하는 방법을 밝히는 새로운 도구를 도입하여 개발자와 연구원이 책임 있는 AI 시스템을 빌드할 수 있도록 도와줍니다. SynapseML은 개발자가 수백 대의 컴퓨터에 계산을 분산할 수 있도록 하여 사용자의 학습된 모델을 이해하는 프로세스 속도를 크게 높입니다. 더 자세히 말해서, SynapseML에 SHAP(Shapley Additive Explanations) 및 LIME(Locally Interpretable Model-Agnostic Explanations)의 분산 구현이 도입되어 비전, 텍스트 및 테이블 형식 모델의 예측을 설명할 수 있습니다. 또한 ICE(개별 조건부 기대) 및 인식된 편향 데이터 세트에 대한 부분 의존성 분석과 같은 도구도 포함하고 있습니다.

Azure Synapse Analytics의 엔터프라이즈 지원

SynapseML은 엔터프라이즈 지원을 통해 Azure Synapse Analytics에서 일반 공급됩니다. Azure AI 서비스, LightGBM, ONNX 및 기타 선택된 SynapseML 기능을 사용하여 대규모 기계 학습 파이프라인을 빌드할 수 있습니다. 시각적 검색 엔진, 예측 유지 관리 파이프라인, 문서 번역 등과 같은 분산 기계 학습 시스템의 프로토타입을 신속하게 만들 수 있는 템플릿도 포함되어 있습니다.

다음 단계