This page contains information related to upcoming products, features, and functionality. It is important to note that the information presented is for informational purposes only. Please do not rely on this information for purchasing or planning purposes. The development, release, and timing of any products, features, or functionality may be subject to change or delay and remain at the sole discretion of GitLab Inc.
Status Authors Coach DRIs Owning Stage Created
proposed @sean_carroll @jessieay @susie.bee @m_gill devops ai-powered 2024-03-29

Self-Hosted Model Deployment

이 블루프린트는 GitLab Dedicated 및 .com에서 제공되는 기본 Vertex 또는 Anthropic 모델 대신 GitLab Duo 기능의 Mistral LLMs의 고객 자체 배포를 지원하는 내용을 설명합니다. 이 프로젝트는 인터넷에 연결된 GitLab 설치뿐만 아니라 공기 격리된 GitLab 설치를 모두 지원합니다.

동기

자체 호스팅 LLM 모델을 사용하면 고객이 기업 내부 호스팅 LLM 백엔드로의 요청을 end-to-end으로 관리할 수 있습니다. GitLab은 Google Vertex 및 Anthropic의 기본 LLM 백엔드를 제공하지만, GitLab과 외부에서 호스팅되는 것입니다. GitLab Duo 기능 개발자들은 AI Gateway를 통해 기타 LLM 선택에 액세스할 수 있습니다. 모델 및 지역 정보에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

목표

Self-Managed형 모델은 고객이 자체 LLM 인프라를 관리할 수 있는 고급 사용자를 대상으로 합니다. GitLab은 지원되는 모델을 LLM 기능에 연결할 수 있는 옵션을 제공합니다. 특정 GitLab Duo 기능을위한 모델별 프롬프트 및 GitLab Duo 기능 지원이 자체 호스팅 모델 기능에 의해 제공됩니다.

  • LLM 모델 선택
  • 모든 데이터 및 요청/응답 로그를 직접 보유할 수 있는 능력
  • 사용자를 위해 특정 GitLab Duo 기능을 선택할 수 있는 능력
  • .com AI Gateway에 대한 의존성 없음

비목표

현재 블루프린트의 현재 반복에 대한 명시적으로 범위에서 제외된 사용자 정의 모델 그룹의 목표이자 장래에 일부 중첩될 수 있는 기타 기능입니다. 이에는 다음이 포함됩니다.

  • 로컬 모델
  • RAG
  • 세밀한 조정
  • GitLab이 현재 지원하는 타사 모델 이외의 오픈 소스 모델의 GitLab 관리 호스팅
  • 사용자 고유의 API 키 (BYOK)

제안

GitLab은 고객 인프라에 호스팅되는 특정 LLM을 지원합니다. 고객은 AI Gateway를 자체 호스팅하고 사전 정의된 디렉터리에서 하나 이상의 LLM을 자체 호스팅합니다. 그런 다음 고객은 LLM 기능별로 GitLab 인스턴스를 사용하여 특정 모델을 구성할 수 있습니다. 각 GitLab Duo 기능에 대해 다른 모델을 선택할 수 있습니다.

이 기능은 인스턴스 수준에서 액세스할 수 있으며 GitLab Self-Managed 인스턴스에서 사용할 수 있습니다.

자체 호스팅 모델 배포는 GitLab Duo Enterprise Add-on입니다.

디자인 및 구현 세부 정보

컴포넌트 아키텍처

graph LR a1 --> c1 a2 --> b1 b1 --> c1 b3 --> b1 b4 --> b1 c1 --> c2 c2 --> c3 c3 --> d1 d1 --> d2 subgraph "사용자" a1[IDE 요청] a2[웹 / CLI 요청] end subgraph "Self-Managed형 GitLab" b1[GitLab Duo 기능] <--> b2[모델 및 특정 기능별<br/>프롬프트 검색] b3[GitLab Duo 기능<br/>구성] b4[LLM 서빙 구성] end subgraph "자체 호스팅 AI Gateway" c1[들어오는 API 인터페이스] c2[모델 라우팅] c3[모델 API 인터페이스] end subgraph "자체 호스팅 LLM" d1[로드 밸런서] d2[GPU 기반 백엔드] end

다이어그램 참고 사항

  • 사용자 요청: GitLab Duo 기능은 세 가지 가능한 시작 지점 중 하나에서 액세스됩니다 (Web UI, IDE 또는 Git CLI). IDE는 AI Gateway와 직접 통신합니다.
  • LLM 서빙 구성: 고객 호스트 모델의 존재와 연결 정보는 GitLab Rails에서 선언되고 API로 AI Gateway에 노출됩니다.
  • GitLab Duo 기능 구성: 지원되는 각 GitLab Duo 기능에 대해 사용자는 지원되는 모델을 선택하고 관련 프롬프트가 자동으로로드됩니다.
  • 프롬프트 검색: GitLab Rails는 사용 중인 GitLab Duo 기능 및 모델에 따라 올바른 프롬프트를 선택하고 처리합니다.
  • 모델 라우팅: AI Gateway는 올바른 외부 AI 엔드포인트로 요청을 라우팅합니다. GitLab Duo 기능의 현재 기본값은 기본적으로 Vertex 또는 Anthropic입니다. 자체 호스팅 모델을 사용하는 경우 AI Gateway는 올바른 고객 호스트 모델의 엔드포인트로 라우팅해야 합니다. 고객 호스트 모델 서버 세부 정보는 ‘LLM 서빙 구성’이며 GitLab Rails에서 API 호출로 검색됩니다. AI Gateway에서 캐시될 수도 있습니다.
  • 모델 API 인터페이스: 각 모델 서빙은 고유의 엔드포인트 서명을 갖습니다. AI Gateway는 올바른 서명을 사용하여 통신해야 합니다. OpenAI API 사양과 같은 일반적으로 지원되는 모델 서빙 형식을 지원할 것입니다.

구성

구성은 GitLab 인스턴스 수준에서 설정됩니다. 각 GitLab Duo 기능에 대해 옵션 드롭다운 디렉터리이 제공됩니다. 다음 옵션을 사용할 수 있습니다.

  • 자체 호스팅 모델 1
  • 자체 호스팅 모델 n
  • 기능 비활성화

초기 구현에서는 단일 자체 호스팅 모델이 지원되지만 이후에 GitLab이 정의한 모델로 확장될 것입니다.

AI Gateway 배포

고객은 자체 인프라에 AI Gateway의 로컬 인스턴스를 배포해야 합니다. 이를 위한 초기 수단은 이 이슈에서 설명된 대로 Docker 컨테이너를 사용하는 것입니다.

자체 호스팅 Runway가 AI Gateway를 배포하는 우선적인 방법이 될 것입니다. 우선 옵션은 다음과 같습니다.

Docker 컨테이너를 통한 배포는 일시적인 조치에 불과하며, 위에 나열된 세 가지 옵션에 의해 대체될 것입니다.

프롬프트 지원

지원되는 각 모델 및 지원되는 GitLab Duo 기능에 대해 프롬프트가 GitLab에 의해 개발되고 평가될 것입니다. 이들은 Rails Monolith 소스 코드에 통합될 것입니다.

표준 프롬프트가 AI Gateway 또는 프롬프트 템플릿 리포지터리로 이전될 때, 자체 호스팅 모델을 지원하는 프롬프트도 마찬가지로 이전될 것입니다.

지원되는 LLMs

설치 지침은 개발 문서에 추가될 것입니다. 이슈

이 디렉터리은 가까운 미래에 확장될 것이지만, 전반적인 아키텍처는 동일할 것입니다.

GitLab Duo 기능 지원

기능 기본 모델 Mistral AI 7B v0.1 Mixtral 8x22B
GitLab Duo Chat Anthropic Claude-2
Vertex AI Codey textembedding-gecko
계획되지 않음 계획되지 않음
코드 완성 Vertex AI Codey code-gecko
코드 생성 Anthropic Claude-2
Git 제안 Vertex AI Codey codechat-bison 계획되지 않음 계획되지 않음
토론 요약 Vertex AI Codey text-bison 계획되지 않음 계획되지 않음
이슈 설명 생성 Anthropic Claude-2 계획되지 않음 계획되지 않음
테스트 생성 Anthropic Claude-2 계획되지 않음 계획되지 않음
Merge Request 템플릿 채우기 Vertex AI Codey text-bison 계획되지 않음 계획되지 않음
제안된 리뷰어 깃랩 인하우스 모델 계획되지 않음 계획되지 않음
Merge Request 요약 Vertex AI Codey text-bison 계획되지 않음 계획되지 않음
코드 리뷰 요약 Vertex AI Codey text-bison 계획되지 않음 계획되지 않음
취약점 설명 Vertex AI Codey text-bison Anthropic
Claude-2 if degraded performance
계획되지 않음 계획되지 않음
취약점 해결 Vertex AI Codey code-bison 계획되지 않음 계획되지 않음
코드 설명 Vertex AI Codey codechat-bison 계획되지 않음 계획되지 않음
루트 원인 분석 Vertex AI Codey text-bison 계획되지 않음 계획되지 않음
가치 스트림 예측 깃랩 인하우스 모델 계획되지 않음 계획되지 않음

제안된 리뷰어가치 스트림 예측 모델은 GitLab이 자체 개발한 인하우스 Convolutional Neural Networks (CNNs)입니다.

LLM-호스팅

고객은 LLM 호스팅을 스스로 관리합니다. Mistral의 경우, GitLab은 Mistral Self-Deployment 문서를 따를 것을 권장합니다.

GitLab Duo 라이선스 관리

Self-Managed GitLab Rails에서는 로컬 AI 게이트웨이가 교차 서비스 통신이 안전하다는 것을 보장하기 위해 (.com과 동일한 프로세스로) 토큰을 자체 발급하고 AI 게이트웨이에서 확인할 수 있습니다. 세부 정보

시스템 아키텍처

현재 단일 시스템 아키텍처만 지원됩니다. 대안에 대한 토론은 범위를 벗어난 부분을 참조하세요.

Self-Managed GitLab과 자체 호스팅된 AI Gateway

이 시스템 아키텍처는 인터넷에 연결된 GitLab과 AI Gateway를 지원하며, 오프라인 환경에서 실행할 수도 있습니다. 고객은 자체 인프라에 Self-Managed AI Gateway를 설치합니다. 이러한 설치의 장기적 비전은 Runway를 통해 이뤄지지만, 그 가능성이 열리기 전까지 Docker 기반 설치가 지원될 것입니다.

Self-Managed 고객은 현재 자체 호스트된 모델에만 액세스할 수 있습니다. Bring Your Own Key에 대한 미래 작업은 이를 변경할 수 있습니다.

개발 환경

공학 문서를 작성하여 이 기능의 개발 방법에 대해 설명합니다. 진행 중인 작업은 다음과 같습니다:

피부렁댄 부분

  • 전용 또는 .com 고객을 위해 고객 자체 인프라에서 고객 자체 호스트된 모델을 지원하는 것은 현재 범위를 벗어난 것입니다.
  • 지원되는 LLMs 섹션에 나열된 모델 이외의 모델을 지원하지 않습니다.
  • 수정된 모델을 지원하지 않습니다.

현재 범위를 벗어난 시스템 아키텍처

현재 이러한 시스템 아키텍처를 지원할 계획은 없으며, 고객 요구가 충분하다면 변경될 수 있습니다.

.com AI Gateway와 함께 Self-Managed GitLab

이 범위를 벗어난 아키텍처에서는 Self-Managed 고객이 .com 호스팅 AI 게이트웨이를 계속 사용하지만 자체 호스트된 모델을 가리킵니다.

.com GitLab과 .com AI Gateway

이 범위를 벗어난 아키텍처에서 .com 고객은 자체 호스트된 모델로 연결합니다. 이러한 구성은 특정 모델에 대한 더 나은 결과 품질이나 고객이 자체 모델 서빙 인프라를 사용하여 응답 대기 시간을 개선할 수 있는 경우에 원할 수 있습니다.

GitLab Dedicated

전용 고객이 자체 호스트된 AI Gateway 및 자체 호스트된 모델을 사용할 수 있도록 지원되지 않을 것입니다. Dedicated 고객이 GitLab Duo 기능을 사용하는 경우에는 .com AI Gateway를 통해 액세스할 수 있습니다. Dedicated 고객이 Self-Managed 모델에 대한 수요가 있는 경우, 이를 고려할 수 있습니다.

외부 호스팅된 모델

고객이 모델을 자체 호스팅할 것으로 예상됩니다.