Tendencias del momento
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
¡Emocionado de lanzar un nuevo repositorio: nanochat!
(es uno de los más desquiciados que he escrito).
A diferencia de mi repositorio anterior, nanoGPT, que solo cubría el preentrenamiento, nanochat es un pipeline de entrenamiento/inferencia de pila completa, minimalista y desde cero, de un simple clon de ChatGPT en una única base de código con mínimas dependencias. Inicias una caja GPU en la nube, ejecutas un único script y en tan solo 4 horas puedes hablar con tu propio LLM en una interfaz web similar a ChatGPT.
Pesa ~8,000 líneas de código que considero bastante limpio para:
- Entrenar el tokenizador utilizando una nueva implementación en Rust
- Preentrenar un LLM Transformer en FineWeb, evaluar la puntuación CORE a través de una serie de métricas
- Entrenamiento intermedio en conversaciones usuario-asistente de SmolTalk, preguntas de opción múltiple, uso de herramientas.
- SFT, evaluar el modelo de chat en conocimiento general de opción múltiple (ARC-E/C, MMLU), matemáticas (GSM8K), código (HumanEval)
- RL del modelo opcionalmente en GSM8K con "GRPO"
- Inferencia eficiente del modelo en un motor con caché KV, prellenado/decodificación simple, uso de herramientas (intérprete de Python en un sandbox ligero), hablar con él a través de CLI o WebUI similar a ChatGPT.
- Escribir un único informe en markdown, resumiendo y gamificando todo.
Incluso por tan solo ~$100 en costo (~4 horas en un nodo 8XH100), puedes entrenar un pequeño clon de ChatGPT con el que puedes hablar, y que puede escribir historias/poemas, responder preguntas simples. Aproximadamente ~12 horas superan la métrica CORE de GPT-2. A medida que escalas hacia ~$1000 (~41.6 horas de entrenamiento), rápidamente se vuelve mucho más coherente y puede resolver problemas simples de matemáticas/código y realizar pruebas de opción múltiple. Por ejemplo, un modelo de profundidad 30 entrenado durante 24 horas (esto es aproximadamente igual a los FLOPs de GPT-3 Small 125M y 1/1000 de GPT-3) alcanza 40s en MMLU y 70s en ARC-Easy, 20s en GSM8K, etc.
Mi objetivo es obtener toda la pila de "baseline fuerte" en un repositorio cohesivo, minimalista, legible, hackeable y maximalmente bifurcable. nanochat será el proyecto culminante de LLM101n (que aún se está desarrollando). Creo que también tiene potencial para crecer en un arnés de investigación, o un benchmark, similar a nanoGPT antes que él. No está en absoluto terminado, ajustado u optimizado (de hecho, creo que probablemente hay bastante fruta fácil de alcanzar), pero creo que está en un lugar donde el esqueleto general es lo suficientemente bueno como para que pueda subirse a GitHub donde todas las partes pueden ser mejoradas.
El enlace al repositorio y un recorrido detallado del speedrun de nanochat está en la respuesta.

Repositorio de GitHub:
Un recorrido mucho más detallado y técnico:
Ejemplo de conversación con el nanochat de $100 y 4 horas en la WebUI. Es... entretenido :) Modelos más grandes (por ejemplo, un modelo de 12 horas de profundidad 26 o uno de 24 horas de profundidad 30) rápidamente se vuelven más coherentes.

Y un ejemplo de algunas de las métricas resumidas producidas por el speedrun de $100 en el informe inicial. La base de código actual tiene un poco más de 8000 líneas, pero traté de mantenerlas limpias y bien comentadas.
Ahora viene la parte divertida: ajustar y escalar.

1,57M
Parte superior
Clasificación
Favoritos