Skip to content

elisbanpaco/NanoCode-GPT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NanoCode-GPT

Python PyTorch Transformers License Status

Un modelo de lenguaje Transformer (Decoder-only) entrenado desde cero para la generación de código Python.


Arquitectura del Proyecto

graph TD
    HF[("HuggingFace Datasets<br/>CodeAlpaca • CodeSearchNet")] -->|download| PP[Preprocesamiento]
    PP -->|clean & filter| TK[Tokenizador BPE]
    TK -->|vocab encode| DS[(Dataset Tokenizado)]
    DS -->|batch| TR[Entrenamiento<br/>Transformer Decoder]
    TR -->|weights| M[Modelo .pt]
    M -->|load| INF[Inferencia]
    INF -->|generate| OUT[Código Python]
Loading

Características Técnicas

  • Arquitectura Transformer personalizada - Implementación from-scratch del decoder-only
  • Tokenizador BPE - Byte-Pair Encoding entrenado específicamente para código
  • Pipeline de datos automático - Descarga y procesa datasets de HuggingFace al vuelo
  • Compatible GPU/CPU - Soporte nativo para entrenamiento con CUDA
  • Código legible - Implementación educativa y fácil de modificar

Estructura del Repositorio

code-gpt-nano/
├── main.ipynb           # Notebook principal: pipeline completo de entrenamiento
├── requirements.txt     # Dependencias del proyecto
├── README.md            # Documentación
├── .gitignore           # Archivos excluidos
├── datacodegpt/         # Datos procesados (generado automáticamente)
│   ├── train.jsonl
│   └── val.jsonl
└── *.pt                 # Pesos del modelo (generado automáticamente)
Archivo/Directorio Descripción
main.ipynb Notebook con todo el pipeline: descarga, preprocesamiento, entrenamiento e inferencia
requirements.txt Librerías necesarias: torch, transformers, datasets, pandas, numpy
datacodegpt/ Datos procesdos en formato JSONL (ignorado en Git)
*.pt Pesos del modelo (ignorado en Git por tamaño)

Instalación y Uso

1. Clonar el repositorio

git clone https://github.com/elisbanpaco/NanoCode-GPT.git
cd code-gpt-nano

2. Crear entorno virtual (recomendado)

python -m venv venv
source venv/bin/activate  # Linux/Mac
# venv\Scripts\activate  # Windows

3. Instalar dependencias

pip install -r requirements.txt

4. Ejecutar el notebook

jupyter notebook main.ipynb

Nota: La primera ejecución tardará unos minutos descargando los datasets de HuggingFace (CodeAlpaca, CodeSearchNet) y durante el entrenamiento dependera mucho de la potencia del hadware o internet. Los archivos se cachean localmente para ejecuciones posteriores.


Roadmap

  • Añadir interfaz web con Gradio
  • Exportar modelo a ONNX para inferencia optimizada
  • Soporte para generación de código JavaScript
  • Fine-tuning con datasets adicionales
  • Implementar RLHF (Reinforcement Learning from Human Feedback)
  • Añadir benchmarks de generación vs otros modelos

Contribución

¡Las contribuciones son bienvenidas! Si deseas mejorar este proyecto:

  1. Haz un fork del repositorio
  2. Crea una rama (git checkout -b feature/nueva-caracteristica)
  3. Commitea tus cambios (git commit -m 'Añadir nueva característica')
  4. Push a la rama (git push origin feature/nueva-caracteristica)
  5. Abre un Pull Request

Licencia

Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más información.

About

Modelo GPT ligero entrenado desde cero (from-scratch) para generar código Python. Implementación educativa usando PyTorch y HuggingFace Transformers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors