SafeCoder 대 폐쇄형 코드 어시스턴트

TL;DR

Hugging Face는 오픈소스 StarCoder 모델을 기반으로 한 엔터프라이즈 코드 어시스턴트인 SafeCoder를 출시했습니다. 폐쇄형 대안과 달리, SafeCoder는 학습 데이터에 대한 완전한 투명성을 제공하며, 회사의 특정 코딩 지침에 대한 깊은 커스터마이징을 허용하고, 최대 보안과 프라이버시를 위해 에어갭 배포를 지원합니다.

State-of-the-Art Model Architecture

SafeCoder는 BigCode 협업 프로젝트를 통해 개발된 StarCoder 모델 제품군을 기반으로 합니다. 핵심 StarCoder 모델은 80개 이상의 프로그래밍 언어로 훈련된 155억 파라미터 모델입니다.

주요 기술 사양은 다음과 같습니다:

  • Multi-Query Attention (MQA): 처리량을 늘리고 지연 시간을 줄이는 데 사용됩니다.
  • Context Window: 8192토큰 창은 모델이 기존 코드의 더 큰 블록을 처리하여 생성 품질을 높일 수 있게 합니다.
  • Fill-in-the-Middle (FIM): 모델은 기존 파일에 코드를 삽입할 수 있으며, 끝 부분에만 추가하는 것이 아닙니다.
  • Upgrade Path: SafeCoder는 시간이 지남에 따라 새로운 최첨단 모델을 통합하도록 설계되었습니다.

Transparency and Training Data

SafeCoder는 Chinchilla Scaling Law를 준수하며, 1조 개의 코드 토큰으로 훈련되었습니다. 이러한 토큰은 permissively licensed 오픈소스 저장소로 구성된 2.7테라바이트 데이터셋인 "The Stack"에서 비롯되었습니다.

투명성과 윤리적인 출처를 보장하기 위해 Hugging Face는 다음과 같이 제공합니다:

  • Opt-out Mechanisms: 저장소 소유자가 자신의 코드가 데이터셋에 있는지 확인하고 제거를 요청할 수 있는 전용 도구가 제공됩니다.
  • Public Documentation: 모델 아키텍처, 훈련 과정, 상세한 성능 지표를 공개하는 연구 논문이 제공됩니다.

Enterprise Customization

SafeCoder는 회사의 특정 기술 문화에 맞게 커스터마이징할 수 있도록 설계되었습니다. 예를 들어 내부 코딩 지침, 보안 표준, 선호하는 문서 스타일 등이 있습니다. Hugging Face는 기반 모델의 세 가지 주요 버전을 제공합니다:

  • StarCoderBase: 80개 이상의 언어로 훈련된 원래 모델입니다.
  • StarCoder: StarCoderBase에 추가로 Python을 학습한 모델입니다.
  • StarCoder+: StarCoderBase에 영어 웹 데이터를 추가로 학습하여 코딩 대화를 용이하게 하는 모델입니다.

회사는 GitHub에서 제공하는 공유 파인튜닝 코드를 사용하여 자체 인프라에서 이러한 모델을 파인튜닝할 수 있으며, 이를 통해 독점적인 데이터가 외부 당사에 노출되지 않도록 보장합니다.

IT Flexibility and Deployment

SafeCoder는 Docker 컨테이너를 사용하여 배포 유연성을 제공하며, 이를 통해 온프레미스 또는 어떤 컨테이너 관리 서비스를 통해 클라우드에서 실행할 수 있습니다.

하드웨어 최적화는 Hugging Face의 Optimum 라이브러리를 통해 처리되며, 이는 CPU, GPU, 또는 AI 가속기에 하드웨어 가속을 자동으로 적용하여 훈련 및 추론의 비용 성능 비율을 최적화합니다.

Security and Privacy Controls

SafeCoder는 지적 재산 보호가 중요한 고보안 환경에서 사용되도록 설계되었습니다. 관리되는 폐쇄형 서비스보다 다음과 같은 개인정보 보호 장점을 제공합니다:

  • Administrative Control: 사용자는 보안 점검 및 규정 준수 모니터링에 대한 완전한 제어를 유지합니다.
  • Air-Gapped Support: SafeCoder는 인터넷 연결이 필요하지 않으며 완전 에어갭 상태로 실행할 수 있어, 텔레메트리 또는 프롬프트를 Hugging Face로 전송하지 않습니다.
  • Data Ownership: 프롬프트와 제안은 사용자에게 exclusivamente 남아 있습니다.

대조적으로, 일부 폐쇄형 서비스는 사용자 참여 데이터를 수집하며, opt-out 가용성의 수준이 다양하다고 언급됩니다.}

Sources