DeepSeek Coder: modelos, uso local, FIM e limites

Verificado em 20 de julho de 2026. Status da evidência: revisão documental dos repositórios, model cards, artigos técnicos, licenças e documentação oficial da DeepSeek. Não executamos um benchmark próprio entre os modelos desta página e outros modelos de programação.

Nota de independência: este site é um guia independente e não pertence, não é operado, patrocinado ou aprovado pela DeepSeek. Os nomes dos modelos e as marcas citadas pertencem aos respectivos titulares.

DeepSeek Coder não é um único modelo disponível em todos os produtos da DeepSeek. O nome identifica famílias de checkpoints voltados à programação, com pesos que podem ser baixados e executados em infraestrutura própria. Esses checkpoints devem ser separados dos modelos hospedados pela API oficial.

Na data desta verificação, deepseek-coder não consta como ID no catálogo oficial da API da DeepSeek. Os IDs hospedados documentados são deepseek-v4-flash e deepseek-v4-pro. Para usar um checkpoint Coder, você precisa operar os pesos localmente ou em uma infraestrutura escolhida por você.

Resposta rápida

  • DeepSeek-Coder original: família de modelos Base e Instruct com janela de 16K, completion de código e Fill-In-the-Middle.
  • DeepSeek-Coder-V2: família posterior baseada em Mixture-of-Experts, com variantes de 16B e 236B parâmetros totais e contexto documentado de 128K.
  • API hospedada: não aceita deepseek-coder como ID documentado; use um modelo V4 suportado.
  • FIM hospedado: está disponível como recurso beta para os modelos V4 em modo Non-Thinking, com endpoint e limites próprios.
  • Execução local: oferece controle sobre o runtime, mas não torna o código gerado correto, seguro ou privado automaticamente.
  • Licença: o código dos repositórios está sob MIT; os pesos seguem a licença de modelo específica da DeepSeek.

DeepSeek Coder original, Coder V2 e API: qual é a diferença?

OpçãoNaturezaContexto documentadoUso principal
DeepSeek-Coder originalCheckpoints Base e Instruct para execução própria16KCompletion, infilling, explicação e geração assistida de código
DeepSeek-Coder-V2 LiteModelo MoE de 16B parâmetros totais e 2,4B ativos128KAvaliação local ou hospedagem própria das variantes Base e Instruct
DeepSeek-Coder-V2 completoModelo MoE de 236B parâmetros totais e 21B ativos128KInfraestrutura de inferência com recursos substancialmente maiores
DeepSeek V4 via APIServiço hospedado e gerenciado pela DeepSeek1 milhão de tokens no catálogo verificadoGeração, revisão, ferramentas, JSON e FIM beta, conforme o modo usado

O limite de contexto não informa sozinho quanto código útil o modelo conseguirá analisar. Tokenização, arquivos fornecidos, dependências, testes, documentação e tamanho da saída também consomem a janela. Um contexto maior não substitui a seleção dos arquivos relevantes.

O que é DeepSeek-Coder?

O repositório oficial do DeepSeek-Coder descreve uma série de modelos treinados para tarefas de code intelligence. A linha original inclui checkpoints de 1,3B, 5,7B MQA, 6,7B e 33B, embora a disponibilidade das variantes Base e Instruct não seja idêntica em todos os tamanhos.

A DeepSeek informa que a família original foi treinada do zero em 2 trilhões de tokens. A composição divulgada foi:

  • 87% de código;
  • 10% de linguagem relacionada a código, incluindo Markdown do GitHub e Stack Exchange;
  • 3% de conteúdo em chinês não relacionado a código.

O processo documentado começou com 1,8 trilhão de tokens e janela de 4K, seguido por mais 200 bilhões de tokens com janela ampliada para 16K. Os modelos Instruct receberam posteriormente ajuste com 2 bilhões de tokens de dados de instrução.

O corpus foi organizado em nível de repositório para preservar parte das relações entre arquivos. Isso não significa que o modelo descobre ou lê automaticamente todo o seu projeto. A aplicação continua responsável por selecionar e enviar os arquivos, símbolos, requisitos, testes e erros relevantes.

O que mudou no DeepSeek-Coder-V2?

O DeepSeek-Coder-V2 foi desenvolvido a partir de um checkpoint intermediário do DeepSeek-V2, com pré-treinamento adicional de 6 trilhões de tokens. A família utiliza arquitetura Mixture-of-Experts e foi publicada nas seguintes configurações:

Checkpoint oficialParâmetros totaisParâmetros ativosContexto
DeepSeek-Coder-V2-Lite-Base16B2,4B128K
DeepSeek-Coder-V2-Lite-Instruct16B2,4B128K
DeepSeek-Coder-V2-Base236B21B128K
DeepSeek-Coder-V2-Instruct236B21B128K

O repositório também documenta expansão de 86 para 338 linguagens de programação. Esse número descreve a cobertura divulgada pela DeepSeek; não garante a mesma qualidade para todas as linguagens, frameworks ou tarefas.

Não trate os resultados de benchmark publicados no lançamento como um ranking permanente. Eles representam modelos, versões de concorrentes, prompts e condições específicas daquele estudo. Para os detalhes metodológicos, consulte o artigo técnico do DeepSeek-Coder-V2.

Base ou Instruct: qual escolher?

VarianteQuando considerarEntrada recomendadaCuidado principal
BaseCode completion, FIM, avaliação e fine-tuningPrefixo de código ou estrutura FIM esperada pelo tokenizerNão pressupor comportamento de chat ou obediência consistente a instruções
InstructExplicação, debugging, refatoração e geração baseada em requisitosInstrução com código, ambiente, restrições e critérios de aceitaçãoValidar toda alteração, dependência e decisão de segurança

Um checkpoint Base tende a ser a primeira opção para completion e preenchimento dentro do editor. Um checkpoint Instruct é mais apropriado quando o usuário descreve uma tarefa em linguagem natural. Não misture o chat template, os tokens FIM ou a configuração de geração de checkpoints diferentes.

Como funciona o Fill-In-the-Middle?

Em uma completion convencional, o modelo continua após um prefixo. No Fill-In-the-Middle, ou FIM, a aplicação fornece o conteúdo anterior à lacuna e pode fornecer também o conteúdo posterior. O modelo tenta gerar a parte intermediária.

# Prefixo
def normalize_username(value: str) -> str:
    """Normaliza o identificador antes da validação."""

# Lacuna a ser preenchida pelo modelo

# Sufixo
assert normalize_username("  Ana Silva  ") == "ana-silva"

Este exemplo mostra somente a estrutura lógica. Checkpoints locais podem usar tokens especiais específicos. Obtenha os marcadores do tokenizer e do model card exatos do checkpoint escolhido; não copie tokens FIM de outra família.

Como executar um checkpoint local

O exemplo abaixo usa o checkpoint oficial deepseek-ai/deepseek-coder-6.7b-instruct e fixa uma revisão verificada do repositório. Ele utiliza arquivos Safetensors e não ativa trust_remote_code. Confirme antes se seu hardware tem memória suficiente e teste tudo em um ambiente isolado.

python -m pip install torch transformers accelerate safetensors
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

MODEL_ID = "deepseek-ai/deepseek-coder-6.7b-instruct"
REVISION = "60b85f5d38cbbd312461edd033ffcf5b586b4a81"

tokenizer = AutoTokenizer.from_pretrained(
    MODEL_ID,
    revision=REVISION,
)

model = AutoModelForCausalLM.from_pretrained(
    MODEL_ID,
    revision=REVISION,
    torch_dtype="auto",
    device_map="auto",
    use_safetensors=True,
)

messages = [
    {
        "role": "user",
        "content": (
            "Revise a função Python abaixo. Preserve a assinatura, "
            "explique os riscos e devolva uma implementação corrigida "
            "com testes pytest.\n\n"
            "def divide(total, count):\n"
            "    return total / count"
        ),
    }
]

inputs = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

with torch.inference_mode():
    output = model.generate(
        **inputs,
        max_new_tokens=512,
        do_sample=False,
        pad_token_id=tokenizer.eos_token_id,
    )

prompt_length = inputs["input_ids"].shape[-1]
generated_tokens = output[0, prompt_length:]

print(
    tokenizer.decode(
        generated_tokens,
        skip_special_tokens=True,
    )
)

A revisão usada no exemplo pode ser conferida no snapshot oficial do checkpoint 6.7B Instruct. Em produção, registre também versões de Python, PyTorch, Transformers, CUDA, drivers, parâmetros de geração e hashes dos artefatos baixados.

Importante: não abra automaticamente um servidor de inferência em 0.0.0.0. Para acesso compartilhado, use um gateway com autenticação, TLS, limites de requisição, controle de rede e política de logs. Para uma opção com interface local, consulte também o guia de DeepSeek no LM Studio.

Como usar FIM na API hospedada

A API hospedada possui um recurso separado de FIM Completion em beta. Na documentação verificada, ele exige https://api.deepseek.com/beta como base URL, aceita no máximo 4K tokens de saída e funciona somente em modo Non-Thinking.

O exemplo abaixo utiliza deepseek-v4-pro, não um checkpoint chamado DeepSeek Coder:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com/beta",
)

response = client.completions.create(
    model="deepseek-v4-pro",
    prompt=(
        "def clamp(value: int, minimum: int, maximum: int) -> int:\n"
        "    if minimum > maximum:\n"
        "        raise ValueError('minimum must be <= maximum')\n"
    ),
    suffix="    return value\n",
    max_tokens=256,
)

print(response.choices[0].text)

Não use deepseek-coder no campo model dessa requisição. Para autenticação, endpoints de chat, tratamento de erros e limites operacionais, consulte o guia da DeepSeek API. Para os recursos e o status dos IDs hospedados, veja também a página do DeepSeek V4.

Como escrever um prompt de programação verificável

Um pedido útil informa a tarefa, o ambiente, o contrato e os critérios de aceitação. Envie somente o contexto necessário e remova chaves, tokens, credenciais, dados pessoais e informações de clientes.

Tarefa:
Implemente parse_invoice em Python 3.12.

Contrato:
- entrada: string JSON em UTF-8;
- saída: objeto Invoice tipado;
- rejeitar campos desconhecidos;
- representar valores monetários com Decimal.

Restrições:
- use somente a biblioteca padrão;
- não altere a assinatura pública;
- não faça chamadas de rede;
- não leia variáveis de ambiente.

Entrega:
1. código;
2. explicação curta das decisões;
3. testes para JSON inválido, valor negativo e campo extra;
4. riscos que ainda exigem revisão humana.

Testes escritos pelo mesmo modelo ajudam na revisão, mas não são uma verificação independente. Adicione casos ocultos, regressões e entradas adversariais definidos pela equipe responsável pelo software.

Como avaliar DeepSeek Coder no seu projeto

Os resultados oficiais em HumanEval, MultiPL-E, MBPP, DS-1000, APPS e outros conjuntos descrevem avaliações específicas. Eles não provam a qualidade em seu repositório, linguagem, framework ou política de segurança. O artigo técnico do DeepSeek-Coder original deve ser lido junto com sua metodologia e limitações.

MétricaComo medirO que ela não prova
Compilação ou type-checkPercentual de respostas sem erros básicosNão prova correção lógica
Pass@1Primeira resposta contra uma suíte oculta e fixaNão mede segurança ou manutenção
RegressõesTestes existentes quebrados após a alteraçãoNão detecta todos os efeitos colaterais
SegurançaSAST, revisão manual e testes adversariaisUm scanner isolado não garante ausência de falhas
Aceitação humanaAlterações aceitas sem correção substancialPode variar entre equipes e revisores
Latênciap50 e p95 no mesmo hardware e cargaNão deve ser comparada entre ambientes diferentes
Custo operacionalInfraestrutura por tarefa aceitaPreço de GPU sozinho não representa o custo total

Registre checkpoint, revisão, quantização, runtime, parâmetros, hardware e versão do conjunto de testes. Sem essas informações, uma diferença aparente pode ser efeito da configuração, e não do modelo.

Segurança do código e do runtime

DeepSeek Coder gera texto. O modelo não compila, executa, testa nem publica código por conta própria. Essas ações só acontecem quando uma aplicação externa conecta a saída a compiladores, terminais, ferramentas, agentes ou pipelines de CI/CD.

  • não execute a resposta diretamente no host de produção;
  • use sandbox sem segredos e com limites de CPU, memória, disco e tempo;
  • restrinja a rede de saída quando ela não for necessária;
  • compile ou faça type-check antes da execução;
  • rode testes unitários, integração, regressão e casos adversariais;
  • aplique lint, análise estática e scanner de dependências;
  • procure comandos destrutivos, leitura de ambiente, caminhos arbitrários e chamadas de rede;
  • revise autenticação, autorização, criptografia e tratamento de dados pessoais manualmente.

Execução local também não garante privacidade automaticamente. Prompts e respostas podem aparecer em logs, telemetria do editor, histórico do terminal, caches, ferramentas de observabilidade ou backups. Mapeie todo o caminho dos dados e configure cada componente de acordo com sua política.

DeepSeek Coder é open source?

A resposta exige separar código e pesos. O código do repositório está sob licença MIT. Os pesos estão sujeitos à licença de modelo do DeepSeek-Coder. O repositório informa suporte a uso comercial, mas a licença inclui condições de uso, distribuição, redistribuição, atribuição e restrições específicas.

O DeepSeek-Coder-V2 segue a mesma separação: código do repositório sob MIT e pesos sujeitos à licença de modelo do Coder V2. Portanto, “pesos publicamente disponíveis sob uma licença de modelo” é uma descrição mais precisa do que presumir que todos os componentes estejam sob a mesma licença open source.

  • confirme a licença do checkpoint e da revisão exatos;
  • revise as obrigações antes de redistribuir pesos ou oferecer acesso remoto;
  • não presuma que uma quantização de terceiros tenha a mesma procedência;
  • verifique a licença do runtime e de qualquer dataset adicional;
  • não use nome, logotipo ou marca de forma que sugira aprovação oficial.

Quando usar cada opção

  • DeepSeek-Coder Base: estudos de completion, FIM, fine-tuning e avaliação reproduzível da linha original.
  • DeepSeek-Coder Instruct: explicação, debugging e geração guiada em um runtime próprio.
  • Coder V2 Lite: avaliação de uma arquitetura MoE posterior sem operar o checkpoint completo de 236B.
  • Coder V2 completo: pesquisa ou implantação com infraestrutura capaz de atender aos requisitos de memória, paralelismo e latência.
  • DeepSeek V4 via API: aplicações que precisam de serviço gerenciado, autenticação por chave e modelos hospedados pela DeepSeek.

Para uma abordagem mais ampla, incluindo revisão, debugging e integração em aplicações, veja o guia de DeepSeek para programação.

Perguntas frequentes

DeepSeek Coder está disponível na API oficial?

Não como o ID deepseek-coder. Na data da verificação, a API documenta deepseek-v4-flash e deepseek-v4-pro. Os checkpoints DeepSeek-Coder e Coder V2 são opções para execução própria.

Os pesos do DeepSeek Coder ainda podem ser baixados?

Sim. Os repositórios e model cards oficiais continuam disponibilizando checkpoints. Isso não significa que eles sejam IDs ativos da API hospedada.

Qual é a diferença entre Base e Instruct?

Base é direcionado a completion, infilling, avaliação e fine-tuning. Instruct recebeu ajuste para responder a instruções em linguagem natural, sendo mais adequado para explicação, debugging e geração guiada.

DeepSeek Coder executa o código que gera?

Não. A execução depende de uma aplicação ou ferramenta externa. Trate toda saída como código não confiável e faça a validação em ambiente isolado.

Qual é o limite de contexto?

A família original documenta 16K. O DeepSeek-Coder-V2 documenta 128K. Os modelos V4 hospedados possuem contexto de 1 milhão no catálogo consultado, mas são modelos e serviços diferentes.

É possível usar DeepSeek Coder comercialmente?

Os repositórios oficiais informam suporte a uso comercial, sujeito à licença de modelo. Leia a licença do checkpoint, da revisão e de qualquer conversão ou quantização utilizada antes de distribuir ou implantar o sistema.

Executar localmente mantém todos os dados privados?

Não necessariamente. A privacidade depende de logs, telemetria, extensões, histórico do editor, permissões, rede, backups e configuração do servidor. Hospedagem própria oferece controle adicional, não uma garantia automática.

Conclusão

DeepSeek Coder é um conjunto de famílias de modelos para programação, e não um ID universal da DeepSeek API. A linha original oferece checkpoints Base e Instruct com contexto de 16K; o Coder V2 amplia a arquitetura e o contexto documentado para 128K. Ambos permanecem disponíveis para pesquisa, avaliação e hospedagem própria.

Para um serviço gerenciado, use somente um ID publicado na documentação oficial da API. Para execução própria, escolha o checkpoint exato, fixe a revisão, verifique a licença, proteja o runtime e avalie o modelo com tarefas reais do seu projeto. Em qualquer modalidade, código gerado precisa de testes, análise de segurança e revisão humana antes de chegar à produção.