피드로 돌아가기
Hugging Face BlogAI/ML
원문 읽기
Google이 Gemma 기반 CodeGemma 모델 3종을 공개해 2B부터 7B 규모의 코드 생성 LLM을 Hugging Face와 협력으로 제공
CodeGemma - an official Google release for code LLMs
AI 요약
Context
기존의 대규모 코드 생성 모델들은 높은 컴퓨팅 요구사항과 제한적인 접근성으로 인해 실제 프로덕션 환경에서 배포하기 어려웠다. 또한 코드 인필링, 자연어 처리, 대화형 인터페이스 등 다양한 사용 사례를 단일 모델로 커버하기 위해서는 여러 모델을 함께 유지해야 했다.
Technical Solution
- 3가지 모델 계층 제공: CodeGemma 2B(코드 인필링 특화), CodeGemma 7B(코드 인필링 80% + 자연어), CodeGemma 7B Instruct(대화형 명령어 튜닝)
- 추가 학습 데이터 500B 토큰: Gemma 기반 체크포인트에서 추가로 500B 토큰 규모의 영어, 수학, 코드 데이터로 재학습
- Fill-in-the-Middle(FIM) 프롬프트 형식 도입:
<|fim_prefix|>,<|fim_suffix|>,<|fim_middle|>토큰으로 코드 인필링 작업 구조화 - 8K 토큰 컨텍스트 윈도우 유지: 이전 Gemma 모델과 동일한 컨텍스트 크기로 호환성 확보
- 다중 배포 형식 지원: Transformers 라이브러리 버전, Google 코드베이스용 체크포인트, 4-bit GGUF 파일로 양자화 가능
- Google Cloud 및 Hugging Face Inference Endpoints 통합: Vertex AI, GKE, Text Generation Inference 백엔드로 원클릭 배포
Impact
- CodeGemma 7B는 HumanEval Python 벤치마크에서 40.13% 달성(StarCoder 2 7B의 34.09% 대비 6.04%p 초과)
- CodeGemma 7B는 JavaScript 벤치마크에서 43.06% 달성(StarCoder 2 7B의 35.35% 대비 7.71%p 초과)
- CodeGemma 2B는 Python에서 27.28%, JavaScript에서 29.94% 달성
- CodeGemma 7B 4-bit 로딩 시 약 9GB 메모리 소비(일반 소비자 GPU 및 Google Colab 호환)
Key Takeaway
코드 특화 LLM을 단일 기반 모델에서 인필링과 인스트럭션 튜닝으로 다층화하면 모델 관리 오버헤드를 줄이면서도 컴퓨팅 요구사항(500B 토큰 추가 학습)을 합리적으로 유지할 수 있다. 또한 다양한 배포 형식과 클라우드 플랫폼 통합을 사전에 제공하면 채택 장벽을 크게 낮출 수 있다.
실천 포인트
코드 생성 기능이 필요한 개발 도구나 IDE 개발팀은 CodeGemma 2B를 저지연 인필링용으로, CodeGemma 7B를 컴플렉스한 코드 생성 및 분석용으로 선택해 배포할 수 있으며, Hugging Face Inference Endpoints를 활용하면 별도의 인프라 구축 없이 프로덕션 환경에 즉시 통합 가능하다.