125 lines
3.4 KiB
Markdown
125 lines
3.4 KiB
Markdown
---
|
|
language:
|
|
- en
|
|
library_name: transformers
|
|
pipeline_tag: text-generation
|
|
license: other
|
|
base_model: LiquidAI/LFM2.5-1.2B-Instruct
|
|
tags:
|
|
- lfm2
|
|
- lfm2.5
|
|
- transcript-cleanup
|
|
- dictation
|
|
- text-editing
|
|
- unsloth
|
|
- gguf
|
|
- llama-cpp
|
|
---
|
|
|
|
# Meeko 1 Preview
|
|
|
|
<p align="center">
|
|
<img src="assets/meeko.jpeg" alt="Meeko the cat" width="520">
|
|
</p>
|
|
|
|
**Meeko 1 Preview** is a 1.2B-parameter transcript-cleanup model. It turns raw
|
|
speech-to-text output into concise written text with **no system prompt**.
|
|
|
|
The model is named after Meeko, the cat pictured above.
|
|
|
|
## What it does
|
|
|
|
Given a raw transcript as the user message, Meeko returns only the cleaned text.
|
|
Its target editing register is medium-touch written English:
|
|
|
|
- fix punctuation, capitalization, spacing, and grammar;
|
|
- remove speech fillers and stutters;
|
|
- expand casual forms such as “gonna” to “going to”;
|
|
- split run-on sentences when needed;
|
|
- format numbers, dates, times, money, percentages, symbols, and lists;
|
|
- resolve explicit self-corrections so the final value wins;
|
|
- preserve intent, facts, hedges, contrasts, identifiers, and all
|
|
non-retracted content.
|
|
|
|
It is an editor, not a general-purpose chat assistant. Do not add a system
|
|
prompt for the intended cleanup task.
|
|
|
|
## Quick start
|
|
|
|
```python
|
|
import torch
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
|
|
model_id = "tigerisaac/meeko-1-preview"
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
|
model = AutoModelForCausalLM.from_pretrained(
|
|
model_id,
|
|
torch_dtype=torch.float16,
|
|
device_map="auto",
|
|
)
|
|
|
|
messages = [{
|
|
"role": "user",
|
|
"content": "um so i was gonna send it friday no wait monday morning",
|
|
}]
|
|
|
|
inputs = tokenizer.apply_chat_template(
|
|
messages,
|
|
add_generation_prompt=True,
|
|
return_tensors="pt",
|
|
).to(model.device)
|
|
|
|
with torch.inference_mode():
|
|
generated = model.generate(
|
|
inputs,
|
|
max_new_tokens=128,
|
|
do_sample=False,
|
|
)
|
|
|
|
new_tokens = generated[0, inputs.shape[-1]:]
|
|
print(tokenizer.decode(new_tokens, skip_special_tokens=True))
|
|
# I was going to send it Monday morning.
|
|
```
|
|
|
|
## GGUF (llama.cpp)
|
|
|
|
A pre-quantized **Q4_K_M** build is included for local inference:
|
|
|
|
- File: `meeko-1-preview-Q4_K_M.gguf`
|
|
- No system prompt; pass the raw transcript as the user message.
|
|
|
|
```bash
|
|
llama-server -m meeko-1-preview-Q4_K_M.gguf \
|
|
--host 127.0.0.1 --port 8080 \
|
|
--ctx-size 16384 --parallel 1 --reasoning off
|
|
```
|
|
|
|
## Training
|
|
|
|
- **Base model:** `LiquidAI/LFM2.5-1.2B-Instruct`
|
|
- **Method:** supervised fine-tuning with Unsloth
|
|
- **Epochs:** 2
|
|
- **Training format:** one raw transcript user message followed by one cleaned
|
|
assistant response; no system message
|
|
- **Corpus:** 11,438 curated cleanup pairs, assembled into 10,833 training and
|
|
570 validation examples after deduplication
|
|
- **Label target:** medium-touch written-English cleanup
|
|
|
|
The corpus includes ordinary dictation, fillers, stutters, number and symbol
|
|
formatting, listification, explicit retractions, and matched contrast/hedge
|
|
examples that must not be over-edited. Constructed number and retraction rows
|
|
use mechanically verified labels.
|
|
|
|
## License
|
|
|
|
This fine-tune is derived from `LiquidAI/LFM2.5-1.2B-Instruct` and is released
|
|
under the applicable upstream model terms. Review the
|
|
[base model repository](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct)
|
|
before use or redistribution.
|
|
|
|
## Acknowledgments
|
|
|
|
Built with Liquid AI's LFM2.5 base model and Unsloth. Named for Meeko, who
|
|
provided supervision of the non-gradient variety.
|