Instructions to use henryhale/Kintu-2.0-30M-Base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use henryhale/Kintu-2.0-30M-Base with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="henryhale/Kintu-2.0-30M-Base") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("henryhale/Kintu-2.0-30M-Base") model = AutoModelForCausalLM.from_pretrained("henryhale/Kintu-2.0-30M-Base", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use henryhale/Kintu-2.0-30M-Base with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "henryhale/Kintu-2.0-30M-Base" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "henryhale/Kintu-2.0-30M-Base", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/henryhale/Kintu-2.0-30M-Base
- SGLang
How to use henryhale/Kintu-2.0-30M-Base with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "henryhale/Kintu-2.0-30M-Base" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "henryhale/Kintu-2.0-30M-Base", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "henryhale/Kintu-2.0-30M-Base" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "henryhale/Kintu-2.0-30M-Base", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use henryhale/Kintu-2.0-30M-Base with Docker Model Runner:
docker model run hf.co/henryhale/Kintu-2.0-30M-Base
Kintu-2.0-30M-Base
A 30M-parameter Luganda language model, pretrained from scratch with the MiniMind recipe. It's a base model: it continues text and doesn't chat. The chat model is Kintu-2.0-30M.
| Architecture | Qwen3-style decoder (Qwen3ForCausalLM): RMSNorm, SwiGLU, RoPE (ΞΈ = 1e6), QK-norm, grouped-query attention (8 query / 4 KV heads), tied embeddings |
| Size | 30.0M parameters: 8 layers, hidden size 512, MLP 1,664 |
| Tokenizer | Byte-level BPE, 6,400 tokens, trained on the pretraining data |
| Context | 512 tokens |
Training
273M tokens of henryhale/luganda-pretrain2, packed into sequences of up to 512 tokens, for 2 epochs: 256 sequences per step, AdamW, learning rate 5e-4 with cosine decay to 5e-5, fp16, on 2Γ T4 in 2.1 hours. Final training loss β 2.49.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("henryhale/Kintu-2.0-30M-Base")
model = AutoModelForCausalLM.from_pretrained("henryhale/Kintu-2.0-30M-Base")
enc = tok(tok.bos_token + "Olunaku lumu,", return_tensors="pt", return_token_type_ids=False) # pretraining texts started with <|im_start|>
out = model.generate(**enc, max_new_tokens=80)
print(tok.decode(out[0], skip_special_tokens=True))
Samples
Sampled with temperature 0.85 and top-p 0.95:
π¬ Oli otya?
π§ Oyinza otya okugamba nti olaba nga okimanyi nti Katonda akulaba? (Zabbuli 67:9) Tetuyinza kutya Katonda nga tusinza ebifaananyi. N'olwekyo, tetujja kwesiga nsibuko z'obunnabbi bwaffe ez'edda.β2 Abakkolinso 6:17; Matayo 6:38.
Yakuwa Katonda mu ngeri ey
π¬ Wasuze otya nno?
π§ Kuba ntandise bulungi,
Njagala okakkaabya
Olwaleero ngenda kuddamu kusisinkana bakulu,
Nali nebaza mukama wange, nansaba nkubirayo
Okusinziira ku bakulu, nkubira abatujju
Abatujju bonna abakozesa ennyimba ne Bannansi ba Misiri n'abajaasi
Nti ntuuse mu kibuga
Nti
π¬ Osiibye otyanno ssebo?
π§ Munnange mumanyi bulungi. Nze maama, nnafuuka kiggala. Wosomera mu luyimba lwa Golden Band, n'okulutuga wano mu Buganda ne mu Buganda. Wulira obuyonjo mu bitundu by'obubaga bw'abawala bunyuma, basomba emmere, embuga ezitaggwa, abalambuzi, Abaana abasomyeko
π¬ Ndi musanyufu nnyo okulaba.
π§ - "Nnyinza okuteeka omupiira mu kasanduuko k'eby'okusangamu. "
Omutwazi bwe yawulira ekyo, yamwenyumira era n'amwenya ng'agamba nti, "Ekyo kirungi nnyo.
Yali akimanyi nti wadde nga kyali kizibu nnyo, yali asobola okukikola.
Omusajja omukulu yamwenya n'amugamba nti, "Lwaki tojja kwegatta?
Maama wa John yamwenya n'amugamba nti, "Totya.
π¬ Weebale nnyo okuyamba bulungi.
π§ - Yamutunuulira n'amwenya, ng'asanyuka nnyo okuba nti yali azzeemu okubeerako mu kisiikirize.
Oluvannyuma lw'ekiseera kitono, mukwano gwe ow'okubiri n'ajja n'amugamba nti, "Totya, nnina ekintu ekikulu kye njagala okukuwa".
Bwe yali anaatera okutuuka ku mulyango, empewo yatandika okubuuka era omuguwa ne gutandika okugwa.
John yaseka nnyo bwe yawulira ebigambo ebyo nga bigenda
Limitations
At 30M parameters it writes fluent Luganda but is often off-topic and gets facts wrong, so don't rely on it for information. It was trained on sequences of up to 512 tokens, and TinyStories translations are 68.5% of its pretraining tokens, so it leans towards simple stories.
- Downloads last month
- 6