GitLab Duo

GitLab은 DevSecOps 플랫폼 전반에 걸쳐 AI 지원 기능을 만들고 있습니다. 이러한 기능들은 개발 수명주기 전체에서 속도를 높이고 주요한 고통스러운 점을 해결하는 데 도움을 줄 수 있도록 목표를 가지고 있습니다.

일부 기능은 아직 개발 중입니다. 각 상태의 지원에 대한 세부 정보를 확인하십시오(Experiment, Beta, 일반적으로 사용 가능).

기능들이 일반적으로 사용 가능해지면, GitLab은 투명하게 하여 해당 기능에 어떻게 접근하고 이러한 능력을 어디에서 어떻게 활용할 수 있는지 명확하게 설명하는 문서를 업데이트합니다.

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

개요 보기
코드 제안 Tier: 프리미엄 또는 얼티메이트 with GitLab Duo Pro
Offering: GitLab.com, Self-managed, GitLab 전용
대화식 방식으로 텍스트와 코드를 처리하고 생성합니다. 이를 통해 이슈, 에픽, 코드 및 GitLab 문서의 큰 양의 텍스트에서 유용한 정보를 빠르게 식별하는 데 도움이 됩니다. 채팅 Tier: 프리미엄, 얼티메이트
Offering: GitLab.com, Self-managed, GitLab 전용
Status: 베타 (테스트 계약에 따름)(Testing Agreement)
필요한 시기와 장소에서 Git 명령을 발견하거나 호출하는 데 도움이 됩니다. Git 제안 Tier: 얼티메이트
Offering: GitLab.com
Status: 실험
모든 사람이 빠르게 동의를 얻고 모두가 동일한 페이지에 있는지 확인하여 긴 대화의 빠른 손질을 돕습니다. 토론 요약 Tier: 얼티메이트
Offering: GitLab.com
Status: 실험
이슈 설명을 생성합니다. 이슈 설명 생성 Tier: 얼티메이트
Offering: GitLab.com
Status: 실험
반복되는 작업을 자동화하고 초기 버그를 잡는 데 도움이 됩니다. 테스트 생성 Tier: 얼티메이트
Offering: GitLab.com, Self-managed, GitLab 전용
Status: 베타
템플릿 내용을 기반으로하는 merge request 설명을 생성합니다. Merge request 템플릿 자동 입력 Tier: 얼티메이트
Offering: GitLab.com
Status: 실험
자동으로 권고자를 제안하여 생성의 리뷰를 빠르고 고품질로 만드는 데 돕습니다.

개요 보기
제안된 리뷰어 Tier: 얼티메이트
Offering: GitLab.com
Status: 일반적으로 사용 가능
Merge request 변경 사항의 영향을 효율적으로 전달합니다. Merge request 요약 Tier: 얼티메이트
Offering: GitLab.com
Status: 실험
생성자와 리뷰어 간의 merge request 협업을 쉽게하고 리뷰어가 건의 사항을 효율적으로 이해하는 데 도움이 됩니다. 코드 리뷰 요약 Tier: 얼티메이트
Offering: GitLab.com
Status: 실험
취약점을 효율적으로 해소하고 기술을 향상시키며 보안이 더 강화된 코드를 작성하는 데 도움이 됩니다.

개요 보기
취약점 설명 Tier: 얼티메이트
Offering: GitLab.com
Status: 베타
취약점을 완화하기 위해 필요한 변경 사항이 포함된 merge request를 생성합니다. 취약점 해결 Tier: 얼티메이트
Offering: GitLab.com
Status: 실험
영어로 코드를 설명하여 코드를 이해하는 데 도움이 됩니다.

개요 보기
코드 설명 Tier: 얼티메이트
Offering: GitLab.com
Status: 실험
파이프라인 실패 및 CI/CD 빌드 실패의 근본 원인을 판별하는 데 도움이 됩니다. 근본 원인 분석 Tier: 얼티메이트
Offering: GitLab.com
Status: 실험
생산성 지표를 예측하고 소프트웨어 개발 수명주기 전반에 걸친 이상 징후를 식별하는 데 도움이 됩니다. 밸류 스트림 예측 Tier: 얼티메이트
Offering: GitLab.com, Self-managed, GitLab 전용
Status: 실험

AI/ML 기능 활성화

실험 및 베타로 표시된 기능에 대해:

  • 이러한 기능은 기본적으로 비활성화되어 있습니다.
  • 이 설정을 활성화하려면 그룹의 소유자 역할이어야 합니다. 이 설정을 활성화하세요. GitLab.com의 경우, 해당 설정은 Ultimate 구독에서만 사용할 수 있습니다.
  • 이러한 기능은 테스트 이용 약관에 따릅니다.

자체 관리하는 모든 기능에 대해:

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

다른 기능에 대해:

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

GitLab Duo 기능 비활성화

세부 정보: Tier: 프리미엄, 얼티메이트 Offering: GitLab.com, 자체 관리, GitLab Dedicated

그룹, 프로젝트 또는 인스턴스에서 GitLab Duo AI 기능을 비활성화할 수 있습니다. 비활성화되면, 해당 그룹, 프로젝트 또는 인스턴스에서 GitLab Duo 기능을 사용하려는 시도는 차단되며 오류가 표시됩니다. 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. application settings API를 사용하세요.
  2. duo_features_enabled 설정을 false로 설정하여 인스턴스에서 GitLab Duo를 비활성화하세요. (기본값은 true입니다.)
  3. 선택 사항. 이 설정이 그룹 또는 프로젝트 수준에서 재정의되지 못하도록 하려면 lock_duo_features_enabledtrue로 설정하세요. (기본값은 false입니다.) 하위 그룹과 프로젝트는 이 값을 재정의할 수 없습니다.

향후 계획

  • 이 설정을 UI에서 사용할 수 있도록 하기 위한 이슈 있음
  • 현재 프로젝트와 그룹은 최상위 그룹의 설정을 표시하지 않으므로, 이 설정이 계층적으로 적용되도록 하려면 lock_duo_features_enabledtrue로 설정되어 있는지 확인하세요.
  • 모든 그룹과 프로젝트에 설정이 계층적으로 적용되도록 하려면, 프로젝트와 그룹이 최상위 그룹의 설정을 따르도록 하세요.

실험적 AI 기능 및 사용 방법

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

코드 설명을 사용하여 웹 UI에서 코드 설명

세부 정보: Tier: 얼티메이트 Offering: GitLab.com Status: 실험

  • GitLab.com에서 실험으로 15.11에서 소개되었습니다.

이 기능을 사용하려면 다음이 필요합니다:

  • 프로젝트의 상위 그룹은 실험 및 베타 기능 설정을 활성화해야 합니다.
  • 리포지토리를 볼 수 있는 충분한 권한이 있는 프로젝트의 멤버여야 합니다.

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

코드를 설명하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾으세요.
  2. 코드가 포함된 프로젝트에서 원하는 파일을 선택하세요.
  3. 파일에서 설명하려는 줄을 선택하세요.
  4. 왼쪽에서 물음표 ()를 선택하세요. 이를 보려면 선택한 코드의 첫 번째 줄로 스크롤해야 할 수도 있습니다. 선택된 코드와 함께 설명을 제공하는 프롬프트를 보내게 됩니다.
  5. 페이지 오른쪽에 서랍이 표시됩니다. 설명이 생성되기까지 잠시 기다리세요.
  6. 결과를 개선하기 위해 제공된 설명에 대한 만족도에 대한 피드백을 제공하세요.

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

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾으세요.
  2. 코드 > 병합 요청을 선택한 후 병합 요청을 선택하세요.
  3. 보조 메뉴에서 변경을 선택하세요.
  4. 설명을 받고 싶은 파일을 선택한 후 세 개의 점 ()을 선택하고 파일 보기 @ $SHA를 선택하세요. 새로운 브라우저 탭이 열리고 최신 변경 사항이 포함된 전체 파일이 표시됩니다.
  5. 새 탭에서 설명을 받고 싶은 줄을 선택하세요.
  6. 왼쪽에서 물음표 ()를 선택하세요. 이를 보려면 선택한 코드의 첫 번째 줄로 스크롤해야 할 수도 있습니다. 선택된 코드와 함께 설명을 제공하는 프롬프트를 보내게 됩니다.
  7. 페이지 오른쪽에 서랍이 표시됩니다. 설명이 생성되기까지 잠시 기다리세요.
  8. 결과를 개선하기 위해 제공된 설명에 대한 만족도에 대한 피드백을 제공하세요.

코드 설명 실험 사용 방법

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

토론 요약과 Discuss summary

세부 정보: Tier: Ultimate Offering: GitLab.com Status: Experiment

이 기능을 사용하려면:

  • 이슈의 상위 그룹은 다음을 활성화해야 합니다 : 실험 및 베타 기능 설정.
  • 이슈를 보기에 충분한 권한을 가진 프로젝트 멤버여야 합니다.

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

  1. 이슈에서 Activity 섹션으로 스크롤합니다.
  2. 요약 보기를 선택합니다.

이슈의 댓글은 최대 10개의 목록 아이템으로 요약됩니다. 요약은 당신만을 위해 표시됩니다.

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

데이터 사용: 이 기능을 사용할 때, 이슈의 모든 댓글 텍스트가 참조된 대형 언어 모델로 전송됩니다.

가치 스트림 예측으로 배포 빈도 예측하기

세부 정보: Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated Status: Experiment

이 기능을 사용하려면:

  • 프로젝트의 상위 그룹은 다음을 활성화해야 합니다 : 실험 및 베타 기능 설정.
  • CI/CD 분석을 보기에 충분한 권한을 가진 프로젝트 멤버여야 합니다.

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

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

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

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

원인 분석

세부 정보: Tier: Ultimate Offering: GitLab.com Status: Experiment

이 기능을 사용하려면:

  • 프로젝트의 상위 그룹은 다음을 활성화해야 합니다 : 실험 및 베타 기능 설정.
  • CI/CD 작업을 보기에 충분한 권한을 가진 프로젝트 멤버여야 합니다.

기능이 제공되면, 실패한 CI/CD 작업에 “Root cause analysis” 버튼이 표시됩니다. 이 버튼을 선택하면 실패한 이유에 대한 분석이 생성됩니다.

이슈 설명 생성으로 이슈 요약

세부 정보: Tier: Ultimate Offering: GitLab.com Status: Experiment

이 기능을 사용하려면:

  • 프로젝트의 상위 그룹은 다음을 활성화해야 합니다 : 실험 및 베타 기능 설정.
  • 이슈를 보기에 충분한 권한을 가진 프로젝트 멤버여야 합니다.

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

  1. 새로운 이슈를 생성합니다.
  2. 설명 필드 위에서 AI 동작 > 이슈 설명 생성을 선택합니다.
  3. 간단한 설명을 작성하고 제출을 선택합니다.

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

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

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

언어 모델

기능 대형 언어 모델
Git suggestions Vertex AI Codey codechat-bison
토론 요약 Anthropic Claude-2
이슈 설명 생성 Anthropic Claude-2
코드 제안 코드 완성용: Vertex AI Codey code-gecko 코드 생성용: Anthropic Claude-2
테스트 생성 Anthropic Claude-2
병합 요청 템플릿 채우기 Vertex AI Codey text-bison
제안된 리뷰어 GitLab은 각 프로젝트에 대해 기계 학습 모델을 생성하고 리뷰어를 생성합니다 이슈 보기
병합 요청 요약 Vertex AI Codey text-bison
코드 리뷰 요약 Vertex AI Codey text-bison
취약점 설명 Vertex AI Codey text-bison Anthropic Claude-2 예상 성능이 저하된 경우
취약점 해결 Vertex AI Codey code-bison
코드 설명 Vertex AI Codey codechat-bison
GitLab Duo Chat Anthropic Claude-2 Vertex AI Codey textembedding-gecko
원인 분석 Vertex AI Codey text-bison
가치 스트림 예측 통계적 예측

데이터 사용

GitLab AI 기능은 생성 AI를 활용하여 가속화를 증진시키고 더 생산적으로 만들어주는 데 도움을 줍니다. 각 기능은 다른 기능과 독립적으로 작동하며 다른 기능의 작동에 필수적이지 않습니다. GitLab은 특정 작업을 위해 최고 수준의 대형 언어 모델을 선택합니다. 우리는 Google Vertex AI 모델Anthropic Claude를 사용합니다.

점진적 향상

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

안정성과 성능

이러한 기능들은 다양한 기능 지원 수준으로 제공됩니다. 이러한 기능들의 성격상 사용량이 많을 수 있어 성능이 저하되거나 예상치 못한 다운타임이 발생할 수 있습니다. 우리는 이러한 기능들이 우아하게 저하되도록 설계했으며 남용이나 오용을 완화하기 위한 제어장치를 갖추고 있습니다. GitLab은 우리의 재량에 따라 언제든지 모든 고객을 대상으로 베타실험적인 기능을 비활성화할 수 있습니다.

데이터 개인 정보 보호

GitLab Duo AI 기능은 생성 AI 모델에 의해 지원됩니다. 개인 데이터의 처리는 개인 정보 보호 정책에 따라 이루어집니다. 이러한 기능을 제공하기 위해 사용하는 Sub-Processors 목록을 보려면 Sub-Processors 페이지를 방문할 수 있습니다.

데이터 유지 기간

아래 내용은 GitLab AI 모델 Sub-Processors의 현재 보존 기간을 반영합니다:

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

이러한 모든 AI 제공업체는 GitLab과의 데이터 보호 계약에 따라 고객 콘텐츠를 자체 목적으로 사용하지 않도록 금지하고 있습니다.

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

텔레메트리

GitLab Duo는 집계되거나 식별 삭제된 1차 사용 데이터를 Snowplow 수집기를 통해 수집합니다. 이 사용 데이터에는 다음과 같은 지표가 포함됩니다:

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

훈련 데이터

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

더 자세한 내용은 우리의 AI Sub-Processors를 참조하세요:

모델 정확도 및 품질

생성 AI는 예상치 못한 결과를 만들어낼 수 있습니다:

  • 저품질
  • 일관되지 않음
  • 불완전함
  • 실패한 파이프라인 생성
  • 보안이 취약한 코드
  • 모욕적이거나 민감한 정보
  • 최신 정보가 아님

GitLab은 생성된 컨텐츠의 품질을 개선하기 위해 모든 AI 지원 기능을 능동적으로 반복하고 있습니다. 이러한 기능을 개선하기 위해 프롬프트 엔지니어링을 진행하고, 이러한 기능에 직접 내장된 새로운 AI/ML 모델을 평가하며, 신규 휴리스틱을 통해 품질을 향상시킵니다.