본문으로 건너뛰기

GitLab AI/ML 기능 소개

GitLab은 DevSecOps 플랫폼 전반에 걸쳐 AI 기반 기능을 개발하고 있습니다. 이러한 기능은 소프트웨어 개발 라이프사이클 전반에서 속도를 높이고, 주요 문제점을 해결하도록 돕는 게 목표입니다.

AI/ML 기능 활성화하기

이 기능은 GitLab 16.0에 도입돼 활발히 배포되고 있습니다.

전제 조건:

  • 사용자는 그룹에 Owner 권한이 있어야 합니다.

최상위 그룹에 AI/ML 기능을 활성화하려면:

  • 실험 기능을 활성화합니다.
  • 서드 파티 AI 기능을 활성화합니다(기본으로 활성화됨). 서드 파티 API로 실행되는 AI 기능을 비활성화하려면 이 설정을 해제합니다.

이러한 설정은 함께 작동하므로 실험, 서드 파티 AI 기능을 모두 사용할 수 있습니다.

GA(Generally Available) AI 기능

기능을 일반적으로 이용할 수 있을(Generally Available) 때, 실험 기능을 활성화할 필요가 없습니다. 이러한 기능 중 일부는 서드 파티 AI 기능을 활성화해야 할 수 있습니다.

다음 기능은 일반적으로 이용할 수 있습니다.

베타 AI 기능

베타 기능을 사용하려면 실험 기능을 활성화할 필요가 없습니다.

다음 기능은 베타 버전입니다.

실험 AI 기능

실험 AI 기능을 사용하려면 실험 기능서드 파티 AI 서비스를 활성화해야 합니다.

다음 기능은 실험 기능입니다.

이 페이지에서 설명한 나머지 기능도 실험 단계입니다.

웹 UI에서 선택된 코드 설명하기

(Ultimate, SaaS)

이 기능은 GitLab 15.11에 GitLab.com의 실험 기능으로 도입됐습니다.

이 AI 기능은 GitLab.com의 실험 기능으로, Google의 Code Chat용 Codey(codechat-bison)로 실행됩니다.

GitLab은 다음 상황에서 사용자가 속도를 더 빠르게 높이도록 지원합니다.

  • 다른 사람이 만든 코드 조각을 이해하려고 애쓰는 데 많은 시간을 보내거나,
  • 익숙하지 않은 언어로 작성된 코드를 이해하는 데 어려움을 겪을 때

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

전제 조건:

위 두 가지 사항 외에 추가 전제 조건이 있습니다.

  • 프로젝트는 GitLab.com에 있어야 합니다.
  • GitLab Ultimate 구독 티어가 있어야 합니다.
  • 리포지터리를 보는 충분한 권한이 있는 프로젝트의 멤버여야 합니다.

코드를 설명하기 위해:

  1. 왼쪽 사이드바의 상단에서 Search or go to 아이콘을 선택해 프로젝트를 찾습니다.
  2. 프로젝트에서 코드를 포함한 파일을 선택합니다.
  3. 파일에서 설명하려는 라인을 선택합니다.
  4. 왼쪽 사이드바에서, 물음표를 선택합니다. 선택된 코드를 보려면 해당 코드의 첫 줄까지 스크롤 해야 합니다. 그러면 선택된 코드가 프롬프트와 함께 대규모 언어 모델에 설명을 제공하기 위해 전송됩니다.
  5. 드로어(Drawer)가 페이지 오른쪽에 표시됩니다. 설명이 생성될 때까지 잠시 기다립니다.
  6. 설명에 대한 만족도를 피드백해 주세요. 그러면 GitLab이 결과를 개선할 수 있습니다.

Merge request의 컨텍스트에서 코드를 설명하도록 할 수 있습니다. Merge request에서 코드를 설명하려면:

  1. 왼쪽 사이드바의 상단에서 Search or go to 아이콘을 선택해 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Code > Merge requests를 선택한 다음, Merge request를 선택합니다.
  3. 보조 메뉴에서 Changes를 선택합니다.
  4. 설명하려는 파일에서 점 세 개를 선택하고, View File @ $SHA를 선택합니다. 별도 브라우저 탭이 열리고 최신 변경 사항을 포함한 전체 파일이 표시됩니다.
  5. 새 탭에서 설명하려는 라인을 선택합니다.
  6. 왼쪽에서 물음표를 선택합니다. 선택된 코드를 보려면 해당 코드의 첫 줄까지 스크롤 해야 합니다. 그러면 선택된 코드가 프롬프트와 함께 대규모 언어 모델에 설명을 제공하기 위해 전송됩니다.
  7. 드로어(Drawer)가 페이지 오른쪽에 표시됩니다. 설명이 생성될 때까지 잠시 기다립니다.
  8. 설명에 대한 만족도를 피드백해 주세요. 그러면 GitLab이 결과를 개선할 수 있습니다.
photo | 인포그랩 GitLab | 인포그랩 GitLab

대규모 언어 모델이 정확한 결과를 생성한다고 보장할 수 없습니다. 설명을 신중하게 사용하세요.

GitLab Duo Chat

(Ultimate, SaaS)

이 기능은 GitLab 16.0에 실험 기능으로 도입됐습니다.

이 기능은 GitLab.com의 실험 기능입니다. 이 기능을 사용하려면 그룹 수준의 서드 파티 AI 기능 설정을 활성화해야 합니다.

GitLab Duo Chat은 Anthropic’s Claude-2.0과 Claude-instant-1.1 대규모 언어 모델, OpenAI의 text-embedding-ada-002 임베딩으로 실행됩니다. 대규모 언어 모델은 사용자 질문을 분석해 사용자 프로젝트에서 적절한 컨텍스트 데이터를 모으고, 답변을 생성하는 데 쓰입니다. 때에 따라서는, 임베딩이 사용자 질문을 임베드하고, GitLab 문서에서 관련 내용을 찾아 대규모 언어 모델과 공유해 답변을 생성하는 데 사용됩니다.

GitLab Duo Chat에서 다음 주제에 대한 AI 생성 지원을 받을 수 있습니다.

  • GitLab 사용 방법
  • 이슈에 대한 질문
  • 이슈 요약하기

다음 질문을 할 수 있습니다.

  • What is a fork? (fork가 무엇인가요?)
  • How to reset my password (비밀번호를 재설정하는 방법)
  • Summarize the issue <link to your issue> (이슈 요약하기 <링크 연결>)
  • Summarize the description of the current issue (현재 이슈 설명 요약하기)

위 사례는 모두 이슈나 GitLab 문서 데이터를 사용합니다. 그러나 코드, CI/CD 구성을 생성하거나 코드를 설명하도록 요청할 수도 있습니다. 예를 들어:

  • Write a hello world function in Ruby (Ruby로 hello world 함수를 작성해 줘)
  • Write a tic tac toe game in JavaScript (JavaScript로 틱택토 게임을 작성해 줘)
  • Write a .gitlab-ci.yml file to test and build a rails application (Rails 애플리케이션을 테스트하고 빌드하도록 .gitlab-ci/yml 파일을 작성해 줘)
  • Explain the following code: def sum(a, b) a + b end (다음 코드를 설명해 줘: def sum(a, b) a + b end)

후속 질문도 할 수 있습니다.

이 기능은 실험 기능이며, 우리는 채팅 기능과 신뢰성을 계속 확대하고 있습니다.

  1. 왼쪽 하단 코너에서, Help 아이콘을 선택합니다. 새로운 왼쪽 사이드바는 활성화돼야 합니다.
  2. Ask in GitLab Duo Chat을 선택합니다. 드로어(Drawer)는 화면 오른쪽에서 열립니다.
  3. 채팅 입력 상자에 질문을 입력하고, Enter를 누르거나 Send를 선택합니다. 인터랙티브 AI 챗이 답변을 생성하는 데 몇 초 걸릴 수 있습니다.
  4. 후속 질문을 할 수 있습니다.
  5. 이전 대화와 관련되지 않은 새로운 질문을 하려면, 입력 상자에 /reset을 입력하고 Send를 선택해 컨텍스트를 지워야 더 나은 답변을 얻을 수 있습니다.

특정 응답에 피드백을 제공하려면, 응답 메시지에 피드백 버튼을 사용하세요. 또는 피드백 이슈에 코멘트를 추가할 수도 있습니다.

참고

가장 최근 메시지 50개만 채팅 기록에 남습니다. 채팅 기록은 마지막으로 사용한 지 3일 뒤에 만료됩니다.

이슈 토론 요약하기

(Ultimate, SaaS)

이 기능은 GitLab 16.0에 실험 기능으로 도입됐습니다.

이 기능은 GitLab.com의 실험 기능으로, OpenAI의 GPT-3로 실행됩니다. 이 기능을 사용하려면 그룹 수준의 서드 파티 AI 기능 설정을 활성화해야 합니다.

이슈 토론 요약을 생성하려면:

  1. 이슈에서, Activity 섹션으로 스크롤 합니다.
  2. View Summary를 선택합니다.

이슈의 코멘트는 최대 10개 목록 항목으로 요약됩니다. 이 요약은 사용자에게만 표시됩니다.

issue 407779에 이 실험 기능을 피드백해 주세요.

데이터 사용량: 이 기능을 사용할 때, 이슈의 공개 코멘트 텍스트가 위에서 참조한 대규모 언어 모델로 전송됩니다.

배포 빈도 예측 보기

(Ultimate, SaaS)

이 기능은 GitLab 16.2에 실험 기능으로 도입됐습니다.

이 기능은 GitLab.com의 실험 기능입니다.

CI/CD Analytics에서, 배포 빈도 예측을 볼 수 있습니다.

  1. 왼쪽 사이드바 상단에서 Search or go to 아이콘을 선택해 프로젝트를 찾습니다.
  2. Analyze > CI/CD analytics를 선택합니다.
  3. Deployment frequency 탭을 선택합니다.
  4. Show forecast 토글을 켭니다.
  5. confirmation dialog에서 Accept testing terms를 선택합니다.

이 예측은 차트에서 점선으로 표시됩니다. 데이터는 선택한 날짜 범위의 절반 기간에 해당하는 예측 결과를 보여줍니다. 예를 들어, 30일 범위를 선택하면 다음 15일의 예측 결과가 표시됩니다.

issue 416833에 이 실험 기능을 피드백해 주세요.

이슈 설명 생성하기

(Ultimate, SaaS)

이 기능은 GitLab 16.3에 실험 기능으로 도입됐습니다.

이 기능은 GitLab.com의 실험 기능으로, OpenAI의 GPT-3로 실행됩니다. 이 기능을 사용하려면 그룹 수준의 서드 파티 AI 기능 설정을 활성화해야 합니다.

이슈 설명을 짧은 요약에서 생성할 수 있습니다.

  1. 새 이슈를 만듭니다.
  2. Description 영역 위에, AI actions > Generate issue description을 선택합니다.
  3. 간략한 설명을 쓰고, Submit를 선택합니다.

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

issue 409844에 이 실험 기능을 피드백해 주세요.

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

데이터 사용량

GitLab AI 기능은 생성형 AI를 사용해 속도를 높이도록 돕고, 사용자가 생산성을 더 향상하도록 지원하는 걸 목표로 삼습니다. 각 기능은 다른 기능과 독립적으로 작동하며, 다른 기능을 작동하는 데 필요하지 않습니다.

점진적 향상

이러한 기능은 DevSecOps 플랫폼 전반에 걸쳐 기존 GitLab 기능을 점진적으로 향상하도록 설계됐습니다. 이는 적절하게 중단되도록 설계됐고, 기본 기능의 핵심 기능을 방해하지 말아야 합니다. 각 기능이 관련 기능 지원 정책에서 정의한 대로 예상 기능의 영향을 받을 수 있음을 주의하세요.

안정성과 성능

이러한 기능은 기능 지원 수준이 다양합니다. 이러한 기능의 특성 때문에, 성능이 떨어지거나 기능의 예상치 못한 다운타임이 생길 정도로 이용 수요가 높을 수 있습니다. 우리는 이러한 기능의 성능이 적절하게 저하되도록 구축했으며, 오남용을 완화할 수 있도록 통제권을 갖췄습니다. GitLab은 재량에 따라 언제라도 일부 또는 모든 고객을 대상으로 베타 기능과 실험 기능을 비활성화할 수 있습니다.

서드 파티 서비스

데이터 프라이버시

일부 AI 기능은 구글 AI, OpenAI와 같은 서드 파티 AI 서비스 모델과 API를 사용해야 합니다. 모든 개인 데이터 처리는 GitLab 개인정보 보호 정책을 따릅니다. 아울러 Sub-Processors 페이지에 들어가서 우리가 이러한 기능을 제공하는 데 사용하는 Sub-Processors 목록을 볼 수 있습니다.

그룹 Owner 권한 사용자는 그룹 수준의 서드 파티 AI 기능 설정을 사용해 어떤 최상위 그룹이 서드 파티 AI 기능에 액세스하는지 제어할 수 있습니다.

모델 정확도와 품질

생성형 AI는 아래와 같이 예상치 못한 결과를 생성할 수 있습니다.

  • 낮은 품질
  • 일관성이 부족함
  • 불완전함
  • 실패한 파이프라인을 생성함
  • 불안전한 코드
  • 공격적이거나 무감각함

GitLab은 생성된 콘텐츠 품질을 향상하기 위해 모든 AI 기능 처리 절차를 적극적으로 반복하고 있습니다. 우리는 프롬프트 엔지니어링과 이러한 기능을 작동시키는 새로운 AI/ML 모델 평가, 이러한 기능에 직접 구축된 새로운 휴리스틱으로 품질을 향상합니다.