제안된 리뷰어 데이터 사용
작동 방식
제안된 리뷰어는 사용자에게 최초로 제공되는 GitLab 머신 러닝(ML) 기반 기능입니다. 이는 프로젝트의 기여 그래프를 활용하여 제안 사항을 생성합니다. 이 데이터는 이미 GitLab에 존재하며, 병합 요청 메타데이터, 소스 코드 파일, 및 GitLab 사용자 계정 메타데이터를 포함합니다.
기능 활성화
프로젝트 유지 관리자 또는 소유자가 프로젝트 설정에서 제안된 리뷰어를 활성화하면, GitLab은 병합 요청 API를 활용하여 리뷰 패턴(최근性, 도메인 경험, 빈도 포함)을 이해하고 적절한 리뷰어를 제안하는 데이터 추출 작업을 시작합니다. 프로젝트가 병합 요청 승인 프로세스를 사용하지 않거나 역사적인 병합 요청 데이터가 없는 경우, 제안된 리뷰어는 리뷰어를 제안할 수 없습니다.
이 데이터 추출 작업은 완료하는 데 몇 시간이 걸릴 수 있으며(최대 하루까지 소요될 수 있음), 이는 주로 프로젝트의 크기에 따라 달라집니다. 이 과정은 자동화되어 있으며 이 과정 중에 추가적인 조치는 필요하지 않습니다. 데이터 추출이 완료되면, 병합 요청에서 제안 사항을 받기 시작합니다.
제안 생성
제안된 리뷰어가 활성화되고 데이터 추출이 완료되면, 새로운 병합 요청 또는 기존 병합 요청에 대한 새로운 커밋은 자동으로 제안된 리뷰어 ML 모델 추론을 트리거하고 최대 5명의 제안된 리뷰어를 생성합니다. 이러한 제안은 병합 요청의 변경 사항에 대한 맥락을 고려합니다. 병합 요청에 대한 추가 커밋은 리뷰어 제안을 변경할 수 있으며, 이는 리뷰어 드롭다운 목록에서 자동으로 업데이트됩니다.
점진적 향상
이 기능은 기존 GitLab 리뷰어 기능에 대한 점진적 향상으로 설계되었습니다. GitLab 리뷰어 UI는 ML 엔진이 추천을 제공할 수 있는 경우에만 제안을 제공합니다. 문제 또는 모델 추론 실패가 발생할 경우, 이 기능은 부드럽게 저하됩니다. 제안된 리뷰어를 사용해도 사용자가 수동으로 리뷰어를 설정하는 것을 방해하지 않습니다.
모델 정확도
조직은 코드 리뷰를 위한 다양한 프로세스를 사용합니다. 일부는 선임 엔지니어가 주니어 엔지니어의 코드를 검토하는 데 중점을 두고, 다른 일부는 계층적 조직 구조 기반 리뷰를 진행합니다. 제안된 리뷰어는 사용자의 역사적 병합 요청 활동을 기반으로 한 맥락적 리뷰어에 중점을 둡니다. 우리는 다양한 코드 리뷰 사용 사례와 프로세스를 더 잘 지원하기 위해 기본 ML 모델을 지속적으로 발전시키는 동안, 제안된 리뷰어가 Code Owners 및 승인 규칙과 같은 다른 코드 리뷰 기능의 사용을 대체하지는 않는다고 기대합니다. 리뷰어 선택은 매우 주관적이므로, 제안된 리뷰어가 매번 완벽한 제안을 제공할 것으로 기대하지 않습니다.
베타 고객 사용 분석을 통해, 제안된 리뷰어 ML 모델이 제안 사항을 제공하는 경우 60%가 채택된다는 것을 발견했습니다. 우리는 사용자가 나쁜 리뷰어 제안을 신고하여 모델을 개선할 수 있도록 제안된 리뷰어 기능에 피드백 메커니즘을 도입할 계획입니다. 또한 모델이 기본 모델 훈련을 위해 프로젝트 데이터를 사용할 수 있는 선택적 기능을 향후 제공할 계획입니다.
기본적으로 꺼짐
제안된 리뷰어는 기본적으로 꺼져 있으며, 기능을 활성화하려면 프로젝트 소유자 또는 관리자가 필요합니다.
데이터 프라이버시
제안된 리뷰어는 GitLab.com 인프라 내에서 완전히 작동하여 다른 GitLab.com 기능과 동일한 수준의 프라이버시 및 보안을 제공합니다.
이 기능을 활성화하기 위해 새로운 추가 데이터가 수집되지 않습니다. GitLab은 훈련된 머신 러닝 모델에 대해 귀하의 병합 요청을 유추합니다. 귀하의 소스 코드 내용은 훈련 데이터로 사용되지 않습니다. 귀하의 데이터는 GitLab.com을 떠나지 않으며, 모든 훈련 및 추론은 GitLab.com 인프라 내에서 이루어집니다.