GitLab Duo 용어집

이는 일반적인 의미를 가질 수 있지만 GitLab에서 특정한 의미를 가질 수도 있는 용어 목록입니다. AI와 관련된 기술 전문 용어를 접했을 때 이 목록에 추가할 수 있을 것이라고 생각하는 것이 있다면 추가하세요!

  • Adapters: 미세 조정(fine tuning)의 변형입니다. 모델을 열고 레이어 가중치를 조정하는 대신, 새로운 훈련된 레이어를 모델에 추가하거나 상위 독립 모델에 호스팅합니다. 어댑터 기반 모델(Adapter-based Models)으로도 알려져 있습니다. 전체 모델이 아닌 이러한 특정 모듈을 선택적으로 미세 조정함으로써, 어댑터는 사전 훈련된 모델을 특정 작업에 맞게 맞춤화할 수 있도록 하며, 최소한의 매개변수 증가만 필요합니다. 이 방법은 모델의 기본 구조를 변경하지 않고도 정확하고 작업별 조정을 가능하게 합니다.

  • AI Gateway: 비 SaaS GitLab 사용자가 AI 기능에 접근할 수 있도록 하는 독립 서비스입니다. 이 논리는 해당 서비스가 준비되면 클라우드 커넥터(Cloud Connector)로 이전될 것입니다. 결국 AI Gateway는 요청을 AI 제공업체에 프록시하는 엔드포인트를 호스팅하는 데 사용되며, GitLab Rails 모놀리트가 서드파티 대형 언어 모델(LLM)과 직접 통합하고 소통할 필요를 제거합니다. 설계 문서.

  • AI Gateway Prompt: 프롬프트 템플릿, 모델 선택 및 모델 매개변수의 캡슐화입니다. AI Gateway를 통해 모놀리트가 모델에 접근하는 유일한 접근 지점 노력의 일환으로 GitLab Rails 모놀리트에서 AI Gateway의 prompts 패키지로 이러한 구성 요소를 마이그레이션하고 있습니다.

  • AI Gateway Prompt Registry: 특정 작업을 수행하는 데 사용할 수 있는 AI Gateway 프롬프트 목록을 유지 관리하는 구성 요소입니다. 현재 AI Gateway의 YAML 파일에서 정의를 읽는 LocalPromptRegistry를 사용하고 있습니다.

  • Air-Gapped Model: 조직 내부의 인트라넷에만 호스팅되는 모델입니다. GitLab AI 기능의 맥락에서, 이는 에어갭 GitLab 인스턴스에 연결될 수 있습니다.

  • Bring Your Own Model (BYOM): 하나 이상의 GitLab Duo 기능에 연결되는 서드파티 모델입니다. 상용 오픈 소스(OS) 모델, 미세 조정된 모델 또는 클로즈드 소스 모델일 수 있습니다. GitLab은 GitLab Duo 기능을 위해 특정 검증된 BYOM을 지원할 계획이지만, GitLab Duo 기능을 위한 일반 BYOM 사용은 지원할 계획이 없습니다.

  • Chat Evaluation: GitLab Duo Chat의 도움 및 정확성을 사용자 질문에 대해 결정하는 자동화된 메커니즘입니다. MVC는 GitLab CI를 통해 실행되는 RSpec 테스트로, Chat에 일련의 질문을 하고 두 개의 다른 서드파티 LLM이 생성된 답변이 정확한지 여부를 판단하도록 합니다. MVC. 다음 반복을 위한 설계 문서.

  • Cloud Connector: 여러 GitLab 배포, 인스턴스 및 셀에서 공통으로 서비스에 접근하는 방법입니다. 우리는 이러한 서비스가 모든 GitLab 고객에게 제공될 수 있도록 하는 기술 솔루션 및 API 집합을 지칭하는 포괄적인 용어로 사용하고 있습니다. 자세한 내용은 Cloud Connector 아키텍처를 참조하세요.

  • Closed Source Model: 조직에 의해 미세 조정되거나 처음부터 제작된 비공개 모델입니다. 이러한 모델은 예를 들어 ChatGPT와 같은 클라우드 서비스로 호스팅될 수 있습니다.

  • Consensus Filtering: LLM 평가 방법입니다. LLM 판사는 여러 LLM의 출력을 프롬프트 세트와 비교하여 평가하도록 요청받습니다. 이는 Chat Evaluation MVC에 사용되는 평가 방법입니다. 모델 검증 팀의 이슈.

  • Context: 데이터 포인트, 사건 또는 정보 조각을 둘러싸고 있는 관련 정보로, 그 의미와 함의를 명확히 하는 데 도움이 됩니다. GitLab Duo Chat의 경우, 컨텍스트는 사용자 질문에서 참조되는 이슈 또는 에픽의 속성입니다.

  • Custom Model: 자체 호스팅 모델, BYOM, 미세 조정 모델, RAG 강화 모델 또는 어댑터 기반 모델을 사용하는 GitLab Duo 기능의 모든 구현입니다.

  • Embeddings: 기계 학습 및 대형 언어 모델의 맥락에서, 임베딩은 단어, 구 또는 전체 문서를 밀집 숫자 벡터로 표현하는 데 사용되는 기술을 의미합니다. GitLab에서는 Vertex AI의 Embeddings API를 사용하여 GitLab 문서의 벡터 표현을 생성하고 있습니다. 이러한 임베딩은 embeddings 데이터베이스의 vertex_gitlab_docs 데이터베이스 테이블에 저장됩니다. 임베딩 검색은 vector 확장을 사용하여 Postgres에서 수행됩니다. Vertex 임베딩 데이터베이스는 Llm::Embedding::GitlabDocumentation::CreateEmbeddingsRecordsWorker를 크론잡으로 실행하여 GitLab 문서의 최신 버전에 따라 매일 업데이트됩니다.

  • Fine Tuning: 라벨이 붙은 예제의 데이터셋을 활용하여 LLM의 가중치를 업데이트하는 감독 학습 프로세스를 통해 기존 모델을 수정하는 것입니다. 이는 코드 완성이나 채팅과 같은 특정 작업에 대한 출력을 개선합니다.

  • Foundational Model: 일반 목적의 LLM으로 일반적인 목표, 일반적으로 다음 토큰 예측을 사용하여 훈련됩니다. 이러한 모델은 유연하고 조정 가능하여 여러 도메인별 작업(미세 조정 또는 프롬프트 엔지니어링을 통해)을 해결할 수 있습니다. 이러한 일반 목적 모델은 많은 다운스트림 모델의 기반 역할을 하기 위해 이상적입니다. 기본 모델의 예로는 GPT-4o, Claude 3.5 Sonnet이 있습니다.

  • Frozen Model: 미세 조정할 수 없는 LLM입니다(또한 Frozen LLM).

  • GitLab Duo: GitLab DevSecOps 플랫폼 전반에 걸쳐 AI 지원 기능입니다. 이러한 기능은 속도를 높이고 소프트웨어 개발 생애 주기 전반에 걸쳐 주요 문제를 해결하는 데 도움을 주기 위해 설계되었습니다. GitLab Duo 기능 페이지도 참조하세요.

  • GitLab Managed Model: GitLab에서 관리하는 LLM입니다. 현재 모든 GitLab Managed Models는 외부에서 호스팅되며 AI Gateway를 통해 접근합니다. GitLab 소유의 API 키를 사용하여 모델에 접근합니다.

  • Golden Questions: 사용자가 GitLab Duo Chat에 물어볼 수 있어야 한다고 생각되는 질문 유형의 소규모 하위 집합입니다. Chat 평가를 위한 데이터를 생성하는 데 사용됩니다. Chat Beta를 위한 질문.

  • Ground Truth: 주어진 입력에 대한 진정한 출력을 나타내며, AI 모델이 학습하고 예측하도록 목표로 하는 현실입니다. Ground truth 데이터는 종종 인간이 주석을 달지만, 특정 사용 사례에 대해 알려진 좋고 신뢰할 수 있는 출처(예: LLM)에서 생성될 수도 있습니다.

  • Local Model: 사용자의 워크스테이션에서 실행되는 LLM입니다. 자세한 정보.

  • LLM: 대형 언어 모델(Large Language Model), 즉 LLM은 인간과 유사한 텍스트를 이해하고 생성하도록 훈련된 대규모 신경망입니다. GitLab Duo 기능과 관련하여 GitLab은 현재 Google 및 Anthropic에 호스팅된 동결된 모델과 함께 작업하고 있습니다.

  • Model Validation: AI 지원 단계 내에서 프롬프트 라이브러리에서 작업하며, GitLab Duo 기능의 AI 검증을 지원하고, GitLab에서의 다른 AI 사용 사례를 지원하기 위해 AI/ML 모델을 연구하는 그룹입니다. 팀 핸드북 섹션.

  • Offline Model: 인터넷 또는 인트라넷 연결 없이 실행되는 모델입니다(예: 기내에서 노트북에 모델을 실행하는 경우).

  • Open Source Model: 소스 코드와 가중치가 공개되어 있어 수정 및 재배포가 가능한 모델입니다. 예시: Llama / Llama 2, BLOOM, Falcon, Mistral, Gemma.

  • Prompt library: “프롬프트 라이브러리”는 LLM에 대해 다양한 프롬프트 기법을 테스트하는 CLI를 제공하는 파이썬 라이브러리입니다. 이는 가설 테스트를 용이하게 하여 LLM 응용 프로그램에 대한 데이터 기반 개선을 가능하게 합니다. 주요 기능으로는 Apache Beam을 사용하여 데이터 흐름 파이프라인을 관리하고 실행하며, 단일 파이프라인 실행에서 다양한 서드파티 AI 서비스와의 프롬프트에 대한 여러 평가 실험을 수행할 수 있는 기능이 포함됩니다. 코드.

  • Prompt Registry: 서드파티 AI 서비스와 상호작용하는 데 사용되는 저장되고 버전 관리된 프롬프트입니다. 설계 문서 제안 MR (종료).

  • Prompt: 특정 작업을 수행하기 위해 LLM에 전송되는 자연어 지시 사항입니다. 프롬프트 가이드라인.

  • RAG (Retrieval Augmented Generation): RAG는 쿼리의 일환으로 LLM에 컨텍스트 데이터를 제공하여 결과를 개인화합니다. RAG는 할루시네이션을 줄이고 출력의 품질을 개선하기 위해 프롬프트에 추가 컨텍스트를 주입하는 데 사용됩니다.

  • RAG Pipeline: 입력(예: 사용자 질문)을 시스템으로 가져와 그 입력에 대해 관련 데이터를 검색하고, 추가 컨텍스트로 입력을 보강한 다음, 정보를 종합하여 일관되고 맥락에 적합한 답변을 생성하는 메커니즘입니다. 이 설계 패턴은 LLM의 개방형 질문 응답에 유용하며, 이를 위해 GitLab Duo Chat에 대한 질문에 답변하기 위해 이 디자인 패턴을 사용합니다.

  • Self-hosted model: GitLab 외부에서 조직에 의해 호스팅되고 GitLab AI 기능과 상호작용하는 LLM입니다.

  • Similarity Score: LLM이 생성한 답변과 참조된 ground truth 답변 간의 유사성을 결정하는 수학적 방법입니다. 모델 검증 방향 페이지도 참조하세요.

  • Tool: 특정 LLM 관련 작업을 수행하는 논리입니다. 각 도구에는 설명과 고유한 프롬프트가 있습니다. 새 도구 추가 방법.

  • Unit Primitive: 권한이나 접근 범위를 제어할 수 있는 기본 논리적 기능을 나타내는 GitLab 특정 용어입니다. 예시: duo_chatcode_suggestions. 이러한 기능은 현재 GitLab Duo Pro 라이센스의 일부입니다. 그러나 우리는 각 Duo 기능을 기준으로 Unit Primitive 개념을 구축하고 있어 Duo 기능을 서로 다른 그룹으로 쉽게 구성할 수 있도록 하여 향후 제품 패키지 요구 사항을 수용할 수 있도록 하고 있습니다.

  • Word-Level Metrics: 개별 단어의 미세함에서 텍스트의 측면을 비교하는 LLM 평가 방법입니다. 모델 검증 팀의 이슈.

  • Zero-shot agent: 일반 AI 세계에서 학습 모델 또는 시스템으로, 훈련 중 해당 작업의 예제를 본 적이 없어도 작업을 수행할 수 있습니다. GitLab에서 이 용어는 GitLab Duo Chat의 일종의 LLM 기반 항공 관제사 역할을 하는 코드 조각을 구체적으로 지칭합니다. GitLab 제로샷 에이전트는 LLM이 GitLab Duo Chat에서 사용자 입력을 어떻게 해석해야 하는지 설명하는 시스템 프롬프트와 도구 설명 목록을 가지고 있습니다. 이 정보를 사용하여 에이전트는 사용자의 질문에 답하기 위해 사용할 도구를 결정합니다. 도구가 사용되지 않아도 질문에 직접 답변할 수도 있습니다. 도구가 사용되면 도구로부터 응답이 제로샷 에이전트로 피드백되어 답변이 충분한지 여부를 평가하거나 추가 도구가 필요해야 하는지 판단합니다. 코드. 작동 중인 제로샷 에이전트.

듀오 워크플로우 용어

  • Agent: 작업을 수행하는 소프트웨어 엔티티에 대한 일반적인 용어입니다. 에이전트는 간단한 규칙 기반 시스템에서 복잡한 AI 기반 엔티티에 이르기까지 다양합니다. 우리의 목적에 따라 “Agent”는 일반적으로 AI 기반 엔티티를 지칭합니다.

  • Autonomous Agents: 인간의 직접적인 입력이나 감독 없이 독립적으로 운영되는 에이전트입니다. 이들은 프로그래밍과 환경에서 인식하는 데이터를 기반으로 의사결정을 하고 행동합니다. 이러한 에이전트는 종종 Supervisor Agent로부터 지시를 받습니다.

  • Frameworks: 다중 에이전트 시스템의 개발 및 운영을 지원하는 플랫폼 또는 환경입니다. 프레임워크는 개발자가 에이전트를 구축, 배포 및 관리하는 데 사용할 수 있는 필요한 인프라, 도구 및 라이브러리를 제공합니다. 예를 들어, Langchain은 다양한 AI 기술과 통합된 언어 기반 에이전트를 구축하는 데 도움을 주는 프레임워크입니다.

  • General Agent or Generic Agent: 특정 도메인이나 행동 집합에 제한되지 않고 다양한 작업을 수행할 수 있는 에이전트입니다. 이 유형의 에이전트는 일반적으로 더 넓은 능력을 가지며 다양한 시나리오에 적응할 수 있습니다.

  • Hand-crafted Agents: 특정 작업을 수행하기 위해 개발자가 맞춤형 규칙과 행동으로 설계한 에이전트입니다. 이들은 일반적으로 잘 정의된 시나리오 내에서 운영되도록 미세 조정됩니다.

  • Multi-agent Workflows: 여러 에이전트가 상호 작용하거나 협력하여 작업을 완료하거나 문제를 해결하는 시스템 또는 프로세스입니다. 워크플로의 각 에이전트는 특정 역할이나 전문성을 가질 수 있으며, 집합적인 결과에 기여합니다.

  • Specialized Agents: 특정하고 종종 복잡한 작업을 수행하도록 설계된 에이전트로, 전문 지식이나 기술이 필요한 경우가 많습니다. 이러한 에이전트는 일반적으로 자신이 전문으로 하는 분야 내에서 매우 효과적이지만 그 외부에서는 성능이 좋지 않을 수 있습니다.

  • Subagent: 다른 에이전트의 감독 하에 운영되는 에이전트를 설명하는 데 사용되는 용어입니다. 서브 에이전트는 일반적으로 다중 에이전트 시스템 내의 더 큰 프로세스의 특정 작업이나 구성요소를 처리합니다.

  • Supervisor Agent: 워크플로 내의 다른 에이전트의 행동을 감독하고 조정하는 작업을 맡은 에이전트입니다. 이러한 유형의 에이전트는 작업이 적절하게 할당되고 워크플로가 원활하고 효율적으로 진행되도록 합니다.

  • Tool: 다중 에이전트 워크플로의 맥락에서, 도구는 에이전트가 작업을 수행하는 데 사용할 수 있는 유틸리티 또는 애플리케이션입니다. 도구는 외부 세계와 통신하는 데 사용되며, GitLab 문제 읽기, 리포지토리 복제 또는 문서 읽기와 같은 LLM 이외의 무언가에 대한 인터페이스입니다.