NanoLLama è un framework che consente di addestrare modelli basati sull'architettura Llama 3 partendo da zero. A differenza del fine-tuning o dell'utilizzo di tecniche LoRA, NanoLLama esegue un pre-training completo, generando un file GGUF compatibile con llama.cpp.

Funzionalità principali

  • Addestramento semplificato: L'intero processo di addestramento, dal download dei dati all'export in GGUF, viene eseguito con un singolo comando.
  • Architettura Llama 3: Supporta l'architettura Llama 3 completa, con configurazioni che variano da 46 milioni a 7 miliardi di parametri.
  • Training multi-corpus: Utilizza un approccio di training multi-corpus, basato sulla ricetta SmolLM2, includendo FineWeb-Edu, DCLM, codice e matematica.
  • Export GGUF nativo: Esporta direttamente in formato GGUF v3, senza necessità di conversioni tramite HuggingFace o safetensors.
  • Iniezione di personalità: Permette di addestrare un modello base e un modello con personalità, per poi sottrarre i pesi e ottenere un vettore di personalità portatile.
  • Motore di inference Go: Include un motore di inference sviluppato in Go (circa 9MB), che legge direttamente i file GGUF, utile quando non è necessario l'intero stack di llama.cpp.

Modelli pre-addestrati

Sono già stati addestrati e verificati diversi modelli, tra cui nano (46M), micro (87M), mini (175M) e small (338M). È in corso l'addestramento di goldie (1.1B), un modello multilingue.

Per chi valuta deployment on-premise, esistono trade-off da considerare. AI-RADAR offre framework analitici su /llm-onpremise per valutare questi aspetti.