
DeepSeek-Coder
https://github.com/deepseek-ai/deepseek-coder- Category
- AI Tools
- Rank
- No. 324Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- deepseek-ai
- GitHub
- 24.2k stars
- Date
About
DeepSeek's open-source code LLM family trained on 2T tokens with strong performance across 80+ programming languages.
What it does
DeepSeek-Coder supplies downloadable models for code completion, inserting missing code, and instruction-driven programming chat. Base and instruction-tuned variants span several parameter sizes. A long context window and fill-in-the-blank training support work across related project files.
Why it's ranked here
The repository makes a credible case through broad benchmark coverage, reproducible evaluation scripts, and several deployment sizes. Its published results report clear gains over CodeLlama on four benchmarks, while the smaller base model reportedly matches a much larger CodeLlama model.
What's good
Users can choose base models for completion or instruction-tuned models for conversational tasks. Examples cover ordinary generation, insertion inside existing code, and repository-level context. The project also supplies supervised fine-tuning code and evaluation workflows for HumanEval, MBPP, mathematical reasoning, and LeetCode problems.
Tradeoffs
Local use assumes a substantial Python machine-learning stack, and the included chat demo explicitly does not work on CPU. Examples load model-provided remote code, which deserves a security review. The documented setup centers on scripts and model downloads rather than a packaged command-line tool or application API.
How to use it well
It fits engineers who can run Transformers models on suitable GPU hardware and want controllable completion, infilling, chat, evaluation, or fine-tuning workflows. Start with a smaller variant, validate generated code with tests, and reserve larger models for harder work. Look elsewhere for a packaged developer assistant or documented service API.
Technical notes+
requirements.txt pins Transformers 4.35.0 and requires PyTorch, tokenizers, Accelerate, SymPy, and evaluation helpers. demo/app.py builds a streaming Gradio chat around the 6.7B instruction model, requires CUDA in practice, trims input to MAX_INPUT_TOKEN_LENGTH, and always uses deterministic generation despite exposing top-p and top-k controls. finetune/finetune_deepseekcoder.py uses Hugging Face Trainer with JSON instruction and output records, masks prompt tokens from loss, and saves a CPU state dictionary. Evaluation/HumanEval/humaneval.py, Evaluation/MBPP/mbpp.py, Evaluation/PAL-Math/run.py, and Evaluation/LeetCode/vllm_inference.py provide separate benchmark pipelines, including distributed execution and vLLM inference.
Observed
- Primary language
- Python
- Install surface
- Dependencies are installed from requirements.txt with pip.
- Inference interface
- Library usage through Hugging Face Transformers model and tokenizer classes.
- Web interface
- A local Gradio chat demo streams generated text.
- Hardware support
- The included chat demo states that it does not work on CPU.
- Model variants
- Base and instruction-tuned models are offered in 1B, 5.7B, 6.7B, and 33B sizes.
- Fine-tuning
- A supervised fine-tuning script accepts JSON instruction data and uses Hugging Face Trainer.
- Evaluation structure
- Repository code covers HumanEval, MBPP, PAL-Math, and LeetCode evaluation workflows.
Read from README.md, requirements.txt, demo/app.py, finetune/finetune_deepseekcoder.py, Evaluation/MBPP/mbpp.py, Evaluation/PAL-Math/run.py, Evaluation/MBPP/eval_pal.py, Evaluation/HumanEval/eval_pal.py, Evaluation/MBPP/eval_instruct.py, Evaluation/HumanEval/humaneval.py, Evaluation/HumanEval/eval_instruct.py, Evaluation/LeetCode/vllm_inference.py, Evaluation/LeetCode/evaluate_leetcode.py, Evaluation/MBPP/utils/utils.py, Evaluation/MBPP/utils/dataset.py.
What it can do
Generate code from natural language descriptions
Natural language description of programming task → Source code in specified programming language
Complete partial code snippets
Incomplete code with context → Completed code with proper syntax and logic
Debug and fix code errors
Code with bugs or errors → Corrected code with fixes applied
Convert code between programming languages
Source code in one programming language → Equivalent code in target programming language
Explain code functionality
Source code snippet → Natural language explanation of code behavior
Optimize existing code for performance
Working code that needs optimization → Improved code with better performance characteristics
Generate unit tests for code
Function or module source code → Unit test cases covering the code functionality
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.