/ Модель

Характеристики

Контекст
32 768 токенов
Параметры
3,1 млрд
Размер весов
6,2 ГБ
Лицензия
Apache 2.0
Архитектура
qwen2 · dense
Базовая модель
Qwen2.5-3B-Instruct
Библиотека
transformers
Опубликована
21 сен 2026

pycoder-3b

Генерация текстаТекст → текст5 профессий

Дообученная чат-модель Qwen2.5 на 3,1 млрд параметров для генерации полного кода Python и помощи в повседневном программировании.

436скачиваний за 30 дней0лайковвеса обновлены21 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

raporto/pycoder-3b — дообученная методом QLoRA модель Qwen/Qwen2.5-3B-Instruct для помощи в программировании на Python. Разработчик настроил её на формат ответа: модель стремится выдавать полный исполняемый код вместо фрагментов, соблюдать единый стиль и отвечать на португальском, сохраняя возможности английского языка. Адаптер LoRA объединён с базовыми весами; модель содержит около 3,1 млрд параметров и поддерживает контекст до 32 768 токенов.

Модель предназначена для генерации и объяснения кода Python в диалоговом формате. Её обучали на наборе из примерно 18 тысяч инструкций по коду, а при обучении учитывались только токены ответов ассистента. Для ожидаемого формата общения следует использовать шаблон ChatML Qwen2.5. Португальский и английский поддерживаются целенаправленно; испанский унаследован от базовой модели, но формат ответов на нём не гарантируется.

Модель компактна и подходит для повседневных задач программирования, однако может выдумывать API и менее надёжна при масштабных рефакторингах и длинных рассуждениях. Сгенерированный код нужно проверять, особенно перед запуском с доступом к файлам, сети или недоверенным вводом. Лицензия — Apache 2.0; перед распространением производных следует также проверить условия лицензии набора данных.

Сценарии применения

  • генерация исполняемых функций на Python по описанию
  • написание небольших скриптов на Python
  • получение примеров кода Python в диалоге
  • объяснение и уточнение решений на Python
  • создание кода Python по инструкциям на португальском или английском

Ограничения

Модель может выдумывать параметры и методы библиотек; проверяйте код и сверяйте API с документацией. Она менее надёжна для больших многофайловых рефакторингов и длинных рассуждений, не проходила анализ безопасности, а поддержка испанского формата ответов не гарантируется.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

pycoder-3b

Fine-tuning QLoRA de Qwen/Qwen2.5-3B-Instruct para assistência em programação Python, com o adapter LoRA já mesclado nos pesos base.

O objetivo do ajuste é a forma da resposta, não conhecimento novo: entregar código completo e executável em vez de fragmentos, manter consistência de estilo e responder em português sem perder a capacidade original do modelo em inglês.

Versão quantizada para execução local: raporto/pycoder-3b-GGUF.

Formato de prompt

ChatML do Qwen2.5, com system prompt em português:

<|im_start|>system
Você é um assistente especialista em programação Python.<|im_end|>
<|im_start|>user
Escreva uma função que...<|im_end|>
<|im_start|>assistant

O apply_chat_template do tokenizer já produz esse formato. Usar um template diferente do treino degrada bastante o resultado.

Uso

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_id = "raporto/pycoder-3b"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto")

messages = [
    {"role": "system", "content": "Você é um assistente especialista em programação Python."},
    {"role": "user", "content": "Escreva uma função que remova duplicados de uma lista preservando a ordem."},
]

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

outputs = model.generate(**inputs, max_new_tokens=768, temperature=0.2, top_p=0.9, do_sample=True)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))

Em versões do Transformers anteriores à 5, use torch_dtype no lugar de dtype.

Parâmetros recomendados

ParâmetroValorMotivo
temperature0.15 – 0.3Geração de código pede determinismo.
top_p0.9
repetition_penalty1.05Evita loops sem penalizar repetição legítima em código.
max_new_tokens768 – 1024Implementação com testes cabe nessa faixa.

Treinamento

QLoRA em 4 bits (NF4 com double quantization), adapters LoRA sobre todas as projeções de atenção e MLP (q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj). Apenas os tokens da resposta do assistente entram na perda; os tokens de prompt recebem label = -100.

Os exemplos foram concatenados em blocos contíguos de 1024 tokens (sequence packing), com ~89% de aproveitamento. Exemplos acima do limite foram descartados em vez de truncados, para não ensinar o modelo a interromper código no meio.

{
  "model": "Qwen/Qwen2.5-3B-Instruct",
  "dataset": "iamtarun/python_code_instructions_18k_alpaca",
  "dtype": "torch.bfloat16",
  "packing": true,
  "train_samples": 3431,
  "train_tokens": 3124347,
  "effective_batch": 16,
  "steps": 215,
  "train_loss": 0.48165738638057265,
  "eval_loss": 0.47419440746307373,
  "perplexity": 1.6067193148929226,
  "lora": {
    "r": 16,
    "alpha": 32,
    "dropout": 0.05
  }
}
ItemValor
Parâmetros treináveis29.933.568 de 3.115.872.256 (0,96%)
Blocos de treino3.431 (dataset completo, 18.612 exemplos)
Tokens de treino3.124.347
Épocas1
Batch efetivo16
Learning rate2e-4, cosine, warmup 3%
Precisãobf16
Otimizadorpaged AdamW 8-bit

train_samples conta blocos empacotados, não exemplos: o dataset foi percorrido integralmente.

A perplexidade de 1,61 é calculada apenas sobre os tokens de resposta e não é comparável à perplexidade de modelos de linguagem de propósito geral.

Avaliação

A perda de validação sozinha não diz se o código funciona. A avaliação deste modelo usa um benchmark de tarefas Python com testes executáveis, medindo em quatro camadas: presença de bloco de código, validade sintática (ast.parse), execução sem exceção e aprovação nos asserts da tarefa (pass@1 e pass@k).

Recomenda-se reexecutar o benchmark contra o modelo base antes de adotar este ajuste em qualquer fluxo, e novamente após quantizar, já que a perda de precisão pode alterar o resultado.

Idiomas

Treinado com system prompt e instruções em português, sobre um dataset de código em inglês. Responde bem em português e inglês. O espanhol é herdado da capacidade multilíngue do Qwen2.5 e não foi alvo do ajuste, portanto não tem garantia de consistência de formato.

Código, nomes de identificadores e mensagens de erro permanecem em inglês, como é convenção em Python.

Limitações

Modelo de 3B parâmetros treinado em ~18k exemplos de instrução. Serve como assistente de código do dia a dia, não como fonte autoritativa: valide o código gerado antes de executar em produção.

Limitações específicas:

  • Alucinação de API. Pode inventar parâmetros ou métodos de bibliotecas de terceiros. Confira contra a documentação oficial.
  • Contexto e raciocínio longos. Refatorações amplas, dependências entre múltiplos arquivos e cadeias longas de raciocínio estão acima do que essa faixa de tamanho entrega de forma confiável.
  • Contaminação. O modelo base provavelmente já viu parte do dataset de treino. Avaliações feitas com tarefas derivadas desse dataset superestimam o desempenho.
  • Segurança. O código gerado não passa por análise de segurança. Trate-o como código de terceiros: revise antes de executar, especialmente se manipular arquivos, rede ou entrada não confiável.
  • Escopo. Ajustado para Python. Outras linguagens funcionam apenas na medida do modelo base.

Licença

Apache 2.0, herdada do modelo base Qwen2.5-3B-Instruct. Verifique também os termos do dataset antes de redistribuir derivados.

Créditos

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen2ForCausalLM
Ревизия весов
0c7cc43

0 моделей