惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
N
News | PayPal Newsroom
SecWiki News
SecWiki News
P
Privacy International News Feed
T
Troy Hunt's Blog
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
L
LINUX DO - 热门话题
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Security Latest
Security Latest
AWS News Blog
AWS News Blog
S
Secure Thoughts
W
WeLiveSecurity
H
Heimdal Security Blog
T
Threat Research - Cisco Blogs
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security @ Cisco Blogs
G
GRAHAM CLULEY
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Spread Privacy
Spread Privacy
L
Lohrmann on Cybersecurity
C
CERT Recently Published Vulnerability Notes
S
Security Affairs
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google Online Security Blog
Google Online Security Blog
Cisco Talos Blog
Cisco Talos Blog
雷峰网
雷峰网
Cloudbric
Cloudbric
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
Hacker News: Ask HN
Hacker News: Ask HN
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google DeepMind News
Google DeepMind News
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
Latest news
Latest news
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
D
Docker
Recent Announcements
Recent Announcements
博客园 - 【当耐特】
H
Help Net Security
博客园 - 司徒正美
TaoSecurity Blog
TaoSecurity Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Check Point Blog
博客园 - 叶小钗

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Entrené mi propio LLM desde cero en 2025: lo que el tutorial viral de HN no te dice sobre el costo real
Juan Torchia · 2026-05-06 · via DEV Community

Entrené mi propio LLM desde cero en 2025: lo que el tutorial viral de HN no te dice sobre el costo real

Estaba revisando HN un martes a la noche cuando vi el post: "Train Your Own LLM from Scratch", 241 puntos, 87 comentarios, y una energía en el hilo que reconocí de inmediato — la misma que tienen los threads de "construí mi propio servidor de email" o "reemplacé Docker con scripts de bash". Mezcla de genuino entusiasmo técnico y colectivo wishful thinking.

Lo guardé. Dos días después lo abrí, cloné el repo y empecé a medir todo.

No porque crea que voy a reemplazar a Anthropic desde mi laptop. Sino porque la pregunta que nadie responde honestamente en esos threads es: ¿cuánto cuesta realmente? No en abstracto. En pesos, en horas, en oportunidad.

Mi tesis es esta: entrenar un LLM desde cero en 2025 tiene sentido en exactamente dos casos — como ejercicio de aprendizaje profundo sobre la arquitectura transformer, o cuando tenés un dominio tan específico y sensible que ningún modelo externo puede tocarlo. En cualquier otro caso, estás pagando un precio enorme para obtener algo que Claude Code o DeepSeek ya te dan gratis o casi gratis. Y el tutorial viral no te dice eso.


El tutorial viral: qué promete y qué entrega

El post de HN enlaza a una implementación de un transformer pequeño tipo GPT, entrenado desde cero en Python puro con PyTorch. El código es limpio. Los comentarios están bien. El autor sabe lo que hace.

Lo que promete, implícitamente: "vos también podés hacer esto."

Técnicamente es verdad. Prácticamente, hay una grieta enorme entre correr el código y tener algo útil.

El tutorial entrena un modelo de ~10M de parámetros sobre un corpus de texto en inglés (Shakespeare, en la versión clásica de Karpathy; este repo usa algo similar). El resultado es un modelo que genera texto coherente a nivel sintáctico pero sin comprensión semántica real. Es una demo educativa. No es un LLM de producción.

Yo lo corrí. Acá están los números reales.


El costo real: lo medí, no lo estimé

Setup inicial

# Entorno que usé — documentando versiones exactas
# Python 3.11.9, PyTorch 2.3.1, CUDA 12.1
# Instancia: RunPod, RTX 4090 (24GB VRAM), spot instance

pip install torch==2.3.1 datasets transformers
# El repo tiene sus propias dependencias — algunas conflictan con lo que ya tenés

Enter fullscreen mode Exit fullscreen mode

Usé RunPod porque Railway, donde vivo habitualmente, no tiene GPUs para training pesado. Eso ya es el primer costo oculto: si querés entrenar algo serio, necesitás salir de tu infra normal.

Experimento 1: modelo 10M de parámetros (el del tutorial)

# Configuración del modelo chico — la del tutorial original
config = {
    "n_embd": 384,       # dimensión del embedding
    "n_head": 6,         # cabezas de atención
    "n_layer": 6,        # capas transformer
    "block_size": 256,   # contexto máximo
    "vocab_size": 50257, # tokenizer GPT-2
    "dropout": 0.1
}
# Parámetros totales: ~10.7M
# Dataset: ~300MB de texto procesado

Enter fullscreen mode Exit fullscreen mode

Resultado:

  • Tiempo de entrenamiento: 47 minutos en RTX 4090
  • Costo en RunPod: USD 0,44/hora × 0,78h = USD 0,34
  • Resultado del modelo: genera texto que parece inglés desde lejos

Bien. Treinta y cuatro centavos. Eso no es el problema.

Experimento 2: escalar a algo remotamente útil

El problema aparece cuando intentás escalar. Un modelo de 10M de parámetros no sirve para nada más allá de demostrar que entendés la arquitectura. Para tener capacidades de razonamiento básico necesitás estar en el orden de 1B-7B parámetros mínimo — y eso cambia completamente la ecuación.

# Estimación de costo para modelo 1B de parámetros
# Con el mismo setup (RTX 4090, RunPod spot):

# Tokens necesarios para un training decente: ~20B tokens
# Tokens por segundo en RTX 4090: ~8,000 tokens/seg (con batch optimizado)
# Tiempo estimado: 20,000,000,000 / 8,000 = 2,500,000 segundos
# En horas: ~694 horas
# En días: ~29 días continuos

# Costo RunPod RTX 4090 spot: USD 0,44/hora
# Costo total estimado: 694 × 0.44 = USD 305

echo "Y eso si la spot instance no te interrumpe cada 3-4 horas"
echo "Con interrupciones reales, multiplicá por 1.4 como mínimo"
# Costo real estimado: ~USD 427

Enter fullscreen mode Exit fullscreen mode

Cuatrocientos dólares para un modelo de 1B que va a ser peor que Llama 3.2 1B, que es gratis.

Experimento 3: el costo que el tutorial ignora

El costo de compute no es el mayor problema. El mayor problema es el costo de datos y el costo de tu tiempo.

# Lo que necesitás para un modelo que no sea basura:
# 1. Dataset curado y limpio
# 2. Tokenizer propio o adaptado
# 3. Evaluación continua durante el training
# 4. Hyperparameter tuning (mínimo 3-5 runs)
# 5. Checkpoint management — aprendí esto a las piñas

# En mi caso, el pipeline de datos me llevó 8 horas
# Solo para preparar 300MB de texto limpio
# Ese tiempo tiene un costo de oportunidad real

# Comparación directa que hice:
# - 8 horas preparando datos para modelo de 10M
# - vs 8 horas usando Claude Code en mi proyecto de Railway
# El delta de productividad es obsceno

Enter fullscreen mode Exit fullscreen mode

Acá conecta directo con lo que documenté en el post sobre agentic coding en producción con logs reales: Claude Code en 8 horas me genera código funcional, tests, documentación y me hace preguntas que no esperaba. Un modelo de 10M entrenado por mí en 8 horas genera texto que parece coherente.


Por qué el tutorial viral genera expectativas incorrectas

No es culpa del autor del tutorial. El código es bueno y el objetivo educativo está claro. El problema es el contexto que se construye alrededor en HN.

Leí los 87 comentarios. Hay tres tipos de respuestas:

Tipo 1 — Los entusiastas: "¡Increíble! Ahora voy a entrenar mi propio modelo para [caso de uso específico]."

Tipo 2 — Los pragmáticos: "Interesante para aprender, pero para producción usá fine-tuning sobre un modelo base."

Tipo 3 — Los que ya lo hicieron: "Les cuento lo que tardaron mis checkpoints en crashear en AWS Spot."

El problema es que Tipo 1 son la mayoría, y los comentarios de Tipo 3 quedan enterrados.

Mi experiencia con DeepClaude — combinando Claude Code con DeepSeek en mi loop de agentes me dio una perspectiva clara: incluso DeepSeek V4, que costó cientos de millones de dólares entrenarlo, no supera a Claude en mis casos de uso específicos. ¿Qué espero lograr yo con un modelo de 10M entrenado en 47 minutos?


Los gotchas que el tutorial no menciona

1. El problema del overfitting silencioso

# Training loss bajando bien... o eso parece
# Epoch 1: loss = 4.23
# Epoch 5: loss = 2.17
# Epoch 10: loss = 1.44
# Epoch 20: loss = 0.89  ← acá empezó el problema

# El modelo estaba memorizando el dataset de training
# Validation loss: 1.91 — casi sin mejorar desde epoch 5
# Clásico overfitting que no ves si no monitoreás las dos curvas

# Lo que el tutorial muestra: la training loss bajando bonito
# Lo que el tutorial no muestra: comparar con validation loss en tiempo real

Enter fullscreen mode Exit fullscreen mode

Tardé 20 minutos en darme cuenta porque el gráfico de training loss se veía hermoso. Clásico.

2. Los checkpoints te van a explotar el storage

En mi primer run de 47 minutos generé 11 checkpoints de ~240MB cada uno. Son 2.6GB por experimento. En un experimento de fine-tuning real, eso se multiplica por 10 o por 20 fácil. El tutorial no te dice nada sobre estrategia de checkpointing.

Esto me recuerda el rabbit hole de backups que documenté cuando migré de pgbackrest a Barman en producción: la parte técnica del tutorial siempre parece limpia. La operativa real siempre tiene fricción que nadie documenta.

3. El tokenizer es más importante de lo que parece

# El tutorial usa el tokenizer de GPT-2 — está bien para inglés
# Si querés entrenar sobre texto en español o código específico,
# el tokenizer importa muchísimo

from transformers import GPT2Tokenizer

tokenizer = GPT2Tokenizer.from_pretrained("gpt2")

# Problema: GPT-2 tokenizer fue entrenado principalmente en inglés
# Para español, palabras comunes se tokenizan en 3-4 tokens
# vs 1-2 tokens en modelos entrenados con texto en español

# "arquitectura" → ['arqu', 'ite', 'ctura'] # 3 tokens en GPT-2
# vs 1 token en tokenizers modernos español-aware

# Esto no es un detalle — afecta directamente el context window efectivo
# y la eficiencia del training

Enter fullscreen mode Exit fullscreen mode

En mis specs YAML para agentes aprendí que los detalles de formato y tokenización importan más de lo que uno intuye al principio. Con LLMs propios, eso se magnifica.

4. La inferencia también cuesta

El tutorial termina cuando el modelo está entrenado. Pero si querés usar ese modelo en algún lado, necesitás infraestructura de inferencia. Servir un modelo de 1B en producción requiere al menos 2-4GB de VRAM dependiendo de la cuantización. En Railway eso no existe nativamente. En cualquier otro proveedor, suma costo mensual fijo.


Cuándo tiene sentido hacerlo (en serio)

Seré concreto porque las respuestas genéricas me aburren:

Tiene sentido si:

  • Querés entender de verdad cómo funciona la atención multi-cabeza y los embeddings posicionales — nada te enseña como implementarlo vos mismo y ver qué pasa cuando rompés algo
  • Trabajás en un dominio con datos que no pueden salir de tu infraestructura (medicina, legal, compliance) y necesitás un modelo especializado sobre esos datos privados
  • Estás investigando algo específico de arquitectura y necesitás control total sobre cada variable

No tiene sentido si:

  • Querés "tener tu propio LLM" como logro técnico sin un caso de uso concreto
  • Creés que va a ser más barato que usar la API de DeepSeek (spoiler: no lo va a ser)
  • Pensás que un modelo de 10M-100M parámetros entrenado por vos va a competir con Llama 3.2 o Phi-3

La anécdota que más me quedó de esta semana: cuando migré el monorepo de npm a pnpm y el install pasó de 14 minutos a 90 segundos, el equipo no lo podía creer. Esa sensación de "mejoré algo real que afecta a todos" — entrenar un LLM desde cero no me la dio. Me dio otra sensación: la de haber entendido algo profundo sobre cómo funciona el sistema que uso todos los días. Eso tiene valor. Pero es un valor diferente.


FAQ: lo que devs realmente quieren saber antes de empezar

¿Cuánto cuesta en dinero entrenar un LLM desde cero en 2025?

Depende brutalmente del tamaño. Un modelo de 10M parámetros en RunPod con RTX 4090 cuesta menos de USD 1 en compute. Un modelo de 1B parámetros puede costar entre USD 300 y USD 500 en una spot instance, asumiendo que no te interrumpe el proceso. Para algo de 7B parámetros que sea remotamente competitivo, estás hablando de miles de dólares y semanas de GPU time. El costo de datos y de tu propio tiempo siempre supera al costo de compute en modelos chicos.

¿Tiene sentido hacer fine-tuning en lugar de entrenar desde cero?

Casi siempre sí. Fine-tuning sobre Llama 3.2 1B o Phi-3 mini te da un modelo especializado a una fracción del costo — horas en lugar de semanas, decenas de dólares en lugar de cientos. La única razón para entrenar desde cero es cuando necesitás control total sobre los datos de pre-training o cuando el objetivo es educativo puro.

¿El tutorial de HN sirve para aprender?

Sí, genuinamente. El código es limpio y la implementación del transformer es didáctica. Lo que no te da es contexto sobre escala, sobre lo que pasa cuando querés hacer algo útil con el resultado, o sobre la operativa de manejo de checkpoints, datos y evaluación continua. Como punto de partida para entender la arquitectura, es excelente.

¿Puedo correrlo en mi máquina local sin GPU?

Podés correr el modelo de 10M en CPU, pero va a tardar entre 4 y 8 horas en lugar de 47 minutos. Para modelos más grandes en CPU, los tiempos se vuelven impracticables rápido. Si no tenés GPU, RunPod o Vast.ai con instancias spot son la opción más económica para experimentar.

¿Vale la pena si ya uso Claude Code o DeepSeek en producción?

Depende de qué estés buscando. Si el objetivo es productividad en desarrollo, no — Claude Code y DeepSeek te van a dar más valor por token gastado que cualquier modelo que puedas entrenar en un fin de semana. Si el objetivo es entender cómo funcionan por dentro los modelos que ya usás, sí, absolutamente vale la pena como ejercicio.

¿Qué pasa con los datos de entrenamiento? ¿Necesito un dataset enorme?

Para el tutorial básico, no. El repo funciona con unos pocos cientos de MB de texto. El problema es que con esa cantidad de datos, el modelo resultante es útil solo como demo. Para un modelo que tenga capacidades generales mínimas, la literatura reciente sugiere al menos 1T de tokens — algo que no vas a recolectar y limpiar en un fin de semana.


Mi conclusión: el ego técnico tiene un precio de mercado

Lo voy a dejar claro porque los cierres ambiguos me molestan: entrenar un LLM desde cero en 2025 no es la inversión técnica más inteligente para la mayoría de los devs. Es un ejercicio de comprensión profunda disfrazado de proyecto productivo, y el tutorial viral de HN lo vende con una energía que sugiere más de lo que entrega.

Lo que sí me llevé es concreto: ahora entiendo de verdad por qué los modelos grandes necesitan tanto compute para emergencia de capacidades. Entiendo por qué el contexto sobre tar en pipelines de Railway me importa — los detalles de formato y procesamiento de datos importan en todos los niveles del stack, desde backups hasta training data. Y entiendo por qué DeepSeek V4 a USD 0,14 por millón de tokens input es una aberración económica que todavía no termino de procesar.

Si querés entender transformers, correlo. Si querés construir algo útil, no pierdas de vista que el mundo en 2025 tiene modelos de 70B parámetros disponibles por API por fracciones de centavo. Competir con eso desde cero es un ejercicio de ego, no de ingeniería.


Fuente original: Hacker News - Train Your Own LLM from Scratch


Este artículo fue publicado originalmente en juanchi.dev