GitLab Duo

  • GitLab 16.0에서 처음으로 GitLab Duo 기능 도입됨.
  • GitLab 16.6에서 제3자 AI 설정이 제거됨.
  • GitLab 16.6에서 모든 GitLab Duo 기능에서 OpenAI 지원이 제거됨.

GitLab은 DevSecOps 플랫폼 전반에 걸쳐 AI 지원 기능을 만들고 있습니다. 이러한 기능은 소프트웨어 개발 수명주기 전반에 걸친 핵심적인 고통점을 해결하고 개발 속도를 높이는 데 도움을 주기 위해 목적을 두고 있습니다.

일부 기능은 아직 개발 중입니다. 각 상태에 대한 지원에 대한 세부 정보를 확인하세요 (실험, 베타, 일반적으로 사용 가능).

기능이 일반적으로 사용 가능해지면 GitLab은 투명성을 유지하며 문서를 업데이트하여 이러한 기능을 어떻게 그리고 어디에서 액세스할 수 있는지 명확히 설명합니다.

목표 기능 Tier/Offering/Status
코드를 입력하는 동안 코드 제안을 표시하여 코드 작성을 더 효율적으로 돕습니다.

개요 시청
코드 제안 Tier: Premium 또는 Ultimate with GitLab Duo Pro
Offering: GitLab.com, Self-managed, GitLab Dedicated
대화식 방식으로 텍스트와 코드를 처리하고 생성합니다. 이는 이슈, 에픽, 코드 및 GitLab 문서의 대량의 텍스트에서 유용한 정보를 신속하게 식별하는 데 도움이 됩니다. 채팅 Tier: Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
Status: 베타 (테스트 계약의 대상)
필요할 때 어디서든 Git 명령을 신속하게 찾아내거나 상기하도록 도와줍니다. Git 제안 Tier: Ultimate
Offering: GitLab.com
Status: 실험
모든 사람이 빠르게 동일한 페이지에 있는지 확인하기 위해 긴 대화 내용의 개요를 신속하게 얻도록 도와줍니다. 토론 요약 Tier: Ultimate
Offering: GitLab.com
Status: 실험
이슈 설명을 생성합니다. 이슈 설명 생성 Tier: Ultimate
Offering: GitLab.com
Status: 실험
반복적인 작업을 자동화하고 버그를 일찍 잡는 데 도움을 줍니다. 테스트 생성 Tier: Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
Status: 베타
템플릿 내용을 기반으로 Merge Request을 위한 설명을 생성합니다. Merge Request 템플릿 작성 Tier: Ultimate
Offering: GitLab.com
Status: 실험
Merge Request에 대한 리뷰어를 자동으로 제안하여 더 빠르고 고품질의 리뷰를 작성하는 데 도움을 줍니다.

개요 시청
제안된 리뷰어 Tier: Ultimate
Offering: GitLab.com
Status: 일반적으로 사용 가능
Merge Request 변경 사항의 영향을 효율적으로 전달합니다. Merge Request 요약 Tier: Ultimate
Offering: GitLab.com
Status: 실험
작성자와 리뷰어 간의 Merge Request 이동 시간을 단축하고 리뷰어가 제안을 효율적으로 이해하는 데 도움을 줍니다. 코드 리뷰 요약 Tier: Ultimate
Offering: GitLab.com
Status: 실험
취약점을 더 효율적으로 해결하고 기술력을 향상시키며 보안성 있는 코드를 작성하는 데 도움을 줍니다.

개요 시청
취약점 설명 Tier: Ultimate
Offering: GitLab.com
Status: 베타
취약점을 완화하기 위해 필요한 변경 사항이 포함된 Merge Request을 생성합니다. 취약점 해결 Tier: Ultimate
Offering: GitLab.com
Status: 실험
영어로 코드를 설명하여 코드 이해를 돕습니다.

개요 시청
코드 설명 Tier: Ultimate
Offering: GitLab.com
Status: 실험
파이프라인 실패 및 CI/CD 빌드 실패의 근본 원인을 확인하는 데 도움을 줍니다. 근본 원인 분석 Tier: Ultimate
Offering: GitLab.com
Status: 실험
생명주기 전반에 걸쳐 프로덕션성 지표를 예측하고 이상을 식별하는 데 도움을 줍니다. 가치 스트림 예측 Tier: Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
Status: 실험

AI/ML 기능 활성화

실험 및 베타로 나열된 기능들:

  • 이러한 기능들은 기본적으로 비활성화되어 있습니다.
  • 활성화하려면 그룹의 소유자 역할을 가진 사용자가 이 설정을 활성화해야 합니다. GitLab.com에서 이 설정은 Ultimate 구독에서만 이용할 수 있습니다.
  • 이러한 기능들은 사용 조건에 따라 사용됩니다.

Self-managed 기능들의 경우:

  • 방화벽 및 HTTP 프록시 서버에서 https://cloud.gitlab.com:443로의 아웃바운드 연결을 허용해야 합니다. HTTP/S 프록시를 사용하려면 gitLab_workhorsegitLab_rails에 필요한 웹 프록시 환경 변수가 설정되어 있어야 합니다.

다른 기능들의 경우:

  • 코드 제안은 GitLab Duo Pro 애드온을 구매하고 사용자에게 할당할 때 활성화됩니다.
  • 채팅
    • Self-managed를 위한 활성화 방법은 여기에서 확인하세요.
    • GitLab.com을 위한 활성화 방법은 여기에서 확인하세요.

GitLab Duo 기능 비활성화

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

그룹, 프로젝트 또는 인스턴스에서 GitLab Duo AI 기능을 비활성화할 수 있습니다. 비활성화되면 그룹, 프로젝트 또는 인스턴스에서 GitLab Duo 기능을 사용하려는 시도가 차단되고 오류가 표시됩니다. 그룹이나 프로젝트의 리소스에 대해서도 GitLab Duo 기능이 차단됩니다. 여기에는 에픽, 이슈 및 취약점이 포함됩니다.

그룹 또는 프로젝트의 경우

전제 조건:

  • 그룹 또는 프로젝트의 소유자 역할이어야 합니다.

GitLab Duo 비활성화를 위해:

  1. GitLab GraphQL APIgroupUpdate 또는 projectSettingsUpdate 뮤테이션을 사용합니다.
  2. duo_features_enabled 설정을 false로 설정하여 프로젝트 또는 그룹의 GitLab Duo를 비활성화합니다. (기본값은 true입니다.)
  3. 선택 사항입니다. 상위 그룹의 모든 그룹 또는 프로젝트가 값의 상속을 받도록 하려면, lock_duo_features_enabledtrue로 설정합니다. (기본값은 false입니다.) 하위 그룹과 프로젝트는 이 값을 재정의할 수 없습니다.

인스턴스의 경우

전제 조건:

  • 관리자여야 합니다.

GitLab Duo 비활성화를 위해:

  1. 애플리케이션 설정 API을 사용합니다.
  2. duo_features_enabled 설정을 false로 설정하여 인스턴스의 GitLab Duo를 비활성화합니다. (기본값은 true입니다.)
  3. 선택 사항입니다. 이 설정이 그룹이나 프로젝트 수준에서 재정의할 수 없도록 하려면, lock_duo_features_enabledtrue로 설정합니다. (기본값은 false입니다.) 하위 그룹과 프로젝트는 이 값을 재정의할 수 없습니다.

계획된 사항

  • 이 설정을 UI에서 사용할 수 있도록 하는 이슈가 있습니다.
  • 현재 프로젝트와 그룹에서 최상위 그룹의 설정이 표시되지 않습니다. 설정이 상속되도록 하려면 lock_duo_features_enabledtrue로 설정되어 있는지 확인하세요.

실험적 AI 기능 및 사용 방법

다음 하위 섹션에서는 더 자세히 실험적 AI 기능을 설명합니다.

코드 설명을 위한 웹 UI에서 코드 설명하기

Tier: Ultimate Offering: GitLab.com Status: 실험
  • GitLab.com에서 실험으로 소개되었습니다. (GitLab 15.11)

이 기능을 사용하려면:

  • 프로젝트의 상위 그룹은 반드시:
  • 코드 리포지터리를 볼 충분한 권한을 가진 프로젝트 멤버여야 합니다.

GitLab은 큰 언어 모델을 사용하여 코드를 자연어로 설명할 수 있습니다.

코드를 설명하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드가 포함된 프로젝트에서 원하는 파일을 선택합니다.
  3. 파일에서 설명을 받고 싶은 코드를 선택합니다.
  4. 왼쪽에서 물음표()를 선택합니다. 보기 위해 첫 번째 줄로 스크롤해야 할 수 있습니다. 선택한 코드와 함께 설명을 제공하는 이벤트를 보냅니다.
  5. 페이지 오른쪽에 드로어(Drawer)이 표시됩니다. 설명이 생성되는 동안 잠시 기다립니다.
  6. 결과를 향상시키기 위해 설명에 대한 만족도에 대한 피드백을 제공합니다.

Merge요청의 문맥에서도 코드를 설명할 수 있습니다. Merge요청에서 코드를 설명하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택한 다음 Merge Request을 선택합니다.
  3. 보조 메뉴에서 변경사항을 선택합니다.
  4. 설명을 받고 싶은 파일을 선택하고, 세 개의 점()을 선택하고 $SHA에서 파일 보기를 선택합니다.

    새로운 브라우저 탭이 열리고 최신 변경 내용이 포함된 전체 파일이 표시됩니다.

  5. 설명을 받고 싶은 코드를 선택합니다.
  6. 왼쪽에서 물음표()를 선택합니다. 보기 위해 첫 번째 줄로 스크롤해야 할 수 있습니다. 선택한 코드와 함께 설명을 제공하는 이벤트를 보냅니다.
  7. 페이지 오른쪽에 드로어(Drawer)이 표시됩니다. 설명이 생성되는 동안 잠시 기다립니다.
  8. 결과를 향상시키기 위해 설명에 대한 만족도에 대한 피드백을 제공합니다.

코드 설명 실험 사용 방법

큰 언어 모델이 올바른 결과를 생성한다고 보장할 수 없습니다. 설명을 사용할 때 주의하세요.

Issue discussion summarization with Discussion Summary

Tier: Ultimate Offering: GitLab.com Status: Experiment

이 기능을 사용하려면:

  • 이슈의 상위 그룹은 다음을 해야합니다:
  • 이슈를 보기에 충분한 권한이 있는 프로젝트 멤버여야 합니다.

이슈에서 토론을 요약할 수 있습니다:

  1. 이슈에서 Activity 섹션 까지 스크롤하세요.
  2. View summary를 선택하세요.

이슈의 코멘트가 최대 10개의 디렉터리 아이템으로 요약됩니다. 이 요약은 개별적으로만 표시됩니다.

이 실험적인 기능에 대한 피드백은 issue 407779에서 제공하세요.

데이터 사용: 이 기능을 사용할 때 이슈의 모든 코멘트 텍스트가 지정된 대형 언어 모델로 전송됩니다.

Value Stream Forecasting을 사용하여 배포 빈도 예측

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated Status: Experiment

이 기능을 사용하려면:

  • 프로젝트의 상위 그룹은 다음을 해야합니다:
  • CI/CD 분석을 보기에 충분한 권한이 있는 프로젝트 멤버여야 합니다.

CI/CD Analytics에서 배포 빈도를 예측할 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 분석 > CI/CD analytics를 선택하세요.
  3. 배포 빈도 탭을 선택하세요.
  4. 예측 표시 토글을 켭니다.
  5. 확인 대화 상자에서 테스트 조건 수락을 선택하세요.

예측은 차트의 점선으로 표시됩니다. 데이터는 선택한 날짜 범위의 절반 기간 동안 예측됩니다. 예를 들어, 30일 범위를 선택하면 다음 15일간의 예측이 표시됩니다.

이 실험적인 기능에 대한 피드백은 issue 416833에서 제공하세요.

원인 분석

Tier: Ultimate Offering: GitLab.com Status: Experiment

이 기능을 사용하려면:

  • 프로젝트의 상위 그룹은 다음을 해야합니다:
  • CI/CD 작업을 보기에 충분한 권한이 있는 프로젝트 멤버여야 합니다.

기능을 사용할 수 있는 경우, “원인 분석” 버튼이 실패한 CI/CD 작업에서 나타납니다. 이 버튼을 선택하면 실패의 이유에 대한 분석이 생성됩니다.

Issue 설명 생성을 사용하여 이슈 요약

Tier: Ultimate Offering: GitLab.com Status: Experiment

이 기능을 사용하려면:

  • 프로젝트의 상위 그룹은 다음을 해야합니다:
  • 이슈를 보기에 충분한 권한이 있는 프로젝트 멤버여야 합니다.

간단한 요약에서 이슈 설명을 생성할 수 있습니다.

  1. 새 이슈를 생성하세요.
  2. Description 필드 위에 있는 AI actions > Generate issue description을 선택하세요.
  3. 간단한 설명을 작성하고 Submit을 선택하세요.

이슈 설명은 AI가 생성한 텍스트로 대체됩니다.

이 실험적인 기능에 대한 피드백은 issue 409844에서 제공하세요.

데이터 사용: 이 기능을 사용할 때 입력한 텍스트가 지정된 대형 언어 모델로 전송됩니다.

언어 모델

기능 대형 언어 모델
Git 제안 Vertex AI Codey codechat-bison
Discussion summary Anthropic Claude-2
Issue description generation Anthropic Claude-2
Code Suggestions 코드 완성용: Vertex AI Codey code-gecko 코드 생성용: Anthropic Claude-2
Test generation Anthropic Claude-2
Merge request template population Vertex AI Codey text-bison
Suggested Reviewers GitLab은 각 프로젝트에 대한 기계 학습 모델을 생성하여 리뷰어를 생성합니다 이 이슈 보기
Merge request summary Vertex AI Codey text-bison
Code review summary Vertex AI Codey text-bison
Vulnerability explanation Vertex AI Codey text-bison degraded performance의 경우 Anthropic Claude-2
Vulnerability resolution Vertex AI Codey code-bison
Code explanation Vertex AI Codey codechat-bison
GitLab Duo Chat Anthropic Claude-2 Vertex AI Codey textembedding-gecko
Root cause analysis Vertex AI Codey text-bison
Value stream forecasting 통계 예측

데이터 사용

GitLab AI 기능은 생성 모델을 활용하여 속도를 증가시키고 프로덕션성을 높이는 데 도움을 줄 수 있도록 설계되었습니다. 각 기능은 다른 기능과 독립적으로 작동하며 다른 기능의 작동에는 필요하지 않습니다. GitLab은 특정 작업을 위해 최고 수준의 대형 언어 모델을 선택합니다. Google Vertex AI 모델Anthropic Claude을 사용합니다.

점진적 향상

이러한 기능들은 기존의 GitLab 기능에 대한 점진적 향상으로 설계되었습니다. 이들은 우아하게 실패하도록 설계되어야 하며 기본 기능의 핵심 기능을 방해해서는 안 됩니다. 각 기능은 관련 기능 지원 정책에서 정의된 예상 기능에 따라 작동함을 유의해야 합니다.

안정성과 성능

이러한 기능들은 다양한 기능 지원 수준으로 제공됩니다. 이러한 기능들의 성격으로 인해 사용이 높아질 수 있으며, 이는 기능의 성능 하락이나 예기치 못한 다운타임을 초래할 수 있습니다. 우리는 이러한 기능들을 우아하게 감쇠시키도록 설계하였고 남용이나 오용을 완화하기 위한 제어장치를 갖추고 있습니다. GitLab은 재량에 따라 언제든지 모든 또는 일부 고객을 대상으로 베타 및 실험적 기능을 비활성화할 수 있습니다.

데이터 프라이버시

GitLab Duo AI 기능은 생성 모델을 기반으로 합니다. 개인 데이터의 처리는 개인 정보 취급 방침에 따라 진행됩니다. 이 기능을 제공하기 위해 사용하는 하위 프로세서 디렉터리은 하위 프로세서 페이지에서 확인할 수 있습니다.

데이터 보존

아래는 GitLab AI 모델과 관련된 현재 보존 기간을 반영한 것입니다. 하위 프로세서를 참조하세요.

  • Anthropic은 생성된 출력이 제공된 후 즉시 모델 입력과 출력 데이터를 삭제합니다. Anthropic은 현재 남용 모니터링을 위해 데이터를 저장하지 않습니다. 모델 입력과 출력은 모델 훈련에 사용되지 않습니다.
  • Google은 생성된 출력이 제공된 후 즉시 모델 입력과 출력 데이터를 삭제합니다. Google은 현재 남용 모니터링을 위해 데이터를 저장하지 않습니다. 모델 입력과 출력은 모델 훈련에 사용되지 않습니다.

이러한 AI 제공 업체는 GitLab과의 데이터 보호 계약에 따라 고객 콘텐츠를 자체 목적으로 사용하는 것을 금지하고 있습니다. 별도의 법적 의무를 수행하기 위한 용도로만 사용할 수 있습니다.

GitLab은 문제 해결, 디버깅 및 지연 문제 해결을 위해 최대 30일 동안 입력 및 출력을 보존합니다.

텔레메트리

GitLab Duo는 Snowplow 수집기를 통해 집계된 또는 비식별화된 퍼스트파티 사용 데이터를 수집합니다. 이 사용 데이터에는 다음과 같은 메트릭이 포함됩니다.

  • 고유 사용자 수
  • 고유 인스턴스 수
  • 프롬프트 길이
  • 사용된 모델
  • 상태 코드 응답
  • API 응답 시간

훈련 데이터

GitLab은 비공개(공개되지 않은) 데이터를 기반으로 생성 모델을 훈련시키지 않습니다. 우리가 협업하는 공급업체들도 비공개 데이터를 기반으로 모델을 훈련시키지 않습니다.

AI에 관한 자세한 내용은 하위 프로세서를 참조하세요.

모델 정확도와 품질

생성 모델은 예기치 않은 결과를 생성할 수 있습니다.

  • 저품질
  • 일관되지 않음
  • 불완전
  • 실패한 파이프라인 생성
  • 보안 문제가 있는 코드
  • 무례하거나 민감할 수 있음
  • 최신이 아닐 수 있음

GitLab은 생성된 콘텐츠의 품질을 향상시키기 위해 모든 AI 지원 기능을 끊임없이 발전시키고 있습니다. 이러한 기능들을 개선하기 위해 프롬프트 엔지니어링, 이러한 기능을 구동하는 새로운 AI/ML 모델 평가, 그리고 이러한 기능에 직접 내장된 소위 휴리스틱을 평가하고 있습니다.