CodeGemma 모델 카드

모델 페이지: CodeGemma

리소스 및 기술 문서:

이용약관: 약관

저자: Google

모델 정보

모델 요약

설명

CodeGemma는 Gemma를 기반으로 구축된 경량 개방형 코드 모델군입니다. CodeGemma 모델은 텍스트-텍스트 및 텍스트-코드 디코더 전용 모델로, 코드 완성 및 코드 생성 작업을 전문으로 하는 70억 개의 사전 학습된 변형, 코드 채팅 및 명령어 후속 작업을 위한 70억 개의 매개변수 명령 조정 변형, 빠른 코드 완성을 위한 20억 개의 매개변수 사전 학습 변형으로 제공됩니다.

투입 및 출력

  • 입력: 사전 학습된 모델 변형: 코드 완성 및 생성 시나리오 또는 자연어 텍스트/프롬프트의 코드 프리픽스 및 서픽스(선택사항) 명령 조정 모델 변형: 자연어 텍스트 또는 프롬프트

  • 출력: 사전 학습된 모델 변형의 경우: 중간 채우기 코드 완성, 코드, 자연어 명령어 조정 모델 변형: 코드 및 자연어

인용문

@article{codegemma_2024,
    title={CodeGemma: Open Code Models Based on Gemma},
    url={https://goo.gle/codegemma},
    author={ {CodeGemma Team} and Hartman, Ale Jakse and Hu, Andrea and Choquette-Choo, Christopher A. and Zhao, Heri and Fine, Jane and Hui,
    Jeffrey and Shen, Jingyue and Kelley, Joe and Howland, Joshua and Bansal, Kshitij and Vilnis, Luke and Wirth, Mateo and Nguyen, Nam, and Michel, Paul and Choy, Peter and Joshi, Pratik and Kumar, Ravin and Hashmi, Sarmad and Agrawal, Shubham and Zuo, Siqi and Warkentin, Tris and Gong, Zhitao et al.},
    year={2024}
}

모델 데이터

학습 데이터 세트

Gemma를 기본 모델로 사용하면 CodeGemma 2B와 7B의 사전 학습된 변형이 오픈소스 수학 데이터 세트와 합성으로 생성된 코드에서 가져온 주로 영어 데이터에 대한 500~10, 000억 개의 추가 토큰으로 학습됩니다.

학습 데이터 처리

CodeGemma를 학습시키기 위해 다음과 같은 데이터 전처리 기술이 적용되었습니다.

  • FIM - 선행 학습된 CodeGemma 모델은 중간 채우기 (FIM) 작업에 중점을 둡니다. 모델은 PSM 모드와 SPM 모드에서 모두 작동하도록 학습됩니다. FIM 설정은 50~50 PSM/SPM의 FIM 비율은 80~90%입니다.
  • 종속 항목 그래프 기반 패킹 및 단위 테스트 기반 어휘 패킹 기술: Google은 실제 애플리케이션과의 모델 정렬을 개선하기 위해 프로젝트/저장소 수준에서 학습 예시를 구조화하여 각 저장소 내에서 가장 관련성이 높은 소스 파일을 배치했습니다. 특히 종속 항목 그래프 기반 패킹과 단위 테스트 기반 어휘 패킹이라는 두 가지 휴리스틱 기법을 사용했습니다.
  • Google은 문서를 접두사, 중간, 접미사로 분할하여 접미사가 순수한 무작위 분포가 아닌 구문적으로 더 자연스러운 지점에서 시작되도록 하는 새로운 기술을 개발했습니다.
  • 안전성: Gemma와 마찬가지로 Google은 Google 정책에 따라 콘텐츠 품질과 안전성을 기반으로 개인 정보 필터링, CSAM 필터링, 기타 필터링을 포함한 엄격한 안전 필터링을 배포했습니다.

구현 정보

학습 중 사용되는 하드웨어 및 프레임워크

Gemma와 마찬가지로 CodeGemma는 JAXML 개발자 과정을 사용하여 최신 세대의 Tensor Processing Unit (TPU) 하드웨어 (TPUv5e)에서 학습되었습니다.

평가 정보

벤치마크 결과

평가 방식

코딩 벤치마크 결과

벤치마크 20억 2B (1.1) 7B 70억-이탈리아 7B-IT (1.1)
HumanEval 3,111만 37.8 44.5 56.1세 60.4
MBPP 4,360만 4,920만 56.2세 54.2 55.6리라
HumanEval 단일 행 78.4 79.3 76.1리라 68.3 77.4
HumanEval 여러 줄 51.4리 51,000 58.4 20.1 2,370만
BC HE C++ 24.2 1,990만 32.9리라 42.2 46.6
BC HE C# 10.6 26.1 22.4 2,670만 54.7
BC HE Go 20.5리라 18.0 2,177 28.6 3,420만
BC HE 자바 29.2 2,980만 41.0 48.4 50.3리라
BC HE 자바스크립트 2,177 28.0 3,980만 46.0 48.4
BC HE Kotlin 28.0 3,230만 3,980만 51,600원 47.8리라
BC HE Python 2,177 36.6리 42.2 48.4 54.0
BC HE Rust 2,670만 24.2 3,410만 36.0 37.3리
BC MBPP C++ 47.1리라 38.9리라 5,380 56.7리라 63.5리라
BC MBPP C# 28.7 45.3리 32.5리라 41,200원 62.0
BC MBPP Go 45.6리라 38.9리라 43.3리 46.2 5,320만
BC MBPP 자바 41.8 49.7 50.3리라 57.3리 62.9리라
BC MBPP 자바스크립트 45.3리 45.0 58.2 61.4리 61.4리
BC MBPP Kotlin 46.8리 49.7 54.7 59.9리라 62.6
BC MBPP Python 38.6 52.9리라 5,910만 62.0 60.2
BC MBPP 러스트 45.3리 47.4 52.9리라 53.5리라 52.3리

자연어 업계 기준치 (70억 개 모델)

다양한 언어 기능 측정항목을 기준으로 Gemma, CodeGemma PT, CodeGemma IT를 비교한 막대 그래프입니다. 세 모델은 모두 거의 비슷한 수준이지만 CodeGemma에서는 자연어 이해가 뛰어난 편입니다.

윤리 및 안전

윤리 및 안전 평가

평가 방식

평가 방법에는 구조화된 평가와 관련 콘텐츠 정책의 내부 레드팀 테스트가 포함됩니다. 레드팀 활동은 각각 목표와 평가 지표가 서로 다른 여러 팀에 의해 수행되었습니다. 이 모델은 윤리 및 안전과 관련된 다양한 카테고리를 기준으로 평가되었습니다

  • 콘텐츠 안전성 및 표현적 피해를 다루는 프롬프트에 대한 사람의 평가 평가 방식에 대한 자세한 내용은 Gemma 모델 카드를 참조하세요.

  • 자율 해킹 기능을 테스트하고 잠재적 피해를 제한하는 데 중점을 둔 사이버 범죄 기능에 관한 구체적인 테스트

평가 결과

윤리 및 안전 평가의 결과는 아동 안전, 콘텐츠 안전, 표현적 피해, 기억, 대규모 피해와 같은 카테고리의 내부 정책 준수를 위한 허용 기준점 이내입니다. 자세한 내용은 Gemma 모델 카드를 참조하세요.

모델 사용 및 제한사항

알려진 제한사항

대규모 언어 모델 (LLM)은 학습 데이터와 기술 내재적인 한계에 따라 제한됩니다. LLM의 제한사항에 대한 자세한 내용은 Gemma 모델 카드를 참조하세요.

윤리적 고려사항과 위험

대규모 언어 모델 (LLM)의 개발은 몇 가지 윤리적 우려를 제기합니다. Google은 이러한 모델을 개발할 때 여러 측면을 신중하게 고려했습니다.

모델 세부정보는 Gemma 모델 카드의 동일한 토론을 참고하세요.

용도

애플리케이션

Code Gemma 모델은 IT 모델과 PT 모델에 따라 다양한 응용 분야가 있습니다. 다음의 잠재적 용도 목록은 전체 목록이 아닙니다. 이 목록의 목적은 모델 제작자가 모델 학습 및 개발의 일부로 고려한 가능한 사용 사례에 대한 컨텍스트 정보를 제공하는 것입니다.

  • 코드 작성: PT 모델을 사용하여 IDE 확장 프로그램으로 코드를 완성할 수 있습니다.
  • 코드 생성: IT 모델을 사용하여 IDE 확장 프로그램 유무와 관계없이 코드를 생성할 수 있습니다.
  • 코드 대화: IT 모델은 코드를 논의하는 대화 인터페이스 지원
  • 코드 교육: IT 모델은 대화형 코드 학습 환경을 지원하거나, 구문 교정에 도움이 되거나, 코딩 연습을

이점

출시 시점을 기준으로 이 모델 제품군은 책임감 있는 AI 개발을 위해 처음부터 설계된 고성능 개방형 코드 중심의 대규모 언어 모델 구현을 제공합니다. 비슷한 규모의 모델과 비교할 수 있습니다.

이 문서에 설명된 코딩 벤치마크 평가 측정항목을 사용하여 이러한 모델은 비슷한 크기의 다른 개방형 모델 대안보다 우수한 성능을 제공하는 것으로 나타났습니다.