Instructions to use MLA299/Tennda-Nano with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use MLA299/Tennda-Nano 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("MLA299/Tennda-Nano") 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
- Pi
How to use MLA299/Tennda-Nano with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MLA299/Tennda-Nano"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "MLA299/Tennda-Nano" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use MLA299/Tennda-Nano with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "MLA299/Tennda-Nano"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "MLA299/Tennda-Nano" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "MLA299/Tennda-Nano", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use MLA299/Tennda-Nano with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MLA299/Tennda-Nano"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default MLA299/Tennda-Nano
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use MLA299/Tennda-Nano with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MLA299/Tennda-Nano"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "MLA299/Tennda-Nano" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
library_name: mlx
pipeline_tag: text-generation
license: other
tags:
- mlx
- code
- sql
- text-generation
- llm
- tennda
Tennda-Nano
A lightweight code LLM independently developed by the Tennda team Focused on efficient, accurate code generation and instruction following — direct answers, no redundant reasoning.
Model Overview
| Item | Details |
|---|---|
| Model Name | Tennda-Nano |
| Developer | Tennda Team (in-house) |
| Parameters | Lightweight (<5B) |
| Architecture | Self-developed Transformer decoder (multimodal input) |
| Weight Format | bf16, MLX native |
| Framework | MLX (Apple Silicon Metal GPU acceleration) |
| Training Data | In-house code instruction dataset (20,022 samples: SQL / Python / algorithms, etc.) |
| Release Date | 2026-08-21 |
Highlights
- Direct answers: instruction → immediate code/answer, extremely fast, short total inference time
- High SQL accuracy: 100% correct on unseen SQL tasks
- Clean output: concise, no verbose reasoning, production-ready answers
- Deployment friendly: lightweight single-machine inference, low resource usage, suitable for edge/personal devices
Quality Metrics
Training Convergence (Loss)
| Metric | Start | Final | Reduction |
|---|---|---|---|
| Train loss | 1.929 | 0.963 | -50% |
| Val loss | 4.500 | 0.844 | -81% |
- Stable convergence throughout training, no signs of overfitting (val/train gap remains steady)
Evaluation Scores (3 unseen samples, temp=0.3)
| # | Task Type | Result |
|---|---|---|
| 1 | SQL conditional query (age>45) | ✅ Directly outputs SELECT * FROM employees WHERE age > 45; |
| 2 | Design a Car class (Python) | ⚠️ Occasional loop repetition (mitigable via sampling params) |
| 3 | SQL aggregate query (MAX salary) | ✅ Directly outputs SELECT MAX(SALARY) FROM EMPLOYEE; |
SQL accuracy: 100% (2/2) Format alignment (direct answer, no redundant reasoning): 67% (2/3)
Note: current evaluation is a sampled manual assessment; scores are for reference only. A full evaluation pipeline is under continuous development.
Inference Performance (measured on Apple M4)
| Metric | Result |
|---|---|
| Model load | ~4s |
| Single-task generation | ~3.4s |
| Output style | Direct answer (no verbose thinking) |
Total latency reduced by ~83% on the same task compared with the baseline (output size reduced by 75%).
Training Method
- Architecture: self-developed Transformer decoder (35 layers, multimodal encoding)
- Method: in-house lightweight training pipeline (parameter-efficient training, fully local)
- Cost: 26 minutes on a single machine, peak memory 14.4GB, no large-scale compute cluster required
- Artifact: complete inference weights (MLX format)
Details in the training report and comparison report.
Usage (MLX)
from mlx_lm import load, generate
from mlx_lm.sample_utils import make_sampler
model, tokenizer = load("MLA299/Tennda-Nano")
sampler = make_sampler(temp=0.3, top_p=0.9)
prompt = tokenizer.apply_chat_template(
[{"role": "user", "content": "Write a SQL query to select employees older than 45."}],
add_generation_prompt=True,
)
print(generate(model, tokenizer, prompt=prompt, max_tokens=256, sampler=sampler))
Or start an OpenAI-compatible API server:
mlx_lm.server --model MLA299/Tennda-Nano --port 8080
Deployment Requirements
| Config | Requirement |
|---|---|
| Memory | ≥ 16GB (24GB recommended) |
| Platform | Apple Silicon (M-series, Metal GPU) |
| Inference | mlx-lm ≥ 0.30 |
| Quantization | Can be 4-bit quantized for 8GB-memory devices |
Known Limitations
- Chinese instruction capability is still under optimization (training corpus is primarily English code instructions)
- Occasional loop repetition (can be mitigated with
repetition_penaltyat inference time) - The concise answer style may omit necessary explanations
Tennda-Nano · In-house model · © 2026 Tennda Team