Pocket Guide

MATLAB과 Python을 함께 사용하는 인공 지능

MATLAB을 PyTorch 및 TensorFlow에 통합하고 여러분의 AI 워크플로에서 LLM을 활용하는 방법을 살펴볼 수 있습니다.

이 안내서는 MATLAB과 Python® 기반 모델을 AI(인공 지능) 워크플로에 결합하는 방법을 다루고 있습니다. Deep Learning Toolbox를 사용해 MATLAB, PyTorch®, TensorFlow™ 간에 변환하는 방법을 알아볼 수 있습니다.

MATLAB을 PyTorch 및 TensorFlow에 통합하면 다음과 같은 작업을 수행할 수 있습니다.

  •   크로스 플랫폼 및 팀 간 협업 촉진
  •   모델 성능 및 시스템 통합 테스트
  •   MATLAB 및 Simulink 툴을 사용한 엔지니어드 시스템 설계
변환 흐름의 도식.

MATLAB, PyTorch 및 TensorFlow 간 변환하기

Deep Learning Toolbox 및 MATLAB을 사용하면 사전 훈련된 모델에 액세스하고 모든 유형의 심층 신경망을 설계할 수 있습니다. 하지만 모든 AI 실무자가 MATLAB으로 작업하는 것은 아닙니다. AI 탑재 시스템 설계 시 크로스 플랫폼 및 팀 간 협업을 촉진하기 위해 Deep Learning Toolbox는 PyTorch 및 TensorFlow에 통합됩니다.

PyTorch 및 TensorFlow 모델을 MATLAB으로 가져오는 이유

PyTorch 또는 TensorFlow 모델을 MATLAB 신경망으로 변환하면, 변환된 신경망에 함수 및 앱 등의 모든 MATLAB AI 내장 툴을 사용하여 전이 학습, 설명 가능한 AI 및 검증, 시스템 수준 시뮬레이션 및 테스트, 신경망 압축, 타겟 배포를 위한 자동 코드 생성을 수행할 수 있습니다.

PyTorch 및 TensorFlow 모델 가져오기 준비

PyTorch 및 TensorFlow 모델을 MATLAB으로 가져오기 전에 모델을 올바른 형식으로 준비하고 저장해야 합니다. Python에서 아래의 코드를 사용해 모델을 준비할 수 있습니다.

PyTorch 가져오기에는 추적된 PyTorch 모델이 필요합니다. PyTorch 모델을 추적한 후 저장합니다. PyTorch 모델을 추적하는 방법에 대한 자세한 내용은 Torch 문서: 함수 추적 항목을 참조하세요.

X = torch.rand(1,3,224,224)
traced_model = torch.jit.trace(model.forward,X)
traced_model.save("torch_model.pt")

TensorFlow 모델은 SavedModel 형식으로 저장해야 합니다.

model.save("myModelTF")

PyTorch 및 TensorFlow 모델을 가져오는 방법

PyTorch 및 TensorFlow가 MATLAB에 통합되는 것을 보여주는 도식.

단 한 줄의 코드로 PyTorch 및 TensorFlow에서 MATLAB으로 모델을 가져와 MATLAB 신경망으로 변환할 수 있습니다.

importNetworkFromPyTorch 함수를 사용하고 특정 PyTorch 모델에 맞는 올바른 입력 크기로 PyTorchInputSizes를 지정합니다. 이렇게 하면 PyTorch 모델에는 본질적으로 입력 계층이 없으므로 이 함수는 가져온 신경망에 대한 영상 입력 계층을 생성할 수 있습니다. 자세한 내용은 PyTorch 및 TensorFlow에서 모델 가져오기에 대한 팁 항목을 참조하세요.

net = importNetworkFromPyTorch("mnasnet1_0.pt",PyTorchInputSizes=[NaN,3,224,224])

TensorFlow에서 신경망을 가져오려면 importNetworkFromTensorFlow 함수를 사용합니다.

대화형 방식으로 PyTorch 및 TensorFlow 모델 가져오기

심층 신경망 디자이너 앱을 사용하면 PyTorch에서 대화형 방식으로 모델을 가져올 수 있습니다. 이후 앱에서 가져온 신경망을 보고, 편집하고, 분석할 수 있습니다. 앱에서 Simulink로 직접 신경망을 내보낼 수도 있습니다. 

MATLAB에서 PyTorch 및 TensorFlow로 모델을 내보내는 방법

MATLAB의 모델을 PyTorch와 ONNX 및 TensorFlow로 내보낼 수 있음을 보여주는 도식.

MATLAB 신경망을 TensorFlow와 PyTorch로 내보내고 공유할 수 있습니다. exportNetworkToTensorFlow를 사용해 TensorFlow로 직접 내보내고 exportONNXNetwork 함수를 사용해 ONNX™를 통해 PyTorch로 내보낼 수 있습니다.

exportNetworkToTensorFlow(net,"myModel")

브라우저에서 실행해보기

TensorFlow 모델을 가져와서 예측을 설명합니다.

LIME (peacock).

MATLAB 및 Simulink에서 Python 기반 모델 공동 실행

MATLAB 워크플로 또는 Simulink 시스템 내에서 직접 Python 기반 AI 모델을 사용해 모델 성능 및 시스템 통합을 테스트할 수 있습니다.

비교: 공동 실행과 모델 변환

먼저, MATLAB 환경에서 PyTorch 또는 TensorFlow 모델을 공동 실행하는 것과 외부 플랫폼 모델을 MATLAB 신경망으로 변환하는 것을 비교하여 어떤 워크플로가 여러분의 작업에 가장 적합한지 결정할 수 있습니다.

 

공동 실행

모델 변환

모든 PyTorch 및 TensorFlow 모델에 대해 작동

아니요

Simulink에서 모델 시뮬레이션

코드 자동 생성

아니요

설명 가능성 기법 적용

객체 검출에만 해당

강인성 및 신뢰성 검증

아니요

로우코드 AI 앱 사용

아니요

신경망 압축

아니요

MATLAB에서 Python 기반 모델 공동 실행

MATLAB에서 직접 PyTorch 및 TensorFlow 모델 또는 Python 코드를 호출할 수 있습니다. 이를 통해 Python 기반 모델을 비교하여 예를 들어 MATLAB에서 구축한 AI 워크플로의 일부로 가장 높은 정확도를 제공하는 모델을 찾거나 할 수 있습니다.

MATLAB에서 직접 PyTorch 및 TensorFlow 모델 또는 Python 코드를 호출하는 방법을 보여주는 도식.

Simulink에서 Python 기반 모델 공동 실행

Simulink 공동 실행 블록을 사용해 시스템 내에서 PyTorch, TensorFlow, ONNX 및 사용자 지정 Python 모델을 시뮬레이션하고 테스트할 수 있습니다. 이를 통해 설계를 반복하고 모델 거동을 평가하며 시스템 성능을 테스트할 수 있습니다.

Simulink 공동 실행 블록을 사용해 시스템 내에서 PyTorch, TensorFlow, ONNX 및 사용자 지정 Python 모델을 시뮬레이션하고 테스트하는 방법을 보여주는 도식.

AI 모델에 Simulink를 사용하는 이유

엔지니어는 AI를 모델 기반 설계에 결합하여 딥러닝 모델을 더 큰 시스템에 통합하는 과정을 테스트하는 것 외에도, 가상 센서 설계와 같은 응용 사례를 위한 복잡한 시스템 설계를 가속화하고 향상할 수 있습니다.

Simulink에서 딥러닝을 사용한 차선 및 차량 감지

Python에서 MATLAB 호출하기

Python에서 MATLAB을 호출하는 것을 보여주는 도식.

AI 워크플로에서 MATLAB을 Python에 결합하는 또 다른 방법은 Python 환경에서 MATLAB을 호출하는 것입니다. 이 옵션을 살펴보고 MATLAB의 도메인 특정 툴을 사용해 Python 기반 모델에 입력할 데이터를 준비하거나 MATLAB AI 툴을 호출해 Python 기반 AI 모델의 결정을 시각화하고 해석할 수 있습니다.

MATLAB Online에서 리포지토리 열기

MATLAB Online에서 LLM으로 작업할 수 있습니다. MATLAB 코드가 있는 File Exchange 및 GitHub® 리포지토지에는 MATLAB Online에서 열기 버튼이 있습니다. 이 버튼을 클릭하면 MATLAB Online에서 리포지토리가 바로 열립니다.


MATLAB에서 LLM 이용하기

API를 통해 또는 로컬에 모델을 설치하여 MATLAB에서 gpt-4, llama3 및 mixtral 등 널리 사용되는 LLM(대규모 언어 모델)을 이용할 수 있습니다. 그런 다음 선호하는 모델을 사용해 텍스트를 생성할 수 있습니다. 또는, MATLAB에 포함된 사전 훈련된 BERT 모델을 사용할 수 있습니다.

LLM을 사용한 자연어 처리

LLM은 인간의 언어에 존재하는 단어와 뉘앙스 사이의 복잡한 관계를 포착할 수 있기 때문에 NLP(자연어 처리)에 혁명을 일으켰습니다. MATLAB에서 LLM을 사용하는 것은 NLP 파이프라인의 일부일 뿐입니다. (MATLAB AI를 사용한 NLP 참조) MATLAB의 툴을 활용해 완벽한 파이프라인을 구축할 수 있습니다. 예를 들어, Text Analytics Toolbox 함수를 사용해 텍스트 데이터에 액세스하고 이를 준비할 수 있습니다.

자연어 처리 워크플로를 보여주는 그림.

자연어 처리 파이프라인.

리포지토리: LLMs with MATLAB

LLMs with MATLAB 리포지토리를 통해 MATLAB을 OpenAI®의 Chat Completions API(ChatGPT™의 기반), 로컬 LLM을 위한 Ollama™(로컬 LLM용) 및 Azure® OpenAI 서비스에 연결할 수 있습니다.

OpenAI API를 통해 LLM 이용하기

사용자는 리포지토리에 있는 코드를 사용해 MATLAB 환경에서 OpenAI API와 연동하고 자체 챗봇 구축 및 감성 분석을 비롯한 다양한 NLP 작업에 모델(GPT-4 및 GPT-4 Turbo 등)을 사용할 수 있습니다. OpenAI API와 연동하려면 OpenAI API 키를 받아야 합니다. 키와 요금에 대한 자세한 내용은 OpenAI API 항목을 참조하세요.

답변을 생성하기 위해 챗봇을 거치는 사용자 쿼리를 보여주는 그림.

챗봇 구축.

Azure OpenAI 서비스를 통해 LMM 이용하기

Azure OpenAI Services를 사용하려면 먼저 Azure 계정에 모델을 배포하고 모델에 대한 키를 받아야 합니다. Azure OpenAI는 OpenAI와 API를 공동 개발하고 Microsoft® Azure의 보안 기능을 추가로 제공합니다. LLMs with MATLAB 리포지토리는 MATLAB에서 Azure OpenAI Services에 연결할 수 있는 코드를 제공합니다.

Ollama를 통해 로컬 LLM 이용하기

리포지토리의 코드를 사용하고 MATLAB을 로컬 Ollama 서버에 연결하면 llama3, mistral 및 gemma 등 널리 사용되는 로컬 LLM를 이용할 수 있습니다. 자체 데이터를 사용하여 LLM의 정확도를 향상할 수 있는 RAG(검색증강생성)와 같은 NLP 작업에 로컬 LLM을 사용할 수 있습니다.

검색증강생성의 워크플로를 보여주는 그림.

검색증강생성의 워크플로.

브라우저에서 실행해보기

MATLAB과 OpenAI API를 사용해 간단한 챗봇을 만들 수 있습니다.


패널 내비게이션

튜토리얼

Deep Learning Onramp

MATLAB의 영상 분류 문제에 대한 딥러닝의 기본 사항을 학습할 수 있습니다.