자체 호스팅 모델 인프라 설정하기

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 Codestral 22B (자세한 설정 지침) 아니오
Mistral Mistral 7B 아니오
Mistral Mixtral 8x22B 아니오
Mistral Mixtral 8x7B 아니오
Mistral Mistral 7B Text 아니오 아니오
Mistral Mixtral 8x22B Text 아니오 아니오
Mistral Mixtral 8x7B Text 아니오 아니오
Claude 3 Claude 3.5 Sonnet 아니오

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

모델 패밀리 모델 코드 완성 코드 생성 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 Gateway에 접근할 수 있어야 합니다.

    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 Gateway

GitLab AI Gateway 설치.

로깅 활성화

전제 조건:

  • 자가 관리 인스턴스의 관리자여야 합니다.

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

Feature.enable(:expanded_ai_logging)

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

GitLab 설치의 로그

인스턴스 로그 디렉터리에서 llm.log라는 파일이 채워집니다.

다음에 대한 더 많은 정보는:

AI Gateway 컨테이너의 로그

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

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 Gateway 실행의 결과는 문제 디버깅에도 유용할 수 있습니다. 이에 접근하려면:

  • Docker를 사용하는 경우:

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

    kubectl logs <container-name>
    

이 로그를 로깅 솔루션에 수집하려면, 로깅 제공업체 문서를 참조하세요.

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

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

AI Gateway와 GitLab 간의 로그 교차 참조

속성 correlation_id는 모든 요청에 할당되며 요청에 응답하는 다양한 구성 요소를 통해 전달됩니다. 더 많은 정보는 correlation ID로 로그 찾기 문서를 참조하세요.

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

문제 해결

먼저, 디버깅 스크립트를 실행하여 자가 호스팅 모델 설정을 확인하세요.

다른 조치에 대한 더 많은 정보는 문제 해결 문서를 참조하세요.