5b9f2a58bc
Un lote de humo de 2 pedidos contra la Batch API confirmó el camino completo —crear, consultar estado, recoger, normalizar— y dejó dos cosas a corregir: - El costo estimado se redondeaba a 2 decimales, así que un trabajo chico informaba US$ 0.0. Pasa a 4 decimales: en una prueba de humo importa saber que gastaste algo, no que gastaste nada. - cache_read_input_tokens quedó en 0. La causa es que el mínimo cacheable de Opus 5 son 512 tokens y el prompt de sistema de la prueba tenía 86: la marca cache_control no hace nada por debajo de ese umbral, y no avisa. Queda documentado en el código y en la config, con cómo detectarlo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
43 lines
1.9 KiB
YAML
43 lines
1.9 KiB
YAML
# Generación de datos sintéticos con la Batch API (Etapa 3 del plan).
|
|
#
|
|
# Se usa la Batch API y no llamadas sueltas porque cuesta la mitad y generar un
|
|
# dataset no es sensible a la latencia. A cambio el trabajo es asincrónico y
|
|
# puede tardar horas: el estado vive en disco y es reanudable.
|
|
#
|
|
# Esto NO hace falta para entrenar ni para correr ENLACE. Solo se usa al armar
|
|
# el dataset SFT, y solo para la parte difícil: identidad y casos límite. El
|
|
# grueso sale de plantillas (cero modelo) y de un 7-8B local en la 2060.
|
|
|
|
model: claude-opus-5
|
|
|
|
# En este modelo el pensamiento está activo por defecto y max_tokens acota
|
|
# pensamiento + respuesta juntos: sin holgura la salida se corta a la mitad.
|
|
# 8000 alcanza de sobra para ejemplos de SFT, que son cortos.
|
|
max_tokens: 8000
|
|
|
|
# Generar parafraseos y ejemplos etiquetados no es trabajo intensivo en
|
|
# razonamiento. `low` baja el costo bastante sin perder calidad acá; subilo a
|
|
# `medium` para el set de identidad, que sí exige coherencia fina.
|
|
effort: low
|
|
|
|
# Tope de la API: 100.000 pedidos o 256 MB por lote. Se parte bien por debajo
|
|
# para no depender de que una request HTTP enorme llegue entera.
|
|
requests_per_batch: 10000
|
|
|
|
poll_interval_seconds: 60
|
|
max_wait_hours: 26 # la API promete < 24 h; el resto es red de seguridad
|
|
|
|
output_dir: data/distill
|
|
|
|
# Solo para el reporte de costo estimado. Los precios reales los factura
|
|
# Anthropic; esto sirve para saber en qué orden de magnitud estamos.
|
|
usd_per_mtok_input: 5.0
|
|
usd_per_mtok_output: 25.0
|
|
batch_discount: 0.5
|
|
|
|
# NOTA sobre el caché: el prompt de sistema compartido va marcado con
|
|
# cache_control, pero el mínimo cacheable de Opus 5 son 512 tokens. Un prompt
|
|
# más corto no se cachea y la marca no hace nada — sin error, en silencio.
|
|
# Verificalo con `distill usage`: si cache_read_input_tokens queda en 0 sobre
|
|
# un trabajo grande, alargá el prompt de sistema o asumí el costo completo.
|