자체 호스팅 모델 인프라 구축

Tier: For a limited time, Ultimate. On October 17, 2024, Ultimate with GitLab Duo Enterprise. Offering: Self-managed Status: Beta
History
이 기능의 가용성은 기능 플래그에 의해 제어됩니다. 자세한 정보는 기록을 참조하십시오.

모델, AI 게이트웨이 및 GitLab 인스턴스를 자체 호스팅함으로써 외부 아키텍처로의 호출이 없으므로 최대 수준의 보안이 보장됩니다.

자체 호스팅 모델 인프라를 설정하려면:

  1. 대형 언어 모델 (LLM) 서빙 인프라를 설치합니다.
  2. GitLab 인스턴스를 구성합니다.
  3. GitLab AI 게이트웨이를 설치합니다.

대형 언어 모델 서빙 인프라 설치

다음 중 하나의 GitLab 승인된 LLM 모델을 설치하십시오:

모델 패밀리 모델 코드 완성 코드 생성 GitLab Duo 채팅
Mistral 코드스트랄 22B (자세한 설치 방법은 이곳을 참조하세요.) 아니요
Mistral Mistral 7B 아니요
Mistral 믹스트랄 8x22B 아니요
Mistral 믹스트랄 8x7B 아니요
Mistral Mistral 7B Text 아니요 아니요
Mistral 믹스트랄 8x22B Text 아니요 아니요
Mistral 믹스트랄 8x7B Text 아니요 아니요
Claude 3 클로드 3.5 소네트 아니요

다음 모델은 평가 중이며 지원이 제한됩니다:

모델 패밀리 모델 코드 완성 코드 생성 GitLab Duo 채팅
CodeGemma CodeGemma 2b 아니요 아니요
CodeGemma CodeGemma 7b-it (Instruction) 아니요 아니요
CodeGemma CodeGemma 7b-code (Code) 아니요 아니요
CodeLlama Code-Llama 13b-code 아니요 아니요
CodeLlama Code-Llama 13b 아니요 아니요
DeepSeekCoder DeepSeek Coder 33b Instruct 아니요
DeepSeekCoder DeepSeek Coder 33b Base 아니요 아니요
GPT GPT-3.5-Turbo 아니요 아니요
GPT GPT-4 아니요 아니요
GPT GPT-4 Turbo 아니요 아니요
GPT GPT-4o 아니요 아니요
GPT GPT-4o-mini 아니요 아니요

서빙 아키텍처 사용

모델을 호스팅하기 위해 다음을 사용해야 합니다:

  • 클라우드가 아닌 온프레미스 배포의 경우, vLLM.
  • 클라우드 배포의 경우, AWS Bedrock 또는 Azure를 클라우드 제공업체로 사용하세요.

GitLab 인스턴스 구성

전제 조건:

  • GitLab의 최신 버전으로 업그레이드합니다.
  1. GitLab 인스턴스는 AI 게이트웨이에 액세스할 수 있어야 합니다.

    1. GitLab 인스턴스가 설치된 위치에서 /etc/gitlab/gitlab.rb 파일을 업데이트합니다.

      sudo vim /etc/gitlab/gitlab.rb
      
    2. 다음 환경 변수를 추가하고 저장합니다.

      gitlab_rails['env'] = {
      'GITLAB_LICENSE_MODE' => 'production',
      'CUSTOMER_PORTAL_URL' => 'https://customers.gitlab.com',
      'AI_GATEWAY_URL' => '<path_to_your_ai_gateway>:<port>'
      }
    3. 다음을 실행합니다:

      sudo gitlab-ctl reconfigure
      

GitLab AI 게이트웨이

GitLab AI 게이트웨이 설치.

로깅 활성화

전제 조건:

  • 자체 호스팅된 인스턴스의 관리자여야 합니다.

로깅을 활성화하고 로그에 액세스하려면 기능 플래그를 활성화하세요:

Feature.enable(:expanded_ai_logging)

기능 플래그를 비활성화하면 로그가 작성되지 않습니다.

GitLab 설치의 로그

인스턴스 로그 디렉토리에 llm.log라는 파일이 생성됩니다.

자세한 정보: - 기록된 이벤트 및 해당 속성에 대해서는 기록된 이벤트 문서를 참조하세요. - llm.log의 로그를 회전, 관리, 내보내기 및 시각화하는 방법에 대해서는 로그 시스템 문서를 참조하세요.

AI 게이트웨이 컨테이너의 로그

AI 게이트웨이에서 생성된 로그의 위치를 지정하려면 다음을 실행하세요:

docker run -e AIGW_GITLAB_URL=<your_gitlab_instance> \
 -e AIGW_GITLAB_API_URL=https://<your_gitlab_domain>/api/v4/ \
 -e AIGW_GITLAB_API_URL=https://<your_gitlab_domain>/api/v4/ \
 -e AIGW_LOGGING__TO_FILE="aigateway.log" \
 -v <your_file_path>:"aigateway.log"
 <image>

파일 이름을 지정하지 않으면 로그가 출력으로 스트리밍됩니다.

또한, AI 게이트웨이 실행의 출력은 문제 해결에 유용할 수 있습니다. 액세스하려면:

  • Docker를 사용하는 경우:

    docker logs <container-id>
    
  • Kubernetes를 사용하는 경우:

    kubectl logs <container-name>
    

이러한 로그를 로깅 솔루션으로 가져오려면 로깅 제공업체 문서를 참조하세요.

추론 서비스 제공업체에서의 로그

GitLab은 추론 서비스 제공업체에서 생성된 로그를 관리하지 않습니다. 제공업체의 문서를 참조하여 로그 사용 방법을 확인하세요.

AI 게이트웨이 및 GitLab 간 로그 상호 참조

모든 요청에 대해 할당된 correlation_id 속성이 부여되며 요청에 응답하는 다양한 구성 요소 간에 전달됩니다. 자세한 정보는 상호 참조 ID를 사용한 로그 찾기 문서를 참조하세요.

상호 참조 ID는 모델 제공업체 로그에서 사용할 수 없습니다.

문제 해결

먼저, 자체 호스팅된 모델 설정을 확인하기 위해 디버깅 스크립트를 실행하세요.

추가 조치에 대한 자세한 내용은 문제 해결 문서를 참조하세요.