Instructions to use harpertoken/tiny with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use harpertoken/tiny with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("harpertoken/tiny") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- MLX LM
How to use harpertoken/tiny with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "harpertoken/tiny"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "harpertoken/tiny" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "harpertoken/tiny", "messages": [ {"role": "user", "content": "Hello"} ] }' - Atomic Chat
Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -1,40 +1,50 @@
|
|
| 1 |
---
|
| 2 |
-
language:
|
| 3 |
-
- en
|
| 4 |
-
library_name: mlx
|
| 5 |
license: apache-2.0
|
| 6 |
-
|
| 7 |
-
|
| 8 |
pipeline_tag: text-generation
|
| 9 |
base_model: mlx-community/SmolLM-135M-Instruct-4bit
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
---
|
| 11 |
|
| 12 |
-
>
|
| 13 |
|
| 14 |
-
#
|
| 15 |
|
| 16 |
-
|
| 17 |
-
converted to MLX format from [mlx-community/SmolLM-135M-Instruct-4bit](https://huggingface.co/mlx-community/SmolLM-135M-Instruct-4bit)
|
| 18 |
-
using mlx-lm version **0.30.4**.
|
| 19 |
|
| 20 |
-
|
| 21 |
|
| 22 |
-
```
|
| 23 |
-
|
| 24 |
-
|
| 25 |
|
| 26 |
```python
|
| 27 |
from mlx_lm import load, generate
|
| 28 |
|
| 29 |
-
model, tokenizer = load("harpertoken/
|
| 30 |
|
| 31 |
prompt = "hello"
|
| 32 |
-
|
| 33 |
if tokenizer.chat_template is not None:
|
| 34 |
-
messages = [{"role": "user", "content": prompt}]
|
| 35 |
prompt = tokenizer.apply_chat_template(
|
| 36 |
-
|
|
|
|
|
|
|
| 37 |
)
|
| 38 |
|
| 39 |
-
|
| 40 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
|
|
|
|
|
|
|
|
|
| 2 |
license: apache-2.0
|
| 3 |
+
language: en
|
| 4 |
+
library_name: mlx
|
| 5 |
pipeline_tag: text-generation
|
| 6 |
base_model: mlx-community/SmolLM-135M-Instruct-4bit
|
| 7 |
+
tags:
|
| 8 |
+
- mlx
|
| 9 |
+
- 4-bit
|
| 10 |
+
- apple-silicon
|
| 11 |
+
- text-generation
|
| 12 |
---
|
| 13 |
|
| 14 |
+
> Previously published as `harpertoken/harpertoken-apple-m1-model`. The old identifier still redirects here.
|
| 15 |
|
| 16 |
+
# tiny
|
| 17 |
|
| 18 |
+
A four-bit quantised conversion of [`mlx-community/SmolLM-135M-Instruct-4bit`](https://huggingface.co/mlx-community/SmolLM-135M-Instruct-4bit), produced with `mlx-lm` 0.30.4 and intended for Apple Silicon. The architecture is a Llama variant — thirty layers, 576 hidden dimensions, nine attention heads, three key-value heads, 49152-token vocabulary — with group-size 64 four-bit weights, occupying about 76 MB.
|
|
|
|
|
|
|
| 19 |
|
| 20 |
+
The `model.safetensors.index.json` alongside the weights is not a sharded checkpoint here; it maps all 694 tensors onto the single `model.safetensors` file that sits beside it.
|
| 21 |
|
| 22 |
+
Because the weights are quantised, `transformers` cannot load this checkpoint — it needs `mlx-lm`, which applies the group quantisation at load time. The instruction tuning lives upstream in SmolLM; this repository adds a format, nothing else. Given the size, expect it to be fast and largely incoherent on factual questions.
|
| 23 |
+
|
| 24 |
+
## Usage
|
| 25 |
|
| 26 |
```python
|
| 27 |
from mlx_lm import load, generate
|
| 28 |
|
| 29 |
+
model, tokenizer = load("harpertoken/tiny")
|
| 30 |
|
| 31 |
prompt = "hello"
|
|
|
|
| 32 |
if tokenizer.chat_template is not None:
|
|
|
|
| 33 |
prompt = tokenizer.apply_chat_template(
|
| 34 |
+
[{"role": "user", "content": prompt}],
|
| 35 |
+
add_generation_prompt=True,
|
| 36 |
+
return_dict=False,
|
| 37 |
)
|
| 38 |
|
| 39 |
+
print(generate(model, tokenizer, prompt=prompt, max_tokens=100))
|
| 40 |
```
|
| 41 |
+
|
| 42 |
+
Install with `pip install mlx-lm`. A `chat_template.jinja` is present, so the template branch above will be taken.
|
| 43 |
+
|
| 44 |
+
## Limitations
|
| 45 |
+
|
| 46 |
+
This is a redistribution of someone else's work in a different numeric format. There is no training, evaluation or adaptation to report, and if you want SmolLM-135M-Instruct you should use the upstream repository, which is not tied to MLX and can be converted to other formats. Quantisation to four bits costs some accuracy even before the underlying 135M-parameter capacity does; I have not measured the loss and so make no claim about it.
|
| 47 |
+
|
| 48 |
+
## Attribution
|
| 49 |
+
|
| 50 |
+
SmolLM follows Allouji et al., *The SmolLM2 Family of Small Language Models* (2025).
|