GitLab AI Gateway 내부 구조: GitLab Duo에 차세대 LLM을 등록하는 방법
요약
본 글은 GitLab Duo의 AI 기능이 메인 모놀리스에 직접 통합되지 않고, 전문적인 Python/FastAPI 서비스인 'AI Gateway'를 통해 라우팅되는 아키텍처 구조를 설명합니다. 이 게이트웨이를 활용하여 Gemini 4 Argon과 같은 차세대 LLM을 모델 레지스트리에 등록하고 관리하는 방법을 심층적으로 다룹니다.
핵심 포인트
- GitLab AI Gateway는 모델 민첩성과 데이터 개인정보 보호를 위해 분리형 아키텍처를 채택했습니다.
- AI 기능은 전문 FastAPI 서비스(ai-assist)를 통해 라우팅되어 모놀리스의 부담을 줄입니다.
- 모델 등록 및 관리는 설정 기반(configuration-driven)이며, Pydantic 스키마로 검증됩니다.
- 새로운 LLM 추가는 게이트웨이 레지스트리에 모델 정의와 가격 지표 프로비저닝 과정을 거칩니다.
GitLab AI Gateway 내부 구조: GitLab Duo에 차세대 LLM을 등록하는 방법
소프트웨어 개발 플랫폼들이 생성형 AI를 개발자 워크플로우에 직접 통합하기 위해 경쟁하면서, GitLab Duo는 분리되고 개인 정보 보호를 우선시하는 아키텍처 접근 방식인 GitLab AI Gateway로 차별화를 이루었습니다.
GitLab은 언어 모델을 메인 GitLab Rails 모놀리스(monolith)에 직접 하드코딩하는 대신, 모든 AI 기능(Code Suggestions, Duo Chat, Vulnerability Explanation, Root Cause Analysis)을 전문적이고 고성능의 Python/FastAPI 서비스인 gitlab-org/modelops/applied-ml/code-suggestions/ai-assist를 통해 라우팅합니다.
최근 저는 GitLab AI Gateway에 **Merge Request !7251**을 기여하여 (Issue #3001 해결), Google의 차세대 Gemini 4 Argon 모델 (gemini_4_argon_vertex)을 AI Gateway의 모델 레지스트리(model registry)에 등록하고, 여기에 1,000,000 토큰 컨텍스트 창, 64k 출력 토큰 용량 및 단위 기본 요소(unit primitives) 전반에 걸쳐 업데이트된 가격 지표를 프로비저닝했습니다.
이 심층 분석에서 저는 다음 내용을 다룰 것입니다:
- GitLab AI Gateway의 분리형 아키텍처.
- 모델 구성 및 수명 주기 작동 방식 (
models.yml및unit_primitives.yml). - GitLab Duo에 새로운 파운데이션 모델(foundation model)을 추가하는 단계별 지침.
- 24개의 AI Gateway CI 작업, 컨테이너 테스트 및 linter를 통과시키는 방법.
1. 아키텍처 개요: GitLab Duo가 AI 모델과 소통하는 방식
AI Gateway가 GitLab의 아키텍처에서 어디에 위치하는지 이해하는 것이 필수적입니다:
+-------------------------------------------------------------+
| 개발자 IDE / 웹 UI |
| (VS Code, JetBrains, GitLab Web Workspace) |
...
AI Gateway를 분리해야 하는 이유?
- 모델 민첩성(Model Agility): 모델을 추가, 업그레이드 또는 벤치마킹하는 과정에서 거대한 Rails 애플리케이션을 재시작하거나 배포할 필요가 없습니다.
- 데이터 개인정보 보호(Data Privacy): AI Gateway는 엄격한 제로 데이터 보유(zero-data-retention) 보장을 강제하며, 민감한 기업 텔레메트리를 프롬프트가 외부 하이퍼스케일러에 도달하기 전에 제거합니다.
- 다중 공급자 폴백(Multi-Provider Fallback): 상위 공급자가 요청을 제한하거나 지연 시간 급증을 경험할 경우, 게이트웨이는 프롬프트를 원활하게 재라우팅할 수 있습니다.
2. GitLab AI Gateway에서의 모델 생명주기 (Model Lifecycle)
GitLab AI Gateway에서 모델 정의는 주로 설정 기반(configuration-driven)이며 엄격한 Pydantic 스키마로 검증됩니다.
GitLab Duo가 지원하는 모든 모델은 두 가지 핵심 구성 파일에 의해 관리됩니다:
ai_gateway/models/definitions/models.yml: 하드웨어 매개변수, 컨텍스트 제한(context limits), 공급자 엔드포인트 및 비용 지표를 정의합니다.ai_gateway/models/definitions/unit_primitives.yml: 특정 GitLab Duo 기능(예:duo_chat,code_suggestions,explain_vulnerability)을 승인된 모델 엔진에 매핑합니다.
3. 단계별 가이드: Gemini 4 Argon (gemini_4_argon_vertex) 추가
단계 A: models.yml에 모델 정의하기
Vertex AI 공급자 섹션 아래에서, 우리는 토큰 제한 및 가격 책정 메타데이터와 함께 새로운 모델 항목을 등록했습니다:
- name: gemini_4_argon_vertex
provider: vertex_ai
model_family: gemini
...
이 매개변수들이 중요한 이유:
context_window: 1000000: GitLab Duo가 코드 검토 중 전체 코드 저장소와 대규모 의존성 트리를 단일 프롬프트로 가져올 수 있도록 합니다.max_output_tokens: 65536: 대규모 리팩터링 작업이 함수 중간에 잘리는 것을 방지합니다.pricing: GitLab 사용량 대시보드에서 정확한 엔터프라이즈 좌석 청구 및 토큰 소비 텔레메트리를 가능하게 합니다.
단계 B: 유닛 프리미티브에 바인딩하기 (unit_primitives.yml)
모델은 특정 유닛 프리미티브(unit primitives) (내부 기능)에 대해 승인되지 않으면 GitLab Duo에서 사용될 수 없습니다.
We mapped gemini_4_argon_vertex를 Duo Chat 및 Advanced Code Generation에 연결했습니다:
duo_chat:
description: "코드 검토, 디버깅 및 일반 소프트웨어 질의응답을 위한 대화형 채팅 비서."
compatible_models:
...
단계 C: 유효성 검사 사양(Validation Specs) 및 회귀 커버리지 추가
AI Gateway는 잘못 구성된 설정이 프로덕션에 도달하지 않도록 엄격한 스키마 테스트를 적용합니다.
tests/models/test_model_registry.py에 자동화된 테스트 커버리지를 추가했습니다:
import pytest
from ai_gateway.models.registry import ModelRegistry
...
4. GitLab CI/CD에서 24개의 CI 작업 처리하기
GitLab AI Gateway에 기여하는 가장 보람 있는 측면 중 하나는 그 검증 파이프라인의 엄청난 엄격함입니다. Merge Request !7251은 다음을 포함하여 24개의 자동화된 CI 작업을 트리거했습니다:
poetry-lock-check: 패키지 무결성을 검증합니다.ruff-format및ruff-lint: Python PEP 표준 준수를 보장합니다.mypy-typecheck: 모델 페이로드 전반에 걸쳐 엄격한 정적 타입 안전성을 강제합니다.yamllint: 모든 정의 파일에서 유효한 YAML 구조를 확인합니다.pytest-unit: 프롬프트 컴파일러 및 스트리밍 래퍼 전반에 걸쳐 수천 개의 단위 테스트(unit tests)를 실행합니다.docker-build-test: 프로덕션 클러스터에 배포되는 실제 컨테이너 이미지를 컴파일합니다.
24개 CI 작업 모두 첫 번째 검토 주기에서 녹색으로 표시되어, 유지 관리자 팀이 변경 사항을 신속하게 검토하고 프로덕션에 병합할 수 있었습니다.
5. 이것이 GitLab 개발자에게 제공하는 것
최첨단 모델(frontier models)과 대규모 컨텍스트 창(context windows)을 GitLab Duo에 통합함으로써:
- 전체 저장소 기반 지식(Full-Repository Grounding): 개발자는 파일을 잘라내지 않고 파일 간의 아키텍처 변경 사항에 대해 질문할 수 있습니다.
- 더 깊은 취약점 수정(Deeper Vulnerability Remediation): SAST/DAST 보안 파이프라인이 경고를 표시할 때, Duo는 호출 사이트와 라이브러리 정의 모두를 분석하여 정확한 패치를 작성할 수 있습니다.
- 비용 최적화(Cost Optimization): 세분화된 토큰 측정 지표(token metrics)는 조직이 속도, 추론 깊이 및 예산을 원활하게 균형 맞추도록 합니다.
6. GitLab AI Gateway에 기여하는 방법
GitLab의 AI Gateway는 오픈 소스이며 커뮤니티의 기여를 적극적으로 환영합니다:
- 레포지토리:
gitlab-org/modelops/applied-ml/code-suggestions/ai-assist를 확인해 보세요. - 이슈 찾기:
AI Gateway,model registry또는Duo Chat레이블이 붙은 이슈를 찾아보세요. - 기여자 포인트 획득: 모든 기여는 GitLab Contributor Platform에서 스웨그, 인정 및 해커톤 수상에 사용할 포인트를 적립해 줍니다.
링크 및 참고 자료
- Merge Request !7251: gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/merge_requests/7251
- 해결된 이슈 #3001: gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/work_items/3001
- GitLab Contributor Profile: contributors.gitlab.com/users/hrlpavan
- GitHub: @hrlpavan
GitLab Duo, AI Gateway 또는 LLM 모델 레지스트리에 대해 궁금한 점이 있나요? 아래에 댓글을 남겨주세요!
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기