/ Модель

Характеристики

Контекст
1 024 000 токенов
Параметры
11,7 млрд
Размер весов
22,9 ГБ
Лицензия
Apache 2.0
Архитектура
mistral · dense
Базовая модель
normistral-11b-long
Библиотека
transformers
Опубликована
13 окт 2025

normistral-11b-thinking

Генерация текстаТекст → текст5 профессий

Инструктивная модель Mistral с 11,7 млрд параметров для диалога, рассуждений и работы с норвежскими текстами.

538скачиваний за 30 дней6лайковвеса обновлены10 авг 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

NorMistral-11B-Thinking — инструктивно дообученная языковая модель на архитектуре Mistral, разработанная LTG/NoRLLM для общения и решения задач на норвежском языке. Она содержит 11,7 млрд параметров и заявленный контекст до 1 024 000 токенов; доступна в формате Safetensors для Transformers, а отдельные варианты опубликованы в GGUF для локального запуска.

Модель дообучали на открытых наборах данных: сначала на английских инструкциях и рассуждениях, затем с помощью обучения с подкреплением на запросах на букмоле и нюнорске. Она предназначена для ответов на вопросы, следования инструкциям, рассуждений, переписывания и суммаризации норвежских текстов. В предварительной оценке показала сильные результаты на ряде норвежских задач, однако опубликованные оценки обозначены как предварительные.

Модель основана на norallm/normistral-11b-long и распространяется по лицензии Apache 2.0. Это текстовая модель; карточка не заявляет поддержку языков помимо норвежского, хотя начальный этап дообучения использовал англоязычные данные.

Сценарии применения

  • ответы на вопросы на букмоле и нюнорске
  • диалоговый помощник для запросов на норвежском
  • суммаризация норвежских текстов
  • переписывание норвежского текста
  • классификация тональности норвежских отзывов
  • решение тестовых вопросов на норвежском

Ограничения

Опубликованная оценка названа предварительной, а качество может различаться между задачами и вариантами норвежского языка. Основная целевая область — норвежский; англоязычный этап обучения сам по себе не подтверждает поддержку английского как языка для применения.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

This is our instruction-tuned NorMistral-11B language model for Norwegian, trained on open datasets and released under Apache 2.0 license. The model has undergone extensive fluency-preserving reinforcement learning according to our paper Fluent Alignment with Disfluent Judges: Post-training for Lower-resource Languages.

The model is freely available in our public chat interface: https://chat.llm.sigma2.no/


License

We release the model under Apache 2.0 license to indicate that we do not impose any additional constraints on the model weights. However, we do not own the data in the training collection.


Usage

1. HuggingFace transformers

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# load the NorMistral tokenizer and model
tokenizer = AutoTokenizer.from_pretrained("norallm/normistral-11b-thinking")
model = AutoModelForCausalLM.from_pretrained(
    "norallm/normistral-11b-thinking",
    device_map='auto',
    torch_dtype=torch.bfloat16
)

# create a conversation and convert it to token indices using the NorMistral chat template
messages = [
    {"role": "user", "content": "Hva er hovedstaden i Norge?"},
    {"role": "assistant", "content": "Hovedstaden i Norge er Oslo. Denne byen ligger i den sørøstlige delen av landet, ved Oslofjorden. Oslo er en av de raskest voksende byene i Europa, og den er kjent for sin rike historie, kultur og moderne arkitektur. Noen populære turistattraksjoner i Oslo inkluderer Vigelandsparken, som viser mer enn 200 skulpturer laget av den berømte norske skulptøren Gustav Vigeland, og det kongelige slott, som er den offisielle residensen til Norges kongefamilie. Oslo er også hjemsted for mange museer, gallerier og teatre, samt mange restauranter og barer som tilbyr et bredt utvalg av kulinariske og kulturelle opplevelser."},
    {"role": "user", "content": "Gi meg en liste over de beste stedene å besøke i hovedstaden"}
]
input_tokens = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)

# run the generation (customizable via the various parameters)
output_tokens = model.generate(
    input_tokens,
    max_new_tokens=2048,  # limit max number of generated tokens
    top_k=64,  # top-k sampling
    top_p=0.9,  # nucleus sampling
    temperature=0.3,  # a low temparature to make the outputs less chaotic
    repetition_penalty=1.0,  # turn the repetition penalty off, having it on can lead to very bad outputs
    do_sample=True,  # randomly sample the outputs
    use_cache=True  # speed-up generation by using kv cache
)

# decode the generated tokens back to text
output_str = tokenizer.decode(output_tokens[0, input_tokens.size(1):]).strip()

# separate the reasoning trace that's enclosed in the special <think> ... </think> tokens
# it should say something like "Brukeren ber: "Gi meg en liste over de beste stedene å besøke i hovedstaden"\n\nDette er en klar forespørsel om informasjon..."
reasoning_trace = output_str.split("</think>")[0].lstrip("<think>").strip()

# separate the actual response that follows after the </think> token
# it should say something like "De beste stedene å besøke i hovedstaden Oslo:\n\n**1. Vigelandsparken**\n– En av verdens største skulpturparker med over 200 skulpturer av Gustav Vigeland. Populært..."
response = output_str.split("</think>")[-1].rstrip("</s>").strip()

2. Faster inference with vLLM

from vllm import LLM, SamplingParams

# load the NorMistral model
llm = LLM(
    model="norallm/normistral-11b-thinking",
    dtype="bfloat16"
)

# create a conversation
messages = [
    {"role": "user", "content": "Hva er hovedstaden i Norge?"},
    {"role": "assistant", "content": "Hovedstaden i Norge er Oslo. Denne byen ligger i den sørøstlige delen av landet, ved Oslofjorden. Oslo er en av de raskest voksende byene i Europa, og den er kjent for sin rike historie, kultur og moderne arkitektur. Noen populære turistattraksjoner i Oslo inkluderer Vigelandsparken, som viser mer enn 200 skulpturer laget av den berømte norske skulptøren Gustav Vigeland, og det kongelige slott, som er den offisielle residensen til Norges kongefamilie. Oslo er også hjemsted for mange museer, gallerier og teatre, samt mange restauranter og barer som tilbyr et bredt utvalg av kulinariske og kulturelle opplevelser."},
    {"role": "user", "content": "Gi meg en liste over de beste stedene å besøke i hovedstaden"}
]

# set up sampling parameters (equivalent to the generate() parameters)
sampling_params = SamplingParams(
    max_tokens=2048,  # limit max number of generated tokens
    top_k=64,  # top-k sampling
    top_p=0.9,  # nucleus sampling
    temperature=0.3,  # a low temperature to make the outputs less chaotic
    repetition_penalty=1.0,  # turn the repetition penalty off
)

# run the generation using the chat interface (applies chat template automatically)
outputs = llm.chat(messages, sampling_params=sampling_params)

# get the generated text
output_str = outputs[0].outputs[0].text.strip()

# separate the reasoning trace that's enclosed in the special <think> ... </think> tokens
reasoning_trace = output_str.split("</think>")[0].lstrip("<think>").strip()

# separate the actual response that follows after the </think> token
response = output_str.split("</think>")[-1].rstrip("</s>").strip()

3. GGUF models for ollama / llama.cpp

It's often convenient to run models locally with ollama. The simplest option is to use the model directly uploaded to https://ollama.com/LTG/normistral-11b-thinking:latest. That's a GGUF checkpoint with F16 weights, same as the one running at our inference endpoint. More options are available at norallm/normistral-11b-thinking-gguf. Specifically checkpoints converted to these floating-point formats:

  1. 16-bit BF16 (22.9GB): normistral-11B-thinking-BF16.gguf
  2. 16-bit F16 (22.9GB): normistral-11B-thinking-F16.gguf
  3. 8-bit Q8_0 (12.1GB): normistral-11B-thinking-Q8_0.gguf
  4. 6-bit Q6_K (9.4GB): normistral-11B-thinking-Q6_K.gguf
  5. 5-bit Q5_K_M (8.1GB): normistral-11B-thinking-Q5_K_M.gguf
  6. 5-bit Q5_0 (7.9GB): normistral-11B-thinking-Q5_0.gguf
  7. 4-bit Q4_K_M (6.9GB): normistral-11B-thinking-Q4_K_M.gguf

We also provide a working .modelfile, which contains the official chat template converted to Go (as used by llama.cpp and ollama).

4. API

It's possible to use our free inference service at https://chat.llm.sigma2.no/ and get responses from NorMistral via API. You will need to register at that site and generate an API key by navigating to Settings -> Account -> API keys -> API Key.

import requests

BASE_URL = "https://chat.llm.sigma2.no:443"
API_KEY = "your-api-key-here"  # <-- Replace with your actual API key
MODEL = "NorMistral-11b-thinking:latest"

# send a POST request
response = requests.post(
    f"{BASE_URL}/api/chat/completions",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={
        "model": MODEL,
        "messages": [
            {"role": "user", "content": "Hva er hovedstaden i Norge?"}
        ],
    },
)

# gather the response
response.raise_for_status()
result = response.json()
output_str = result["choices"][0]["message"]["content"].strip()

# separate the reasoning trace that's enclosed in the special <think> ... </think> tokens
# it should say something like "Brukeren spør: "Hva er hovedstaden i Norge?"\n\nDette er et faktaspørsmål om"
reasoning_trace = output_str.split("</think>")[0].lstrip("<think>").strip()

# separate the actual response that follows after the </think> token
# it should say something like "Oslo er hovedstaden i Norge."
response = output_str.split("</think>")[-1].rstrip("</s>").strip()

Training and data

Generally speaking, the training follows our fluency-preserving post-training setup from Fluent Alignment with Disfluent Judges: Post-training for Lower-resource Languages.

The training data is published alongside the model at norallm/normistral-11b-thinking-training. Training code will be available at github.com/ltgoslo/normistral-post-training.

1. Supervised finetuning (SFT)

We start by "injecting" the instruction-following and reasoning capabilities by SFT training on English responses and reasoning traces from Kimi-K2-Thinking. The full SFT collection is published in train_sft.jsonl.

2. Reinforcement learning (d-RLAIF)

The short SFT stage is followed by on-policy training on a large collection of Norwegian (Bokmål and Nynorsk) prompts (also available at norallm/normistral-11b-thinking-training). The specific setup of d-RLAIF (direct reinforcement learning from AI feedback) and its motivation is extensively described in our paper. The "AI" reward model used here is Mistral-Large-Instruct-2411.


Evaluation

We compared NorMistral against state-of-the-art instruction-tuned models of similar size. What follows is a preliminary evaluation on a generative version of NorEval (that is still work-in-progress). The responses from all evaluated models below are fully available for closer inspection at norallm/normistral-11b-thinking-evaluation.

Classification tasks

All classification scores are reported as accuracy. NoReC sentiment analysis is done on sentence level. The generative scores (NorRewrite and Norsummarize) are reported as the average win-rates against Llama-3.1-8B evaluated using LLM-as-a-judge setup with Llama-3.3-70B (see NorEval for more information). * denotes "thinking" models.

ModelNoReC_binaryNoReC_ternaryNorIdiom_NBNorIdiom_NNNorCSQA_NBNorCSQA_NN
NorMistral-11B*86.365.255.727.770.764.2
Llama-3.1-8B79.852.912.76.764.057.9
Mistral-Nemo-12B67.949.112.98.561.649.5
Qwen3-15B*83.569.622.113.283.871.6
Gemma3-12B85.267.143.723.781.980.0
OLMo3-7B*72.063.35.02.250.817.9
OLMo2-13B32.813.23.52.248.045.3
Apertus-8B78.458.834.315.769.263.2
ModelNorOBQA_NBNorOBQA_NNNRK_NBNRK_NNNorRewriteNorSummarize
NorMistral-11B*83.084.458.862.351.954.3
Llama-3.1-8B78.571.149.846.250.050.0
Mistral-Nemo-12B75.367.847.345.042.539.2
Qwen3-15B*94.488.963.355.977.683.1
Gemma3-12B91.588.959.858.486.877.8.
OLMo3-7B*70.554.443.335.97.814.2
OLMo2-13B55.356.745.339.448.353.7
Apertus-8B76.174.450.248.339.642.1

Citation

@misc{samuel2025fluentalignmentdisfluentjudges,
      title={Fluent Alignment with Disfluent Judges: Post-training for Lower-resource Languages}, 
      author={David Samuel and Lilja Øvrelid and Erik Velldal and Andrey Kutuzov},
      year={2025},
      eprint={2512.08777},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2512.08777}, 
}
@inproceedings{samuel-etal-2025-small,
    title = "Small Languages, Big Models: {A} Study of Continual Training on Languages of {Norway}",
    author = "Samuel, David  and
      Mikhailov, Vladislav  and
      Velldal, Erik  and
      {\O}vrelid, Lilja  and
      Charpentier, Lucas Georges Gabriel  and
      Kutuzov, Andrey  and
      Oepen, Stephan",
    editor = "Johansson, Richard  and
      Stymne, Sara",
    booktitle = "Proceedings of the Joint 25th Nordic Conference on Computational Linguistics and 11th Baltic Conference on Human Language Technologies (NoDaLiDa/Baltic-HLT 2025)",
    month = mar,
    year = "2025",
    address = "Tallinn, Estonia",
    publisher = "University of Tartu Library",
    url = "https://aclanthology.org/2025.nodalida-1.61/",
    pages = "573--608",
    ISBN = "978-9908-53-109-0",
}

Contact

Please write a community message or contact David Samuel (davisamu@ifi.uio.no) if you have any questions about this model.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
MistralForCausalLM
Ревизия весов
acd8387

0 моделей