자체 호스팅 모델 인프라 구축
-
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 | 코드스트랄 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의 최신 버전으로 업그레이드합니다.
-
GitLab 인스턴스는 AI 게이트웨이에 액세스할 수 있어야 합니다.
-
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 게이트웨이
로깅 활성화
전제 조건:
- 자체 호스팅된 인스턴스의 관리자여야 합니다.
로깅을 활성화하고 로그에 액세스하려면 기능 플래그를 활성화하세요:
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는 모델 제공업체 로그에서 사용할 수 없습니다.
문제 해결
먼저, 자체 호스팅된 모델 설정을 확인하기 위해 디버깅 스크립트를 실행하세요.
추가 조치에 대한 자세한 내용은 문제 해결 문서를 참조하세요.