InfoGrab Docs

GitLab Duo Self-Hosted를 위한 AI 기능 개발

요약

이 문서는 GitLab Duo Self-Hosted를 위한 AI 기능 개발 프로세스를 설명합니다. 개발 목적으로 GitLab 팀 멤버에게 현재 사용 가능한 모델 목록은 지원 모델 문서를 참조하세요. Fireworks AI 접근 권한을 얻으려면 먼저 Lumos 앱 스토어에서 접근 요청을 생성하세요.

이 문서는 GitLab Duo Self-Hosted를 위한 AI 기능 개발 프로세스를 설명합니다. GitLab Duo Self-Hosted를 위한 AI 기능 개발은 GitLab Duo SaaS를 위한 AI 기능 개발과 상당히 유사하지만 몇 가지 차이점이 있습니다.

호스팅 모델 접근 권한 획득#

개발 목적으로 GitLab 팀 멤버에게 현재 사용 가능한 모델 목록은 지원 모델 문서를 참조하세요.

Fireworks AI 모델 접근 권한 획득#

Fireworks AI 접근 권한을 얻으려면 먼저 Lumos 앱 스토어에서 접근 요청을 생성하세요.

Fireworks AI 계정은 Code Creation Group이 관리합니다. 접근 권한이 부여되면 https://app.fireworks.ai/settings/users/api-keys로 이동하여 API 키를 생성하세요.

AWS Bedrock 모델 접근 권한 획득#

AWS Bedrock의 모델에 접근하려면 aws_services_account_iam_update 템플릿을 사용하여 접근 요청을 생성하세요. 무슨 정보를 입력해야 할지 모르는 경우 이 예시 접근 요청을 참조하세요.

접근 요청이 승인되면 https://gitlabsandbox.cloud/login을 방문하여 AWS 자격 증명에 접근할 수 있습니다.

gitlabsandbox.cloud에 로그인한 후 다음 단계를 수행하세요:

  1. cstm-mdls-dev-bedrock AWS 계정을 선택합니다.
  2. 페이지 오른쪽 상단에서 View IAM Credentials를 선택합니다.
  3. 열리는 모달에서 AWS Console URL, UsernamePassword를 볼 수 있습니다. 이 AWS Console URL을 방문하고 얻은 사용자 이름과 비밀번호를 입력하여 로그인합니다.

AWS Bedrock에서는 사용하려는 모델에 대한 접근 권한을 얻어야 합니다. 이를 위해:

  1. AWS 모델 카탈로그 콘솔을 방문합니다.
  2. 위치가 us-east-1로 설정되어 있는지 확인합니다.
  3. 모델 목록에서 사용하려는 모델을 찾고 Available to request 링크 위에 마우스를 올립니다. 그런 다음 Request access를 선택합니다.
  4. 양식을 작성하여 모델에 대한 접근을 요청합니다.

접근 권한은 몇 분 내에 부여됩니다.

AWS에서 Access Key 및 Secret Key 생성#

AWS Bedrock 모델을 사용하려면 액세스 키를 생성해야 합니다. 이 액세스 키를 생성하려면:

  1. IAM 콘솔을 방문합니다.
  2. Users 탭을 선택합니다.
  3. 사용자 이름을 선택합니다.
  4. Security credentials 탭을 선택합니다.
  5. Create access key를 선택합니다.
  6. Download .csv를 선택하여 액세스 키를 다운로드합니다.

액세스 키를 안전한 위치에 보관하세요. 모델을 구성하는 데 필요합니다.

또는 AWS에서 액세스 키를 생성하려면 AWS에서 액세스 및 시크릿 키를 만드는 방법에 대한 동영상을 따를 수 있습니다.

GDK 환경 설정#

GitLab Duo Self-Hosted는 GDK 환경이 Self-Managed 모드에서 실행되어야 합니다. Multi-Tenant/SaaS 모드에서는 작동하지 않습니다.

GitLab Duo Self-Hosted를 실행하도록 GDK 환경을 설정하려면 GitLab Self-Managed / Dedicated 모드 하위 AI 개발 문서의 단계를 따르세요.

환경 변수 설정#

호스팅 모델을 사용하려면 AI Gateway에서 다음 환경 변수를 설정하세요:

  1. GDK_ROOT/gitlab-ai-gateway/.env 파일에서 다음 변수를 설정합니다:

    AWS_ACCESS_KEY_ID=your-access-key-id
    AWS_SECRET_ACCESS_KEY=your-secret-access-key
    AWS_REGION=us-east-1
    FIREWORKS_AI_API_KEY=your-fireworks-api-key
    AIGW_CUSTOM_MODELS__ENABLED=true
    DUO_WORKFLOW_AUTH__OIDC_CUSTOMER_PORTAL_URL=https://customers.staging.gitlab.com
    # 디버깅에 유용
    AIGW_LOGGING__ENABLE_REQUEST_LOGGING=true
    AIGW_LOGGING__ENABLE_LITELLM_LOGGING=true
    
  2. GDK_ROOT/env.runit 파일에서 다음 변수를 설정합니다:

    export GITLAB_SIMULATE_SAAS=0
    
  3. gdk restart를 사용하여 변경 사항이 적용되도록 GDK를 재시작합니다.

rake 작업을 통한 자체 호스팅 모델 시딩#

  1. bundle exec rake gitlab:duo:seed_self_hosted_models를 실행합니다.
  2. 확인을 위해 bundle exec rake gitlab:duo:list_self_hosted_models를 실행하여 생성된 모델 목록을 출력합니다

GitLab Duo Self-Hosted 모델의 구성 및 사용#

자체 호스팅 모델 활성화#

GitLab 인스턴스에서 자체 호스팅 모델을 사용할 수 있도록 하려면 다음 단계를 따르세요:

  1. GDK 인스턴스에서 /admin/gitlab_duo/configuration으로 이동합니다.
  2. GitLab Duo Self-Hosted에서 베타 모델 및 기능 사용 체크박스를 선택합니다.
  3. Local AI Gateway URL에 AI Gateway 인스턴스의 URL을 입력합니다. 대부분의 경우 http://localhost:5052입니다.
  4. 변경 사항을 저장합니다.

Admin UI를 통한 자체 호스팅 모델 추가#

  1. Admin page -> GitLab Duo로 이동합니다
  2. Configure models for GitLab Duo 버튼을 클릭합니다
  3. 모델 선택 페이지에서 Add self-hosted model 버튼을 클릭합니다
  4. 모델 세부 정보를 입력합니다
  5. Add self-hosted model을 클릭하여 변경 사항을 저장합니다

AI 기능을 구동하는 자체 호스팅 모델 사용#

생성된 자체 호스팅 모델을 AI 네이티브 기능을 구동하는 데 사용하려면:

  1. GDK 인스턴스에서 /admin/gitlab_duo/model_selection으로 이동합니다.
  2. 자체 호스팅 모델과 함께 사용하려는 각 AI 기능(예: Code Generation, Code Completion, General Chat, Explain Code 등)에 대해 해당 드롭다운 목록에서 새로 생성된 자체 호스팅 모델(예: Claude 3.5 Sonnet on Bedrock)을 선택합니다.
  3. 선택 사항. 특정 카테고리의 모든 기능에 구성을 복사하려면 옆의 복사 아이콘을 선택합니다.
  4. 선택한 후 변경 사항은 보통 자동으로 저장됩니다.

GitLab Duo Self-Hosted 기능 구성

이로써 GitLab 인스턴스에서 AI 네이티브 기능을 구동하는 자체 호스팅 모델을 성공적으로 구성했습니다. 예를 들어 Chat을 사용하여 기능을 테스트하려면 Chat을 열고 Hello라고 말하세요. 채팅에서 자체 호스팅 모델로 구동된 응답이 표시됩니다.

GitLab Duo Self-Hosted 정리#

.com 구성으로 되돌리고 GitLab Duo Self-Hosted 관련 데이터를 제거하려면 bundle exec rake gitlab:duo:clean_up_duo_self_hosted를 사용하세요.

GitLab.com 또는 GitLab Self-Managed에서 사용 가능한 기능을 GitLab Duo Self-Hosted로 이동#

GitLab.com 또는 GitLab Self-Managed에서 사용 가능한 기능을 GitLab Duo Self-Hosted로 이동하려면:

  1. 자체 호스팅 모델을 사용하도록 기능을 구성 가능하게 만듭니다.
  2. 지원하려는 각 모델 패밀리에 대해 기능에 프롬프트를 추가합니다.

자체 호스팅 모델을 사용하도록 기능 구성 가능하게 만들기#

기능이 GitLab.com 또는 GitLab Self-Managed에서 사용 가능한 경우 자체 호스팅 모델을 사용하도록 구성할 수 있어야 합니다. 기능을 자체 호스팅 모델을 사용하도록 구성 가능하게 만들려면:

  • ee/app/models/ai/feature_setting.rb의 enum에 기능 이름을 stable 기능 또는 베타/실험적 기능으로 추가합니다.
  • ee/lib/gitlab/ai/feature_settings/feature_metadata.yml 파일에 기능 이름과 지원하는 모델 패밀리 목록을 추가합니다.
  • gitlab-cloud-connector 저장소config/services/self_hosted_models.yml에 유닛 프리미티브를 추가합니다. 이 머지 리퀘스트를 참조로 사용할 수 있습니다.
  • 위 변경 사항을 기반으로 관련 스펙 변경을 합니다.

참조를 위해 다음 머지 리퀘스트를 참조하세요:

기능에 프롬프트 추가#

기능에 대해 지원하려는 각 모델 패밀리에 프롬프트를 추가해야 합니다. 프롬프트는 AI Gateway 저장소에 저장됩니다.

대부분의 경우 GitLab.com에서 사용되는 프롬프트가 GitLab Duo Self-Hosted에도 사용됩니다.

참조를 위해 다음 머지 리퀘스트를 참조하세요:

이제 기능이 GitLab Duo Self-Hosted에서 사용 가능해야 합니다. GDK 인스턴스를 재시작하여 변경 사항을 적용하고 기능을 테스트하세요.

기능 테스트#

AI 기능을 구현한 후에는 품질과 효과를 검증하는 것이 중요합니다. 이 섹션에서는 중앙화된 평가 프레임워크(CEF)를 사용하여 기능을 테스트하는 방법을 설명합니다.

평가를 설계할 때 기능에 가장 적합한 메트릭(예: LLM 판사가 3 또는 4로 평가한 응답의 백분율)을 선택하고 허용 가능한 성능을 반영하는 임계값을 설정할 책임이 있습니다. 모든 평가는 표준화된 신호등 채점 시스템을 사용합니다:

  • Green / 완전 호환: 결과가 선택한 메트릭에 대해 정의된 임계값을 충족하거나 초과합니다.
  • Yellow / 대체로 호환: 결과가 임계값에 가깝지만 완전히 충족하지 않습니다.
  • Red / 호환 불가: 결과가 임계값을 크게 밑돕니다.

신호등 시스템은 이러한 임계값에 따라 결과를 자동으로 해석하여 모든 AI 기능에 걸쳐 일관된 분류를 제공합니다.

예를 들어, GitLab 문서 질문에 대한 GitLab Duo Chat의 성능을 평가하기 위해 LLM 기반 채점 시스템을 사용합니다. 다른 언어 모델이 각 응답을 1-4 척도로 평가하고 3 또는 4 점수를 달성하는 응답의 백분율을 계산합니다. 이 백분율은 다양한 LLM의 효과를 비교하기 위한 벤치마크 메트릭으로 사용되며, 신호등 시스템은 정의된 임계값을 기반으로 각 모델의 호환성 수준을 나타냅니다.

기능을 테스트하는 일반적인 프로세스는 다음과 같습니다:

  1. 데이터셋 생성: 기능이 처리할 것으로 예상되는 시나리오를 포함하는 대표적인 데이터셋을 준비합니다.
  2. 평가 메트릭 및 임계값 정의: 기능의 목표를 반영하는 메트릭을 하나 이상 선택하고 신호등 시스템에 대한 임계값을 설정합니다.
  3. 평가 자동화: evaluation-runner를 사용하여 평가 파이프라인 실행을 자동화합니다. 설정 지침은 evaluation-runner README를 참조하세요.
  4. 검토 및 반복: 평가 실행 후 결과를 검토합니다. 결과가 만족스럽지 않으면 프롬프트, 데이터셋 또는 모델 구성을 반복하고 평가를 다시 실행합니다.

자세한 내용은 CEF 문서 또는 이 단계별 가이드를 참조하세요.

GitLab Duo Self-Hosted를 위한 AI 기능 개발

원문 보기
요약

이 문서는 GitLab Duo Self-Hosted를 위한 AI 기능 개발 프로세스를 설명합니다. 개발 목적으로 GitLab 팀 멤버에게 현재 사용 가능한 모델 목록은 지원 모델 문서를 참조하세요. Fireworks AI 접근 권한을 얻으려면 먼저 Lumos 앱 스토어에서 접근 요청을 생성하세요.

이 문서는 GitLab Duo Self-Hosted를 위한 AI 기능 개발 프로세스를 설명합니다. GitLab Duo Self-Hosted를 위한 AI 기능 개발은 GitLab Duo SaaS를 위한 AI 기능 개발과 상당히 유사하지만 몇 가지 차이점이 있습니다.

호스팅 모델 접근 권한 획득#

개발 목적으로 GitLab 팀 멤버에게 현재 사용 가능한 모델 목록은 지원 모델 문서를 참조하세요.

Fireworks AI 모델 접근 권한 획득#

Fireworks AI 접근 권한을 얻으려면 먼저 Lumos 앱 스토어에서 접근 요청을 생성하세요.

Fireworks AI 계정은 Code Creation Group이 관리합니다. 접근 권한이 부여되면 https://app.fireworks.ai/settings/users/api-keys로 이동하여 API 키를 생성하세요.

AWS Bedrock 모델 접근 권한 획득#

AWS Bedrock의 모델에 접근하려면 aws_services_account_iam_update 템플릿을 사용하여 접근 요청을 생성하세요. 무슨 정보를 입력해야 할지 모르는 경우 이 예시 접근 요청을 참조하세요.

접근 요청이 승인되면 https://gitlabsandbox.cloud/login을 방문하여 AWS 자격 증명에 접근할 수 있습니다.

gitlabsandbox.cloud에 로그인한 후 다음 단계를 수행하세요:

  1. cstm-mdls-dev-bedrock AWS 계정을 선택합니다.
  2. 페이지 오른쪽 상단에서 View IAM Credentials를 선택합니다.
  3. 열리는 모달에서 AWS Console URL, UsernamePassword를 볼 수 있습니다. 이 AWS Console URL을 방문하고 얻은 사용자 이름과 비밀번호를 입력하여 로그인합니다.

AWS Bedrock에서는 사용하려는 모델에 대한 접근 권한을 얻어야 합니다. 이를 위해:

  1. AWS 모델 카탈로그 콘솔을 방문합니다.
  2. 위치가 us-east-1로 설정되어 있는지 확인합니다.
  3. 모델 목록에서 사용하려는 모델을 찾고 Available to request 링크 위에 마우스를 올립니다. 그런 다음 Request access를 선택합니다.
  4. 양식을 작성하여 모델에 대한 접근을 요청합니다.

접근 권한은 몇 분 내에 부여됩니다.

AWS에서 Access Key 및 Secret Key 생성#

AWS Bedrock 모델을 사용하려면 액세스 키를 생성해야 합니다. 이 액세스 키를 생성하려면:

  1. IAM 콘솔을 방문합니다.
  2. Users 탭을 선택합니다.
  3. 사용자 이름을 선택합니다.
  4. Security credentials 탭을 선택합니다.
  5. Create access key를 선택합니다.
  6. Download .csv를 선택하여 액세스 키를 다운로드합니다.

액세스 키를 안전한 위치에 보관하세요. 모델을 구성하는 데 필요합니다.

또는 AWS에서 액세스 키를 생성하려면 AWS에서 액세스 및 시크릿 키를 만드는 방법에 대한 동영상을 따를 수 있습니다.

GDK 환경 설정#

GitLab Duo Self-Hosted는 GDK 환경이 Self-Managed 모드에서 실행되어야 합니다. Multi-Tenant/SaaS 모드에서는 작동하지 않습니다.

GitLab Duo Self-Hosted를 실행하도록 GDK 환경을 설정하려면 GitLab Self-Managed / Dedicated 모드 하위 AI 개발 문서의 단계를 따르세요.

환경 변수 설정#

호스팅 모델을 사용하려면 AI Gateway에서 다음 환경 변수를 설정하세요:

  1. GDK_ROOT/gitlab-ai-gateway/.env 파일에서 다음 변수를 설정합니다:

    AWS_ACCESS_KEY_ID=your-access-key-id
    AWS_SECRET_ACCESS_KEY=your-secret-access-key
    AWS_REGION=us-east-1
    FIREWORKS_AI_API_KEY=your-fireworks-api-key
    AIGW_CUSTOM_MODELS__ENABLED=true
    DUO_WORKFLOW_AUTH__OIDC_CUSTOMER_PORTAL_URL=https://customers.staging.gitlab.com
    # 디버깅에 유용
    AIGW_LOGGING__ENABLE_REQUEST_LOGGING=true
    AIGW_LOGGING__ENABLE_LITELLM_LOGGING=true
    
  2. GDK_ROOT/env.runit 파일에서 다음 변수를 설정합니다:

    export GITLAB_SIMULATE_SAAS=0
    
  3. gdk restart를 사용하여 변경 사항이 적용되도록 GDK를 재시작합니다.

rake 작업을 통한 자체 호스팅 모델 시딩#

  1. bundle exec rake gitlab:duo:seed_self_hosted_models를 실행합니다.
  2. 확인을 위해 bundle exec rake gitlab:duo:list_self_hosted_models를 실행하여 생성된 모델 목록을 출력합니다

GitLab Duo Self-Hosted 모델의 구성 및 사용#

자체 호스팅 모델 활성화#

GitLab 인스턴스에서 자체 호스팅 모델을 사용할 수 있도록 하려면 다음 단계를 따르세요:

  1. GDK 인스턴스에서 /admin/gitlab_duo/configuration으로 이동합니다.
  2. GitLab Duo Self-Hosted에서 베타 모델 및 기능 사용 체크박스를 선택합니다.
  3. Local AI Gateway URL에 AI Gateway 인스턴스의 URL을 입력합니다. 대부분의 경우 http://localhost:5052입니다.
  4. 변경 사항을 저장합니다.

Admin UI를 통한 자체 호스팅 모델 추가#

  1. Admin page -> GitLab Duo로 이동합니다
  2. Configure models for GitLab Duo 버튼을 클릭합니다
  3. 모델 선택 페이지에서 Add self-hosted model 버튼을 클릭합니다
  4. 모델 세부 정보를 입력합니다
  5. Add self-hosted model을 클릭하여 변경 사항을 저장합니다

AI 기능을 구동하는 자체 호스팅 모델 사용#

생성된 자체 호스팅 모델을 AI 네이티브 기능을 구동하는 데 사용하려면:

  1. GDK 인스턴스에서 /admin/gitlab_duo/model_selection으로 이동합니다.
  2. 자체 호스팅 모델과 함께 사용하려는 각 AI 기능(예: Code Generation, Code Completion, General Chat, Explain Code 등)에 대해 해당 드롭다운 목록에서 새로 생성된 자체 호스팅 모델(예: Claude 3.5 Sonnet on Bedrock)을 선택합니다.
  3. 선택 사항. 특정 카테고리의 모든 기능에 구성을 복사하려면 옆의 복사 아이콘을 선택합니다.
  4. 선택한 후 변경 사항은 보통 자동으로 저장됩니다.

GitLab Duo Self-Hosted 기능 구성

이로써 GitLab 인스턴스에서 AI 네이티브 기능을 구동하는 자체 호스팅 모델을 성공적으로 구성했습니다. 예를 들어 Chat을 사용하여 기능을 테스트하려면 Chat을 열고 Hello라고 말하세요. 채팅에서 자체 호스팅 모델로 구동된 응답이 표시됩니다.

GitLab Duo Self-Hosted 정리#

.com 구성으로 되돌리고 GitLab Duo Self-Hosted 관련 데이터를 제거하려면 bundle exec rake gitlab:duo:clean_up_duo_self_hosted를 사용하세요.

GitLab.com 또는 GitLab Self-Managed에서 사용 가능한 기능을 GitLab Duo Self-Hosted로 이동#

GitLab.com 또는 GitLab Self-Managed에서 사용 가능한 기능을 GitLab Duo Self-Hosted로 이동하려면:

  1. 자체 호스팅 모델을 사용하도록 기능을 구성 가능하게 만듭니다.
  2. 지원하려는 각 모델 패밀리에 대해 기능에 프롬프트를 추가합니다.

자체 호스팅 모델을 사용하도록 기능 구성 가능하게 만들기#

기능이 GitLab.com 또는 GitLab Self-Managed에서 사용 가능한 경우 자체 호스팅 모델을 사용하도록 구성할 수 있어야 합니다. 기능을 자체 호스팅 모델을 사용하도록 구성 가능하게 만들려면:

  • ee/app/models/ai/feature_setting.rb의 enum에 기능 이름을 stable 기능 또는 베타/실험적 기능으로 추가합니다.
  • ee/lib/gitlab/ai/feature_settings/feature_metadata.yml 파일에 기능 이름과 지원하는 모델 패밀리 목록을 추가합니다.
  • gitlab-cloud-connector 저장소config/services/self_hosted_models.yml에 유닛 프리미티브를 추가합니다. 이 머지 리퀘스트를 참조로 사용할 수 있습니다.
  • 위 변경 사항을 기반으로 관련 스펙 변경을 합니다.

참조를 위해 다음 머지 리퀘스트를 참조하세요:

기능에 프롬프트 추가#

기능에 대해 지원하려는 각 모델 패밀리에 프롬프트를 추가해야 합니다. 프롬프트는 AI Gateway 저장소에 저장됩니다.

대부분의 경우 GitLab.com에서 사용되는 프롬프트가 GitLab Duo Self-Hosted에도 사용됩니다.

참조를 위해 다음 머지 리퀘스트를 참조하세요:

이제 기능이 GitLab Duo Self-Hosted에서 사용 가능해야 합니다. GDK 인스턴스를 재시작하여 변경 사항을 적용하고 기능을 테스트하세요.

기능 테스트#

AI 기능을 구현한 후에는 품질과 효과를 검증하는 것이 중요합니다. 이 섹션에서는 중앙화된 평가 프레임워크(CEF)를 사용하여 기능을 테스트하는 방법을 설명합니다.

평가를 설계할 때 기능에 가장 적합한 메트릭(예: LLM 판사가 3 또는 4로 평가한 응답의 백분율)을 선택하고 허용 가능한 성능을 반영하는 임계값을 설정할 책임이 있습니다. 모든 평가는 표준화된 신호등 채점 시스템을 사용합니다:

  • Green / 완전 호환: 결과가 선택한 메트릭에 대해 정의된 임계값을 충족하거나 초과합니다.
  • Yellow / 대체로 호환: 결과가 임계값에 가깝지만 완전히 충족하지 않습니다.
  • Red / 호환 불가: 결과가 임계값을 크게 밑돕니다.

신호등 시스템은 이러한 임계값에 따라 결과를 자동으로 해석하여 모든 AI 기능에 걸쳐 일관된 분류를 제공합니다.

예를 들어, GitLab 문서 질문에 대한 GitLab Duo Chat의 성능을 평가하기 위해 LLM 기반 채점 시스템을 사용합니다. 다른 언어 모델이 각 응답을 1-4 척도로 평가하고 3 또는 4 점수를 달성하는 응답의 백분율을 계산합니다. 이 백분율은 다양한 LLM의 효과를 비교하기 위한 벤치마크 메트릭으로 사용되며, 신호등 시스템은 정의된 임계값을 기반으로 각 모델의 호환성 수준을 나타냅니다.

기능을 테스트하는 일반적인 프로세스는 다음과 같습니다:

  1. 데이터셋 생성: 기능이 처리할 것으로 예상되는 시나리오를 포함하는 대표적인 데이터셋을 준비합니다.
  2. 평가 메트릭 및 임계값 정의: 기능의 목표를 반영하는 메트릭을 하나 이상 선택하고 신호등 시스템에 대한 임계값을 설정합니다.
  3. 평가 자동화: evaluation-runner를 사용하여 평가 파이프라인 실행을 자동화합니다. 설정 지침은 evaluation-runner README를 참조하세요.
  4. 검토 및 반복: 평가 실행 후 결과를 검토합니다. 결과가 만족스럽지 않으면 프롬프트, 데이터셋 또는 모델 구성을 반복하고 평가를 다시 실행합니다.

자세한 내용은 CEF 문서 또는 이 단계별 가이드를 참조하세요.