# Tiny From-Scratch AI This is a real neural-network language model trained from random weights. It is intentionally tiny so it can run on an old CPU-only laptop. There is also a separate GGUF chat path for a much smarter small pretrained model. GGUF is the format used by llama.cpp-compatible models, not this toy character model. ## Setup ```powershell python -m pip install -r requirements.txt ``` ## Build A Bigger Corpus ```powershell python build_corpus.py ``` This combines: - `data/input.txt` - `data/extra_seed.txt` - `data/chat_memory.txt` - `README.md` ## Train ```powershell python train.py --steps 1200 ``` Use the combined corpus: ```powershell python train.py --data data/corpus.txt --steps 1200 ``` Big preset: ```powershell python train.py --preset big --out runs/big-char-model.pt ``` Large preset: ```powershell python train.py --preset large --out runs/large-char-model.pt ``` ## Generate Text ```powershell python generate.py --prompt "hello" --tokens 400 ``` ## Self-Learning Chat ```powershell python chat_train.py ``` Use the combined corpus: ```powershell python chat_train.py --data data/corpus.txt ``` Smart mode: ```powershell python chat_train.py --preset small --model runs/fast-char-model.pt --no-self-train ``` Big preset: ```powershell python chat_train.py --preset big --model runs/big-chat-model.pt ``` Large preset: ```powershell python chat_train.py --preset large --model runs/large-chat-model.pt ``` Commands: ```text /teach your training sentence here /quit ``` The chat script appends each conversation to `data/chat_memory.txt` and updates the model weights after every turn. By default it also learns from its own replies. This is real learning, but it is tiny and may learn nonsense if its own replies are nonsense. If you want better output quality, use `--no-self-train` so it does not learn from its own bad replies. The script will still use retrieved past examples as extra context. For stronger self-training per message: ```powershell python chat_train.py --steps-per-turn 50 --tokens 80 --temperature 0.5 ``` ## Add Your Own Data Replace `data/input.txt` with a larger text file. More text improves results. This model learns characters and style, not real reasoning. ## GGUF Smart Chat If you want a smarter small model, use a llama.cpp-compatible `.gguf` model with: ```powershell python gguf_chat.py --model "models\small-model.gguf" ``` Double-click: ```text start_gguf_chat.cmd ``` Important: - The current from-scratch character model cannot be converted directly to GGUF. - GGUF is for supported architectures such as LLaMA-style / llama.cpp-compatible models. - To make a real small smart model, fine-tune a supported Hugging Face base model and then convert that result to GGUF with llama.cpp tools. - If you do not already have a `.gguf` file, you need to download one or export one from a supported model first. ## Export And Upload GGUF If you already have a `.gguf` file and want to put it on Hugging Face: ```powershell python hf_upload_gguf.py --file "path\to\model.gguf" --repo-id "your-username/your-model" ``` For conversion in Colab from a supported Hugging Face model: - [colab_gguf_export.ipynb](colab_gguf_export.ipynb) That notebook downloads a supported HF model, converts it with `llama.cpp`, and uploads the resulting GGUF file to your Hub repo.