자체 호스팅 모델 인프라 설정하기
Offering: Self-managed
Status: Beta
-
Introduced in GitLab 17.1 with a flag named
ai_custom_model
. Disabled by default.
이 기능의 가용성은 기능 플래그에 의해 제어됩니다.
자세한 내용은 기록을 참조하세요.
모델, AI 게이트웨이 및 GitLab 인스턴스를 자체 호스팅하여 외부 아키텍처에 대한 호출이 없어 최대 보안 수준을 보장합니다.
자체 호스팅된 모델 인프라를 설정하려면:
- 대형 언어 모델(LLM) 서비스 인프라를 설치합니다.
- GitLab 인스턴스를 구성합니다.
- 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의 최신 버전으로 업그레이드하세요.
-
GitLab 인스턴스는 AI Gateway에 접근할 수 있어야 합니다.
-
GitLab 인스턴스가 설치된 위치에서
/etc/gitlab/gitlab.rb
파일을 업데이트합니다.sudo vim /etc/gitlab/gitlab.rb
-
다음 환경 변수를 추가하고 저장합니다.
gitlab_rails['env'] = { 'GITLAB_LICENSE_MODE' => 'production', 'CUSTOMER_PORTAL_URL' => 'https://customers.gitlab.com', 'AI_GATEWAY_URL' => '<path_to_your_ai_gateway>:<port>' }
-
재구성을 실행합니다:
sudo gitlab-ctl reconfigure
-
GitLab AI Gateway
로깅 활성화
전제 조건:
- 자가 관리 인스턴스의 관리자여야 합니다.
로깅을 활성화하고 로그에 접근하려면, 기능 플래그를 활성화하세요:
Feature.enable(:expanded_ai_logging)
기능 플래그를 비활성화하면 로그가 기록되지 않습니다.
GitLab 설치의 로그
인스턴스 로그 디렉터리에서 llm.log
라는 파일이 채워집니다.
다음에 대한 더 많은 정보는:
- 기록된 이벤트 및 해당 속성은 기록된 이벤트 문서를 참조하세요.
-
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는 모델 제공업체 로그에서 사용할 수 없습니다.
문제 해결
먼저, 디버깅 스크립트를 실행하여 자가 호스팅 모델 설정을 확인하세요.
다른 조치에 대한 더 많은 정보는 문제 해결 문서를 참조하세요.