1,323 karma · joined May 28, 2021
The Kimi-K2.6 model is 1.1T parameters with 32B active parameters. With light quantization (Q6_K) that's enough to run it (slowly) on a single 5090. On a single B200 you can have 5-6 experts loaded into VRAM at a time. Realistically that would be 3-4 to account for the context. [!]
[!] With this and other MoE models it looks like an interesting area for research would be to detect or predict which models would be needed ahead of time. That way you could schedule the load into VRAM step before the weights are needed. That way you shouldn't lose much/any performance from offloading the weights to RAM.
It can also be used by the LLMs to provide the input and output token counts on the different APIs, though I'm not sure if this is how llama.cpp or other OpenAI-like APIs calculate the input/output tokens of a request.
2. https://www.ox.ac.uk/news/2026-01-20-new-study-finds-chatgpt... -- (2026) New study finds that ChatGPT amplifies global inequalities
3. https://stevepavlina.com/blog/2026/03/chatgpts-political-bia... -- (2026) ChatGPT’s Political Bias
4. https://pmc.ncbi.nlm.nih.gov/articles/PMC10623051/ -- (2023) Revisiting the political biases of ChatGPT
5. https://www.theverge.com/2024/2/21/24079371/google-ai-gemini... -- (2024) Google apologizes for ‘missing the mark’ after Gemini generated racially diverse Nazis
- The number of token values supported by the model ("n_vocab").
- The number of parameters/features that are used to represent each token ("d_model").
- The number of attention layers there are ("n_layers").
such that the number of parameters is approximately:
p ~= 12 * n_layers * d^2_model + n_vocab * d_model
Thus, the issue with the current architecture is that in order to scale the models (more token values, more attention blocks, more features, etc.) the model sizes increase exponentially. This is how you end up with billions or trillions of parameters.It should be possible to keep the model size smaller by using better architectures, or making improvements to the existing model architecture.
For example, improving the token model by possibly using something similar to the image and audio data and getting the model to learn its own internal representation of the byte/character data instead of doing a tokenization pre-processing step. This way, instead of a separate model learning that several bytes/characters appear together, the transformer could learn things like language-specific prefices and suffices, character pairings (like in Japanese, Chinese, and Korean), and other syntactic morphology. It may also help with solving issues like "how many X characters are in the word/phrase Y". You could also experiment with using either 256 parameters (one per character in a byte) or using a single parameter per byte (that is 1/byte_value).
In Japanese there's the Japanese possessive ('no') which can also be a modifier/qualifier in text like 男の子 (boy, literally "man of child") and 女の子 (girl, literally "woman of child"), so there are sequences of Chinese characters (possibly in combination with Japanese) that could be a single token like character sequences in the Latin script.
I've found https://digitalorientalist.com/2025/02/04/to-merge-or-not-to... with some information/analysis of this.
But in general, I've experienced things similar to you. I've also found that LLMs are bad at subtext, e.g. hinting at an NPC being a werewolf or vampire.
[1] https://memeburn.com/amodei-says-open-source-ai-is-becoming-... [2 July 2026]
[2] https://fortune.com/2026/07/02/anthropic-fable-and-mythos-ar... [July 2, 2026]
[3] https://www.youtube.com/shorts/S72ZRBSNHZc [2 weeks ago] -- Dario: "Now what I do worry about with some of these laggard models is the risks of them, where we have Mythos-class cyber capabilities, 12 months from now we'll have much better cyber capabilities. But the Mythos-class cyber capabilities may just be available for anyone to download."
I'm investigating/experimenting with using traditional NLP (stanza, spaCy, etc.) to try and grade the responses according to different metrics (is the response in first/second/third person?, is it written as poetry, prose, or drama? etc.). I'm also thinking about using information extraction and synonym detection to handle data queries and the like.
The advice I've heard is to emphasize the traits you want, not discourage the traits you don't. So rather than saying "make no mistakes" you can do something like you suggested with writing it as "check your work" or "ensure you answer correctly and concisely".
This is common in system prompts and frames the responses.
For example, you'd get different responses saying:
1. you are a pirate writing sea shanties about programming;
2. you are a news reporter writing an article on physics;
3. you are a senior software engineer with complete knowledge of PostgreSQL.
For 1 you could get responses along the lines of the Wellerman sea shanty -- "There once was a program that was set to C ...".
The "make no mistakes" bit does look dubious. It would be interesting comparing the results with and without that bit and trying alternative ways of getting the same desired behavior.
There are things like the character(s) you interact with, the initial setting, and some background information predefined, but the responses/evolution of the RP vary depending on things like the model used and the user's interactions.
It's somewhat like taking a D&D setting/scenario. Each group plays it differently.
For 24GB VRAM cards (e.g. 4090) you can use Q6_K (22.5GB) or Q5_K_M (19.5GB) quants, possibly offloading some of the weights to RAM.
The games track things like cycles taken to complete the task, size/area of the machine, and cost. Those scores are shown on separate leaderboards and optimizing for one can come at the cost of another (e.g. faster machines may be bigger and/or more expensive).
providers:
- # llama-server
id: openai:chat:qwen
config:
apiBaseUrl: http://localhost:7876
apiKey: "..."
passthrough:
chat_template_kwargs:
enable_thinking: false
The looping may be due to quantization -- I've seen it on locally quantized Q6_K Qwen 3.5/3.6 models. I recall seeing somewhere (here or r/LocalLlama) that Qwen models are sensitive to quantization of the keys, though I haven't yet experimented with/looked into fixing this. (I've been building up my promptfoo tests/infrastructure to detect looping, etc. on Qwen and other models.)And yes, you should use whatever metadata is applicable to your site and test it against the search engines/etc. you want to support to make sure that they are reading the metadata correctly.
A lot of the more common and simpler words are Germanic, as is the grammar (e.g. compound words like cupboard).
I have a custom assert for loop/repeat detection that works well:
def count_repeats(text: str, length: int) -> int:
n = len(text)
pattern = text[n - length : n]
count = 1 # Include the end of the string as matching the substring.
text = text[: -length]
while text.endswith(pattern):
text = text[: -length]
count = count + 1
return count
def repeats(output: str, context: dict[str, any]) -> bool|float|dict[str, any]:
threshold = context.get('config', {}).get('threshold', 3)
count = 0
length = 0
for n in range(1, (len(output) // 2) + 1):
n_count = count_repeats(output, n)
if n_count > count:
count = n_count
length = n
if count >= threshold:
return { 'pass': True, 'score': 1.0, 'reason': f'Output repeats {count} times with length {length}.' }
else:
return { 'pass': False, 'score': 0.0, 'reason': f'Output doesn\'t repeat {threshold} or more times.' }
def no_repeats(output: str, context) -> dict[str, any]:
result = repeats(output, context)
result['pass'] = not result['pass']
result['score'] = 1.0 - result['score']
return result
Just add it to your promptfooconfig.yaml: defaultTest:
assert:
- # ----- The output doesn't repeat/get stuck in a loop.
type: python
value: file://asserts/repeat.py:no_repeats1. tiny <2-3B -- easily runnable on lower-spec hardware
2. small 4-8B -- runnable on 8GB GPUs
3. medium 9-12B -- runnable on 12GB GPUs
4. large 13-24B -- runnable on 16GB (for the lower end models) and 24GB GPUs
5. very large 25-32GB -- runnable on 32GB GPUs
6. huge >32GB -- not easily runnable on consumer GPUs without compromising performance (offloading layers to the CPU/RAM), quality (heavy quantization, esp. at <= Q4), or price (investing in multi-GPU setups and/or server-grade hardware).
You could possibly split huge down further, as 70GB models (e.g. llama 3) are easier to get working than >120GB models and 1TB models are completely intractable.
Even though Mistral 4 has 6B active parameters per token (allowing 3-3.5 per token parameters to be loaded on a 4090), the ~240GB download + storage is pushing the limits of being able to try this out locally, especially if you are downloading and evaluating multiple models.
It also makes it harder for other people to make downstream finetunes like with what happened with the older Mistral/Magistral models.