Project Bonsai 자율 시스템을 사용하여 머신 티칭

Azure Container Instances
Azure Container Registry
Azure Storage

솔루션 아이디어

이 문서는 솔루션 아이디어입니다. 잠재적인 사용 사례, 대체 서비스, 구현 고려 사항 또는 가격 책정 지침과 같은 추가 정보로 콘텐츠를 확장하려면 GitHub 피드백을 제공하여 알려 주세요.

Project Bonsai가 머신 티칭, 심층 강화 학습 및 시뮬레이션을 사용하여 자율 시스템을 빌드하고 배포하는 방법을 알아봅니다.

아키텍처

Project Bonsai는 AI 기반 자동화를 빠르게 만듭니다. 개발 및 배포에는 빌드, 학습 및 배포의 세 단계가 있습니다.

Diagram that shows the architecture of Project Bonsai.

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

  1. 빌드 단계는 머신 티칭 프로그램을 작성하고 도메인별 학습 시뮬레이터에 연결하는 것으로 구성됩니다. 시뮬레이터는 실험 및 컴퓨터 실습을 위한 충분한 학습 데이터를 생성합니다.

    AI 백그라운드가 없는 실무 전문가는 전문 지식을 단계, 작업, 조건 및 원하는 결과로 표현할 수 있습니다. 엔지니어는 시스템 및 환경의 정확하고 상세한 모델을 만들고 딥 러닝, 모방 학습 및 보충 학습과 같은 방법을 사용하여 시스템을 지능적으로 만들어 자율 시스템을 빌드합니다.

  2. 학습 단계에서 학습 엔진은 상위 수준 도메인 모델을 적절한 DRL 알고리즘 및 인공신경망과 결합하여 DRL 모델 생성 및 학습을 자동화합니다.

    시뮬레이션은 실제 세계에서 가능한 것보다 훨씬 빠르고 안전한 다양한 종류의 환경 조건 및 시나리오에서 모델을 학습합니다. 전문가는 에이전트가 시뮬레이션된 환경에서 문제를 해결하기 위해 작업하는 동안 에이전트를 감독하고 에이전트가 시뮬레이션 내에서 동적으로 적응할 수 있도록 피드백과 지침을 제공할 수 있습니다.

  3. 배포 단계에서는 학습된 두뇌를 클라우드, 온-프레미스 또는 포함형 사이트의 대상 애플리케이션에 배포합니다. 특정 SDK 및 배포 API는 학습된 AI 컴퓨터를 다양한 대상 애플리케이션에 배포하고 컴퓨터 튜닝을 수행하며 실제 컴퓨터를 제어합니다.

    학습이 완료되면 엔지니어는 이러한 학습을 받은 에이전트를 현실 세계에 배치하고 지식을 사용하여 자율 시스템을 구동합니다.

구성 요소

  • Project Bonsai는 스마트 자율 컴퓨터를 학습하고 배포하기 위해 DRL로 머신 티칭을 단순화합니다.

  • Azure Container Registry는 모든 형식의 컨테이너 배포를 위해 컨테이너 이미지와 아티팩트를 저장하고 관리하는 데 사용되는 관리 프라이빗 Docker 레지스트리 서비스입니다. 이미지는 안전하게 저장되며 배포 속도를 높이기 위해 다른 지역에 복제할 수 있습니다. 요청 시 빌드하거나 소스 코드 커밋 및 기본 이미지 업데이트와 같은 트리거를 사용하여 빌드를 자동화할 수 있습니다. Container Registry는 오픈 소스 Docker Registry 2.0을 기반으로 합니다.

    이 아키텍처는 Container Registry의 기본 계층을 사용하여 내보낸 두뇌와 업로드된 시뮬레이터를 저장합니다.

  • Azure Container Instances는 서버리스 Microsoft Azure 환경에서 필요에 따라 컨테이너를 실행합니다. Container Instances는 Azure에서 컨테이너를 실행하는 가장 빠르고 간단한 방법이며 가상 머신을 프로비전하거나 더 높은 수준의 서비스를 채택할 필요가 없습니다.

    이 아키텍처는 Container Instances를 사용하여 시뮬레이션을 실행합니다.

  • Azure Storage는 개체, blob, 파일, 디스크, 큐 및 테이블 스토리지를 포함하는 클라우드 스토리지 솔루션입니다.

    이 아키텍처는 업로드된 시뮬레이터를 ZIP 파일로 저장하기 위해 스토리지를 사용합니다.

시나리오 정보

AI(인공 지능)와 기계 학습은 복잡한 업계 컴퓨터를 자동화하기 위한 고유한 기회와 과제를 제공합니다. 머신 티칭은 알고리즘에서 벗어나 성공적인 모델 생성 및 배포에 초점을 맞추는 기계 학습 컴퓨터를 빌드하기 위한 새로운 패러다임입니다.

머신 티칭은 DRL(심층 강화 학습)시뮬레이션을 통해 주체 전문 지식을 자동화된 AI 머신 티칭에 주입합니다. 주체 전문 지식과 실제 상황에 집중하기 위해 AI 복잡성을 추상화하면 자동 제어 시스템을 자율 시스템으로 전환하는 모델이 만들어집니다.

자율 시스템은 다음과 같은 자동화 제어 시스템입니다.

  • 머신 티칭을 사용하여 인간 영역 지식을 AI 및 기계 학습과 결합합니다.
  • DRL 알고리즘 및 모델의 생성 및 관리를 자동화합니다.
  • 학습 중에 모델 최적화 및 확장성을 위해 시뮬레이션을 통합합니다.
  • 실제 사용을 위해 배포하고 크기 조정합니다.

잠재적인 사용 사례

이 솔루션은 교육, 시설, 부동산, 제조, 정부, 자동차, 미디어 및 엔터테인먼트 업계에 이상적입니다. Project Bonsai는 AI 기반 자동화 만들기 속도를 높여 제품 품질과 효율성을 개선하는 동시에 가동 중지 시간을 줄입니다. 이제 미리 보기로 제공되며 이를 사용하여 시스템을 자동화할 수 있습니다. 다음과 같은 문제에 직면했을 때 Bonsai를 고려합니다.

  • 기존 제어 시스템은 배포 시 취약합니다.
  • 기계 학습 논리는 모든 시나리오를 적절하게 다루지 않습니다.
  • 원하는 시스템 동작을 설명하려면 문제 영역을 이해하는 실무 전문가가 필요합니다.
  • 모든 시나리오에 적용할 수 있는 충분한 실제 데이터를 생성하는 것은 어렵거나 불가능합니다.
  • 기존 제어 시스템은 실제 세계에 배포하고 크기 조정하기가 어렵습니다.

머신 티칭은 AI 과학과 소프트웨어를 전통적인 엔지니어링 및 도메인 전문성과 연결합니다. 애플리케이션의 예는 다음과 같습니다.

  • 모션 제어
  • 기계 보정
  • 스마트 빌딩
  • 산업용 로봇 공학
  • 프로세스 제어

시나리오 배포

다음 구현은 배포 예입니다. 리소스에 따라 이러한 솔루션이 어떻게 설계되었는지 이해할 수 있습니다. Project Bonsai를 사용하여 고유한 솔루션을 빌드하고 배포합니다.

머신 티칭 서비스

Bonsai를 사용하여 다음을 수행할 수 있습니다.

  • 직관적인 목표와 학습 목적, 실시간 성공 평가 및 자동 버전 관리 제어로 적응형 브레인을 학습시킵니다.
  • 실제 문제를 구현하고 현실적인 피드백을 제공하는 학습 시뮬레이션을 통합합니다.
  • 학습된 두뇌를 내보내고 온-프레미스, 클라우드 또는 IoT Edge 디바이스 또는 임베디드 디바이스에 배포합니다.

Bonsai 사용자 인터페이스는 다음과 같습니다.

Bonsai user interface

Bonsai에서 관리 Azure GPU(그래픽 처리 장치) 클러스터는 복잡한 인공신경망에서 대규모로 AI 학습을 실행하며 AI 시스템 버전을 재학습하고 분석하기 위한 기본 제공 지원을 제공합니다. 배포 및 런타임 프레임워크는 결과 AI 시스템 모델을 대규모로 패키지하고 배포합니다.

Bonsai 플랫폼은 Azure에서 실행되고 리소스 비용을 Azure 구독에 청구합니다.

Inkling

Inkling은 Bonsai에서 AI를 학습하기 위한 선언적이고 정적 형식의 프로그래밍 언어입니다. Inkling은 기계 학습에 대한 전문 지식이 필요한 동적 AI 알고리즘을 추상화하여 더 많은 개발자가 AI를 프로그래밍할 수 있도록 합니다. Inkling 파일은 AI를 가르치는 데 필요한 개념커리큘럼 또는 개념을 가르치는 방법을 정의합니다.

Inkling example

학습 엔진

Bonsai의 학습 엔진은 머신 티칭 프로그램을 컴파일하여 AI 컴퓨터를 자동으로 생성하고 학습합니다. 메서드는 다음 작업을 수행합니다.

  • 모델 생성, 관리 및 튜닝을 자동화합니다.
  • 인공신경망 아키텍처를 정의합니다. 계층 수 및 토폴로지와 같은 특성을 지정하고 최상의 DRL 알고리즘을 선택하며 모델의 하이퍼 매개 변수를 조정합니다.
  • 시뮬레이터에 연결하고 학습을 조정합니다.

언어 컴파일러가 프로그래머에게 컴퓨터 코드를 숨기는 것처럼 학습 엔진은 기계 학습 모델 및 DRL 알고리즘의 세부 정보를 숨깁니다. 새로운 알고리즘과 네트워크 토폴로지가 발명됨에 따라 학습 엔진은 이를 활용하기 위해 동일한 머신 티칭 프로그램을 다시 컴파일할 수 있습니다.

Cartpole 샘플

Bonsai에는 Cartpole 및 Moab이라는 두 가지 머신 티칭 샘플이 포함되어 있습니다.

Cartpole 샘플에는 활성화되지 않은 관절로 카트에 부착된 기둥이 있습니다. 카트는 마찰이 없는 직선 트랙을 따라 움직이고 폴은 카트의 움직임에 따라 앞뒤로 움직입니다. 사용 가능한 센서 정보에는 카트 위치 및 속도와 폴 각도 및 각속도가 포함됩니다. 지원되는 에이전트 작업은 카트를 왼쪽 또는 오른쪽으로 미는 것입니다.

폴은 똑바로 시작하며 목표는 카트가 움직일 때 수직으로 유지하는 것입니다. 막대가 똑바로 유지되는 모든 시간 간격에 대해 생성된 보상이 있습니다. 폴이 수직에서 15도 이상 벗어나거나 카트가 트랙 중앙에서 미리 정의된 단위 수 이상 이동하면 학습 에피소드가 종료됩니다.

이 샘플은 Inkling 언어를 사용하여 머신 티칭 프로그램을 작성하고 제공된 Cartpole 시뮬레이터를 사용하여 학습 속도를 높이고 개선합니다.

A depiction of the Cartpole simulator, and some Inkling code

다음 Bonsai 스크린샷은 y축에 목표 만족도가 있고 x축에 학습 반복이 있는 Cartpole 학습 진행 상황을 보여 줍니다. 대시보드에는 목표 만족도의 백분율과 총 경과 학습 시간도 표시됩니다.

Bonsai dashboard showing the Cartpole training example

Cartpole 예에 대한 자세한 내용을 보거나 직접 사용해 보려면 다음을 참조하세요.

시뮬레이터

시뮬레이션은 의도한 물리적 환경의 가상 표현으로 시스템을 모델링합니다. 시뮬레이션은 수작업으로 학습 정책을 만들거나 대량의 실제 학습 데이터를 수집하는 대안적 방식입니다. 시뮬레이션을 통해 위험한 환경이나 현실 세계에서 재현하기 어려운 조건에서 학습할 수 있습니다.

시뮬레이션은 다음과 같은 이유로 DRL에 대한 이상적인 학습 원본입니다.

  • 사용자 지정 환경을 유연하게 만들 수 있습니다.
  • 데이터 생성에 안전하고 비용 효율적입니다.
  • 여러 학습 컴퓨터에서 동시에 실행하여 학습 속도를 높일 수 있습니다.

시뮬레이션은 기계 및 전기 공학, 자율 주행 차량, 보안 및 네트워킹, 전송 및 물류, 로봇 공학과 같은 광범위한 업계 및 시스템에서 사용할 수 있습니다.

시뮬레이션 도구에는 다음이 포함됩니다.

  • Simulink: 동적 시스템을 모델링, 시뮬레이션 및 분석하기 위해 MathWorks에서 개발한 그래픽 프로그래밍 도구입니다.
  • Gazebo: 복잡한 실내 및 실외 환경에서 로봇 인구를 시뮬레이션합니다.
  • Microsoft AirSim: 오픈 소스 로봇 시뮬레이션 플랫폼입니다.

Bonsai 플랫폼에는 Simulink 및 AnyLogic 시뮬레이터가 포함되어 있습니다. 다른 사용자를 추가할 수 있습니다.

AirSim

Microsoft AirSim(Aerial Informatics and Robotics Simulation): 자율 시스템을 학습하도록 설계된 오픈 소스 로봇 시뮬레이션 플랫폼입니다. AirSim은 디자이너와 개발자가 모델 학습 및 디버깅에 필요한 대량의 데이터를 생성할 수 있는 현실적인 시뮬레이션 도구를 제공합니다.

AirSim은 지상 차량, 바퀴 달린 로봇 공학, 공중 드론, 심지어 정적 IoT 디바이스에서 데이터를 캡처할 수 있으며 비용이 많이 드는 현장 작업 없이도 데이터를 캡처할 수 있습니다.

AirSim screenshot

AirSim은 Epic Games의 Unreal Engine 편집기에 대한 플러그 인으로 작동하여 건물 환경을 제어하고 재현하기 어려운 실제 이벤트를 시뮬레이션하여 의미 있는 데이터를 캡처합니다. AirSim은 현재 게임 엔진 렌더링, 물리 및 인식 계산을 활용하여 정확한 실제 시뮬레이션을 만듭니다.

효율적으로 생성된 지상 실측 데이터를 기반으로 하는 이 현실감은 현실 세계에서 시간이 많이 걸리거나 위험한 복잡한 임무를 연구하고 실행할 수 있게 해줍니다. 예를 들어, AirSim은 자율 차량을 빌드하는 연구원을 위해 사실적인 환경, 차량 동역학 및 다중 모드 감지를 제공합니다. 시뮬레이터의 충돌은 거의 비용이 들지 않지만 시스템 디자인을 개선하기 위한 실행 가능한 정보를 제공합니다.

ARM(Azure Resource Manager) 템플릿을 사용하여 개발 환경을 자동으로 만들고 Visual Studio Code에서 AirSim에 연결된 Python 애플리케이션을 코딩 및 디버그할 수 있습니다. 자세한 내용은 Azure의 AirSim 개발 환경을 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

Jose Contreras | 수석 소프트웨어 엔지니어링 관리자

다음 단계