@mcptoolshop/backpropagate 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.es.md +219 -207
- package/README.fr.md +219 -207
- package/README.hi.md +219 -207
- package/README.it.md +220 -208
- package/README.ja.md +219 -207
- package/README.md +220 -208
- package/README.pt-BR.md +219 -207
- package/README.zh.md +219 -207
- package/bin/backpropagate.js +47 -196
- package/package.json +2 -5
package/README.pt-BR.md
CHANGED
|
@@ -10,143 +10,155 @@
|
|
|
10
10
|
<a href="https://github.com/mcp-tool-shop-org/backpropagate/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/backpropagate/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
11
11
|
<a href="https://pypi.org/project/backpropagate/"><img src="https://img.shields.io/pypi/v/backpropagate" alt="PyPI"></a>
|
|
12
12
|
<a href="https://codecov.io/gh/mcp-tool-shop-org/backpropagate"><img src="https://img.shields.io/codecov/c/github/mcp-tool-shop-org/backpropagate" alt="Coverage"></a>
|
|
13
|
+
<a href="https://scorecard.dev/viewer/?uri=github.com/mcp-tool-shop-org/backpropagate"><img src="https://api.scorecard.dev/projects/github.com/mcp-tool-shop-org/backpropagate/badge" alt="OpenSSF Scorecard"></a>
|
|
13
14
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
14
15
|
<a href="https://mcp-tool-shop-org.github.io/backpropagate/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
|
|
15
16
|
</p>
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
# Treine um adaptador. Envie-o para o Ollama. Próximo
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
Backpropagate é uma biblioteca Python para ajustar modelos de linguagem grandes em uma única GPU. Três linhas de código treinam um modelo de 7 bilhões de parâmetros em uma placa de 16 GB. Um comando exporta para o Ollama para que você possa executar o ajuste fino com `ollama run`. Funciona perfeitamente no Windows.
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
```python
|
|
23
|
+
from backpropagate import Trainer
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
trainer = Trainer("Qwen/Qwen2.5-7B-Instruct")
|
|
26
|
+
trainer.train("my_data.jsonl", steps=100)
|
|
27
|
+
trainer.export("gguf", quantization="q4_k_m")
|
|
28
|
+
```
|
|
24
29
|
|
|
25
30
|
```bash
|
|
26
|
-
|
|
31
|
+
backprop export ./output/lora --format gguf --quantization q4_k_m --ollama --ollama-name my-model
|
|
32
|
+
ollama run my-model
|
|
27
33
|
```
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
from backpropagate import Trainer
|
|
35
|
+
É isso. Não há arquivo de configuração YAML. Não há "cerimônia" de `accelerate launch`. Não há um tutorial separado para "converter para GGUF". Se você tem uma GPU CUDA e um arquivo JSONL com seus dados de treinamento, você está a três linhas de um ajuste fino funcional.
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
## Instalação
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Recommended: isolated Python install (no conflicts with system Python or other projects)
|
|
41
|
+
pipx install backpropagate
|
|
36
42
|
|
|
37
|
-
|
|
43
|
+
# Or via uv (faster install, same isolation)
|
|
44
|
+
uv tool install backpropagate
|
|
38
45
|
|
|
39
|
-
|
|
46
|
+
# Standard pip (if you manage your own virtualenv)
|
|
47
|
+
pip install backpropagate
|
|
48
|
+
```
|
|
40
49
|
|
|
41
|
-
|
|
50
|
+
Se você deseja os recursos opcionais, substitua a instalação por um destes:
|
|
42
51
|
|
|
43
52
|
```bash
|
|
44
|
-
|
|
45
|
-
|
|
53
|
+
pipx install "backpropagate[standard]" # adds Unsloth (2x faster training) + the web UI
|
|
54
|
+
pipx install "backpropagate[full]" # adds everything: unsloth, ui, monitoring, export, etc.
|
|
46
55
|
```
|
|
47
56
|
|
|
48
|
-
|
|
57
|
+
Prefere Docker? `docker pull ghcr.io/mcp-tool-shop-org/backpropagate:latest` também funciona. As imagens estão disponíveis para `linux/amd64` e `linux/arm64`, então os usuários de Apple Silicon e ARM Linux têm uma imagem nativa. Um arquivo `compose.yaml` canônico para "UI em um contêiner" está na raiz do repositório — `docker compose up` inicia a interface web em `http://localhost:7860` com um volume persistente `~/.backpropagate` montado.
|
|
49
58
|
|
|
50
|
-
##
|
|
59
|
+
## Onde o Backpropagate se encaixa
|
|
51
60
|
|
|
52
|
-
|
|
61
|
+
Existem várias bibliotecas boas para ajustar LLMs. Cada uma é ótima em coisas diferentes:
|
|
53
62
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
63
|
+
- **[Axolotl](https://github.com/OpenAccess-AI-Collective/axolotl)** — se você gosta de configurações YAML e quer uma comunidade de receitas para copiar.
|
|
64
|
+
- **[LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory)** — se você quer uma GUI web e suporte integrado para DPO/PPO/RLHF.
|
|
65
|
+
- **[Unsloth](https://github.com/unslothai/unsloth)** — se você precisa do treinamento mais rápido possível e está usando uma família de modelos suportada.
|
|
66
|
+
- **[torchtune](https://github.com/pytorch/torchtune)** — se você quer as receitas nativas do PyTorch da Meta que pode editar.
|
|
58
67
|
|
|
59
|
-
|
|
68
|
+
Backpropagate é a opção que falta: **uma API Python de 3 linhas para usuários individuais em uma única GPU de consumo que querem treinar um adaptador e enviá-lo.** Sem YAML, sem GUI, sem DPO/PPO, sem nós múltiplos. Apenas o loop que todos realmente precisam e o passo de exportação que atrapalha.
|
|
60
69
|
|
|
61
|
-
|
|
70
|
+
Se você tentou uma das bibliotecas acima e se sentiu frustrado com a "cerimônia" do arquivo de configuração, ou encontrou uma lacuna na família de modelos, ou queria configurações padrão para Windows — Backpropagate é para você.
|
|
62
71
|
|
|
63
|
-
|
|
64
|
-
|---------|----------|
|
|
65
|
-
| O ajuste fino é complexo | 3 linhas: carregar, treinar, salvar |
|
|
66
|
-
| Windows é um pesadelo | Suporte completo para Windows |
|
|
67
|
-
| O gerenciamento da VRAM é difícil | Dimensionamento automático do lote, monitoramento da GPU |
|
|
68
|
-
| A exportação de modelos é confusa | Exportação GGUF com um clique + registro automático no Ollama |
|
|
69
|
-
| Treinamentos longos causam esquecimento | Treinamento SLAO em várias etapas |
|
|
72
|
+
## O que você pode ajustar em uma GPU de consumo de 16 GB
|
|
70
73
|
|
|
71
|
-
|
|
74
|
+
Aqui está a faixa prática em uma placa de 16 GB (RTX 4080 / 5080 / 4070 Ti Super):
|
|
72
75
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
76
|
+
| Modelo | Método | Status |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| Qwen-3.5-4B / Phi-4-mini-3.8B / SmolLM3-3B | LoRA / QLoRA / DoRA | Confortável. Comprimento total da sequência, espaço extra. |
|
|
79
|
+
| Phi-4-mini-3.8B / Qwen-3.5-4B / SmolLM3-3B (limite máximo de 3 bilhões de parâmetros) | `mode="full"` (ajuste fino completo) | v1.4 — Utilize a opção `--mode=full` no comando `backprop train` ou `Trainer(..., mode="full")`. O checkpointing do gradiente e o Adam de 8 bits com paginação mantêm a memória de ativação em sqrt(L). |
|
|
80
|
+
| Qwen-2.5-7B / Llama-3.1-8B / Mistral-7B | QLoRA | Padrão. ~7-8 GB. Configurações padrão do Backpropagate. |
|
|
81
|
+
| Llama-3 13B | QLoRA + empacotamento de amostras | Apertado, mas funciona. Use sequências mais curtas. |
|
|
82
|
+
| Mixtral 8x7B (47 bilhões de parâmetros no total) | AQLM 2-bit + LoRA | Planejado para v1.5 — Consulte o documento V1_5_BRIEF quando for publicado. |
|
|
79
83
|
|
|
80
|
-
|
|
84
|
+
A quantização AQLM de 2 bits (`quant_method="aqlm"`, opção experimental para Mixtral-8x7B em 16GB) foi planejada para v1.4 e agora está prevista para v1.5. A biblioteca `aqlm` está madura; a prioridade para a versão 1.4 foi oferecer suporte completo para ajuste fino de modelos com até 3 bilhões de parâmetros (`mode="full"`), em vez de adicionar um novo backend de quantização. Consulte o documento V1_5_BRIEF quando for publicado para o plano de implementação da versão 1.5.
|
|
81
85
|
|
|
82
|
-
|
|
83
|
-
pip install backpropagate # Core only (minimal)
|
|
84
|
-
pip install backpropagate[unsloth] # + Unsloth 2x faster training
|
|
85
|
-
pip install backpropagate[ui] # + Reflex (Radix UI) web interface
|
|
86
|
-
pip install backpropagate[standard] # unsloth + ui (recommended)
|
|
87
|
-
pip install backpropagate[full] # Everything
|
|
88
|
-
```
|
|
86
|
+
Para modelos com 3 bilhões de parâmetros ou menores, o ajuste fino completo (e não apenas LoRA) é viável em 16GB e está disponível na versão 1.4 como `mode="full"`. Utilize `Trainer(..., mode="full")` ou `backprop train --mode=full --model phi-4-mini-3.8b` para habilitá-lo. Um mecanismo impede o uso desse modo para modelos maiores que 3 bilhões de parâmetros, oferecendo LoRA e as configurações predefinidas para modelos menores que 3 bilhões como alternativas. Consulte a página completa do manual de ajuste fino ([https://mcp-tool-shop-org.github.io/backpropagate/handbook/full-fine-tuning/](https://mcp-tool-shop-org.github.io/backpropagate/handbook/full-fine-tuning/)) para a configuração e a comparação de qualidade entre Biderman 2024 e Thinking Machines 2025. Para modelos com 7 bilhões de parâmetros ou mais, o ajuste fino completo requer uma GPU com 24GB ou mais — considere alugar uma GPU A100 na nuvem ou utilize LoRA, que, segundo pesquisas recentes, oferece qualidade comparável ao ajuste fino completo na maioria das tarefas de pós-treinamento (consulte a seção "o que Backpropagate não é" para referências).
|
|
89
87
|
|
|
90
|
-
|
|
91
|
-
|-------|-------------|--------------|
|
|
92
|
-
| `unsloth` | Treinamento 2x mais rápido, 50% menos VRAM | unsloth |
|
|
93
|
-
| `ui` | Interface web Reflex (Radix UI) | reflex>=0.9.2, fastapi>=0.115 |
|
|
94
|
-
| `validation` | Validação de configuração Pydantic | pydantic, pydantic-settings |
|
|
95
|
-
| `export` | Exportação GGUF para Ollama | llama-cpp-python |
|
|
96
|
-
| `monitoring` | WandB + monitoramento do sistema (integrado automaticamente ao treinador na versão 1.1.0) | wandb, psutil |
|
|
97
|
-
| `logging` | Registro estruturado | structlog |
|
|
98
|
-
| `security` | Autenticação JWT + geração de tokens | PyJWT, cryptography |
|
|
99
|
-
| `production` | unsloth + ui + validação + registro + segurança | (pacote) |
|
|
88
|
+
## O que Backpropagate NÃO é
|
|
100
89
|
|
|
101
|
-
|
|
90
|
+
Se o seu caso de uso se enquadra nas opções abaixo, você terá melhores resultados com outra biblioteca — Backpropagate não é a escolha certa, e tentar fazê-lo funcionar custará mais do que simplesmente usar a ferramenta adequada. Ler esta seção antes de começar economiza o tempo gasto na instalação e na tentativa de fazer funcionar:
|
|
102
91
|
|
|
103
|
-
|
|
92
|
+
- **Ajuste fino de todos os parâmetros de modelos com 7 bilhões de parâmetros ou mais** — Backpropagate utiliza LoRA / QLoRA, que treina um adaptador pequeno em vez de atualizar todos os pesos. Para modelos com 7 bilhões de parâmetros ou mais, o ajuste fino completo requer 24GB ou mais de memória da GPU e não cabe em uma placa de consumidor com 16GB. Para modelos com 3 bilhões de parâmetros ou menos, o ajuste fino completo é viável em 16GB e está disponível na versão 1.4 como `mode="full"` (utilize `Trainer(..., mode="full")` ou `--mode=full` na linha de comando; um mecanismo impede o uso desse modo para modelos maiores que 3 bilhões de parâmetros, oferecendo LoRA e as configurações predefinidas para modelos menores que 3 bilhões como alternativas). Em resumo: pesquisas recentes ([Biderman 2024](https://arxiv.org/abs/2405.09673), [Thinking Machines 2025](https://thinkingmachines.ai/blog/lora/)) mostram que o LoRA, com a configuração correta, oferece qualidade comparável ao ajuste fino completo na maioria das tarefas de pós-treinamento (seguir instruções, adaptação de domínio, personalidade/estilo) com 67% do poder computacional — portanto, para o trabalho que a maioria dos usuários realmente deseja realizar, você não perde nada ao usar LoRA. `mode="full"` existe para os casos em que você mediu uma diferença de qualidade e decidiu gastar mais poder computacional. Se você realmente precisa de um ajuste fino completo de um modelo com 7 bilhões de parâmetros ou mais, utilize diretamente o `transformers.Trainer` da HuggingFace em uma placa com 24GB ou mais.
|
|
93
|
+
- **DPO / PPO / GRPO / ajuste de preferências** — Backpropagate realiza apenas o ajuste fino supervisionado em uma única etapa. Para o aprendizado por preferências, utilize diretamente o TRL ou o LLaMA-Factory.
|
|
94
|
+
- **Treinamento em vários nós** — apenas uma GPU em uma única máquina. O uso de várias GPUs em uma única máquina funciona (via `accelerate launch`), mas não é oficialmente suportado.
|
|
95
|
+
- **Treinamento no macOS** — o Apple Silicon não possui CUDA, portanto, o treinamento deve ser executado em uma máquina Linux ou Windows com uma GPU NVIDIA. Você ainda pode executar o modelo treinado em um Mac via Ollama.
|
|
96
|
+
- **Qualquer modelo fora das famílias de modelos testados** — Qwen 2.5 / 3.5 (7B / 4B), Phi-4-mini-3.8B, SmolLM3-3B, Llama 3.2 (3B / 1B), Mistral 7B. Outros modelos podem funcionar, mas não são testados nos testes automatizados.
|
|
104
97
|
|
|
105
|
-
|
|
98
|
+
Se você precisar de alguma dessas funcionalidades, utilize uma das bibliotecas listadas acima. Elas são mais adequadas para isso.
|
|
106
99
|
|
|
107
|
-
|
|
108
|
-
- **Windows.** O Visual Studio Build Tools (C++) e o CMake são necessários para o extra `[export]` (compilações do `llama-cpp-python` a partir do código-fonte). A versão do pacote `bitsandbytes` é agora publicada nativamente para Windows (>= 0.43); guias mais antigos que mencionam `bitsandbytes-windows` estão desatualizados.
|
|
109
|
-
- **macOS.** O treinamento com GPU **não é suportado** — não há suporte para CUDA. Você pode instalar o Backpropagate para executar a *inferência* em um modelo GGUF exportado via Ollama, mas `trainer.train()` gera a exceção `DEP_GPU_NOT_AVAILABLE`. Use uma máquina com GPU para treinamento.
|
|
110
|
-
- **Linux.** A maioria das distribuições funciona sem problemas. Se você estiver usando a versão binária do PyPI, observe que a compilação para Linux usa apenas a versão para CPU do torch (para permanecer abaixo do limite de 2 GB de arquivos de lançamento do GitHub); instale primeiro a versão correspondente do pacote CUDA do pytorch.org.
|
|
100
|
+
## O que o Backpropagate oferece:
|
|
111
101
|
|
|
112
|
-
|
|
102
|
+
Quatro coisas, em uma única instalação:
|
|
113
103
|
|
|
114
|
-
|
|
104
|
+
**1. Uma API simples de 3 linhas que funciona sem um arquivo de configuração.**
|
|
105
|
+
O trecho de código no início deste arquivo README é executado do início ao fim. Não requer `accelerate config`, nem YAML, nem substituições do Hydra. Basta `Trainer(model).train(data)` e você terá um modelo ajustado.
|
|
115
106
|
|
|
116
|
-
|
|
107
|
+
**2. Funcionalidade que realmente funciona no Windows.**
|
|
108
|
+
A maioria das bibliotecas de aprendizado de máquina trata o Windows como uma funcionalidade secundária. O Backpropagate é testado e otimizado para Windows + RTX 5080. A biblioteca lida com as peculiaridades do sistema operacional para você — ela sabe como pré-tokenizar seus dados para evitar que o processamento paralelo do Windows cause falhas, desativa automaticamente o xformers em placas RTX 40/50 onde ele pode causar problemas e seleciona configurações do carregador de dados que evitam erros. Você não precisa saber nada disso. Apenas funciona.
|
|
117
109
|
|
|
118
|
-
|
|
110
|
+
**3. Projetado para execuções não supervisionadas.**
|
|
111
|
+
O treinamento leva horas. Você não quer ficar monitorando-o constantemente. O Backpropagate foi projetado para ser executado em segundo plano:
|
|
119
112
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
| `BACKPROPAGATE_DEFER_FEATURE_DETECTION` | não definido | Ignora a detecção de dependências opcionais na inicialização para uma inicialização mais rápida da CLI |
|
|
126
|
-
| `BACKPROPAGATE_SECURITY__REQUIRE_AUTH_FOR_SHARE` | `true` | Quando `true`, impede o uso de `backprop ui --share` sem a opção `--auth` |
|
|
127
|
-
| `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | Diretório base para todas as operações de escrita no sistema de arquivos da interface do usuário; com validação de lista de permissões. |
|
|
128
|
-
| `BACKPROPAGATE_MODEL__NAME` | `Qwen/Qwen2.5-7B-Instruct` | Modelo padrão |
|
|
129
|
-
| `BACKPROPAGATE_TRAINING__LEARNING_RATE` | `2e-4` | Taxa de aprendizado |
|
|
130
|
-
| `BACKPROPAGATE_LORA__R` | `16` | Rank do LoRA |
|
|
113
|
+
- Se você ficar sem memória da GPU, ele automaticamente reduz o tamanho do lote e tenta novamente — até três vezes. Sem necessidade de ajustes manuais.
|
|
114
|
+
- Se a sua GPU ficar muito quente, ela pausa até que a temperatura diminua e, em seguida, continua.
|
|
115
|
+
- Cada checkpoint é gravado de forma atômica — se o seu laptop travar durante a gravação, o último checkpoint válido ainda estará intacto.
|
|
116
|
+
- Cada execução de treinamento recebe um ID exclusivo que é adicionado a cada linha de log, a cada checkpoint e a cada entrada do Weights & Biases. Se algo der errado, um único ID permite que um administrador correlacione todos os elementos.
|
|
117
|
+
- Os erros vêm com códigos estáveis (`RUNTIME_GPU_OOM`, `DEP_OLLAMA_REGISTRATION_FAILED`, etc.), para que você possa pesquisar seus logs e o [guia de solução de problemas](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/) para encontrar a solução. As falhas específicas do CUDA têm uma [página de solução de problemas dedicada para CUDA](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/).
|
|
131
118
|
|
|
132
|
-
|
|
119
|
+
**4. Um único comando para transformar o adaptador treinado em um modelo compatível com `ollama run`.**
|
|
120
|
+
Muitas bibliotecas treinam um modelo. Poucas delas facilitam o uso do modelo após o treinamento. O Backpropagate exporta para o formato GGUF (o formato usado pelo Ollama) e registra um modelo no Ollama em um único comando. Você vai da fase de "treinamento concluído" para a fase de "posso conversar com meu modelo ajustado" em cerca de 30 segundos.
|
|
133
121
|
|
|
134
|
-
##
|
|
122
|
+
## Início Rápido
|
|
135
123
|
|
|
136
|
-
|
|
124
|
+
O repositório inclui um pequeno conjunto de dados de exemplo para que o código no início deste arquivo README seja executado em uma instalação limpa:
|
|
137
125
|
|
|
138
|
-
```
|
|
126
|
+
```bash
|
|
127
|
+
pipx install "backpropagate[standard]"
|
|
128
|
+
|
|
129
|
+
python -c "
|
|
139
130
|
from backpropagate import Trainer
|
|
131
|
+
trainer = Trainer('Qwen/Qwen2.5-7B-Instruct')
|
|
132
|
+
trainer.train('examples/quickstart.jsonl', steps=10)
|
|
133
|
+
trainer.export('gguf', quantization='q4_k_m')
|
|
134
|
+
"
|
|
135
|
+
```
|
|
140
136
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
137
|
+
Isso treina um adaptador Qwen 2.5 7B com 5 conversas curtas no formato ShareGPT, e então exporta o resultado para o formato GGUF. Para seus próprios dados, formate seu arquivo JSONL com um exemplo por linha:
|
|
138
|
+
|
|
139
|
+
```jsonl
|
|
140
|
+
{"conversations": [{"from": "human", "value": "What is Python?"}, {"from": "gpt", "value": "A programming language."}]}
|
|
141
|
+
{"conversations": [{"from": "human", "value": "Explain recursion."}, {"from": "gpt", "value": "A function that calls itself."}]}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Formatos Alpaca (`instruction` / `output`), OpenAI chat (`messages`) e texto simples também funcionam — o Backpropagate detecta automaticamente o formato.
|
|
145
|
+
|
|
146
|
+
Para fluxos de trabalho mais completos (ajuste fino e envio para o Hugging Face Hub, retomada após erros de memória, treinamento em várias etapas em um longo período, etc.), consulte a [página de receitas do manual](https://mcp-tool-shop-org.github.io/backpropagate/handbook/recipes/).
|
|
147
|
+
|
|
148
|
+
### Interface Web (opcional)
|
|
149
|
+
|
|
150
|
+
Se você preferir clicar em vez de digitar comandos Python, instale a interface gráfica e execute:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
pipx install "backpropagate[ui]"
|
|
154
|
+
backprop ui --port 7862
|
|
145
155
|
```
|
|
146
156
|
|
|
147
|
-
|
|
157
|
+
Uma interface web local é aberta em `http://localhost:7862`, onde você pode selecionar um conjunto de dados, escolher um modelo, treinar e exportar. A interface gráfica é local por padrão. Para torná-la acessível a outros dispositivos, consulte a seção [Interface Web](#web-ui) abaixo para obter informações sobre o contrato de segurança `--share` + `--auth`.
|
|
148
158
|
|
|
149
|
-
|
|
159
|
+
## Treinamento em várias etapas
|
|
160
|
+
|
|
161
|
+
Se você deseja realizar o ajuste fino de forma incremental em vários conjuntos de dados — por exemplo, se você recebe novos dados de treinamento a cada semana e deseja adicioná-los sem esquecer o que aprendeu antes — o modo `multi_run` do Backpropagate é para você:
|
|
150
162
|
|
|
151
163
|
```python
|
|
152
164
|
from backpropagate import Trainer
|
|
@@ -158,196 +170,196 @@ result = trainer.multi_run(
|
|
|
158
170
|
num_runs=5,
|
|
159
171
|
steps_per_run=100,
|
|
160
172
|
samples_per_run=1000,
|
|
161
|
-
merge_mode="slao", # Single LoRA Continual Learning via Asymmetric Merging
|
|
162
173
|
)
|
|
163
174
|
```
|
|
164
175
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
### Exportação para Ollama
|
|
168
|
-
|
|
169
|
-
```python
|
|
170
|
-
# Export to GGUF
|
|
171
|
-
result = trainer.export("gguf", quantization="q4_k_m")
|
|
172
|
-
|
|
173
|
-
# Register with Ollama separately
|
|
174
|
-
from backpropagate import register_with_ollama
|
|
175
|
-
register_with_ollama(result.path, "my-finetuned-model")
|
|
176
|
-
# ollama run my-finetuned-model
|
|
177
|
-
```
|
|
176
|
+
Isso executa cinco etapas de treinamento, mesclando o adaptador entre as etapas de forma a preservar o conhecimento anterior, incorporando novos exemplos. A técnica é baseada em pesquisas recentes sobre aprendizado contínuo — veja as [Referências](#references) no final deste arquivo README.
|
|
178
177
|
|
|
179
|
-
|
|
178
|
+
A versão da linha de comando (CLI):
|
|
180
179
|
|
|
181
180
|
```bash
|
|
182
|
-
backprop
|
|
183
|
-
backprop multi-run --data my_data.jsonl --runs 5 --steps 100
|
|
184
|
-
backprop export ./output/lora --format gguf --quantization q4_k_m --ollama --ollama-name my-model
|
|
185
|
-
backprop ui --port 7862
|
|
186
|
-
backprop info
|
|
187
|
-
backprop list-runs # v1.1.0: query past training runs
|
|
188
|
-
backprop show-run <run-id> # v1.1.0: detail view
|
|
189
|
-
backprop resume <run-id> # v1.1.0: resume a crashed multi-run
|
|
190
|
-
backprop push ./output/lora --repo me/my-model # v1.1.0: push adapter to HF Hub
|
|
181
|
+
backprop multi-run --data my_data.jsonl --runs 5 --steps 100 --samples 1000
|
|
191
182
|
```
|
|
192
183
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
### Retomada a partir de um checkpoint (v1.1.0)
|
|
184
|
+
## Retomar de um ponto de verificação
|
|
196
185
|
|
|
197
|
-
Uma
|
|
186
|
+
Uma etapa de treinamento de 5 tentativas que falha na tentativa 4 pode ser recuperada. Cada sessão de treinamento em várias etapas grava o ID da execução no histórico e no manifesto do ponto de verificação no disco, portanto, para retomar de onde você parou, basta um comando:
|
|
198
187
|
|
|
199
188
|
```bash
|
|
200
|
-
backprop resume <run-id>
|
|
201
|
-
backprop multi-run --data ... --resume <run-id>
|
|
202
|
-
backprop train --data ... --resume <run-id>
|
|
189
|
+
backprop resume <run-id>
|
|
190
|
+
backprop multi-run --data ... --resume <run-id>
|
|
191
|
+
backprop train --data ... --resume <run-id> # single-run resume
|
|
203
192
|
```
|
|
204
193
|
|
|
205
|
-
O comportamento padrão do `backprop multi-run` (sem `--resume`) detecta automaticamente uma execução em andamento
|
|
206
|
-
|
|
207
|
-
Ao retomar uma execução multi-run, o checkpoint mais recente para aquele `run_id` é carregado no modelo, o estado do SLAO (State Linear Attention Optimization) é restaurado a partir do diretório `slao/` próximo ao checkpoint, e o loop de execução continua a partir de `last_completed_run + 1`. O status da entrada no histórico é alterado para `running`, permitindo que `backprop list-runs --status running` mostre a sessão ativa.
|
|
194
|
+
O comportamento padrão do `backprop multi-run` (sem `--resume`) detecta automaticamente uma execução em andamento no mesmo diretório de saída e a continua. Para forçar um novo início, aponte para um diretório de saída diferente.
|
|
208
195
|
|
|
209
|
-
|
|
196
|
+
## Histórico de treinamento
|
|
210
197
|
|
|
211
|
-
|
|
198
|
+
Cada invocação de `backprop train` e `backprop multi-run` registra uma linha em `<output>/run_history.json` — modelo usado, conjunto de dados, hiperparâmetros, status, perda final, histórico de perdas. Você pode listar e inspecionar execuções anteriores:
|
|
212
199
|
|
|
213
200
|
```bash
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
backprop
|
|
201
|
+
backprop list-runs # last 20 runs
|
|
202
|
+
backprop list-runs --status failed # filter by status
|
|
203
|
+
backprop list-runs --json --limit 100 # machine-readable
|
|
204
|
+
backprop show-run abcd1234 # detail view (partial ID is fine)
|
|
217
205
|
```
|
|
218
206
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
### Histórico de treinamento
|
|
207
|
+
## Rastreamento de experimentos
|
|
222
208
|
|
|
223
|
-
|
|
209
|
+
O Backpropagate detecta automaticamente os rastreadores de experimentos instalados (Weights & Biases, TensorBoard, MLflow) e os integra. Se o `wandb` estiver instalado e você estiver logado, cada execução registra automaticamente no W&B com um nome de execução que corresponde ao ID da execução no disco — para que você possa pesquisar no W&B, seus logs e em `run_history.json` usando um único identificador.
|
|
224
210
|
|
|
225
211
|
```bash
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
backprop
|
|
229
|
-
backprop show-run abcd1234 # detail view (partial run_id ok)
|
|
212
|
+
pip install backpropagate[monitoring] # installs wandb + psutil
|
|
213
|
+
wandb login # one-time setup
|
|
214
|
+
backprop train --data my_data.jsonl
|
|
230
215
|
```
|
|
231
216
|
|
|
232
|
-
|
|
217
|
+
Para desativar essa funcionalidade, use `Trainer(report_to=["wandb"])`, `Trainer(report_to=["tensorboard"])` ou `Trainer(report_to="none")`.
|
|
233
218
|
|
|
234
|
-
|
|
219
|
+
## Interface Web
|
|
235
220
|
|
|
236
|
-
|
|
221
|
+
A interface web Reflex é opcional — instale com `pipx install "backpropagate[ui]"` e execute:
|
|
237
222
|
|
|
238
223
|
```bash
|
|
239
224
|
backprop ui --port 7862
|
|
240
225
|
```
|
|
241
226
|
|
|
242
|
-
Para
|
|
227
|
+
A interface gráfica é executada localmente em `http://localhost:7862`. Para torná-la acessível a outros dispositivos (outras pessoas na sua rede, um URL público, etc.), você deve combinar `--share` (ou `--host`) com `--auth`:
|
|
243
228
|
|
|
244
229
|
```bash
|
|
245
230
|
backprop ui --share --auth alice:hunter2
|
|
246
231
|
```
|
|
247
232
|
|
|
248
|
-
|
|
233
|
+
`backprop ui --share` sem `--auth` gera um erro. O motivo: `--share` publica um URL que qualquer pessoa na internet pode acessar, e sem autenticação, isso significa que qualquer pessoa pode controlar seu pipeline de treinamento e ler seu token do Hugging Face. Não há como desativar essa funcionalidade — se você não quiser definir credenciais, use o encaminhamento de porta SSH em vez disso:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# On the client:
|
|
237
|
+
ssh -L 7860:localhost:7860 <your-training-host>
|
|
238
|
+
# On the server:
|
|
239
|
+
backprop ui # no --share
|
|
240
|
+
# Then open http://localhost:7860 in your local browser
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Consulte [handbook/security.md](https://mcp-tool-shop-org.github.io/backpropagate/handbook/security/) para obter o modelo de ameaças completo.
|
|
249
244
|
|
|
250
245
|
As operações de escrita no sistema de arquivos a partir da interface são restritas a um único diretório:
|
|
251
246
|
|
|
252
247
|
- Padrão: `~/.backpropagate/ui-outputs`
|
|
253
|
-
-
|
|
254
|
-
- A substituição é
|
|
248
|
+
- Para substituir: defina `BACKPROPAGATE_UI__OUTPUT_DIR=/caminho/desejado`
|
|
249
|
+
- A substituição é validada por uma lista de permissões — caminhos do sistema ou de credenciais (`/etc`, `~/.ssh`, `~/.aws`, `C:\Windows\System32`, etc.) são rejeitados.
|
|
255
250
|
|
|
256
|
-
##
|
|
251
|
+
## Observações sobre a plataforma
|
|
257
252
|
|
|
258
|
-
|
|
253
|
+
**Requisitos:** Python 3.10+ · GPU CUDA (8GB+ de VRAM) · PyTorch 2.0+
|
|
259
254
|
|
|
260
|
-
|
|
261
|
-
- Desativação automática do xformers para séries RTX 40/50
|
|
262
|
-
- Configurações de dataloader seguras
|
|
263
|
-
- Testado em RTX 5080 (16GB de VRAM)
|
|
255
|
+
O Python 3.10 atingirá o fim de vida em outubro de 2026, e o Backpropagate planeja remover o suporte para o 3.10 na versão 1.4. Para novas instalações, prefira o Python 3.11 ou 3.12 — o 3.11 é a versão mais testada.
|
|
264
256
|
|
|
265
|
-
|
|
257
|
+
O Backpropagate lida com as peculiaridades de tempo de execução do treinamento em diferentes plataformas, mas não pode corrigir problemas de instalação. Os dois problemas mais comuns são:
|
|
266
258
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
| Qwen 2.5 7B | ~12GB | Média | Melhor |
|
|
270
|
-
| Qwen 2.5 3B | ~8GB | Rápida | Boa |
|
|
271
|
-
| Llama 3.2 3B | ~8GB | Rápida | Boa |
|
|
272
|
-
| Llama 3.2 1B | ~6GB | Mais Rápida | Básica |
|
|
273
|
-
| Mistral 7B | ~12GB | Média | Boa |
|
|
259
|
+
- **Pacote CUDA incorreto.** O PyTorch é publicado com um pacote binário para cada versão do CUDA. Se você escolher o pacote errado, você obterá silenciosamente apenas a versão do PyTorch para CPU, e o treinamento será extremamente lento. Use o seletor de pacotes em <https://pytorch.org/get-started/locally/> para o seu driver. Execute `nvidia-smi` para ver a versão do seu driver / CUDA.
|
|
260
|
+
- **Windows + exportação GGUF.** A opção `[export]` compila `llama-cpp-python` a partir do código-fonte, o que requer as Ferramentas de Build do Visual Studio (componente C++) e o CMake.
|
|
274
261
|
|
|
275
|
-
|
|
262
|
+
**macOS:** O treinamento com GPU não é suportado (não há CUDA). Você pode executar o adaptador treinado em um Mac via Ollama, mas `trainer.train()` gera um erro `DEP_GPU_NOT_AVAILABLE`. Use uma máquina Linux ou Windows com CUDA para o próprio treinamento.
|
|
276
263
|
|
|
264
|
+
Consulte a [página do manual de solução de problemas](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/) para obter um guia completo de solução de problemas de instalação, e a [página de solução de problemas do CUDA](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/) dedicada para problemas de driver / VRAM / xformers / bf16-vs-fp16.
|
|
265
|
+
|
|
266
|
+
## CLI
|
|
267
|
+
|
|
268
|
+
Cada API do Python tem um equivalente de linha de comando (CLI):
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
backprop train --data my_data.jsonl --model Qwen/Qwen2.5-7B-Instruct --steps 100
|
|
272
|
+
backprop multi-run --data my_data.jsonl --runs 5 --steps 100
|
|
273
|
+
backprop export ./output/lora --format gguf --quantization q4_k_m --ollama --ollama-name my-model
|
|
274
|
+
backprop ui --port 7862
|
|
275
|
+
backprop info # environment + version snapshot
|
|
276
|
+
backprop list-runs # past training runs
|
|
277
|
+
backprop show-run <run-id> # detail view
|
|
278
|
+
backprop resume <run-id> # resume a crashed run
|
|
279
|
+
backprop push ./output/lora --repo me/my-model # push adapter to HuggingFace Hub
|
|
280
|
+
backprop diff-runs <run-a> <run-b> # diff two runs side by side
|
|
281
|
+
backprop replay <run-id> # re-run with same config / dataset
|
|
282
|
+
backprop export-runs --format jsonl # bulk export run history
|
|
277
283
|
```
|
|
278
|
-
backpropagate/
|
|
279
|
-
├── trainer.py # Core Trainer class
|
|
280
|
-
├── multi_run.py # Multi-run SLAO training
|
|
281
|
-
├── slao.py # SLAO LoRA merging algorithm
|
|
282
|
-
├── datasets.py # Dataset loading, filtering & curriculum
|
|
283
|
-
├── export.py # GGUF/Ollama export
|
|
284
|
-
├── config.py # Pydantic settings + training presets
|
|
285
|
-
├── gpu_safety.py # GPU monitoring & safety
|
|
286
|
-
├── cli.py # CLI entry point (backprop command)
|
|
287
|
-
├── checkpoints.py # Checkpoint management
|
|
288
|
-
├── exceptions.py # Structured error hierarchy
|
|
289
|
-
├── feature_flags.py # Optional feature detection
|
|
290
|
-
├── security.py # Path traversal & torch security
|
|
291
|
-
├── logging_config.py # Structured logging setup
|
|
292
|
-
├── ui_theme.py # Radix theme tokens + CSS (Reflex era)
|
|
293
|
-
├── ui_state.py # rx.State subclasses
|
|
294
|
-
├── ui_app/ # Reflex web interface (Radix UI)
|
|
295
|
-
│ ├── app.py # rx.App entry point
|
|
296
|
-
│ ├── chrome.py # Header / LeftNav / SideRail / Footer
|
|
297
|
-
│ ├── pages/ # Train / Multi-Run / Export / Dataset
|
|
298
|
-
│ └── components/ # Bp* primitives (status pill, sparkline, event log…)
|
|
299
|
-
└── ui_security.py # Rate limiting, CSRF, file validation (framework-agnostic)
|
|
300
|
-
```
|
|
301
284
|
|
|
302
|
-
|
|
285
|
+
Consulte a referência completa na [página do manual do CLI](https://mcp-tool-shop-org.github.io/backpropagate/handbook/cli-reference/), ou `backprop <subcomando> --help`.
|
|
286
|
+
|
|
287
|
+
## Configuração
|
|
288
|
+
|
|
289
|
+
Cada configuração pode ser substituída por uma variável de ambiente, usando o prefixo `BACKPROPAGATE_`:
|
|
290
|
+
|
|
291
|
+
| Variável | Padrão | Observações |
|
|
292
|
+
|---|---|---|
|
|
293
|
+
| `BACKPROPAGATE_LOG_LEVEL` | `INFO` | `DEBUG` / `INFO` / `WARNING` / `ERROR` |
|
|
294
|
+
| `BACKPROPAGATE_LOG_JSON` | auto | Forçar logs JSON ou de console |
|
|
295
|
+
| `BACKPROPAGATE_MODEL__NAME` | `Qwen/Qwen2.5-7B-Instruct` | Modelo padrão |
|
|
296
|
+
| `BACKPROPAGATE_TRAINING__LEARNING_RATE` | `2e-4` | Taxa de aprendizado |
|
|
297
|
+
| `BACKPROPAGATE_LORA__R` | `256` | Rank do LoRA (padrão da v1.3; use `--lora-preset=fast` para o padrão da v1.2.x, que é 16) |
|
|
298
|
+
| `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | Sistema de arquivos de sandbox da interface do usuário |
|
|
299
|
+
|
|
300
|
+
Chaves aninhadas usam dois sublinhados (`MODEL__NAME`, não `MODEL_NAME`). A referência completa está na [página do manual de variáveis de ambiente](https://mcp-tool-shop-org.github.io/backpropagate/handbook/env-vars/).
|
|
301
|
+
|
|
302
|
+
## Modelos Pré-Configurados
|
|
303
|
+
|
|
304
|
+
| Modelo Pré-Configurado | VRAM | Licença | Observações |
|
|
305
|
+
|---|---|---|---|
|
|
306
|
+
| Qwen-3.5-4B | ~8GB | Apache 2.0 | Padrão recomendado para modelos com menos de 5 bilhões de parâmetros. Melhor qualidade neste tamanho. |
|
|
307
|
+
| Phi-4-mini-3.8B | ~8GB | MIT | Excelente em raciocínio / matemática / código. Licença livre de restrições. |
|
|
308
|
+
| SmolLM3-3B | ~6GB | Apache 2.0 | Receita totalmente aberta. Contexto nativo de 64K. |
|
|
309
|
+
| Qwen 2.5 7B | ~12GB | Apache 2.0 | Padrão existente. Melhor qualidade entre os modelos legados de 7 bilhões de parâmetros. |
|
|
310
|
+
| Qwen 2.5 3B | ~8GB | Qwen-Research | ⚠ licença de pesquisa — veja os termos da licença do Qwen antes de usar comercialmente. |
|
|
311
|
+
| Llama 3.2 3B | ~8GB | Llama Community | Alternativa sólida ao Qwen 3B, com algumas restrições. |
|
|
312
|
+
| Llama 3.2 1B | ~6GB | Llama Community | Ideal para experimentos rápidos em placas menores. |
|
|
313
|
+
| Mistral 7B | ~12GB | Apache 2.0 | Comparável ao Qwen 7B, com um modelo de chat diferente. |
|
|
314
|
+
|
|
315
|
+
Outros modelos podem funcionar, mas apenas estes oito são fixos nos testes automatizados (CI). Use `--lora-preset=quality` (padrão) para obter um rank de 256 / alvos lineares, conforme descrito por Biderman 2024 + Thinking Machines 2025, ou `--lora-preset=fast` para obter o tamanho da v1.2.x, que usa um rank de 16 / alvo q+v, se você precisar do tamanho da v1.2.x.
|
|
303
316
|
|
|
304
317
|
## Solução de problemas
|
|
305
318
|
|
|
306
|
-
Um índice resumido dos erros mais comuns
|
|
319
|
+
Um índice resumido dos erros mais comuns na primeira execução. O índice completo está na [página do manual de solução de problemas](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/). Para uma análise detalhada de driver / VRAM / precisão mista, consulte a [página de solução de problemas do CUDA](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/).
|
|
307
320
|
|
|
308
|
-
| Sintoma | Código | Solução |
|
|
309
|
-
|
|
310
|
-
| A GPU fica sem memória durante o treinamento. | `RUNTIME_GPU_OOM` |
|
|
311
|
-
|
|
|
312
|
-
| Erro de digitação no nome do modelo. | `INPUT_VALIDATION_FAILED` ou `DEP_MODEL_LOAD_FAILED`. | Verifique o identificador `org/name` em <https://huggingface.co/models>. |
|
|
321
|
+
| Sintoma | Código de erro | Solução |
|
|
322
|
+
|---|---|---|
|
|
323
|
+
| A GPU fica sem memória durante o treinamento. | `RUNTIME_GPU_OOM` | Automatic — O Backpropagate reduz o tamanho do lote pela metade e tenta novamente até 3 vezes. Para desativar: `Trainer(oom_recovery=False)`. Para forçar um tamanho menor: `--batch-size 1`. |
|
|
324
|
+
| HuggingFace retorna 401 / "modelo não encontrado" | `DEP_MODEL_LOAD_FAILED` | Execute `huggingface-cli login` e tente novamente. Para erros de digitação, copie o ID exato de <https://huggingface.co/models>. |
|
|
313
325
|
| A conexão `register_with_ollama` foi recusada. | `DEP_OLLAMA_REGISTRATION_FAILED` | Inicie o daemon: `ollama serve`. Instale a partir de <https://ollama.com>. É possível tentar novamente. |
|
|
314
326
|
| Disco cheio durante o salvamento do checkpoint. | `STATE_CHECKPOINT_INVALID` | As operações de escrita atômicas deixam um diretório `.partial` em caso de falha — é seguro excluí-lo. O checkpoint anterior e válido está intacto. |
|
|
315
|
-
|
|
|
316
|
-
| `backprop ui --share` foi rejeitado. | `INPUT_AUTH_REQUIRED` |
|
|
317
|
-
| "Sobreposição" de execuções múltiplas. | `CONFIG_INVALID` (Backend do estágio A, B-001). | Reduza o valor de `--samples` abaixo do tamanho do pool de treinamento, aumente o conjunto de dados ou desative a validação. |
|
|
327
|
+
| Treinamento pausado devido ao superaquecimento da GPU | `RUNTIME_GPU_TEMPERATURE_CRITICAL` | Automatic — O Backpropagate pausa quando a temperatura atinge o limite e retoma quando a GPU esfria. Melhore a ventilação se isso continuar acontecendo. |
|
|
328
|
+
| `backprop ui --share` foi rejeitado. | `INPUT_AUTH_REQUIRED` | Use `--auth user:password` ou utilize o encaminhamento de porta SSH (veja [Interface Web](#web-ui)). |
|
|
318
329
|
| A exportação para GGUF falhou na primeira tentativa. | `RUNTIME_GGUF_EXPORT_FAILED` | `pip install backpropagate[export]`; no Windows, você também precisa das ferramentas de compilação Visual C++ e do CMake. |
|
|
319
330
|
|
|
320
331
|
## Relatando bugs
|
|
321
332
|
|
|
322
|
-
Quando algo falha, o Backpropagate imprime uma linha `run_started run_id=<uuid
|
|
333
|
+
Quando algo falha, o Backpropagate imprime uma linha no início, como `run_started run_id=<uuid>`, e associa esse ID a cada linha de log, a cada checkpoint e a cada entrada do Weights & Biases. **Inclua o `run_id` em qualquer relatório de bug** — isso permite que um mantenedor correlacione tudo para aquela execução específica.
|
|
323
334
|
|
|
324
335
|
Um bom relatório de bug inclui:
|
|
325
336
|
|
|
326
|
-
1.
|
|
327
|
-
2. **O código de erro** — a linha `[
|
|
328
|
-
3. **
|
|
329
|
-
4. **
|
|
337
|
+
1. **O `run_id`** — o UUID (identificador único universal) exibido na inicialização. Um único UUID permite que um administrador correlacione cada linha de log, cada ponto de verificação e cada entrada do Weights & Biases para aquela execução específica.
|
|
338
|
+
2. **O código de erro** — a linha `[NOME_DO_CÓDIGO]: mensagem` no stderr. Consulte [códigos de erro](https://mcp-tool-shop-org.github.io/backpropagate/handbook/error-codes/) para o catálogo de códigos estáveis.
|
|
339
|
+
3. **O rastreamento de erro (traceback) com informações removidas.** O stderr é automaticamente editado (com informações sensíveis removidas) no modo não detalhado (tokens Bearer, `sk-*`, `hf_*`, chaves da AWS, pares `password=` / `token=` / `api_key=` são removidos) — é seguro colar. Para o rastreamento de erro completo e sem informações removidas, execute novamente com `BACKPROPAGATE_DEBUG=1` (ou `--verbose`); revise antes de publicar.
|
|
340
|
+
4. **A saída de `backprop info`.** Um único comando imprime informações sobre Python / PyTorch / CUDA / modelo da GPU / VRAM / sistema operacional / complementos instalados — tudo o que o administrador precisa para identificar a causa de uma regressão específica da plataforma.
|
|
341
|
+
|
|
342
|
+
O [modelo de relatório de erro](https://github.com/mcp-tool-shop-org/backpropagate/issues/new?template=bug_report.yml) solicita explicitamente cada um desses itens, o que agiliza o processo de triagem. Perguntas, ideias ou discussões sobre "é isso esperado?" devem ser feitas nos [GitHub Discussions](https://github.com/mcp-tool-shop-org/backpropagate/discussions). Problemas de segurança devem ser relatados de forma privada através do formulário [GitHub Security Advisory](https://github.com/mcp-tool-shop-org/backpropagate/security/advisories/new) — consulte o arquivo [SECURITY.md](SECURITY.md) para obter a política e os prazos de resposta.
|
|
330
343
|
|
|
331
344
|
## Privacidade
|
|
332
345
|
|
|
333
346
|
Todo o treinamento ocorre localmente na sua GPU. O Backpropagate não faz solicitações de rede, exceto para baixar modelos do HuggingFace (o que você inicia). Não há telemetria, nem dependência de serviços em nuvem.
|
|
334
347
|
|
|
335
|
-
##
|
|
348
|
+
## Referências
|
|
336
349
|
|
|
337
|
-
|
|
338
|
-
|----------|-------|-------|
|
|
339
|
-
| A. Segurança | 6/8 | SECURITY.md, modelo confiável, sem segredos/telemetria, safe_path(). Itens MCP ignorados. |
|
|
340
|
-
| B. Tratamento de erros | 5/7 | Estrutura de exceções (`código`/`mensagem`/`dica`/`causa`/`tentável`) via registro de CÓDIGOS DE ERRO; códigos de saída da CLI: 0/1/2/3; rastreamentos de pilha não exibidos sem `--verbose`; correlação `run_id`; saída de erro (stderr) com informações removidas; bloqueio com `--share`+`--auth`. MCP/desktop/vscode ignorados. |
|
|
341
|
-
| C. Documentação para Operadores | 4/7 | README, CHANGELOG, LICENÇA, --help. Logging/MCP/complexo ignorados. |
|
|
342
|
-
| D. Boas Práticas de Desenvolvimento | 6/9 | verify.sh, versão=tag, 5 scanners no CI, dependabot, python_requires, build limpo. |
|
|
343
|
-
| E. Identidade | 4/4 | Logo, traduções, página de destino, metadados. |
|
|
344
|
-
| **Total** | **25/31** | 14 itens ignorados com justificativa · `shipcheck audit` passa 100% · Data da auditoria: 2026-05-21 (A linha B foi reclassificada após a fase B + o trabalho de códigos de saída da CLI na fase A). |
|
|
350
|
+
Os padrões do Backpropagate e o modo de treinamento com várias execuções são baseados em pesquisas recentes. Se você estiver interessado nas técnicas subjacentes:
|
|
345
351
|
|
|
346
|
-
|
|
352
|
+
- **Hu et al. 2021.** *LoRA: Adaptação de Baixa Rank de Modelos de Linguagem Grandes.* [arXiv:2106.09685](https://arxiv.org/abs/2106.09685) — o artigo fundamental que introduz o LoRA, que é como o Backpropagate treina adaptadores de forma eficiente.
|
|
353
|
+
- **Biderman et al. 2024.** *LoRA Aprende Menos e Esquece Menos.* [arXiv:2405.09673](https://arxiv.org/abs/2405.09673) — evidências empíricas de que o LoRA com rank 256 e alvos lineares corresponde à qualidade do ajuste fino completo na maioria das tarefas de pós-treinamento, com 67% do poder computacional. Define a configuração padrão do LoRA v1.3 do Backpropagate.
|
|
354
|
+
- **Thinking Machines 2025.** *LoRA Sem Arrependimentos.* [thinkingmachines.ai/blog/lora](https://thinkingmachines.ai/blog/lora/) — o acompanhamento prático que identifica a correção de 10 vezes a taxa de aprendizado em relação ao ajuste fino completo necessária para ranks LoRA mais altos.
|
|
355
|
+
- **Kirkpatrick et al. 2017.** *Superando o esquecimento catastrófico em redes neurais.* [arXiv:1612.00796](https://arxiv.org/abs/1612.00796) — a caracterização original de por que as redes neurais "esquecem" o treinamento anterior quando você as ajusta em novos dados (EWC — Consolidação de Pesos Elástica).
|
|
356
|
+
- **Wang et al. 2023.** *Aprendizagem Ortogonal de Subespaços para Aprendizagem Contínua de Modelos de Linguagem.* [arXiv:2310.14152](https://arxiv.org/abs/2310.14152) — O-LoRA, uma abordagem anterior para usar LoRA para aprendizado contínuo, restringindo novos adaptadores a subespaços ortogonais.
|
|
357
|
+
- **Yadav et al. 2023.** *TIES-Merging: Resolvendo Interferências ao Mesclar Modelos.* [arXiv:2306.01708](https://arxiv.org/abs/2306.01708) — uma técnica fundamental para mesclar vários modelos ajustados sem interferência.
|
|
358
|
+
- **Qiao & Mahdavi 2025.** *Mescle Antes de Esquecer: Uma Aprendizagem Contínua LoRA via Mesclagem Contínua.* [arXiv:2512.23017](https://arxiv.org/abs/2512.23017) — o algoritmo específico que o mesclador de várias execuções do Backpropagate implementa. Um preprint de dezembro de 2025; o Backpropagate é o primeiro adotador conhecido a partir do artigo.
|
|
347
359
|
|
|
348
360
|
## Licença
|
|
349
361
|
|
|
350
|
-
MIT — veja [LICENSE](LICENSE)
|
|
362
|
+
MIT — veja [LICENSE](LICENSE).
|
|
351
363
|
|
|
352
364
|
---
|
|
353
365
|
|