Instructions to use Convergent-ch/Pico-1.3-Small with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Convergent-ch/Pico-1.3-Small with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Convergent-ch/Pico-1.3-Small") 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.3-Small") model = AutoModelForCausalLM.from_pretrained("Convergent-ch/Pico-1.3-Small", 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.3-Small 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.3-Small # Run inference directly in the terminal: llama cli -hf Convergent-ch/Pico-1.3-Small
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.3-Small # Run inference directly in the terminal: llama cli -hf Convergent-ch/Pico-1.3-Small
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.3-Small # Run inference directly in the terminal: ./llama-cli -hf Convergent-ch/Pico-1.3-Small
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.3-Small # Run inference directly in the terminal: ./build/bin/llama-cli -hf Convergent-ch/Pico-1.3-Small
Use Docker
docker model run hf.co/Convergent-ch/Pico-1.3-Small
- LM Studio
- Jan
- vLLM
How to use Convergent-ch/Pico-1.3-Small 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.3-Small" # 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.3-Small", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Convergent-ch/Pico-1.3-Small
- SGLang
How to use Convergent-ch/Pico-1.3-Small 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.3-Small" \ --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.3-Small", "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.3-Small" \ --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.3-Small", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use Convergent-ch/Pico-1.3-Small with Ollama:
ollama run hf.co/Convergent-ch/Pico-1.3-Small
- Unsloth Desktop
- Docker Model Runner
How to use Convergent-ch/Pico-1.3-Small with Docker Model Runner:
docker model run hf.co/Convergent-ch/Pico-1.3-Small
- Lemonade
How to use Convergent-ch/Pico-1.3-Small with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Convergent-ch/Pico-1.3-Small
Run and chat with the model
lemonade run user.Pico-1.3-Small-{{QUANT_TAG}}List all available models
lemonade list
- Atomic Chat
Pico 1.3 Small
Pico 1.3 Small is an experiment: a chat model with only 11,088 parameters (33 KB as GGUF), made by Convergent. It is the smallest model of the Convergent family and was built to find out how much a model this tiny can learn, and how quickly it stops learning.
It does not give meaningful answers. It produces real English words, short sentence fragments and its own name:
| Prompt | Answer (greedy) |
|---|---|
| Who made you? | I'm Pico 1.3 Small, Convergent. |
| Hi! Who are you? | I'm Pico 1 2. |
| What is your favorite color? (temperature 0.3) | Yes, we can be something exture. If the warm! |
The experiment
Trained for about 36 minutes on one RTX 3060 Ti at roughly 1 million tokens per second, about 2.5 billion tokens in total (around 220,000 tokens per parameter; the usual rule of thumb is 20).
| Training time (approx.) | Validation loss | Next-token accuracy |
|---|---|---|
| 0.5 min | 2.465 | 34.9 % |
| 3.5 min | 2.344 | 37.5 % |
| 7 min | 2.320 | 38.1 % |
| 14 min | 2.300 | 38.5 % |
| 36 min (end) | 2.269 | 39.0 % |
The model is practically full after about 5 minutes: the last 30 minutes improved the validation loss by only about 0.05. Its tokens are single bytes plus a few merges, so these numbers are not comparable with models that use larger vocabularies.
Model
| Parameters | 11,088 |
| Architecture | Llama-style decoder (RMSNorm, SwiGLU, RoPE, tied embeddings) |
| Layers / hidden / MLP | 2 / 16 / 40 |
| Attention heads | 2 (head dim 8) |
| Context | 256 tokens |
| Vocabulary | 320 (byte-level BPE: 256 bytes, 8 special tokens, 56 merges) |
Usage
Ollama
Download pico-1.3-small.gguf and Modelfile into one folder, then:
ollama create pico1.3-small -f Modelfile
ollama run pico1.3-small
transformers
from transformers import AutoTokenizer, AutoModelForCausalLM
tok = AutoTokenizer.from_pretrained("Convergent-ch/Pico-1.3-Small")
model = AutoModelForCausalLM.from_pretrained("Convergent-ch/Pico-1.3-Small")
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'm Pico 1.3 Small, Convergent.
Training data
96,591 short chats (user message under 200 characters, reply under 240): first turns of conversations from TinyDialogues (MIT, generated with GPT-4 by its authors), Everyday Conversations and Smol-SmolTalk (Apache 2.0, generated with Llama 3.1 by their authors), plus 4,000 template chats about its name and maker. 150,000 steps of 64 x 256 tokens, AdamW, learning rate 5e-3 with cosine decay, bf16.
License
Apache 2.0.
- Downloads last month
- -