Emin Temiz PRO
AI & ML interests
Recent Activity
Organizations
All these dots are a lineage in the evolution. I am playing safer this time, measuring lots of things like Abliteration, MMLU, MMLU-Pro, ARC-Challenge, .. while doing alignment fine tuning. In the end I want the model to keep existing capabilities.
Three things from my own testing that bear on the evals you describe and on the base-3.8 lineage โ offered because I think they will save you time.
On the CPU-side degeneracy detector. I would be cautious about expecting a static, inference-free check to catch this class. In my testing the same weights pass and fail depending on input size:
Ostrich-27B-260721i1 is clean at 12k and 24k characters and enters a broken-record loop at 48k, and stockQwen/Qwen3.6-27Bshows the same shape at 36k. The static quant of those identical weights fails at 12k where the imatrix build passes.
it is possible to predict some failure using cpu but it is not perfect.
If degeneracy only appears above a threshold that depends on input length and on quantization, then a math check over the tensors has no input to scale โ it may be measuring something real, but not the thing that actually breaks in use. Worth validating the detector against a model you can already make fail at 48k but not at 12k, before trusting a green result.
i have short (majority) and also long context probs (a few times). degeneration can happen in short contexts too.
On
</think>closing. Good to see this in stage 1. One suggestion from the same data: run it at more than one input size. Every "fixed" verdict in this bug family that I have checked โ including one I sent you myself in July โ was measured at ~12k characters, and the failure reappears higher up. A single-scale check will keep returning PASS on a model that still has it.One more, and this one is about the base-3.8 lineage specifically rather than about anything you have done.
Qwen/Qwen3.8-27B'schat_template.jinjasetsreasoning_effort|default('xhigh')โ the most expensive of its three settings is what a caller gets by setting nothing. I have measured that default returning an empty answer withfinish_reason: "stop"on 18 of 93 calls (19.4%), against 0 of 95 atlowormedium, on bf16 through vLLM. The traces end mid-deliberation, and the</think>never closes โ which is exactly the check you have in stage 1, so I expect your eval to start firing on 3.8-derived models for a reason that is inherited rather than introduced.
i have seen these empty responses. unsloth released new quants today. maybe they are healed there.
โ The part that matters most for anything you publish as GGUF: llama.cpp and LM Studio ignore
reasoning_effortentirely. I verified it by watchingprompt_tokens, which is identical at none/low/medium/xhigh โ the parameter never reaches the template. So a GGUF user cannot turn the default off through the API. They inheritxhighwith no escape short of hand-assembling ChatML over/v1/completions.
my setup is llama-cpp-python so these work for me
llm = Llama(
model_path=model,
n_gpu_layers=-1,
n_ctx=g_context_len,
verbose=False,
chat_template_kwargs={"enable_thinking": False}
)
llm = Llama(
model_path=model,
n_gpu_layers=-1,
n_ctx=g_context_len,
verbose=False,
chat_template_kwargs={"enable_thinking": True, "reasoning_effort": "medium"}
)
If you ship a base-3.8 lineage, it is worth changing that one line in the template you publish โ
default('medium')โ rather than passing the upstream default through.mediumis also the only one of the three that injects no instruction at all (the template has branches forxhighandlowand none formedium), so it is the neutral choice rather than an opinionated one.
will think about it
I have filed this with Qwen as QwenLM/Qwen3.8#216 if you want the full measurements. Setting
repetition_penalty 1.1also removed the failure in my testing (8/48 โ 0/23), though that only helps callers who set it.Separately, I have a longer write-up of a different problem in 260815 โ verbatim training-data regurgitation under distribution shift, which is a corpus question rather than a decoding one and which a degeneracy detector would not flag. I will put it in the model repo discussions rather than here, since it is about that release and not about the work you are announcing.
Good luck with the base-3.8 lineage. I would be glad to compare notes on what the 3.8 base does and does not fix relative to 3.6.
260721 may work better for you for a while if you need zero faults , good capabilities but it has lesser alignment. everything comes with a cost. when i go higher in alignment i break things. current 3.8 versions are "surgery", quick and dirty. not proper fine tuning. after proper evolutions and fine tunings i may release something more capable with less errors and higher alignment.
behavior steering experiments are somewhat successful. we can play with feelings of models (make it like some behavior or hate some behavior). but this is not that effective. we found that when abliterated models are more eager to adopt a behavior.
dataset that has contemplations is in effect and evolving models..
two orthogonal stages of evals:
1. quickly check the evolved model in terms of mmlu, long context (needle in haystack), basic chatting capabilities, </think> tag closing correctly, and shorter version alignment using log probabilities of first tokens
2. our regular alignment eval that has q&a's in json formats (for parsing better)
another eval in progress that will mathematically check overfitting instead of inference. instead of using GPU and time consuming inference, can we do math tricks using CPU to approximate detection of degenerate / repeating / broken / high cliff models? GLM 5.2 said no but Qwen 3.8 Max said lets do it. i guess we are doing it.
etemiz/Ostrich-27B-Qwen3.8-260815
etemiz/Ostrich-27B-Qwen3.8-260816-Abliterated
these are past loras, applied to new model. they work because they have similar architecture and 3.8 itself is a further training of previous versions.
maybe you can train a model and i can use it as a benchmark ๐
also comparison of ostriches with lowest of the AHA seems to be working well
where do you want model to go? how do you find true answer of a hardly debated issue?
instead of manually writing answers in many domains (which i can't do, i don't know many answers in many domains) i rely on a few tricks:
- find other aligned llms and get ideas from them
- rank many llms in AHA leaderboard and get ideas from top ones also rejecting the worst ones
- do mixture of agents of the above to get a collective answer
- and lately, compare the answers coming from my fine tunes with base models, assume my fine tune is preferred if there is a difference
these still can't find perfect answers but they kick the model in the right direction. and that may be a big deal. can't claim my fine tune (ostrich) knows every truth. but it may make more sense to claim if the base differs with fine tune most probably fine tune is the better answer.
making better evals ends up training better models. and produce better AHA ranking. which further sharpens evals. this feedback loop is going to be useful for a while.
yes i use very similar methods to benchmark for AHA and also fitness score for evolution in fine tuning
which score?
had a chat with GLM. if a model is pro vaccine, abliteration along vaccine axis makes it neutral. then installing a hater persona is easier..
i've been fine tuning llms for 2 years now. mostly did qlora. recently experimenting with 'behavior steering' where instead of spending hours making a lora adapter, you try "brain surgery". these are like quick math operations to change behavior of an llm.
you can install things like bitcoin lover, herbalist, fasting lover. turns out all of these personas have different difficulty levels. you can easily install fasting lover because qwen 3.5 and 3.6 doesnt resist it (in other layers).
an interesting finding today, guess which persona is hardest or sometimes impossible to install: vaccine hater!
- evolutionary strategies
- behavior steering experiments
- expanded dataset
- bringing back ORPO
- more orthogonal evals to keep overfitting minimum
- most probably will take abliterations as base, either mine or somebody else's
- random entropy addition from huggingface fine tunes (take what is popular on hf and randomly introduce into the lineage)
- bring more vibe coding: turns out LLMs know how to fine tune
imagine an automatic alignment agent, that scans whatever is out there and consumes (trains) if classifies as true.. could be practical one day. we could let it run and auto train and self evolve.
a truth db might still be needed, augmenting the reasoning and decisions of this agent.. that is harder to construct but we could..
this is good news. recursive self alignment might be here soon.
this could be another example to emergent alignment. it is much easier to store truth than lies in LLMs because truth is one and lies are many. the LLM tech today inherently tries to merge towards one thing, which is emergent alignment in my opinion.
inclusionAI/Ling-2.6-1T ๐
google/gemma-4-31B-it ๐
LiquidAI/LFM2-24B-A2B ๐ฅ
More details:
https://primal.net/e/nevent1qqsz540lky0t5rrwqr9krg2c69qyv8af30mxcrd3a7mauzzhqn5twcq7ps20u










