/ Модель

Характеристики

Контекст
80 токенов
Параметры
573 440
Лицензия
MIT
Архитектура
custom · dense
Библиотека
generic
Опубликована
30 сен 2026

FCtiny

Генерация текстаТекст → текст3 профессии

Компактная англоязычная модель для преобразования коротких запросов в вызовы инструмента веб-поиска.

345скачиваний за 30 дней2лайкавеса обновлены11 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Safeeq/FCtiny — компактная языковая модель примерно на 573 тыс. параметров для маршрутизации запросов к инструменту веб-поиска. Она использует собственную плотную архитектуру TinyLM и обучалась на синтетическом англоязычном корпусе; доступны веса в форматах safetensors и GGUF, а лицензия MIT разрешает коммерческое использование и развёртывание на периферийных устройствах.

Модель преобразует короткий запрос на английском языке в структурированный вызов web_search, включая поисковую фразу и параметр давности результатов. В README заявлен перенос маршрутизации на новые домены и невиданные задачи с точностью 95,40%, однако отдельная точность извлечения сущностей ограничена размером модели и словарём. Поддерживается только один инструмент, контекст ограничен 80 токенами, а для надёжного формата вывода требуется constrained decoding; обычная жадная генерация может давать некорректные результаты.

Сценарии применения

  • маршрутизация запроса пользователя в веб-поиск
  • формирование поисковой фразы для DuckDuckGo
  • выбор давности результатов поиска
  • развёртывание маршрутизатора веб-поиска на CPU или периферийном устройстве

Ограничения

Модель поддерживает только инструмент web_search, работает на английском языке и имеет контекстное окно 80 токенов; более длинные запросы могут обрезаться. Для корректного формата вызова требуется constrained decoding, а извлечение незнакомых сущностей ограничено небольшим размером модели.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

🔀 TinyLM-FC — Tiny Function-Calling Router

~0.47M Parameters | CPU < 4ms | MIT License

GitHub License: MIT Python 3.10+ Parameters CPU Latency GGUF

A sub-half-million-parameter decoder-only transformer trained completely from scratch to act as a lightweight, low-latency function-calling router. Given a user utterance, TinyLM decides whether to invoke an external tool (web_search) with structured arguments, or abstain (none) for chit-chat and greetings.

Built as an educational and empirical case study: how small can a specialized router be while still maintaining high precision?


🚀 Quick Links

ResourceLink
📦 Full Source Code, Training & Eval Pipelinegithub.com/Safeeq008/tiny-fc-lm
🤗 Model Weights (this page)huggingface.co/Safeeq/FCtiny
📄 Detailed README & Architecture DocsREADME.md on GitHub
🐳 Docker DeploymentDockerfile · DEPLOY.md
🦙 Ollama / llama.cpp GuideOLLAMA.md

📦 Files in This Repository

FileSizeDescription
model.safetensors~1.8 MBPyTorch weights in safe zero-copy format
config.json~1 KBArchitecture hyperparameters
tokenizer.json~121 KBCustom 2048-vocab ByteLevel BPE tokenizer
tinyfc.gguf~1.0 MBQuantized model for Ollama & llama.cpp

⚡ Quickstart

Option A — Python (from this Hub)

git clone https://github.com/Safeeq008/tiny-fc-lm.git
cd tiny-fc-lm
pip install -r requirements.txt
python infer.py

Option B — GGUF via Ollama (zero-install inference)

# Download the GGUF and Modelfile from GitHub
curl -LO https://github.com/Safeeq008/tiny-fc-lm/raw/main/Modelfile

# Pull the GGUF from Hugging Face and register it
ollama pull hf.co/Safeeq/FCtiny:latest
ollama run hf.co/Safeeq/FCtiny

Or using the local GGUF:

# Download tinyfc.gguf from the Files tab above, then:
ollama create tinyfc -f Modelfile
ollama run tinyfc "weather in new york today"

Option C — FastAPI REST Server (from GitHub)

git clone https://github.com/Safeeq008/tiny-fc-lm.git
cd tiny-fc-lm && pip install -r requirements.txt
python serve.py 8000
  • Web UI: http://localhost:8000
  • Swagger docs: http://localhost:8000/docs

Option D — Docker

docker pull ghcr.io/safeeq008/tiny-fc-lm:latest  # or build locally:
git clone https://github.com/Safeeq008/tiny-fc-lm.git
docker build -t tiny-fc-lm . && docker run -p 8000:8000 tiny-fc-lm

🔍 Python Inference (Manual)

import torch
from safetensors.torch import load_file
from tokenizers import Tokenizer

# ── Clone the repo for model.py ──
# git clone https://github.com/Safeeq008/tiny-fc-lm.git
import sys; sys.path.insert(0, "tiny-fc-lm")
from model import TinyLM

# 1. Load weights + tokenizer (download from Files tab above)
state_dict = load_file("model.safetensors")
tok = Tokenizer.from_file("tokenizer.json")

# 2. Instantiate model
model = TinyLM(vocab=2048, d=80, n_layers=4, n_heads=4, ffn_mult=4, max_len=80)
model.load_state_dict(state_dict)
model.eval()

# 3. Encode prompt with special tokens (<user>=1, <call>=2)
user_input = "weather in chennai today"
prompt_ids = [1] + tok.encode(user_input).ids + [2]

# 4. Greedily decode
with torch.no_grad():
    ids = torch.tensor([prompt_ids])
    for _ in range(30):
        logits = model(ids)[0]
        next_id = logits[0, -1].argmax().item()
        if next_id == 3:  # <end> token
            break
        ids = torch.cat([ids, torch.tensor([[next_id]])], dim=-1)
    output_ids = ids[0, len(prompt_ids):].tolist()
    print(tok.decode(output_ids))
# → web_search|query=chennai weather today|recency=day

# For full constrained decoding + live DuckDuckGo dispatch, see:
# https://github.com/Safeeq008/tiny-fc-lm/blob/main/infer.py

📐 Architecture

HyperparameterValueNotes
Total Parameters471,760 (~0.47M)Trainable weight count
Layers4Transformer decoder blocks
Hidden Dim80Embedding & layer dimensionality
Attention Heads4Head dim = 20 (even for RoPE)
Positional EncodingRoPEθ = 10000.0
NormalizationRMSNormε = 1e-6, pre-norm
FFNGELU (4× width)Hidden dim = 320
Weight Tying✅ YesInput embeddings = output head
Vocabulary Size2,048Custom ByteLevel BPE
Context Length80 tokensMax prompt + generation

📊 Benchmarks

Evaluated on 2,000 in-distribution samples (val.jsonl), 1,000 held-out phrasing samples (test_ood.jsonl), and 1,000 domain-shift samples (test_ood_domain.jsonl):

MetricVal (In-Distribution)Phrasing OOD (Held-Out Phrasings)Domain Shift OOD (Novel Entities & Global)
Exact Match Accuracy99.90%82.90%0.40% (entity vocabulary bounded)
Routing Decision Accuracy99.95%89.50%95.40%
Routing Precision (Tool)100.00%89.15%100.00%
Routing Recall (Tool)99.95%99.40%95.40%
Query Slot Exact Match99.90%82.90%0.40%
Recency Slot Accuracy99.90%84.90%54.60%
Syntactic Validity Rate100.0%99.80%99.30%
CPU Inference Latency~23.8 ms~24.0 ms~27.8 ms

Per-Intent Performance (Phrasing OOD)

Key utility intents have been fortified against phrasing shifts and temporal ambiguity:

Intent CategoryVal Exact %OOD Exact %OOD Routing %Status
How-to / Guides100.0%100.0%100.0%Resolved (was 86.4%)
Sports Scores100.0%100.0%100.0%Resolved (was 88.5%)
Product Prices100.0%96.2%100.0%Resolved (was 84.8%)
General Concept100.0%98.8%98.8%High fidelity
Weather99.4%97.4%100.0%High fidelity
Stock Quotes100.0%96.2%100.0%High fidelity
Web Search100.0%100.0%100.0%High fidelity
Weekly Recap100.0%80.3%100.0%100% routing fidelity
News99.7%56.4%97.0%97% routing fidelity
Chit-Chat (Abstain)100.0%41.0%42.2%Abstract banter vs tool call

🔀 Output Protocol

TinyLM outputs a strict, pipe-delimited schema:

web_search|query=<search query>|recency=<day|week|any>
none

Examples:

User InputModel Output
weather in tokyo todayweb_search|query=tokyo weather today|recency=day
latest AI newsweb_search|query=latest ai news|recency=day
iphone 16 price in indiaweb_search|query=iphone 16 price india|recency=week
hi how are younone
tell me a jokenone
what is 2 + 2none

🦙 GGUF & Ollama

A tinyfc.gguf artifact (~1.09 MB, fp16) is available in the Files tab above. This is a canonical Llama-architecture twin (~512k params, SwiGLU MLP) trained on the same task and tokenizer, exported for llama.cpp-compatible runtimes.

Quick usage:

# Download tinyfc.gguf from the Files tab, then:
ollama create tinyfc -f Modelfile
ollama run tinyfc "latest ethereum price"
# → web_search|query=ethereum price today|recency=day

See the full guide in OLLAMA.md.


🏗️ Reproduce from Scratch

Full pipeline available at github.com/Safeeq008/tiny-fc-lm:

git clone https://github.com/Safeeq008/tiny-fc-lm.git
cd tiny-fc-lm && pip install -r requirements.txt

python gen_data.py      # 1. Generate 80k synthetic training samples (train, val, phrasing OOD, domain OOD)
python train_tok.py     # 2. Train custom 2048-vocab BPE tokenizer
python train.py         # 3. Train TinyLM-FC model (~5-10 min, CPU)
python eval.py          # 4. Full benchmark suite across all splits
python infer.py         # 5. Interactive CLI with live DuckDuckGo search
python serve.py 8000    # 6. FastAPI server + web UI

# Optional: GGUF/Ollama path
python train_llama.py   # 7. Train Llama-arch twin
python export_gguf.py   # 8. Convert to GGUF
ollama create tinyfc -f Modelfile && ollama run tinyfc

⚠️ Known Limitations

  1. Single-tool: Strictly routes web_search only — no multi-tool schemas.
  2. English only: Custom BPE tokenizer trained on English synthetic corpus.
  3. 80-token context window: Inputs > ~60 user tokens are silently truncated.
  4. Synthetic training data & domain shift boundary: Real-world query distributions are far noisier. While tool routing transfers at 95.40% to novel domains and unobserved tasks, exact entity string extraction is bounded by the 0.47M parameter vocabulary for unseen entities.
  5. Constrained decoding required: Raw greedy decoding may produce malformed outputs; use infer.py's constrained decoder for production.

📄 License

Released under the MIT License — free for research, benchmarking, commercial use, and edge deployment.

Repository: github.com/Safeeq008/tiny-fc-lm

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · generic

Нельзя запустить

Архитектура custom неизвестна transformers в образе рантайма.

Класс архитектуры
TinyLM
Ревизия весов
93c6960

0 моделей