GitHub - deepseek-ai/DeepSeek-Coder: DeepSeek Coder: Let the Code Write Itself
Service

GitHub - deepseek-ai/DeepSeek-Coder: DeepSeek Coder: Let the Code Write Itself

deepseek-ai
2026.08.02
·GitHub·by Mineru
#AI#Code Generation#Deep Learning#LLM#Open Source

핵심 포인트

  • 1DeepSeek-Coder는 2T 토큰의 방대한 코드 데이터로 사전 학습된 모델 시리즈로, 프로젝트 단위의 코드 완성 및 채우기(infilling) 작업에 최적화되어 있습니다.
  • 2이 모델은 1B부터 33B까지 다양한 크기로 제공되며, HumanEval 및 MBPP 등 주요 벤치마크에서 기존의 오픈 소스 모델들을 상회하는 우수한 성능을 입증했습니다.
  • 3사용자들은 Hugging Face의 transformers 라이브러리를 통해 모델을 쉽게 불러올 수 있으며, 제공된 파인튜닝 스크립트와 vLLM을 활용해 특정 목적에 맞게 학습하거나 고성능 추론을 수행할 수 있습니다.

DeepSeek-Coder는 코드 지능 향상을 목표로 개발된 오픈 소스 코드 언어 모델 시리즈로, 1B에서 33B에 이르는 다양한 파라미터 규모를 갖추고 있습니다. 이 모델은 2T tokens 규모의 대규모 데이터셋으로 처음부터 학습되었으며, 코드 데이터 87%와 영어 및 중국어 자연어 데이터 13%의 비율로 구성되어 있습니다.

핵심 방법론

  1. 데이터 생성 및 전처리: GitHub에서 수집된 데이터를 StarCoder의 필터링 규칙을 적용해 정제합니다. 특히 저장소(repository) 내 파일 간의 의존성(dependencies)을 파악하여 파일 위치를 재배치하고, 의존적인 파일들을 하나로 결합하여 문맥 이해도를 높였습니다. 또한, repo-level minhash를 사용하여 중복을 제거하고 구문 오류나 가독성이 낮은 코드를 필터링했습니다.
  2. 학습 단계:
    • 1단계 (Pre-training): 1.8T tokens의 데이터와 4K window size를 사용하여 학습합니다.
    • 2단계 (Extended Pre-training): 200B tokens를 추가하고 16K window size로 확장하여 DeepSeek-Coder-Base 모델을 구축합니다. 이는 프로젝트 단위의 코드 완성 및 인필링(infilling) 능력을 극대화합니다.
    • 3단계 (Instruction Fine-tuning): 2B tokens의 지시어 데이터를 사용하여 SFT(Supervised Fine-Tuning)를 수행함으로써 DeepSeek-Coder-Instruct 모델을 완성합니다.
  3. 기술적 특징:
    • Fill-in-the-Blank: <fimbegin><|fim▁begin|>, <fimhole><|fim▁hole|>, <fimend><|fim▁end|> 토큰을 활용한 코드 삽입 태스크를 지원합니다.
    • 확장성: 16K context window를 지원하여 프로젝트 수준의 긴 코드 문맥을 처리할 수 있습니다.
    • 최적화: vLLM을 활용한 고속 추론을 지원하며, 양자화 기법(GGUF, GPTQ)을 통한 효율적인 배포가 가능합니다.

평가 결과

DeepSeek-Coder-Base-33B는 HumanEval, MBPP, DS-1000 등 주요 벤치마크에서 기존 오픈 소스 모델인 CodeLlama-34B를 유의미한 수치로 압도합니다. 특히 DeepSeek-Coder-Base-7B 모델이 CodeLlama-34B와 대등한 성능을 보이는 등 매우 높은 매개변수 효율성을 입증했습니다. 또한, DeepSeek-Coder-Instruct-33B는 GPT-3.5-turbo와 비교하여도 코드 생성 성능 면에서 경쟁력을 확보했습니다.

이 모델은 Apache 2.0 라이선스(코드 저장소 기준) 및 별도의 Model License를 통해 상업적 이용을 지원하며, 프로그래밍 어시스턴트로서의 높은 실용성을 제공합니다.