MLOps 실무자를 위한 GenAIOps
이 문서에서는 기존 MLOps(기계 학습 작업) 투자가 있고 워크로드에 생성 AI를 포함하도록 투자를 확장하려는 워크로드 팀에 대한 지침을 제공합니다. 생성 AI 워크로드를 운영하려면 생성 AI Ops(GenAIOps, LLMOps라고도 함)를 사용하여 MLOps 투자를 확장해야 합니다. 이 문서에서는 기존 기계 학습 및 생성 AI 워크로드에 공통적인 기술 패턴과 생성 AI에 대한 특정 패턴을 간략하게 설명합니다. 이 문서는 운영화에 기존 투자를 적용할 수 있는 위치와 해당 투자를 확장해야 하는 위치를 이해하는 데 도움이 됩니다.
생성 AI 기술 패턴
생성 AI 워크로드는 다음과 같은 몇 가지 방법으로 기존의 기계 학습 워크로드와 다릅니다.
생성 모델에 집중합니다. 기존 기계 학습 워크로드는 특정 작업을 수행하도록 학습된 새 모델을 학습시키는 데 중점을 줍니다. 생성 AI 워크로드는 다양한 사용 사례에 대응할 수 있는 생성 모델을 사용하며, 경우에 따라 여러 입력 출처를 처리할 수 있습니다.
모델 확장에 집중합니다. 기존 기계 학습의 핵심 자산은 배포된 모델입니다. 모델에 대한 액세스는 하나 이상의 워크로드에서 클라이언트 코드에 제공되지만 워크로드는 MLOps 프로세스의 일부가 아닙니다. 생성 AI 솔루션을 사용하면 솔루션의 핵심 패싯은 생성 모델에 제공되는 프롬프트입니다. 프롬프트를 작성해야 하며 하나 이상의 데이터 저장소의 데이터를 포함할 수 있습니다. 논리를 오케스트레이션하고, 다양한 백 엔드를 호출하고, 프롬프트를 생성하며, 생성 모델에 대한 호출은 GenAIOps로 제어해야 하는 생성 AI 시스템의 일부입니다.
일부 생성 AI 솔루션은 모델 학습 및 미세 조정과 같은 기존 기계 학습 사례를 사용하지만 모두 표준화해야 하는 새로운 패턴을 도입합니다. 이 섹션에서는 생성 AI 솔루션에 대한 세 가지 광범위한 기술 패턴 범주에 대한 개요를 제공합니다.
- 사전 학습 및 미세 조정
- 신속한 엔지니어링
- RAG(Retrieval-augmented Generation)
언어 모델 학습 및 미세 조정
현재 많은 생성 AI 솔루션은 사용하기 전에 미세 조정이 필요하지 않은 기존 기본 언어 모델을 사용합니다. 그러나 일부 사용 사례는 기본 모델을 미세 조정하거나 SLM(작은 언어 모델)과 같은 새로운 생성 AI 모델을 학습하는 것이 도움이 될 수 있습니다.
새 SLM을 학습시키고 생성 기반 모델을 미세 조정하는 것은 기존의 기계 학습 모델 학습과 논리적으로 동일한 프로세스입니다. 이러한 프로세스는 기존 MLOps 투자를 사용해야 합니다.
신속한 엔지니어링
프롬프트 엔지니어링에는 생성 모델에 대한 입력으로 전송되는 프롬프트를 생성하는 데 관련된 모든 프로세스가 포함됩니다. 일반적으로 프롬프트를 생성하는 워크플로를 제어하는 오케스트레이터가 있습니다. 오케스트레이터는 임의의 수의 데이터 저장소를 호출하여 접지 데이터와 같은 정보를 수집하고 가장 효과적인 프롬프트를 생성하는 데 필요한 논리를 적용할 수 있습니다. 그런 다음, 오케스트레이터는 지능형 애플리케이션의 클라이언트 코드에서 액세스하는 API 엔드포인트로 배포됩니다.
다음 다이어그램은 프롬프트 엔지니어링을 위한 아키텍처를 보여줍니다.
이 기술 패턴 범주는 다음을 비롯한 많은 사용 사례를 해결할 수 있습니다.
- 분류.
- 번역.
- 요약.
- 검색 보강 생성은 다음 섹션에서 설명합니다.
검색 증강 생성
RAG(검색 강화 생성)는 프롬프트 엔지니어링을 사용하여 도메인별 데이터를 언어 모델의 기반 데이터로 통합하는 아키텍처 패턴입니다. 언어 모델은 특정 데이터 집합에 대해 학습됩니다. 워크로드에는 회사, 고객 또는 도메인과 관련된 데이터에 대한 추론이 필요할 수 있습니다. RAG 솔루션에서 데이터는 쿼리되고, 결과는 일반적으로 오케스트레이션 계층을 통해 프롬프트의 일부로 언어 모델에 제공됩니다.
일반적인 RAG 구현은 문서를 청크로 분할하고 메타데이터와 함께 벡터 저장소에 저장하는 것입니다. Azure AI 검색과 같은 벡터 저장소를 사용하면 텍스트 및 벡터 유사성 검색을 모두 수행하여 상황에 맞는 결과를 반환할 수 있습니다. RAG 솔루션은 다른 데이터 저장소를 사용하여 접지 데이터를 반환할 수도 있습니다.
다음 다이어그램에서는 RAG 아키텍처를 보여 줍니다.
생성 AI 기술 패턴에 대한 MLOps 확장
이 섹션에서는 생성 AI 기술 패턴에 대한 내부 및 외부 루프 단계의 다음 주요 측면을 설명하고 기존 MLOps 투자를 적용할 수 있는 위치와 확장해야 하는 위치를 이해하는 데 도움이 됩니다.
DataOps
MLOps와 GenAIOps는 모두 DataOps의 기본 사항을 적용하여 데이터가 실험 및 평가를 위해 올바르게 정리, 변환 및 포맷되도록 하는 확장 가능하고 재현 가능한 워크플로를 만듭니다. 워크플로 재현성 및 데이터 버전 관리 기능은 모든 기술 패턴에 대한 DataOps의 중요한 기능입니다. 데이터의 원본, 형식 및 의도는 패턴에 따라 다릅니다.
학습 및 미세 조정
이 기술 패턴은 MLOps 구현의 일부로 만든 기존 DataOps 투자를 완전히 활용해야 합니다. 재현성 및 데이터 버전 관리 기능을 사용하면 다양한 기능 엔지니어링 데이터를 실험하고, 다양한 모델의 성능을 비교하고, 결과를 재현할 수 있습니다.
RAG 및 프롬프트 엔지니어링
RAG 솔루션의 데이터에 대한 목표는 프롬프트 일부로 언어 모델에 제공되는 기반 데이터를 제공하는 것입니다. RAG 솔루션은 대용량 문서를 적절한 크기의 의미 체계적으로 관련된 청크 컬렉션으로 처리하고 이러한 청크를 벡터 저장소에 유지해야 하는 경우가 많습니다. 자세한 내용은 RAG 솔루션 설계 및 개발을 참조하세요. RAG 솔루션에 대한 재현성 및 데이터 버전 관리 기능을 사용하면 다양한 청크 분할 및 포함 전략을 실험하고, 성능을 비교하고, 이전 버전으로 롤백할 수 있습니다.
문서 청크 분할을 위한 데이터 파이프라인은 기존 MLOps의 DataOps에 속하지 않으므로 아키텍처 및 작업을 확장해야 합니다. 데이터 파이프라인은 구조화된 데이터와 구조화되지 않은 데이터를 모두 포함하는 서로 다른 원본에서 데이터를 읽을 수 있습니다. 변환된 데이터를 다른 대상에 쓸 수도 있습니다. 접지 데이터에 사용하는 데이터 저장소를 포함하도록 아키텍처를 확장해야 합니다. 이러한 패턴에 대한 일반적인 데이터 저장소는 AI Search와 같은 벡터 저장소입니다.
학습 및 미세 조정과 마찬가지로 Azure Machine Learning 파이프라인 또는 기타 데이터 파이프라인 도구를 사용하여 청크 분할 단계를 오케스트레이션할 수 있습니다. Azure Machine Learning 파이프라인의 프롬프트 흐름을 활용하여 일관되고 재현 가능한 방식으로 데이터를 처리하고 보강할 수 있습니다. 또한 데이터 저장소에서 검색 인덱스의 새로 고침 및 유효성을 유지하려면 작업을 확장해야 합니다.
실험
내부 루프의 일부인 실험은 솔루션을 만들고, ,평가하고, 구체화하는 반복적인 프로세스입니다. 다음 섹션에서는 일반적인 생성 AI 기술 패턴에 대한 실험에 대해 설명합니다.
학습 및 미세 조정
기존 언어 모델을 미세 조정하거나 작은 언어 모델을 학습하는 경우 현재 MLOps 투자를 활용할 수 있습니다. 예를 들어 Azure Machine Learning 파이프라인은 실험을 효율적이고 효과적으로 수행하기 위한 도구 키트를 제공합니다. 이러한 파이프라인을 사용하면 데이터 전처리에서 모델 학습 및 평가에 이르기까지 전체 미세 조정 프로세스를 관리할 수 있습니다.
RAG 및 프롬프트 엔지니어링
프롬프트 엔지니어링 및 RAG 관련 워크로드를 실험하려면 MLOps 투자를 확장해야 합니다. 이러한 기술 패턴의 경우 워크로드는 모델로 끝나지 않습니다. 워크로드에는 논리를 실행하고, 데이터 접지와 같은 필수 정보를 위해 데이터 저장소를 호출하고, 프롬프트를 생성하고, 언어 모델을 호출할 수 있는 시스템인 오케스트레이터가 필요합니다. 저장소의 데이터 저장소 및 인덱스도 워크로드의 일부입니다. 워크로드의 이러한 측면을 제어하려면 작업을 확장해야 합니다.
프롬프트 엔지니어링 솔루션을 위해 다양한 지침, 페르소나, 예제, 제약 조건 및 프롬프트 체인과 같은 고급 기술을 포함하여 여러 가지 측면에서 실험해볼 수 있습니다. RAG 솔루션을
- 청크 분할 전략
- 청크 보강 방법 및 방법
- 임베딩 모델
- 검색 인덱스 구성
- 수행할 검색(벡터, 전체 텍스트, 하이브리드 등)
DataOps설명한 대로 재현성 및 데이터 버전 관리가 실험의 핵심입니다. 좋은 실험 프레임워크를 사용하면 하이퍼 매개 변수 또는 프롬프트에 대한 변경 내용과 같은 입력과 실험평가할 때 사용할 출력을 저장할
기존 MLOps 환경에서와 마찬가지로 Azure Machine Learning 파이프라인과 같은 프레임워크를 활용할 수 있습니다. Azure Machine Learning 파이프라인에는 AI Search와 같은 벡터 저장소와 통합하여 인덱싱을 지원하는 기능이 있습니다. GenAIOps 환경은 이러한 파이프라인 기능을 활용하고 프롬프트 엔지니어링 및 사용자 지정 전처리 논리를 관리하는 프롬프트 흐름 기능과 결합할 수 있습니다.
평가 및 실험
평가는 솔루션을 빌드, 평가 및 구체화하는 반복적인 실험 프로세스에서 핵심입니다. 변경 내용을 평가하면 구체화를 수행하거나 현재 반복이 요구 사항을 충족하는지 확인하는 데 필요한 피드백을 제공합니다. 다음 섹션에서는 일반적인 생성 AI 기술 패턴에 대한 실험 단계의 평가에 대해 설명합니다.
학습 및 미세 조정
세밀하게 조정되거나 학습된 생성 AI 모델을 평가하려면, 기존의 MLOps 투자를 적극 활용해야 합니다. 예를 들어 Azure Machine Learning 파이프라인을 사용하여 기계 학습 모델 학습을 오케스트레이션하는 경우 동일한 평가 기능을 사용하여 기본 언어 모델을 미세 조정하거나 새로운 작은 언어 모델을 학습할 수 있습니다. 이러한 기능에는 특정 모델 유형에 대한 업계 표준 평가 메트릭을 계산하고 모델 간 결과를 비교하는 모델 평가 구성 요소포함됩니다.
RAG 및 프롬프트 엔지니어링
기존 MLOps 투자를 생성형 AI 솔루션을 평가하기 위해 확장해야 합니다. 평가 프레임워크를 제공하는 프롬프트 흐름과 같은 도구를 사용할 수 있습니다. 프롬프트 흐름을 통해 팀은 조건 및 메트릭을 지정하여 다양한 프롬프트 변형 및 LLM(대규모 언어 모델)의 성능을 평가하여 사용자 지정 평가 논리를 정의할 수 있습니다. 이 구조화된 접근 방식을 사용하면 하이퍼 매개 변수 또는 아키텍처 변형과 같은 다양한 구성을 나란히 비교하여 특정 작업에 대한 최적의 설정을 식별할 수 있습니다.
프롬프트 흐름의 작업은 실험 프로세스 전반에 걸쳐 입력 및 출력 데이터를 자동으로 캡처하여 포괄적인 실험 기록을 만듭니다. 이 데이터를 분석하여 향후 반복을 알릴 수 있는 정보를 얻고 유망한 구성을 식별할 수 있습니다. 프롬프트 흐름을 사용하여 효율적이고 체계적인 실험을 수행하여 생성 AI 솔루션 개발을 가속화할 수 있습니다.
실험 프로세스는 생성 AI 솔루션의 사용 사례에 관계없이 동일합니다. 이러한 사용 사례에는 분류, 요약, 번역 및 RAG도 포함됩니다. 중요한 차이점은 다양한 사용 사례를 평가하는 데 사용하는 메트릭입니다. 다음은 사용 사례에 따라 고려해야 할 몇 가지 메트릭입니다.
- 변환: BLEU
- 요약: ROUGE. BLEU, BERTScore, METEOR
- 분류: 정밀도, 재현율, 정확도, 교차 엔트로피
- RAG: 근거성, 관련성
참고 항목
언어 모델 및 RAG 솔루션 평가에 대한 자세한 내용은 LLM 엔드 투 엔드 평가 참조하세요.
일반적으로 생성 AI 솔루션은 기계 학습 팀의 책임을 모델 학습에서 프롬프트 엔지니어링 및 기반 데이터 관리까지 확장합니다. 프롬프트 엔지니어링 및 RAG 실험 및 평가에 반드시 데이터 과학자가 필요한 것은 아니므로 소프트웨어 엔지니어 및 데이터 엔지니어와 같은 다른 역할을 사용하여 이러한 기능을 수행하는 것이 좋습니다. 프롬프트 엔지니어링 및 RAG 솔루션을 실험하는 과정에서 데이터 과학자를 생략하면 문제가 발생합니다. 다른 역할은 일반적으로 많은 데이터 과학자처럼 결과를 과학적으로 평가하는 데 학습되지 않습니다. 7부로 구성된 문서 시리즈 인 RAG 솔루션을 디자인하고 개발하여 생성 AI 솔루션 설계의 복잡성을 이해하세요.
생성 AI 솔루션에 투자하면 데이터 과학 리소스의 부담을 일부 덜 수 있습니다. 소프트웨어 엔지니어의 역할은 이러한 솔루션에서 확장됩니다. 예를 들어 소프트웨어 엔지니어는 생성 AI 솔루션에서 오케스트레이션 책임을 관리하는 데 유용한 리소스이며 프롬프트 흐름과 같은 도구에서 평가 메트릭을 설정하는 데 능숙합니다. 데이터 과학자가 이 작업을 검토하도록 하는 것이 중요합니다. 그들은 실험을 제대로 평가하는 방법을 이해하는 교육과 경험을 가지고 있습니다.
배포
일부 생성 AI 솔루션에는 사용자 지정 학습 모델을 배포하거나 기존 모델을 미세 조정하는 작업이 포함되지만 다른 솔루션은 그렇지 않습니다. 생성 AI 솔루션의 경우 오케스트레이터 및 데이터 저장소를 배포하는 추가 작업을 포함해야 합니다. 다음 섹션에서는 일반적인 생성 AI 기술 패턴에 대한 배포에 대해 설명합니다.
학습 및 미세 조정
기존 MLOps 투자를 활용하여, 필요한 경우 약간의 조정을 통해 생성 AI 모델을 배포하고, 기초 모델을 미세 조정해야 합니다. 예를 들어 Azure OpenAI에서 큰 언어 모델을 미세 조정하려면 학습 및 유효성 검사 데이터 세트가 JSONL 형식인지 확인하고 REST API를 통해 데이터를 업로드해야 합니다. 또한 미세 조정 작업을 만들어야 합니다. 학습된 소규모 언어 모델을 배포하려면 기존 MLOps 투자를 활용할 수 있습니다.
RAG 및 프롬프트 엔지니어링
RAG 및 프롬프트 엔지니어링의 경우 오케스트레이션 논리, 인덱스 및 스키마와 같은 데이터 저장소 변경, 데이터 파이프라인 논리 변경 등 추가적인 문제가 있습니다. 오케스트레이션 논리는 일반적으로 프롬프트 흐름, 의미 체계 커널 또는 LangChain과 같은 프레임워크에 캡슐화됩니다. 현재 사용자 지정 모델을 배포할 수 있는 리소스를 포함하여 다른 컴퓨팅 리소스에 오케스트레이터를 배포할 수 있습니다. Azure Machine Learning에서 관리하는 온라인 엔드포인트 또는 Azure App Service에 프롬프트 흐름을 배포하는 예제는 Azure OpenAI 엔드 투 엔드 채팅 아키텍처 참조하세요. App Service에 배포하기 위해 Azure OpenAI 채팅 아키텍처는 흐름과 해당 종속성을 컨테이너로 패키지합니다. 이는 다양한 환경에서 이식성과 일관성을 높이는 방법입니다.
데이터 모델 또는 인덱스 변경과 같은 데이터베이스 리소스에 대한 변경 내용의 배포는 GenAIOps에서 처리해야 하는 새로운 작업입니다. 대규모 언어 모델을 사용하는 경우 일반적인 방법은 LLM 앞에서 게이트웨이를 사용하는 것입니다.
Azure OpenAI에서 제공되는 것과 같이 플랫폼 호스팅 언어 모델을 사용하는 많은 생성 AI 아키텍처에는 Azure API Management같은
오케스트레이터와 같은 생성 AI와 관련된 요소의 배포는 다음과 같은 적절한 운영 절차를 따라야 합니다.
- 단위 테스트를 포함한 엄격한 테스트.
- 통합 테스트.
- A/B 테스트.
- 엔드 투 엔드 테스트.
- 카나리아 배포 또는 블루/그린 배포와 같은 롤아웃 전략
생성 AI 애플리케이션에 대한 배포 책임은 모델 배포를 넘어 확장되므로 사용자 인터페이스, 오케스트레이터 및 데이터 저장소와 같은 항목의 배포 및 모니터링을 관리하기 위해 추가 작업 역할이 필요할 수 있습니다. 이러한 역할은 종종 DevOps 엔지니어 기술 집합에 맞춰집니다.
추론 및 모니터링
추론은 학습되고 배포된 모델에 입력을 전달한 다음 응답을 생성하는 프로세스입니다. 운영 모니터링, 프로덕션 학습 및 리소스 관리의 세 가지 관점에서 기존의 기계 학습 및 생성 AI 솔루션을 모두 모니터링해야 합니다.
운영 모니터링
운영 모니터링은 데이터 작업(DataOps) 및 모델 학습을 포함하여 시스템의 진행 중인 작업을 관찰하는 프로세스입니다. 이러한 유형의 모니터링은 오류, 오류 비율 변경, 처리 시간 변경 등 편차를 찾습니다.
모델 학습 및 미세 조정의 경우 일반적으로 기능 데이터 처리, 모델 학습 및 미세 조정을 위한 데이터 작업을 관찰합니다. 이러한 내부 루프 프로세스의 모니터링은 기존 MLOps 및 DataOps 투자를 활용해야 합니다.
생성 AI 솔루션의 프롬프트 엔지니어링을 위해 추가 모니터링 문제가 있습니다. 접지 데이터 또는 프롬프트를 생성하는 데 사용되는 다른 데이터를 처리하는 데이터 파이프라인을 모니터링해야 합니다. 이 처리에는 인덱스 빌드 또는 다시 작성과 같은 데이터 저장소 작업이 포함될 수 있습니다.
프로덕션에서 학습
추론 단계 중 모니터링의 중요한 측면은 프로덕션에서 학습하는 것입니다. 기존 기계 학습 모델에 대한 모니터링은 정확도, 정밀도 및 재현율과 같은 메트릭을 추적합니다. 주요 목표는 예측 드리프트를 방지하는 것입니다. 예측을 하는 생성 모델을 사용하는 솔루션은, 예를 들어 GPT 모델을 분류에 사용하여, 기존 MLOps 모니터링 투자를 활용해야 합니다.
생성 모델을 사용하여 접지 데이터를 추론하는 솔루션은 접지성, 완전성, 사용률 및 관련성같은
RAG 솔루션과 같은 예측 불가능한 작업에 생성 모델을 사용하는 솔루션은 종종 최종 사용자의 사용자 피드백을 활용하여 유용성 감정을 평가합니다. 사용자 인터페이스는 엄지 손가락 또는 아래쪽과 같은 피드백을 캡처할 수 있으며 이 데이터를 사용하여 응답을 주기적으로 평가할 수 있습니다.
생성 AI 솔루션의 일반적인 패턴은 생성 모델 앞에 게이트웨이를 배포하는 것입니다. 게이트웨이의 사용 사례 중 하나는 기본 모델을 모니터링하는 것입니다. 게이트웨이를 사용하여 입력 프롬프트 및 출력을 기록할 수 있습니다.
생성 솔루션을 모니터링하는 또 다른 주요 영역은 콘텐츠 안전성입니다. 목표는 응답을 조정하고 유해하거나 바람직하지 않은 콘텐츠를 감지하는 것입니다. Azure AI Content Safety Studio
리소스 관리
Azure OpenAI와 같이 서비스로 노출된 모델을 사용하는 생성 솔루션에는 직접 배포하는 모델과 리소스 관리 문제가 다릅니다. 서비스로 노출되는 모델의 경우 인프라에 관심이 없습니다. 대신 서비스 처리량, 할당량, 속도 제한에 관심이 있습니다. Azure OpenAI는 청구, 제한 및 할당량에 토큰을 사용합니다. 비용 관리 및 성능 효율성에 대한 할당량 사용량을 모니터링해야 합니다. Azure OpenAI를 사용하면 토큰 사용량을 기록할 수 있습니다.
도구
많은 MLOps 실무자는 자동화, 추적, 배포, 실험 등을 위한 다양한 활동을 구성하기 위한 도구 키트를 표준화하여 이러한 프로세스의 일반적인 관심사 및 구현 세부 정보를 추상화했습니다. 일반적인 통합 플랫폼은 MLflow입니다. GenAIOps 패턴을 지원하는 새 도구를 찾기 전에 기존 MLOps 도구를 검토하여 생성 AI에 대한 지원을 평가해야 합니다. 예를 들어 MLflow는 언어 모델에 대한 광범위한 기능을 지원합니다.
MLOps 및 GenAIOps 완성도 모델
MLOps 완성도 모델 사용하여 현재 기계 학습 작업 및 환경의 완성도를 평가했을 수 있습니다. 생성 AI 워크로드에 대한 MLOps 투자를 확장할 때 GenAIOps 완성도 모델을 사용하여 해당 작업을 평가해야 합니다. 두 완성도 모델을 결합하려는 유혹이 있을 수 있지만 각각을 독립적으로 측정하는 것이 좋습니다. MLOps 및 GenAIOps는 서로 독립적으로 진화합니다. 예를 들어 MLOps 완성 모델에서는 수준 4에 있지만 생성 AI의 경우 수준 1에 있을 수 있습니다.
요약
생성 AI를 포함하도록 MLOps 투자를 확장하기 시작하면 다시 시작할 필요가 없다는 것을 이해하는 것이 중요합니다. 일부 생성 AI 기술 패턴에 기존 MLOps 투자를 사용할 수 있습니다. 생성 모델을 미세 조정하는 것이 좋은 예입니다. 프롬프트 엔지니어링 및 RAG와 같은 생성 AI 솔루션의 영역은 새로운 프로세스이므로 기존 운영 투자를 확장하고 새로운 기술을 습득해야 합니다.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
- 루이스 브라즈 | 선임 기술 전문가
- 마르코 아우렐리오 카르도소 | 수석 소프트웨어 엔지니어
- 파울로 라세르다 | 클라우드 솔루션 설계자
- 리테시 모디 | 주요 소프트웨어 엔지니어
비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.