Views
No views yet
├── src/
│ ├── data-extraction.py # Full dataset processing (OpenWebText)
│ └── data-extraction-2.py # Sampled dataset processing (1% for quick iteration)
├── notebooks/
│ ├── GPTv1.ipynb # Basic GPT transformer implementation
│ ├── GPTv2.ipynb # Enhanced GPT with training persistence
│ └── ... # Additional experimental notebooks
├── artifacts/
│ ├── vocab.txt # Character vocabulary
│ ├── training_data.json # Training metrics and history
│ ├── model-01.pkl # Saved model checkpoint
│ ├── output_train.txt # Processed training data
│ └── output_val.txt # Processed validation data
├── data/
│ └── MNIST/ # Standard datasets
├── docs/
│ └── .github/
│ └── copilot-instructions.md # AI agent guidelines
├── gradio_app.py # Interactive web interface for text generation
├── requirements.txt # Project dependencies
└── LICENSE # MIT License1git clone https://huggingface.co/saumilyajj/GTP-on-Reddit
2cd gpt-from-scratchpip install -r requirements.txt1# Place your OpenWebText .xz files in the 'openwebtext' directory
2# Or use the provided wizard-of-oz.txt for quick testingpython src/data-extraction-2.pypython src/data-extraction.pynotebooks/GPTv1.ipynbnotebooks/GPTv2.ipynbpython gradio_app.pyhttp://localhost:7860 in your browser.ProcessPoolExecutor for efficient .xz file handlingfreeze_support() for multiprocessing1block_size = 8 # Context window size
2batch_size = 128 # Training batch size
3n_embd = 384 # Embedding dimension
4n_head = 16/32 # Number of attention heads (varies by version)
5n_layer = 16/32 # Number of transformer layers
6dropout = 0.2 # Dropout rate
7learning_rate = 3e-4 # Learning ratetqdm integration for real-time monitoring1# Load and configure hyperparameters
2device = 'cuda' if torch.cuda.is_available() else 'cpu'
3
4# Initialize model
5model = GPTLanguageModel(vocab_size)
6model = model.to(device)
7
8# Train with monitoring
9for iter in range(max_iters):
10 # Training loop with loss tracking
11 # Automatic checkpointing every eval_iters1# Generate text from trained model
2context = torch.zeros((1, 1), dtype=torch.long, device=device)
3generated = decode(model.generate(context, max_new_tokens=500)[0].tolist())
4print(generated)git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)