101 lines
2.3 KiB
Markdown
101 lines
2.3 KiB
Markdown
# ADR-002: Model Selection
|
|
|
|
## Status
|
|
Accepted
|
|
|
|
## Date
|
|
2026-01-20
|
|
|
|
## Context
|
|
|
|
Necesitamos seleccionar un modelo LLM que:
|
|
- Corra en GPU con 16GB VRAM (RTX 5060 Ti)
|
|
- Soporte contexto largo (8K-16K tokens)
|
|
- Tenga buena calidad para tareas de codigo
|
|
- Permita concurrencia de 2-3 agentes
|
|
|
|
### Modelos Considerados
|
|
|
|
| Modelo | Parametros | VRAM (Q4) | Contexto | Calidad Codigo |
|
|
|--------|------------|-----------|----------|----------------|
|
|
| Llama 3.1 8B | 8B | ~5GB | 128K | Buena |
|
|
| Mistral 7B | 7B | ~4.5GB | 32K | Buena |
|
|
| CodeLlama 13B | 13B | ~8GB | 16K | Muy buena |
|
|
| GPT-OSS 20B | 20B | ~14GB | 16K | Excelente |
|
|
| Llama 3.1 70B | 70B | >40GB | 128K | Excelente |
|
|
|
|
## Decision
|
|
|
|
**Modelo seleccionado: GPT-OSS 20B Q4_K_M**
|
|
|
|
### Justificacion
|
|
|
|
1. **VRAM fit**: ~14GB en Q4_K_M, deja ~1.5GB para KV cache
|
|
2. **Calidad**: 20B parametros ofrece mejor razonamiento que 7B-13B
|
|
3. **Codigo**: Buen desempeno en tareas de programacion
|
|
4. **Contexto**: 16K tokens suficiente para tareas delegadas
|
|
|
|
### Configuracion de Quantizacion
|
|
|
|
```
|
|
Q4_K_M (4-bit quantization):
|
|
- Reduccion ~4x en VRAM vs FP16
|
|
- Perdida de calidad: ~2-5%
|
|
- Velocidad: 80-100 tokens/segundo
|
|
```
|
|
|
|
## VRAM Budget
|
|
|
|
```
|
|
Total disponible: 16,384 MB
|
|
Modelo base: -14,000 MB
|
|
KV Cache (4K ctx): -1,500 MB
|
|
Buffer sistema: -500 MB
|
|
------------------------
|
|
Disponible: 384 MB
|
|
```
|
|
|
|
## Consequences
|
|
|
|
### Positivas
|
|
- Mejor calidad que modelos 7B-13B
|
|
- Cabe en VRAM disponible
|
|
- Buena velocidad de inferencia
|
|
|
|
### Negativas
|
|
- Poco margen para expansion de contexto
|
|
- No permite correr multiples modelos
|
|
- Sin espacio para LoRA grandes en memoria
|
|
|
|
## Alternatives Considered
|
|
|
|
### Llama 3.1 8B
|
|
- Pros: Mucho VRAM libre, contexto 128K
|
|
- Cons: Menor calidad en tareas complejas
|
|
- Veredicto: Reservado como fallback si se necesita mas contexto
|
|
|
|
### CodeLlama 13B
|
|
- Pros: Especializado en codigo
|
|
- Cons: Menos versatil para otras tareas
|
|
- Veredicto: Considerado para Fase 2 como modelo especializado
|
|
|
|
## Implementation Notes
|
|
|
|
```yaml
|
|
# Configuracion de modelo
|
|
model:
|
|
name: gpt-oss-20b
|
|
quantization: Q4_K_M
|
|
context_length: 16384
|
|
batch_size: 4
|
|
|
|
# Tiers basados en uso de contexto
|
|
tiers:
|
|
small:
|
|
max_context: 4096 # ~1/4 del contexto
|
|
max_tokens: 512
|
|
main:
|
|
max_context: 16384 # Contexto completo
|
|
max_tokens: 2048
|
|
```
|