머신러닝 모델을 테스팅 또는 임베딩

이런 경우에는 시뮬레이션된 환경 내에서 훈련된 머신 러닝 모델을 사용합니다. 다시 말하자면, 하나의 머신 러닝 모델을 먼저 애니 로직 생태계 외부에서 훈련합니다. 그 후 예측 능력을 평가 또는 활용하기 위해 해당 머신 러닝을 시뮬레이션의 일부로 포함할 수 있습니다.
머신러닝 모델을 테스팅 또는 임베딩 하려면, 실행 시간 동안 훈련된 머신러닝 모델과 시뮬레이션 모델을 연결해야 합니다. 애니로직은 언어에 관계없이 다양한 연결 옵션을 제공하며, 로컬 및 원격 연결을 위한 훈련을 받았습니다.

사용 사례 작업 흐름 및 도구

사례 1: 모델에서 추상화된 동작을 뜻하는 입력의 대안으로서의 머신러닝

시뮬레이션 모델에서 입력 매개 변수를 사용하는 한 가지 방식은 실제 시스템에 존재하는 인과법칙(예:지연 시간, 도착 속도 등)을 기반으로 하는 근사 동작을 정의하는 것입니다. 근사 동작은 일변량 확률 변수로 모델링 되거나, 어떤 상황에서는 다변량 확률 분포를 가진 확률 벡터로 모델링되기도 합니다. 대체제로서 머신러닝 모델은 이러한 유형의 입력 매개 변수에 사용될 수 있습니다.


사례 2: 머신러닝 모델을 사용하여 시뮬레이션된 시스템의 구성요소 동작의 근사 동작 계산

시뮬레이션 모델 내의 특정 구성 요소가 높은 수준의 정밀성을 요구하여 극도로 복잡할 때, 훈련된 머신러닝이 대리로 사용되어 그 동작의 근사 동작을 계산할 수 있습니다. 이는 이전의 사례와 유사하지만 반드시 단일값(또는 분포)으로 추상화 되지 않을 수도 있는 모델의 특정 구성요소와 관련이 있습니다. 이를 확실하게 보여주는 예시의 하나로, 일반적인 시뮬레이션 방식으로는 쉽게 모델링할 수 없지만 머신러닝으로는 쉽게 근사 동작을 계산할 수 있는 실데이터 기반의 물리적 장치가 있습니다.


사례 3: 기존에 배포된 머신러닝 모델을 시뮬레이션 환경에 통합하여 정확도 개선

시뮬레이션 모델은 반드시 실제 시스템의 규칙을 복제해야 합니다. 이는 주어진 시스템에 임베딩된 기존 AI 솔루션에도 적용되는 사실입니다. 시스템이 배포한 AI 솔류션의 직접적인 결과인 규칙과 동작 또한 시뮬레이션에 통합되어야 합니다. 이를 달성하는 가장 자연스러운 방법은 AI 솔루션을 시뮬레이션에 직접 임베딩하는 것입니다.


사례 4: 배포 전 시스템의 전반적인 성능에 미치는 AI 솔루션의 영향력 테스트하기

AI 구성요소를 시스템에 임베딩하는 목적은 특정 구성 요소를 AI로 대체하는 것 뿐만이 아닌, 시스템의 전반적인 성능을 개선하기 위함입니다. 잘 훈련된 AI 솔루션을 배치하면 대상 시스템의 전반적인 성능이 크게 향상될 것이라고 기대하는 것이 합리적입니다. 하지만 시스템 내부에 어떤 작은 변동이 발생하게 된다면 병목 현상이나 다른 파급 효과를 일으킬 가능성이 있습니다. 훈련된 모델을 자체적으로 테스트하는 것은(예: 테스트 테이터 샘플 사용) 수정된 시스템 전체의 성능이 충분히 향상되었는지 확인하지 못합니다. 시뮬레이션 모델은 AI를 기존 시스템에 통합한 결과를 테스트하기 위해 위험 부담 없는 가상 환경으로 사용될 수 있습니다.


사례 5: 수학의 시각화!

데이터 과학자들은 머신러닝 솔루션에 포함된 뉘앙스나 함의에 익숙하지 않은 사람들(예: 고객, 매니저, 의사 결정자 등)에게 ML 솔루션의 결과를 보여주고 전달하는 문제에 익숙합니다. 시뮬레이션 모델링 소프트웨어의 목적 중의 하나는 모델의 역동적인 동작을 시각적으로 어필할 수 있고 쉽게 이해할 수 있는 방식으로 제시하는 것에 있습니다. 따라서 시뮬레이션 환경의 성능을 시각적으로 보여줄 수 있도록 소프트웨어는 머신러닝 솔루션과 함께 사용될 수도 있고 머신러닝 없이도 사용할 수 있습니다.


사례 6: 기본 시뮬레이션 환경의 강화학습 테스트 정책

강화 학습의 궁극적인 목표는 시스템을 최적으로 제어할 수 있는 유용한 정책을 학습하는 데 있습니다. 학습 절차(훈련)이 시뮬레이션 환경에서 완료되었으므로 동일한 시뮬레이션 모델 역시 학습된 정책을 테스트하기 위해 사용될 수 있습니다. 학습된 정책의 성능을 평가하는 것은, 일반적으로 "Sim-to-Real Treansfer"라 불리는 절차, 즉 학습된 정책을 실제 시스템에 배포하는 절차 이전에 유용한 단계입니다.

작업 흐름 및 도구

머신러닝 모델을 테스팅 또는 임베딩 하려면, 실행 시간 동안 훈련된 머신러닝 모델과 시뮬레이션 모델을 연결해야 합니다. 애니로직은 언어에 관계없이 세 가지 일반 연결 옵션을 제공하며, 로컬 및 원격 연결을 위한 훈련을 받았습니다.

ONNX 헬퍼 라이브러리를 사용하여 훈련된 ML 모델 접근

ONNX 헬퍼 라이브러리를 사용하여 훈련된 ML 모델 접근

훈련된 ML 모델이 저장된 ".onnx" 형식으로 접근하기 위해 ONNX 헬퍼 라이브러리를 사용합니다.

ONNX 형식은 Open Neural Network Exchange의 약자로, 훈련된 ML 모델에 대한 표준화되고 프레임워크 간 호환 가능한 형식입니다.

ONNX Helper는 호환 가능한 Java 라이브러리가 있지만, 이를 사용하려면 비교적 고급 기술 지식이 필요합니다. ONNX Helper는 모든 AnyLogic (개인 학습 에디션, 대학 에디션, 또는 전문가 에디션)과 호환되는 무료 다운로드 추가 라이브러리로, 사용자가 모델에 끌어다 놓고 단일 기능을 활용할 수 있는 간단하고 쉬운 방법을 제공하여 ML 모델을 쿼리할 수 있습니다.

더 알아보기
API 호출을 통한 통신

API 호출을 통한 통신

머신러닝/자동 머신러닝 플랫폼이 호스팅하는 머신러닝 모델과의 (API 호출을 통한)원격 통신

모든 훈련된 머신러닝 모델은 API를 통해 쿼리되는 방식으로 배포될 수 있습니다. 거의 대부분의 인기 있는 머신러닝/자동 머신러닝 플랫폼에서 즉시 이를 실행 가능한 간편한 메커니즘을 제공합니다. 시뮬레이션 내에서 간단 코드를 추가하여 적절한 시간에 요청을 만들고 반환된 예측을 적용할 수 있습니다. 이 작업 순서를 통해 훈련된 머신러닝 모델의 프로그래밍 언어를 추상화할 수 있습니다.

시뮬레이션 환경에 임배드된 머신러닝 모델

시뮬레이션 환경에 임배드된 머신러닝 모델

기본적으로 훈련된 머신 러닝을 시뮬레이션 환경에 임베딩합니다.

훈련된 머신러닝 모델의 로컬 쿼리는 애니로직의 기본 언어인 자바로 훈련이 수행되었거나 훈련 플랫폼을 통해 머신 러닝 모델이 자바에서 사용가능한 형식으로 전송(export)되었을 때 가능합니다. 예를 들어, H2O.ai driveless AI와 함께, 훈련된 모델은 MOJO(Model Objects, Optimized: 모델 객체, 최적화됨), 즉 자바 라이브러리의 도움으로 모든 자바 환경에서 배포될 수 있는 스코어링 엔진으로 다운로드할 수 있습니다.

파이프라인 라이브러리를 사용해 머신 러닝 모델에 액세스

파이프라인 라이브러리를 사용해 머신 러닝 모델에 액세스

파이썬 기반의 훈련된 머신러닝 모델로의 로컬 액세스를 위한 파이프라인 라이브러리 사용

파이썬 라이브러리로 배포된 훈련 머신 러닝에 접근할 수 있다면, 이를 쿼리하기 위해 파이프라인(커스텀 애니로직 라이브러리)을 사용할 수 있습니다. 파이프라인은 파이썬의 로컬 설치를 이용해 파이썬 스크립트를 인수로 실행하거나 애니로직 모델 내에서 파이썬 코드를 양방향으로 실행할 수 있게 해줍니다.

더 알아보기