Instructions to use Convergent-ch/Pico-1.2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Convergent-ch/Pico-1.2 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Convergent-ch/Pico-1.2") 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("Convergent-ch/Pico-1.2") model = AutoModelForCausalLM.from_pretrained("Convergent-ch/Pico-1.2", 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
- llama.cpp
How to use Convergent-ch/Pico-1.2 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf Convergent-ch/Pico-1.2 # Run inference directly in the terminal: llama cli -hf Convergent-ch/Pico-1.2
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Convergent-ch/Pico-1.2 # Run inference directly in the terminal: llama cli -hf Convergent-ch/Pico-1.2
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf Convergent-ch/Pico-1.2 # Run inference directly in the terminal: ./llama-cli -hf Convergent-ch/Pico-1.2
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf Convergent-ch/Pico-1.2 # Run inference directly in the terminal: ./build/bin/llama-cli -hf Convergent-ch/Pico-1.2
Use Docker
docker model run hf.co/Convergent-ch/Pico-1.2
- LM Studio
- Jan
- vLLM
How to use Convergent-ch/Pico-1.2 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Convergent-ch/Pico-1.2" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Convergent-ch/Pico-1.2", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Convergent-ch/Pico-1.2
- SGLang
How to use Convergent-ch/Pico-1.2 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 "Convergent-ch/Pico-1.2" \ --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": "Convergent-ch/Pico-1.2", "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 "Convergent-ch/Pico-1.2" \ --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": "Convergent-ch/Pico-1.2", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use Convergent-ch/Pico-1.2 with Ollama:
ollama run hf.co/Convergent-ch/Pico-1.2
- Unsloth Desktop
- Docker Model Runner
How to use Convergent-ch/Pico-1.2 with Docker Model Runner:
docker model run hf.co/Convergent-ch/Pico-1.2
- Lemonade
How to use Convergent-ch/Pico-1.2 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Convergent-ch/Pico-1.2
Run and chat with the model
lemonade run user.Pico-1.2-{{QUANT_TAG}}List all available models
lemonade list
- Atomic Chat
Pico 1.2
Pico 1.2 is a tiny chat language model with 460,608 parameters (about 1 MB in f16), made by Convergent. It is the second version of Pico 1: almost twice the parameters, 42% more training chats and a longer training run. It is still small enough to run on any Raspberry Pi, or on almost anything else with a CPU.
It is still a toy. It holds simple, friendly small talk in English, now reliably knows its name and who made it, and says that it cannot write code. It has no real knowledge and often answers off-topic. Please do not rely on it for anything.
Created by Eron. Trained from scratch with MakeAI.
What changed since 1.1
| Pico 1.1 | Pico 1.2 | |
|---|---|---|
| Parameters | 254,400 | 460,608 |
| Layers / hidden / MLP | 3 / 64 / 128 | 6 / 64 / 200 |
| Training chats | 108,735 | 153,974 |
| Training | 18,000 steps, ~295M tokens | 30,000 steps, ~492M tokens |
| Validation loss | 3.00 (perplexity 20.1) | 2.73 (perplexity 15.4) |
| Token accuracy | 39.0% | 43.8% |
The validation sets of the two versions are not identical (1.2 adds chats from the new data), so the comparison is indicative, not exact.
Real answers of both versions to the same questions (Ollama, temperature 0):
User: Hi! Who are you? Pico 1.1: I'm not a tiny AI, but I'm here to chat with you. Pico 1.2: I'm Pico 1, a tiny AI made by Eron. I like to chat!
User: Who made you? Pico 1.1: I was a tiny AI, but I'm glad to chat with you. Pico 1.2: I was made by Eron.
User: Do you like dogs? Pico 1.1: I love chatting about music! I'm friendly and cheerful. Pico 1.2: I love chatting about animals! What's your favorite?
User: Tell me about the moon. Pico 1.2: Once upon a time, there was a little squirrel who loved to play hide and seek. But one day, the squirrel decided to explore the forest.
The last one shows the typical failure: fluent, friendly, and about something else.
Model
| Parameters | 460,608 |
| Architecture | Llama-style decoder (RMSNorm, SwiGLU, RoPE, tied embeddings) |
| Layers / hidden / MLP | 6 / 64 / 200 |
| Attention heads | 2 (head dim 32) |
| Context | 512 tokens |
| Vocabulary | 2,048 (byte-level BPE, the same tokenizer as Pico 1) |
| Language | English |
Files
model.safetensors,config.json, tokenizer files: Hugging Facetransformersformat (LlamaForCausalLM).pico-1.2.gguf: GGUF (f16) for Ollama and llama.cpp.Modelfile: Ollama model file with the chat format and stop tokens.
Usage
Ollama
Download pico-1.2.gguf and Modelfile into one folder, then:
ollama create pico-1.2 -f Modelfile
ollama run pico-1.2
transformers
from transformers import AutoTokenizer, AutoModelForCausalLM
tok = AutoTokenizer.from_pretrained("Convergent-ch/Pico-1.2")
model = AutoModelForCausalLM.from_pretrained("Convergent-ch/Pico-1.2")
ids = tok.apply_chat_template([{"role": "user", "content": "Who made you?"}],
add_generation_prompt=True, return_tensors="pt")
out = model.generate(ids, max_new_tokens=40, do_sample=False)
print(tok.decode(out[0, ids.shape[1]:], skip_special_tokens=True))
# I was made by Eron.
Chat format
<|bos|><|user|>
Hello!<|end|>
<|assistant|>
Generation stops at <|end|>. Low temperatures (0 to 0.3) work best.
Training
Trained from scratch on one RTX 3060 Ti (8 GB) with MakeAI: 30,000 steps with batch size 32 x 512 tokens (about 492M tokens, about 20 passes over the data), AdamW, learning rate 1e-3 with cosine decay, bf16. The training itself took 16.5 minutes. Final validation loss 2.73 (perplexity 15.4), token accuracy 43.8%.
Training data, 153,974 chats (about 23.9M tokens):
- TinyDialogues (MIT): 89,934 one-on-one conversations between a child and one other person, the child as the user. Generated with GPT-4 by the dataset authors.
- Everyday Conversations (Apache 2.0): 2,859 chats, generated with Llama 3.1 70B Instruct by the dataset authors.
- Smol-SmolTalk (Apache 2.0): 53,359 short chats from all four training shards (1.1 used only the first), only the magpie-ultra-short, everyday-conversations and openhermes-50k parts, without code, math or lists. Parts of it were generated with Llama 3.1 by the dataset authors.
- About 900 identity chats about Pico 1 itself, generated locally with Qwen3 8B (Apache 2.0), repeated 6 times, plus 4,000 short template chats with its exact name and creator.
Limitations
- At this size the model mainly learns the style of a conversation, not facts. Answers are often unrelated to the question.
- It knows its name and creator most reliably with greedy decoding; with sampling it drifts.
- Some replies sound like a parent or child talking, because most of the data comes from child-directed dialogues.
- No math: asked "What is 2 plus 2?", it answers with its name.
- English only. Short chats only: the context is 512 tokens.
- No safety tuning. Do not use it in products or for advice of any kind.
License
Apache 2.0.
- Downloads last month
- 15