Llama 3.3 Euryale 70B: The Successor and Its Trade-offs
Euryale v2.3 moves Sao10K's roleplay line onto Llama 3.3 70B Instruct. How it was trained, what the 16K training length means, and what to own before you deploy it.
The Llama 3.3 Euryale 70B is version 2.3 of Sao10K's roleplay and creative-writing fine-tune, and its model card describes it simply as a direct replacement for v2.2. That is a reasonable summary of intent. It is not a full description of what changed, and a couple of the changes matter more for deployment than for prose quality.
This guide covers how v2.3 was built, the gap between its listed context and its training length, what its training data implies for anyone running it in front of users, and how to choose between it and the earlier Llama 3.1 Euryale v2.2.
Built on Llama 3.3 Instruct, with a LoRA
The base is Meta's Llama 3.3 70B Instruct. The author makes a point of saying the model was trained directly on that instruct model rather than by applying an adapter extracted from some other fine-tune, a shortcut the author notes is popular in community releases.
The training configuration is published in full, which is more than many lab releases offer. The headline details:
- A LoRA at rank 128 applied to all linear layers, trained with the Axolotl framework.
- One epoch, a peak learning rate of 4e-6 on a cosine schedule, and a training sequence length of 16,384 tokens.
- Three datasets: one the author labels unalignment data, one of filtered roleplay and creative instruction data, and one of general instruction data.
A single epoch at a low learning rate on top of an already capable instruct model is a light touch. The reasonable expectation is that v2.3 keeps much of Llama 3.3's general competence while shifting its tone, though that is worth checking on your own prompts rather than assuming. If you want to see what it was shifted from, the Llama 3.3 70B Instruct guide covers the base.
131K listed, 16K trained
At the time of writing OpenRouter listed sao10k/l3.3-euryale-70b with a 131,072-token context window, which is the Llama 3.3 base window. The fine-tune itself was trained on sequences of up to 16,384 tokens.
Those numbers are not in conflict. The model will accept a long prompt, and the base model's long-context ability does not vanish. But the behaviour the fine-tune teaches, the voice and the character consistency, was only ever demonstrated to it inside 16K. Past that, test whether the tuned voice holds or slides back towards base-model habits, and expect quality to soften in the way context length vs effective context describes for every model.
For long-running chats that means you should summarise older turns rather than let the history grow without limit. It is cheaper too: input tokens are resent on every turn.
The unalignment data is yours to manage
One of the three training files is described by the author as unalignment data. In plain terms, the fine-tune is designed to refuse less than the base model. For fiction that is often the point, since base models refuse or water down scenes that are entirely acceptable in published novels.
The consequence is that moderation moves from the model to you. If you put v2.3 in front of the public, you need your own input and output filtering, your own age and content policies, and logs you can audit. A model that refuses less will also refuse less of what you did not intend to allow. Do not rely on the base model's safety tuning surviving a fine-tune that was built partly to remove it.
Licence and price
The repository carries a llama3 licence tag, and the Llama 3.3 base it was trained on comes with Meta's community licence. That is a meaningful difference from v2.2, whose repository lists the non-commercial CC-BY-NC-4.0. Meta's licence has its own conditions and acceptable-use policy, so read it against your use case, but it is not a blanket non-commercial restriction.
At the time of writing OpenRouter listed v2.3 at $0.65 per million input tokens and $0.75 per million output, a little below v2.2's flat $0.85. It also lists JSON mode alongside structured outputs. That is unusual to care about for a creative model, but useful if you wrap generation in a game or app that needs to parse a character's state alongside its dialogue; structured outputs and JSON mode covers how far to trust it.
v2.3 or v2.2
The decision rule is short:
- New project: start on v2.3. It is cheaper as listed, the licence is less restrictive, and it is the version the author describes as the replacement.
- Existing project tuned on v2.2: run both side by side on your own scenes before switching. The recommended sampler settings changed, from temperature 1.2 and min_p 0.2 to temperature 1.1 and min_p 0.1, which tells you the two models respond differently to the same knobs.
- Commercial product: v2.3, and only after reading the Llama licence and putting your own moderation in place.
Before you deploy
A short checklist that covers the parts this model hands to you:
- Use the Llama 3 Instruct format the model card specifies, and start from the author's settings of temperature 1.1 and min_p 0.1. The author notes the system prompt matters more than extra samplers.
- Cap or summarise chat history near 16K tokens and compare quality either side of that line.
- Put input and output moderation in front of it if anyone other than you will use it.
- Record regeneration rate on twenty real scenes. It is the most honest single number for a creative model.
Common questions
Is Llama 3.3 Euryale 70B the same as Euryale v2.3?
Yes. The Hugging Face repository is named L3.3-70B-Euryale-v2.3, and its card calls it a direct replacement for v2.2. OpenRouter has listed it as Llama 3.3 Euryale 70B.
Can Euryale v2.3 really use 131K tokens of context?
It will accept them, since that is the Llama 3.3 base window. The fine-tune was trained on sequences up to 16,384 tokens, so its tuned behaviour is most reliable inside that range. Test long chats before relying on them.
Does Euryale v2.3 need its own content moderation?
If it faces the public, yes. Part of its training data is described as unalignment data, which is meant to make it refuse less than the base model. Filtering and policy enforcement become your responsibility.