Instructions to use Davitotty1/Teleste-Learner-12B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Davitotty1/Teleste-Learner-12B with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("unsloth/gemma-4-12b-it") model = PeftModel.from_pretrained(base_model, "Davitotty1/Teleste-Learner-12B") - Notebooks
- Google Colab
- Kaggle
Teleste Learner 12B
Teleste Learner 12B is a 4-bit QLoRA fine-tune of Gemma 4 12B Instruct trained to adapt to the current request instead of assuming a fixed job.
Give it a new rule, a few examples, or a mid-conversation rule change. It is supposed to infer the contract from this conversation, apply it, and drop the old rule if you change it. That is in-context task induction, not a new form of AGI and not online weight updates while you chat.
v2 vs the 4B Qwen run: Gemma 4 12B Unified base, gold hand-written traces only, assistant-token SFT, native Gemma 4 thought channels, no Super-NaturalInstructions filler.
What it is good at
- Invented mappings shown with a few labeled examples
- Following a procedure you just defined (format, cipher, filter, schema)
- Switching behavior when a later message replaces the rule
- Staying quiet on extra commentary when the contract is strict
- Short replies vs stock Gemma 4 12B, which often spends a long thought channel first (faster wall time on T4; not a formal speed bench)
What it is not
- Not a general agent with memory across sessions
- Not trained as a specialist in one domain (medicine, law, a single company's docs)
- Not guaranteed to invent the correct rule when the examples are ambiguous
How to use
This repo is a LoRA adapter. Load it with Unsloth FastModel on the adapter id (do not 4-bit-load the base and then PeftModel.from_pretrained on a second copy — that path produced garbage on T4):
from unsloth import FastModel
from unsloth.chat_templates import get_chat_template
model, tok = FastModel.from_pretrained(
"Davitotty1/Teleste-Learner-12B",
max_seq_length=1024,
load_in_4bit=True,
)
tok = get_chat_template(tok, chat_template="gemma-4-thinking")
FastModel.for_inference(model)
system = (
"You adapt to the current request. Infer the user's goal, the hidden rules, "
"and the output contract from this conversation only. If examples are present, "
"the mapping in those examples is the law. If a later message changes the rules, "
"the new rules replace the old ones. If this message is a new question, a correction, "
"or a topic change, drop the last task. Do not reuse the last number or list. "
"Check the answer against the inferred contract before you finish. Do not keep a default job."
)
messages = [
{"role": "system", "content": system},
{"role": "user", "content": "show then you finish.\noak -> O1K\nmaple -> M3E\nfig -> F1G\npine ->"},
]
inputs = tok.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
enable_thinking=True,
return_tensors="pt",
return_dict=True,
)
inputs = inputs.to(model.device) if hasattr(inputs, "to") else {k: v.to(model.device) for k, v in inputs.items()}
out = model.generate(**{k: inputs[k] for k in ("input_ids", "attention_mask") if k in inputs}, max_new_tokens=256, temperature=1.0, top_p=0.95, top_k=64)
print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
If this repo also has merged weights at the root, load that folder directly with AutoModelForCausalLM.from_pretrained.
Sampling that works well for Gemma 4: temperature=1.0, top_p=0.95, top_k=64. Allow enough max_new_tokens for a short thought channel plus the answer.
Thinking is enabled with enable_thinking=True (or <|think|> at the start of the system prompt). The model may emit:
<|channel>thought
...
<channel|>
answer
Training
| Base | google/gemma-4-12B-it (Unsloth image unsloth/gemma-4-12b-it) |
| Method | 4-bit QLoRA (rank 16, alpha 16), text layers only |
| Context | 1024 |
| Hardware | Kaggle Tesla T4, Unsloth FastModel |
| Objective | Supervised chat SFT, assistant tokens only |
Data: ~1000 hand-written adaptation traces (few-shot invented tasks, rule shifts, self-checks, stacked constraints, messy specs, topic interrupts, corrections). No public many-task filler in v2.
Evaluation
Held-out Kaggle suite vs stock Gemma 4 12B Instruct (unsloth/gemma-4-12b-it), same system prompt, 22 items (15 adaptation / 3 rule-switch / 4 control). Not MMLU. Exact / last-line / normalized match.
| Split | Gemma 4 12B | Teleste 12B | Delta |
|---|---|---|---|
| adaptation | 40.0% | 40.0% | 0.0 |
| rule_switch | 66.7% | 66.7% | 0.0 |
| control | 100.0% | 100.0% | 0.0 |
| overall | 12/22 (54.5%) | 12/22 (54.5%) | 0 |
Teleste is not a general-benchmark win on this board. Control stayed at 4/4 (the LoRA did not collapse ordinary Q&A). Item-level preds were not copies of the base run. Notable swaps:
- Teleste right, base wrong:
vowel_count(3),consonants_only(slvr),hyphen_swap_reverse(aet-neerg),switch_transform(MAPLE; base kept the old reverse cipherELPAM) - Base right, Teleste wrong:
first_last_upper(PR vs PE),drop_last(penc vs penci),minus_four(12 vs 11),switch_scoring(numbers only vs CSV)
Several base cells were empty because the first Gemma pass truncated long thoughts. Treat the adaptation 40/40 as noisy. The MAPLE vs ELPAM item is the cleanest rule-switch check.
On the same Kaggle T4, Teleste felt much faster than stock Gemma 4 12B. That is generation length, not a timed latency bench: the base model often writes a long <|channel>thought block, while Teleste often answers in a few tokens (e.g. Paris with no thought). After Unsloth kernels are warm, the 22-item Teleste pass finished quickly. We did not log seconds per item.
License
Apache 2.0, inherited from Gemma 4 12B Instruct.
- Downloads last month
- 250