블로그 구독

올해의 Ray Summit에서 IBM Research와 함께 구축 중인 인프라 스택을 선보이게 되어 매우 기쁩니다. 여기에는 생성형 AI 분산 워크로드를 위한 RayCodeFlare가 포함됩니다. 이 기술은 Open Data Hub와 같은 오픈소스 커뮤니티에 도입된 후 성숙 단계를 거쳐 Red Hat OpenShift AI의 일부가 되었습니다. 이는 IBM watsonx.aiRed Hat Ansible Automation Platform에서 사용하는 IBM 파운데이션 모델도 뒷받침합니다. Red Hat OpenShift AI는 기반 모델을 미세 조정 및 서빙하는 프로세스를 원활히 수행하고 확장성과 효율성을 높일 수 있도록 설계된 강력한 툴과 기술 제품군을 통합합니다. 이 플랫폼은 온사이트든 클라우드든 상관없이 모델을 일관되게 튜닝, 훈련, 배포할 수 있는 툴을 제공합니다. Red Hat은 최근에 기반 모델을 미세 조정하고 서빙하는 다양한 옵션을 제공하여 데이터 사이언스 및 MLOps 실무자에게 클러스터 리소스에 대한 실시간 액세스 또는 배치 처리를 위한 워크로드 예약과 같은 기능을 제공하고 있습니다. 

이 블로그에서는 Red Hat OpenShift AI를 사용하여 WikiText 데이터세트에서 1억 3,700만 개의 매개 변수로 구성된 HuggingFace GPT-2 모델을 원활하게 미세 조정한 다음 배포하는 방법을 알아봅니다. 미세 조정의 경우 병렬화를 위해서는 기본 KubeRay와 함께 분산 워크로드 스택을 사용하고, 미세 조정된 Red Hat GPT- 2 기반 모델의 배포와 모니터링을 위해서는 KServe/Caikit/TGIS 스택을 활용합니다.

분산 워크로드 스택은에는 다음 두 가지 주요 구성 요소가 포함됩니다.

  • KubeRay: 분산 컴퓨팅 워크로드를 실행하는 원격 Ray 클러스터의 배포와 관리를 위한 쿠버네티스 오퍼레이터
  • CodeFlare: 세 가지 구성 요소의 라이프사이클을 배포하고 관리하는 쿠버네티스 오퍼레이터
    • CodeFlare-SDK: 원격 분산 컴퓨팅 작업과 인프라를 정의하고 제어하기 위한 툴. CodeFlare 오퍼레이터는 CodeFlare-SDK를 사용하여 Notebook 배포.
    • MCAD(Multi-Cluster Application Dispatcher): 단일 또는 다중 클러스터 환경에서 배치 작업을 관리하기 위한 쿠버네티스 컨트롤러
    • InstaScale: MachineSets 설정을 사용하여 모든 OpenShift 플레이버에서 집계된 리소스의 온디맨드 확장(자체 관리형 또는 관리형 - Red Hat OpenShift on AWS/Open Data Hub)
Ray Summit 1-ko

그림 1. 분산 워크로드에서 구성 요소와 사용자 워크플로우 간 상호 작용

그림 1에서 볼 수 있듯이, Red Hat OpenShift AI에서 기반 모델 튜닝은 모델의 구축, 훈련 및 미세 조정을 간소화하는 다이나믹 프레임워크인 CodeFlare로 시작됩니다. 이를 기반으로, KubeRay를 사용하여 미세 조정 작업을 효율적으로 분산하여 최적의 모델 성능을 달성하는 데 필요한 시간을 크게 단축하는 분산형 컴퓨팅 프레임워크인 Ray의 기능을 활용합니다. 워크로드 미세 조정을 정의하고 나면 MCAD는 리소스 요구 사항이 충족될 때까지 Ray 워크로드를 대기열에 추가하고, 모든 포드를 예약할 수 있다는 보장만 되면 Ray 클러스터를 생성합니다.

서빙 측면에서 KServe/Caikit/TGIS 스택은 다음과 같이 구성됩니다.

  • KServe: 모델 배포의 라이프사이클을 처리하는 프로덕션 서빙 모델을 위한 쿠버네티스 사용자 지정 리소스 정의
  • TGIS(텍스트 생성 추론 서버): 모델을 로드하고 추론 엔진을 제공하는 서빙 백엔드/서버
  • Caikit: TGIS 프로세스의 라이프사이클을 처리하는 AI 툴킷/런타임으로, 다양한 모델 유형을 처리하는 추론 엔드포인트와 모듈 제공
  • OpenShift Serverless(필수 오퍼레이터): 개발자가 엔터프라이즈급 서버리스 및 이벤트 기반 애플리케이션을 빌드하고 배포할 수 있도록 지원하는 오픈소스 Knative 프로젝트가 기반
  • OpenShift Service Mesh(필수 오퍼레이터): 오픈소스 Istio 프로젝트를 기반으로 구축되며, 서비스 메쉬에서 네트워크화된 마이크로서비스에 대한 행동 기반 인사이트와 운영 제어를 위한 플랫폼 제공
Ray Summit 2-ko

그림 2. KServe/Caikit/TGIS 스택의 구성 요소와 사용자 워크플로우 간 상호 작용

모델을 미세 조정한 후에는 신뢰할 수 있는 고급 서빙 인프라를 제공하는 KServe를 사용하여 모델의 확장 및 유지 관리를 간소화하면서 Caikit/TGIS 서빙 런타임과 백엔드로 모델을 배포합니다. 백그라운드에서 Red Hat OpenShift Serverless(Knative)는 Red Hat 모델의 서버리스 배포를 프로비저닝하고 Red Hat OpenShift Service Mesh(Istio)는 모든 네트워킹과 트래픽 흐름을 처리합니다(그림 2 참조).

환경 설정

이 데모에서는 Red Hat OpenShift AI 오퍼레이터가 설치되거나 애드온(add-on)으로 추가된 OpenShift 클러스터가 있다고 가정합니다. 데모는 Open Data Hub를 기본 플랫폼으로 하여 실행할 수도 있습니다.

모델을 미세 조정하려면 OperatorHub에서 사용할 수 있는 CodeFlare 커뮤니티 오퍼레이터를 설치 해야 합니다. CodeFlare 오퍼레이터는 MCAD, InstaScale, KubeRay 오퍼레이터 및 CodeFlare Notebook 이미지를 codeflare-sdk, pytorch, torchx와 같은 패키지로 설치합니다. GPU를 사용하는 경우 NVIDIA GPUNode Feature Discovery 오퍼레이터도 설치해야 합니다.

모델 서빙의 경우 스크립트를 실행하기만 하면 모든 필수 오퍼레이터와 전체 KServe/Caikit/TGIS 스택을 설치합니다. TARGET_OPERATORrhods로 설정하세요. 

여기에서는 분산 워크로드와 KServe/Caikit/TGIS 스택에 대한 설치 지침이 다소 수동 방식이지만 Red Hat OpenShift AI에서 두 스택을 모두 사용할 수 있도록 곧 지원될 예정입니다.

LLM 모델 미세 조정

Red Hat OpenShift AI 대시보드에서 CodeFlare Notebook을 시작하고(그림 3 참조), 이 데모에 필요한 Notebook과 기타 파일이 포함된 데모 리포지토리를 복제합니다.

Ray Summit 3

그림 3. OpenShift AI 대시보드에 표시된 CodeFlare Notebook 이미지

처음에는 클러스터 이름, 배포할 네임스페이스, 필요한 CPU, GPU 및 메모리 리소스, 머신 유형 등 원하는 클러스터 유형(ClusterConfiguration)이 있거나 InstaScale의 자동 확장 기능을 활용하려는 경우 그에 대한 매개 변수를 정의해야 합니다. 온프레미스 환경에서 작업하는 경우 machine_types를 무시하고 [instascale=False를 설정할 수 있습니다. 그런 다음 클러스터 오브젝트를 생성하고 MCAD에 제출하여 Ray 클러스터를 가동합니다. 

Ray 클러스터가 준비되고 Notebook의cluster.details() 커맨드에서 Ray 클러스터 세부 정보를 확인할 수 있는 경우 이름, 실행할 스크립트, 인수가 있으면 해당 인수와 필수 라이브러리 목록을 제공하여 미세 조정 작업을 정의할 수 있으며, 방금 가동한 Ray 클러스터에 이러한 작업을 제출합니다. 인수 목록은 모델 미세 조정에 사용할 WIkiText 데이터 세트와 GPT-2 모델을 지정합니다. CodeFlare SDK의 장점은 cli를 통해 상태, 로그 및 기타 정보를 손쉽게 추적하거나 Ray 대시보드에서 볼 수 있다는 것입니다. 

모델의 미세 조정 프로세스가 완료되면 job.status() 의 출력이 SUCCEEDED 로 변경되고 Ray 대시보드의 로그에 완료가 표시됨을 확인할 수 있습니다(그림 4 참조). 1개의 Ray 작업자가 2개의 CPU와 8GB 메모리를 갖춘 NVIDIA T4 GPU에서 실행되는 경우 GPT2 모델을 미세 조정하는 데 약 45분이 걸렸습니다.

Ray Summit 4

그림 4. Ray 대시보드의 로그는 모델의 미세 조정 프로세스가 완료된 상태를 보여줍니다.

그런 다음 Notebook에 새 디렉터리를 생성하고 모델을 해당 위치에 저장한 다음 로컬 환경에 다운로드하여 해당 모델을 변환하고 나중에 MinIO 버킷에 업로드해야 합니다. 이 데모에서는 MinIO 버킷을 사용하고 있지만, 다른 유형의 S3 버킷, PVC 또는 선호하는 다른 스토리지를 사용할 수도 있습니다.

LLM 모델 서빙

기반 모델을 미세 조정했으니 이제 해당 모델을 가동할 차례입니다. 모델을 미세 조정한 동일한 Notebook에서 다음을 수행할 새 네임스페이스를 생성합니다.

  • Caikit+TGIS Serving Runtime 배포
  • S3 데이터 연결 배포
  • MinIO 버킷에 있는 모델을 가리키는 추론 서비스 배포

서빙 런타임은 프로덕션에서 모델의 배포 및 관리를 위한 환경을 생성하도록 설계된 사용자 지정 리소스 정의입니다. 온디맨드로 다양한 형식의 모델을 동적으로 로드 및 언로드하고 요청을 추론하기 위한 서비스 엔드포인트를 노출할 수 있는 포드용 템플릿을 생성합니다. 추론 서비스가 감지되면 런타임 포드를 확장하는 서빙 런타임을 배포합니다. 8085 포트는 추론에 사용됩니다.

추론 서비스는 입력 데이터를 수락하여 모델에 전달하고, 모델을 실행하고, 추론 출력을 반환하는 서버입니다. 배포 중인 InferenceService에서 이전에 배포한 런타임을 지정하고, gRPC 추론을 위한 패스스루 경로를 활성화하고, 서버가 미세 조정된 모델이 있는 MinIO 버킷을 가리키도록 합니다.

추론 서비스가 준비되었는지 확인한 후 모델에 선택한 문장을 완성하도록 요청하는 추론 호출을 수행합니다. 

이제 분산 워크로드 스택을 사용하여 GPT-2 대규모 언어 모델을 미세 조정하고 OpenShift AI에서 KServe/Caikit/TGIS 스택을 사용하여 해당 모델을 서빙했습니다. 

더 알아볼 내용 

도움을 주신 Open Data Hub와 Ray 커뮤니티에 감사드립니다. 이는 OpenShift AI의 잠재적인 AI/ML 활용 사례를 단편적으로 살펴본 것에 불과합니다. CodeFlare 스택 기능에 대해 자세히 알아보려면 이 데모의 CodeFlare SDK, KubeRay 및 MCAD 부분을 자세히 다루는 Red Hat의 데모 동영상을 확인하세요.

곧 CodeFlare 및 KubeRay 오퍼레이터를 OpenShift AI에 통합하고, 제한된 가용성 기능으로 OpenShift AI에서 최근 릴리스된 KServe/Caikit/TGIS 스택용 UI를 개발할 예정이니 계속 지켜봐 주시기 바랍니다.


저자 소개

Selbi Nuryyeva is a software engineer at Red Hat in the OpenShift AI team focusing on the Open Data Hub and Red Hat OpenShift Data Science products. In her current role, she is responsible for enabling and integrating the model serving capabilities. She previously worked on the Distributed Workloads with CodeFlare, MCAD and InstaScale and integration of the partner AI/ML services ecosystem. Selbi is originally from Turkmenistan and prior to Red Hat she graduated with a Computational Chemistry PhD degree from UCLA, where she simulated chemistry in solar panels.

Read full bio

채널별 검색

automation icon

오토메이션

기술, 팀, 인프라를 위한 IT 자동화 최신 동향

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

open hybrid cloud icon

오픈 하이브리드 클라우드

하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Original series icon

오리지널 쇼

엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리