# Mistral 3

[Mistral 3](https://mistral.ai/news/mistral-small-3) — это модель, оптимизированная по задержке, с существенно меньшим количеством слоев для сокращения времени одного прямого прохода. Эта модель добавляет понимание изображений и поддерживает длинные контексты длиной до 128K токенов без потери производительности.

Оригинальные контрольные точки Mistral 3 можно найти в организации [Mistral AI](https://huggingface.co/mistralai/models?search=mistral-small-3).

> [!TIP]
> Эта модель была добавлена [cyrilvallez](https://huggingface.co/cyrilvallez) и [yonigozlan](https://huggingface.co/yonigozlan). Нажмите на модели Mistral3 в правой боковой панели, чтобы увидеть больше примеров применения Mistral3 к различным задачам.
>
> Установите `use_kernels=True` в [from_pretrained()](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained), чтобы заменить поддерживаемые слои на оптимизированные ядра из Hub. Подробнее см. в разделе [Загрузка ядер](../kernel_doc/loading_kernels).

Приведённый ниже пример демонстрирует, как генерировать текст для изображения с помощью [Pipeline](/docs/transformers/main/ru/main_classes/pipelines#transformers.Pipeline) и класса [AutoModel](/docs/transformers/main/ru/model_doc/auto#transformers.AutoModel).

```python
from transformers import pipeline

messages = [
    {"role": "user",
        "content":[
            {"type": "image",
            "image": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg",},
            {"type": "text", "text": "Describe this image."}
        ,]
    ,}
,]

pipeline = pipeline(
    task="image-text-to-text",
    model="mistralai/Mistral-Small-3.1-24B-Instruct-2503",
    device=0
)
outputs = pipeline(text=messages, max_new_tokens=50, return_full_text=False)

outputs[0]["generated_text"]
'The image depicts a vibrant and lush garden scene featuring a variety of wildflowers and plants. The central focus is on a large, pinkish-purple flower, likely a Greater Celandine (Chelidonium majus), with a'
```

```python
from transformers import AutoModelForImageTextToText, AutoProcessor

model_checkpoint = "mistralai/Mistral-Small-3.1-24B-Instruct-2503"
processor = AutoProcessor.from_pretrained(model_checkpoint)
model = AutoModelForImageTextToText.from_pretrained(
    model_checkpoint,
    device_map="auto",
)

messages = [
    {"role": "user",
        "content":[
            {"type": "image",
            "image": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg",},
            {"type": "text", "text": "Describe this image."}
        ,]
    ,}
,]

inputs = processor.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True, return_dict=True,
    return_tensors="pt").to(model.device)

generate_ids = model.generate(**inputs, max_new_tokens=20)
decoded_output = processor.decode(generate_ids[0, inputs["input_ids"].shape[1] :], skip_special_tokens=True)

decoded_output
'The image depicts a vibrant and lush garden scene featuring a variety of wildflowers and plants. The central focus is on a large, pinkish-purple flower, likely a Greater Celandine (Chelidonium majus), with a'
```

## Примечания

- Mistral 3 поддерживает генерацию только текста.

```py
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText

model_checkpoint = ".mistralai/Mistral-Small-3.1-24B-Instruct-2503"
processor = AutoProcessor.from_pretrained(model_checkpoint)
model = AutoModelForImageTextToText.from_pretrained(model_checkpoint, device_map="auto")

SYSTEM_PROMPT = "You are a conversational agent that always answers straight to the point, always end your accurate response with an ASCII drawing of a cat."
user_prompt = "Give me 5 non-formal ways to say 'See you later' in French."

messages = [
    {"role": "system", "content": SYSTEM_PROMPT},
    {"role": "user", "content": user_prompt},
]

text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(text=text, return_tensors="pt").to(0)
generate_ids = model.generate(**inputs, max_new_tokens=50, do_sample=False)
decoded_output = processor.batch_decode(generate_ids[:, inputs["input_ids"].shape[1] :], skip_special_tokens=True)[0]

print(decoded_output)
"1. À plus tard!
 2. Salut, à plus!
 3. À toute!
 4. À la prochaine!
 5. Je me casse, à plus!

```

 /\_/\
( o.o )
 > ^ <

```"
````

- Mistral 3 принимает пакетные входные данные в виде изображений и текста.

```py
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText

model_checkpoint = "mistralai/Mistral-Small-3.1-24B-Instruct-2503"
processor = AutoProcessor.from_pretrained(model_checkpoint)
model = AutoModelForImageTextToText.from_pretrained(model_checkpoint, device_map="auto")

messages = [
     [
         {
             "role": "user",
             "content": [
                 {"type": "image", "url": "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/llava_view.jpg"},
                 {"type": "text", "text": "Write a haiku for this image"},
             ],
         },
     ],
     [
         {
             "role": "user",
             "content": [
                 {"type": "image", "url": "https://www.ilankelman.org/stopsigns/australia.jpg"},
                 {"type": "text", "text": "Describe this image"},
             ],
         },
     ],
 ]

 inputs = processor.apply_chat_template(messages, padding=True, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt").to(model.device)

 output = model.generate(**inputs, max_new_tokens=25)

 decoded_outputs = processor.batch_decode(output, skip_special_tokens=True)
 decoded_outputs
["Write a haiku for this imageCalm waters reflect\nWhispers of the forest's breath\nPeace on wooden path"
, "Describe this imageThe image depicts a vibrant street scene in what appears to be a Chinatown district. The focal point is a traditional Chinese"]
```

- Mistral 3 также поддерживал пакетные входные данные с изображениями и текстом, где для каждого текста могло быть разное количество изображений. В примере ниже модель квантуется с помощью bitsandbytes.

```py
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText, BitsAndBytesConfig

model_checkpoint = "mistralai/Mistral-Small-3.1-24B-Instruct-2503"
processor = AutoProcessor.from_pretrained(model_checkpoint)
quantization_config = BitsAndBytesConfig(load_in_4bit=True)
model = AutoModelForImageTextToText.from_pretrained(
     model_checkpoint, quantization_config=quantization_config
 device_map="auto")

messages = [
     [
         {
             "role": "user",
             "content": [
                 {"type": "image", "url": "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/llava_view.jpg"},
                 {"type": "text", "text": "Write a haiku for this image"},
             ],
         },
     ],
     [
         {
             "role": "user",
             "content": [
                 {"type": "image", "url": "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/statue_of_liberty.jpg"},
                 {"type": "image", "url": "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/dreamstime_golden_gate_flowers.jpg"},
                 {"type": "text", "text": "These images depict two different landmarks. Can you identify them?"},
             ],
         },
     ],
 ]

 inputs = processor.apply_chat_template(messages, padding=True, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt").to(model.device)

 output = model.generate(**inputs, max_new_tokens=25)

 decoded_outputs = processor.batch_decode(output, skip_special_tokens=True)
 decoded_outputs
["Write a haiku for this imageSure, here is a haiku inspired by the image:\n\nCalm lake's wooden path\nSilent forest stands guard\n", "These images depict two different landmarks. Can you identify them? Certainly! The images depict two iconic landmarks:\n\n1. The first image shows the Statue of Liberty in New York City."]
```

## Mistral3Config[[transformers.Mistral3Config]]

#### transformers.Mistral3Config[[transformers.Mistral3Config]]

```python
transformers.Mistral3Config(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, vision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, text_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, image_token_index: int = 10, projector_hidden_act: str = 'gelu', vision_feature_layer: int | list[int] = -1, multimodal_projector_bias: bool = False, spatial_merge_size: int = 2, tie_word_embeddings: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral3/configuration_mistral3.py#L26)

**Параметры:**

vision_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *необязательный*) : Объект конфигурации или словарь для визуального бэкбона.

text_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *необязательный*) : Объект конфигурации или словарь текстового бэкбона.

image_token_index (`int`, *необязательный*, по умолчанию `10`) : Индекс токена изображения, используемый как плейсхолдер для входных изображений.

projector_hidden_act (`str`, *необязательный*, по умолчанию `gelu`) : Функция активации, используемая мультимодальным проектором.

vision_feature_layer (`Union[int, list[int]]`, *необязательный*, по умолчанию `-1`) : Индекс слоя, из которого извлекаются визуальные признаки. Если указано несколько индексов, визуальные признаки соответствующих индексов будут объединены в один набор визуальных признаков.

multimodal_projector_bias (`bool`, *необязательный*, по умолчанию `False`) : Использовать ли смещение (bias) в мультимодальном проекторе.

spatial_merge_size (`int`, *optional*, по умолчанию `2`) : Размер пространственного окна слияния, используемого для уменьшения количества визуальных токенов путём объединения соседних патчей.

tie_word_embeddings (`bool`, *необязательный*, по умолчанию `True`) : Связывать ли веса эмбеддингов согласно отображению `tied_weights_keys` модели.

Это класс конфигурации для хранения настроек модели Mistral3Model. Он используется для создания модели Mistral3 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации модели [mistralai/Mistral-Small-3.1-24B-Instruct-2503](https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig).

Пример:

```python
>>> from transformers import Mistral3ForConditionalGeneration, Mistral3Config, PixtralVisionConfig, MistralConfig

>>> # Initializing a Pixtral-vision config
>>> vision_config = PixtralVisionConfig()

>>> # Initializing a Mistral config
>>> text_config = MistralConfig()

>>> # Initializing a Mistral3 configuration
>>> configuration = Mistral3Config(vision_config, text_config)

>>> # Initializing a model from the mistral3.1 configuration
>>> model = Mistral3ForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## MistralCommonBackend[[transformers.MistralCommonBackend]]

#### transformers.MistralCommonBackend[[transformers.MistralCommonBackend]]

```python
transformers.MistralCommonBackend(tokenizer_path: str | os.PathLike | pathlib.Path, mode: str | ValidationMode = 'test', model_max_length: int = 1000000000000000019884624838656, padding_side: str = 'left', truncation_side: str = 'right', model_input_names: list[str] | None = None, clean_up_tokenization_spaces: bool = False, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L194)

Класс для обёртки токенизаторов `mistral-common`.

`mistral-common` — это официальная библиотека токенизаторов для моделей Mistral AI. Для её использования необходимо установить её с помощью:

```bash
pip install transformers[mistral-common]
```

В противном случае токенизатор использует реализацию токенизатора из Transformers.

Подробнее о `mistral-common` см. в [mistral-common](https://github.com/mistralai/mistral-common).

Этот класс является обёрткой вокруг `mistral_common.tokens.tokenizers.mistral.MistralTokenizer`. Он предоставляет интерфейс, совместимый с Hugging Face, для токенизации с помощью официального токенизатора mistral-common и наследуется от класса `PreTrainedTokenizerBase`.

Вот основные различия в поведении с классом `PythonBackend`:

- Пары последовательностей не поддерживаются. Подпись сохранена в целях совместимости, но все аргументы, связанные с парами последовательностей, игнорируются. Возвращаемые значения для пар возвращаются как `None`.
- Аргумент `is_split_into_words` не поддерживается.
- Добавление новых токенов в токенизатор невозможно. Специальные токены обрабатываются иначе, чем в Transformers. В `mistral-common` специальные токены никогда не кодируются напрямую. Это означает, что `tokenizer.encode("<s>")` не вернёт ID токена `<s>`. Вместо этого будет возвращён список ID, соответствующих токенизации строки `"<s>"`. Подробнее см. в [документации mistral-common](https://mistralai.github.io/mistral-common/usage/tokenizers/#special-tokens).

Если у вас есть предложения по улучшению этого класса, пожалуйста, создайте issue в репозитории [mistral-common на GitHub](https://github.com/mistralai/mistral-common/issues), если они касаются токенизатора, или в репозитории [Transformers на GitHub](https://github.com/huggingface/transformers/issues), если они касаются интерфейса Hugging Face.

#### add_special_tokens[[transformers.MistralCommonBackend.add_special_tokens]]

```python
add_special_tokens(special_tokens_dict: dict, replace_extra_special_tokens: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1679)

`MistralCommonBackend` намеренно не реализует `add_special_tokens`.

Если вы хотите, чтобы такое поведение было реализовано, пожалуйста, создайте issue в репозиториях `Transformers` или `mistral-common` с соответствующим запросом.

#### add_tokens[[transformers.MistralCommonBackend.add_tokens]]

```python
add_tokens(special_tokens_dict: dict, replace_extra_special_tokens: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1691)

`MistralCommonBackend` намеренно не реализует `add_special_tokens`.

Если вы хотите, чтобы такое поведение было реализовано, пожалуйста, создайте issue в репозиториях `Transformers` или `mistral-common` с соответствующим запросом.

#### apply_chat_template[[transformers.MistralCommonBackend.apply_chat_template]]

```python
apply_chat_template(conversation: list[dict[str, str]] | list[list[dict[str, str]]], tools: list[dict | collections.abc.Callable] | None = None, add_generation_prompt: bool = False, continue_final_message: bool = False, tokenize: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool = False, max_length: int | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, return_dict: bool = True, reasoning_effort: ReasoningEffort | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1038)

**Параметры:**

conversation (Union[List[Dict[str, str]], List[List[Dict[str, str]]]]) : список словарей с ключами "role" и "content", представляющий историю чата на данный момент.

tools (`List[Union[Dict, Callable]]`, *необязательный*) : список инструментов (вызываемых функций), доступных модели. Если шаблон не поддерживает вызов функций, этот аргумент не будет иметь эффекта. Каждый инструмент должен передаваться в формате JSON Schema, указывающем имя, описание и типы аргументов инструмента. Подробнее см. в нашем [руководстве по шаблонам чата](https://huggingface.co/docs/transformers/main/en/chat_templating#automated-function-conversion-for-tool-use).

add_generation_prompt (`bool`, *необязательный*) : Этот аргумент не выполняет никаких действий для `MistralCommonBackend`. Однако его нельзя использовать одновременно с `continue_final_message`, чтобы сохранить согласованность API. Если любой диалог заканчивается сообщением ассистента, будет выброшена ошибка. В таких случаях используйте `continue_final_message`.

continue_final_message (bool, *optional*) : Если этот параметр установлен, чат будет отформатирован так, чтобы последнее сообщение в чате было незавершённым, без токенов EOS. Модель продолжит это сообщение, а не начнёт новое. Это позволяет «предзаполнить» часть ответа модели. Не может использоваться одновременно с `add_generation_prompt`.

tokenize (`bool`, по умолчанию `True`) : Флаг, определяющий, следует ли токенизировать вывод. Если `False`, выводом будет строка.

padding (`bool`, `str` или [PaddingStrategy](/docs/transformers/main/ru/internal/file_utils#transformers.utils.PaddingStrategy), *необязательный*, по умолчанию `False`) : Выберите стратегию выравнивания возвращаемых последовательностей (с учётом стороны выравнивания и индекса выравнивания модели) из следующих:  - `True` или `'longest'`: Выровнять до самой длинной последовательности в батче (или не выравнивать, если предоставлена только одна последовательность). - `'max_length'`: Выровнять до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. - `False` или `'do_not_pad'` (по умолчанию): Без выравнивания (т. е. может быть выведен батч с последовательностями разной длины).

truncation (`bool`, по умолчанию `False`) : Указывает, нужно ли обрезать последовательности до максимальной длины. Не имеет эффекта, если tokenize равно `False`.

max_length (`int`, *optional*) : Максимальная длина (в токенах), используемая для выравнивания или усечения. Не влияет на результат, если tokenize равно `False`. Если значение не указано, по умолчанию будет использован атрибут `max_length` токенизатора.

return_tensors (`str` или [TensorType](/docs/transformers/main/ru/internal/file_utils#transformers.TensorType), *необязательный*) : Если задано, возвращает тензоры конкретного фреймворка. Не имеет эффекта, если tokenize равно `False`. Допустимые значения: - `'pt'`: Возвращает объекты `torch.Tensor` PyTorch.

return_dict (`bool`, по умолчанию `False`) : Возвращать ли словарь с именованными выводами. Не имеет значения, если tokenize равно `False`. Если хотя бы один диалог содержит изображение, его пиксельные значения будут возвращены в ключе `pixel_values`, а размеры изображений — в ключе `image_sizes`.

reasoning_effort (`ReasoningEffort`, *необязательный*) : Уровень рассуждений, используемый для завершения чата в моделях, которые его поддерживают. Возможные значения: - `ReasoningEffort.none`: Модель не будет рассуждать. - `ReasoningEffort.high`: Модель будет использовать подход рассуждений. Если значение не указано, будет использован уровень рассуждений по умолчанию.

kwargs (дополнительные аргументы ключ-значение, *необязательные*) : Дополнительные аргументы, передаваемые в метод `ChatCompletionRequest.from_openai` библиотеки mistral-common.

**Возвращает:** `Union[str, list[int], list[str], list[list[int]], BatchEncoding]`

Токенизированный чат на данный момент, включая управляющие токены. Этот вывод готов к передаче в модель, как напрямую, так и через методы вроде `generate()`.

Преобразует список словарей с ключами `"role"` и `"content"` в список идентификаторов токенов.

#### batch_decode[[transformers.MistralCommonBackend.batch_decode]]

```python
batch_decode(sequences: typing.Union[list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')], skip_special_tokens: bool = False, clean_up_tokenization_spaces: bool | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L512)

**Параметры:**

sequences (`Union[list[int], list[list[int]], np.ndarray, torch.Tensor]`) : Список идентификаторов токенизированного входа. Может быть получен с помощью метода `__call__`.

skip_special_tokens (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли удалять специальные токены при декодировании.

clean_up_tokenization_spaces (`bool`, *необязательный*) : Указывает, следует ли очищать пробелы токенизации. Если `None`, по умолчанию используется `self.clean_up_tokenization_spaces`.

kwargs (дополнительные аргументы ключ-значение, *необязательные*) : не поддерживаются в `MistralCommonBackend.batch_decode`. Использование приведёт к ошибке.

**Возвращает:** `list[str]`

Список декодированных предложений.

Преобразуйте список списков идентификаторов токенов в список строк, вызвав decode.

Этот метод предоставляется в целях обратной совместимости. Метод `decode` теперь нативно обрабатывает пакетный ввод, поэтому вы можете использовать `decode` напрямую вместо `batch_decode`.

#### build_inputs_with_special_tokens[[transformers.MistralCommonBackend.build_inputs_with_special_tokens]]

```python
build_inputs_with_special_tokens(token_ids_0: list, token_ids_1: None = None)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1284)

**Параметры:**

token_ids_0 (`list[int]`) : Список идентификаторов, к которым будут добавлены специальные токены.

token_ids_1 (`None`, *необязательный*) : None, сохранено для соответствия сигнатуре Transformers.

**Возвращает:** `list[int]`

Список входных идентификаторов с соответствующими специальными токенами.

Создайте входные данные модели из последовательности, добавив специальные токены.

Этот метод динамически формирует входные данные на основе `mode` токенизатора:
- `"test"`: seq0 [EOS]
- `"finetuning"`: [BOS] seq0

#### convert_added_tokens[[transformers.MistralCommonBackend.convert_added_tokens]]

```python
convert_added_tokens(obj: tokenizers.AddedToken | typing.Any, save: bool = False, add_type_field: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1704)

`MistralCommonBackend` намеренно не реализует `convert_added_tokens`.

Если вы хотите, чтобы такое поведение было реализовано, пожалуйста, создайте issue в репозиториях `Transformers` или `mistral-common` с соответствующим запросом.

#### create_token_type_ids_from_sequences[[transformers.MistralCommonBackend.create_token_type_ids_from_sequences]]

```python
create_token_type_ids_from_sequences(token_ids_0: list, token_ids_1: None = None)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1313)

**Параметры:**

token_ids_0 (`list[int]`) : Список идентификаторов.

token_ids_1 (`None`, *необязательный*) : None, сохранено для соответствия сигнатуре Transformers.

**Возвращает:** `list[int]`

Идентификаторы типов токенов в соответствии с настроенным шаблоном.

Создайте маску нулей из идентификаторов токенов с добавленными специальными токенами.

Сохранено для соответствия реализации в Transformers.

#### decode[[transformers.MistralCommonBackend.decode]]

```python
decode(token_ids: typing.Union[int, list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')], skip_special_tokens: bool = False, clean_up_tokenization_spaces: bool | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L475)

**Параметры:**

token_ids (`Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]`) : одна последовательность или батч (список последовательностей) токенизированных входных id. Может быть получена с помощью метода `__call__`.

skip_special_tokens (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли удалять специальные токены при декодировании.

clean_up_tokenization_spaces (`bool`, *необязательный*) : Указывает, следует ли очищать пробелы токенизации. Если `None`, по умолчанию используется `self.clean_up_tokenization_spaces`.

kwargs (дополнительные аргументы ключ-значение, *необязательные*) : не поддерживаются в `MistralCommonBackend.decode`. Использование приведёт к ошибке.

**Возвращает:** `Union[str, list[str]]`

Декодированная строка для одной последовательности или список декодированных строк для батча последовательностей.

Преобразует последовательность идентификаторов в строку, используя токенизатор и словарь, с опциями для удаления специальных токенов и очистки пробелов токенизации.

#### encode[[transformers.MistralCommonBackend.encode]]

```python
encode(text: str | list[int], text_pair: None = None, add_special_tokens: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, verbose: bool = True, return_offsets_mapping: typing.Literal[False] = False, split_special_tokens: typing.Literal[False] = False, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L378)

**Параметры:**

text (`str` или `list[int]`) : Первая последовательность для кодирования. Это может быть строка или список целых чисел (идентификаторы токенизированной строки).

text_pair (`None`, *необязательный*) : не поддерживается в `MistralCommonBackend.encode`. Оставлен для соответствия сигнатуре `PreTrainedTokenizerBase.encode`.

add_special_tokens (`bool`, *необязательный*, по умолчанию `True`) : Добавлять ли специальные токены при кодировании последовательностей. Для этого используется базовая функция `PretrainedTokenizerBase.build_inputs_with_special_tokens`, которая определяет, какие токены автоматически добавляются к входным идентификаторам. Это полезно, если вы хотите автоматически добавлять токены `bos` или `eos`. При загрузке Tokenizer в режиме `finetuning` добавляются оба токена: `bos` и `eos`. В противном случае, в режиме "test", добавляется только `bos`.

padding (`bool`, `str` или [PaddingStrategy](/docs/transformers/main/ru/internal/file_utils#transformers.utils.PaddingStrategy), *необязательный*, по умолчанию `False`) : Включает и управляет выравниванием. Принимает следующие значения:  - `True` или `'longest'`: Выравнивание до самой длинной последовательности в батче (или без выравнивания, если предоставлена только одна последовательность). - `'max_length'`: Выравнивание до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. - `False` или `'do_not_pad'` (по умолчанию): Без выравнивания (т. е. на выходе может быть батч с последовательностями разной длины).

truncation (`bool`, `str` или [TruncationStrategy](/docs/transformers/main/ru/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *optional*, по умолчанию `False`) : Включает и управляет усечением. Принимает следующие значения:  - `True` или `'longest_first'`: Усечение до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. - `False` или `'do_not_truncate'` (по умолчанию): Без усечения (т. е. может выдать батч с длинами последовательностей, превышающими максимальный допустимый размер входа модели).

max_length (`int`, *optional*) : Управляет максимальной длиной, используемой одним из параметров усечения/дополнения. Если значение не задано или равно `None`, будет использована предопределённая максимальная длина модели, если один из параметров усечения/дополнения требует указания максимальной длины. Если у модели нет конкретной максимальной длины входных данных (как у XLNet), усечение/дополнение до максимальной длины будет отключено.

stride (`int`, *optional*, по умолчанию 0) : Если задано число вместе с `max_length`, то переполненные токены, возвращаемые при `return_overflowing_tokens=True`, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.

pad_to_multiple_of (`int`, *optional*) : Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы `padding` был активирован. Это особенно полезно для использования Tensor Cores на аппаратных средствах NVIDIA с вычислительной способностью `>= 7.5` (Volta).

padding_side (`str`, *необязательный*) : Сторона, на которой модель должна применять выравнивание. Значение выбирается из ['right', 'left']. Значение по умолчанию берётся из атрибута класса с тем же именем.

return_tensors (`str` или [TensorType](/docs/transformers/main/ru/internal/file_utils#transformers.TensorType), *необязательный*) : Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:  - `'pt'`: Возвращает объекты `torch.Tensor` PyTorch.

- ****kwargs** : Не поддерживается в `MistralCommonBackend.encode`. Использование приведёт к ошибке.

**Возвращает:** `list[int]`, `torch.Tensor`

Токенизированные идентификаторы текста.

Преобразует строку в последовательность идентификаторов (целых чисел), используя токенизатор и словарь.

#### from_pretrained[[transformers.MistralCommonBackend.from_pretrained]]

```python
from_pretrained(pretrained_model_name_or_path: str | os.PathLike, *init_inputs, mode: str | ValidationMode = 'test', cache_dir: str | os.PathLike | None = None, force_download: bool = False, local_files_only: bool = False, token: str | bool | None = None, revision: str = 'main', model_max_length: int = 1000000000000000019884624838656, padding_side: str = 'left', truncation_side: str = 'right', model_input_names: list[str] | None = None, clean_up_tokenization_spaces: bool = False, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1437)

**Параметры:**

pretrained_model_name_or_path (`str` или `os.PathLike`) : Может быть одним из:  - строка, *model id* предопределенного токенизатора, размещенного в репозитории моделей на huggingface.co. - путь к *каталогу*, содержащему конфигурацию токенизатора, например, сохраненную с помощью метода `MistralCommonBackend.tokenization_mistral_common.save_pretrained`, например, `./my_model_directory/`.

mode (`Union[str, ValidationMode]`, *необязательный*, по умолчанию `ValidationMode.test`) : Режим валидации для токенизатора `MistralTokenizer`. Возможные значения: - `"finetuning"` или `ValidationMode.finetuning`: Режим дообучения. - `"test"` или `ValidationMode.test`: Режим тестирования. Он изменяет способ, которым токенизатор валидирует входные данные и готовит запрос к модели.

cache_dir (`str` или `os.PathLike`, *необязательный*) : Путь к каталогу, в котором должны кэшироваться загруженные предопределённые файлы словаря токенизатора, если стандартный кэш не используется.

force_download (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли принудительно (пере)скачивать файлы словаря и заменять кэшированные версии, если они существуют.

token (`str` или *bool*, *необязательный*) : Токен, используемый в качестве HTTP bearer-авторизации для удалённых файлов. Если `True`, будет использован токен, сгенерированный при выполнении `hf auth login` (хранится в `~/.huggingface`).

local_files_only (`bool`, *необязательный*, по умолчанию `False`) : Использовать только локальные файлы и не пытаться скачивать файлы из сети.

revision (`str`, *необязательный*, по умолчанию `"main"`) : Конкретная версия модели, которую следует использовать. Поскольку для хранения моделей и других артефактов на huggingface.co используется система на базе git, `revision` может быть любым идентификатором, разрешённым git: именем ветки, именем тега или идентификатором коммита.

max_length (`int`, *optional*) : Управляет максимальной длиной, используемой одним из параметров усечения/дополнения. Если значение не задано или равно `None`, будет использована предопределённая максимальная длина модели, если один из параметров усечения/дополнения требует указания максимальной длины. Если у модели нет конкретной максимальной длины входных данных (как у XLNet), усечение/дополнение до максимальной длины будет отключено.

padding_side (`str`, *необязательный*, по умолчанию `"left"`) : Сторона, на которой модель должна применять выравнивание. Значение должно выбираться из ['right', 'left']. Значение по умолчанию берётся из атрибута класса с тем же именем.

truncation_side (`str`, *необязательный*, по умолчанию `"right"`) : Сторона, на которой модель должна применять усечение. Следует выбрать значение из ['right', 'left'].

model_input_names (`List[str]`, *необязательный*) : Список входных данных, принимаемых прямой передачей модели (например, `"token_type_ids"` или `"attention_mask"`). Значение по умолчанию выбирается из атрибута класса с тем же именем.

clean_up_tokenization_spaces (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли модели удалять пробелы, добавленные при разбиении входного текста в процессе токенизации.

kwargs (дополнительные аргументы ключ-значение, *необязательные*) : не поддерживаются в `MistralCommonBackend.from_pretrained`. Использование приведёт к ошибке.

Создайте экземпляр `MistralCommonBackend` из предопределенного токенизатора.

#### get_chat_template[[transformers.MistralCommonBackend.get_chat_template]]

```python
get_chat_template(chat_template: str | None = None, tools: list[dict] | None = None)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1713)

`MistralCommonBackend` намеренно не реализует `get_chat_template`, так как `mistral-common` не использует шаблоны чата.

#### get_special_tokens_mask[[transformers.MistralCommonBackend.get_special_tokens_mask]]

```python
get_special_tokens_mask(token_ids_0: list, token_ids_1: None = None, already_has_special_tokens: bool = False)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L691)

**Параметры:**

token_ids_0 (`list[int]`) : Список идентификаторов последовательности.

token_ids_1 (`None`, *необязательный*) : None, сохранено для соответствия реализации в Transformers.

already_has_special_tokens (`bool`, *необязательный*, по умолчанию `False`) : Указывает, является ли список токенов уже отформатированным со специальными токенами для модели.

**Возвращаемое значение:** список целых чисел в диапазоне [0, 1]

1 для специального токена, 0 для токена последовательности.

Получает идентификаторы последовательностей из списка токенов, в который не добавлены специальные токены. Этот метод вызывается при добавлении специальных токенов с помощью методов `prepare_for_model` или `encode_plus` токенизатора.

#### get_vocab[[transformers.MistralCommonBackend.get_vocab]]

```python
get_vocab()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L352)

**Возвращает:** `Dict[str, int]`

Словарь.

Возвращает словарь в виде словаря с соответствием токенов и индексов.

Это потерянное преобразование. Из-за преобразования частичных последовательностей байтов UTF-8 в символ � несколько идентификаторов токенов могут декодироваться в одну и ту же строку.

#### num_special_tokens_to_add[[transformers.MistralCommonBackend.num_special_tokens_to_add]]

```python
num_special_tokens_to_add(pair: typing.Literal[False] = False)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1337)

**Параметры:**

pair (`Literal[False]`, *необязательный*) : False, сохранён для соответствия сигнатуре Transformer.

**Возвращает:** `int`

Количество специальных токенов, добавляемых к последовательностям.

Возвращает количество добавленных токенов при кодировании последовательности со специальными токенами.

Это кодирует фиктивный вход и проверяет количество добавленных токенов, поэтому не является эффективным. Не помещайте этот код внутрь цикла обучения.

#### prepare_for_model[[transformers.MistralCommonBackend.prepare_for_model]]

```python
prepare_for_model(ids: list, pair_ids: None = None, add_special_tokens: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, return_token_type_ids: bool | None = None, return_attention_mask: bool | None = None, return_overflowing_tokens: bool = False, return_special_tokens_mask: bool = False, return_length: bool = False, verbose: bool = True, prepend_batch_axis: bool = False, return_offsets_mapping: typing.Literal[False] = False, split_special_tokens: typing.Literal[False] = False, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L844)

**Параметры:**

ids (`list[int]`) : Токенизированные идентификаторы входных данных первой последовательности.

pair_ids (`None`, *необязательный*) : Не поддерживается в `MistralCommonBackend`. Оставлен для соответствия интерфейсу `PreTrainedTokenizerBase`.

add_special_tokens (`bool`, *необязательный*, по умолчанию `True`) : Добавлять ли специальные токены при кодировании последовательностей. Для этого используется базовая функция `PretrainedTokenizerBase.build_inputs_with_special_tokens`, которая определяет, какие токены автоматически добавляются к входным идентификаторам. Это полезно, если вы хотите автоматически добавлять токены `bos` или `eos`. При загрузке Tokenizer в режиме `finetuning` добавляются оба токена: `bos` и `eos`. В противном случае, в режиме "test", добавляется только `bos`.

padding (`bool`, `str` или [PaddingStrategy](/docs/transformers/main/ru/internal/file_utils#transformers.utils.PaddingStrategy), *необязательный*, по умолчанию `False`) : Включает и управляет выравниванием. Принимает следующие значения:  - `True` или `'longest'`: Выравнивание до самой длинной последовательности в батче (или без выравнивания, если предоставлена только одна последовательность). - `'max_length'`: Выравнивание до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. - `False` или `'do_not_pad'` (по умолчанию): Без выравнивания (т. е. на выходе может быть батч с последовательностями разной длины).

truncation (`bool`, `str` или [TruncationStrategy](/docs/transformers/main/ru/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *optional*, по умолчанию `False`) : Включает и управляет усечением. Принимает следующие значения:  - `True` или `'longest_first'`: Усечение до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. - `False` или `'do_not_truncate'` (по умолчанию): Без усечения (т. е. может выдать батч с длинами последовательностей, превышающими максимальный допустимый размер входа модели).

max_length (`int`, *optional*) : Управляет максимальной длиной, используемой одним из параметров усечения/дополнения. Если значение не задано или равно `None`, будет использована предопределённая максимальная длина модели, если один из параметров усечения/дополнения требует указания максимальной длины. Если у модели нет конкретной максимальной длины входных данных (как у XLNet), усечение/дополнение до максимальной длины будет отключено.

stride (`int`, *optional*, по умолчанию 0) : Если задано число вместе с `max_length`, то переполненные токены, возвращаемые при `return_overflowing_tokens=True`, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.

pad_to_multiple_of (`int`, *optional*) : Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы `padding` был активирован. Это особенно полезно для использования Tensor Cores на аппаратных средствах NVIDIA с вычислительной способностью `>= 7.5` (Volta).

padding_side (`str`, *необязательный*) : Сторона, на которой модель должна применять выравнивание. Значение выбирается из ['right', 'left']. Значение по умолчанию берётся из атрибута класса с тем же именем.

return_tensors (`str` или [TensorType](/docs/transformers/main/ru/internal/file_utils#transformers.TensorType), *необязательный*) : Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:  - `'pt'`: Возвращает объекты `torch.Tensor` PyTorch.

return_token_type_ids (`bool`, *необязательный*) : Нужно ли возвращать идентификаторы типов токенов. Для `MistralCommonBackend` возвращается список нулей длиной последовательности, так как поддерживается только одна последовательность.  [Что такое идентификаторы типов токенов?](../glossary#token-type-ids)

return_attention_mask (`bool`, *необязательный*) : Указывает, следует ли возвращать маску внимания. Если значение не задано, маска внимания будет возвращена в соответствии со значением по умолчанию конкретного токенизатора, определяемым атрибутом `return_outputs`.  [Что такое маски внимания?](../glossary#attention-mask)

return_overflowing_tokens (`bool`, *необязательный*, по умолчанию `False`) : Возвращать ли переполненные последовательности токенов. Если передана пара последовательностей входных идентификаторов (или батч пар) с `truncation_strategy = longest_first` или `True`, вместо возврата переполненных токенов будет выброшена ошибка.

return_special_tokens_mask (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли возвращать информацию о маске специальных токенов.

return_length  (`bool`, *необязательный*, по умолчанию `False`) : Возвращать ли длины закодированных входных данных.

verbose (`bool`, *необязательный*, по умолчанию `True`) : Выводить ли дополнительную информацию и предупреждения.

return_offsets_mapping (`Literal[False]`, *необязательный*) : False, сохранён для соответствия сигнатуре Transformers.

split_special_tokens (`Literal[False]`, *необязательный*) : False, сохранён для соответствия сигнатуре Transformers.

- ****kwargs** : передаются в метод `self.tokenize()`

**Возвращает:** [BatchEncoding](/docs/transformers/main/ru/main_classes/tokenizer#transformers.BatchEncoding)

[BatchEncoding](/docs/transformers/main/ru/main_classes/tokenizer#transformers.BatchEncoding) со следующими полями:

- **input_ids** -- Список идентификаторов токенов, которые подаются в модель.

  [Что такое входные идентификаторы?](../glossary#input-ids)

- **attention_mask** -- список индексов, указывающих, на какие токены модель должна обращать внимание (когда `return_attention_mask=True` или если *"attention_mask"* входит в `self.model_input_names`).

  [Что такое маски внимания?](../glossary#attention-mask)

- **overflowing_tokens** -- Список переполненных последовательностей токенов (если заданы `max_length` и `return_overflowing_tokens=True`).
- **num_truncated_tokens** -- Количество отсечённых токенов (если задано `max_length` и `return_overflowing_tokens=True`).
- **special_tokens_mask** -- Список нулей и единиц, где 1 указывает на добавленные специальные токены, а 0 — на обычные токены последовательности (при `add_special_tokens=True` и `return_special_tokens_mask=True`).
- **length** -- Длина входных данных (когда `return_length=True`)

Подготавливает последовательность входных идентификаторов для использования моделью. Добавляет специальные токены, обрезает последовательности при превышении длины с учётом специальных токенов и управляет скользящим окном (с заданным пользователем шагом) для переполняющих токенов.

#### save_chat_templates[[transformers.MistralCommonBackend.save_chat_templates]]

```python
save_chat_templates(save_directory: str | os.PathLike, tokenizer_config: dict, filename_prefix: str | None, save_jinja_files: bool)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1718)

`MistralCommonBackend` намеренно не реализует `save_chat_templates`, так как `mistral-common` не использует шаблоны чата.

#### save_pretrained[[transformers.MistralCommonBackend.save_pretrained]]

```python
save_pretrained(save_directory: str | os.PathLike | pathlib.Path, push_to_hub: bool = False, token: str | bool | None = None, commit_message: str | None = None, repo_id: str | None = None, private: bool | None = None, save_format: str | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1552)

**Параметры:**

save_directory (`str | os.PathLike | Path`) : Каталог, в котором будет сохранён токенизатор.

push_to_hub (`bool`, *необязательный*, по умолчанию `False`) : Загрузить на HF Hub после сохранения.

token (`str` или `bool`, *необязательный*) : Токен для аутентификации в Hub.

commit_message (`str`, *необязательный*) : Сообщение о коммите при отправке.

repo_id (`str`, *необязательный*) : идентификатор репозитория в Hub.

private (`bool`, *необязательный*) : Указывает, является ли репозиторий закрытым.

save_format (`str`, *необязательный*) : `"mistral"` для сохранения в нативном формате tekken, `"hf"` для формата HuggingFace. *None* сохраняет исходный формат.

kwargs (`dict`, *необязательный*) : Не поддерживается — будет вызвана ошибка.

**Возвращает:** `tuple[str, ...]`

Пути сохранённых файлов.

Сохраните полное состояние токенизатора.

Если `save_format` равно `"mistral"` (или *None* для токенизатора tekken), исходный файл токенизатора (например, `tekken.json`) записывается в *save_directory*. Если `save_format` равно `"hf"`, вместо этого создаются файлы в формате HF (`tokenizer.json` + `tokenizer_config.json`).

#### save_vocabulary[[transformers.MistralCommonBackend.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L1729)

`MistralCommonBackend` намеренно не реализует `save_vocabulary`.

Это происходит потому, что `mistral-common` настраивается одним файлом токенизатора. Если вы хотите сохранить словарь, рассмотрите возможность использования метода `save_pretrained`.

#### tokenize[[transformers.MistralCommonBackend.tokenize]]

```python
tokenize(text: str, return_offsets_mapping: typing.Literal[False] = False, split_special_tokens: typing.Literal[False] = False, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L645)

**Параметры:**

text (`str`) : Последовательность, подлежащая кодированию.

return_offsets_mapping (`Literal[False]`, *необязательный*) : False, сохранён для соответствия сигнатуре Transformers.

split_special_tokens (`Literal[False]`, *необязательный*) : False, сохранён для соответствия сигнатуре Transformers.

- ****kwargs** (дополнительные именованные аргументы): не поддерживаются в `MistralCommonBackend.tokenize`. Использование приведёт к ошибке.

**Возвращает:** `list[str]`

Список токенов.

Преобразует строку в последовательность токенов с помощью токенизатора.

Разбивает текст на слова для словарей на основе слов или на под-слова для словарей на основе под-слов.

#### truncate_sequences[[transformers.MistralCommonBackend.truncate_sequences]]

```python
truncate_sequences(ids: list, pair_ids: None = None, num_tokens_to_remove: int = 0, truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first', stride: int = 0, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_mistral_common.py#L974)

**Параметры:**

ids (`list[int]`) : Токенизированные входные идентификаторы. Можно получить из строки, последовательно вызывая методы `tokenize` и `convert_tokens_to_ids`.

pair_ids (`None`, *необязательный*) : Не поддерживается в `MistralCommonBackend`. Оставлен для соответствия сигнатуре `PreTrainedTokenizerBase.truncate_sequences`.

num_tokens_to_remove (`int`, *необязательный*, по умолчанию 0) : Количество токенов, которые нужно удалить с помощью стратегии усечения.

truncation_strategy (`str` или [TruncationStrategy](/docs/transformers/main/ru/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *необязательный*, по умолчанию `'longest_first'`) : Стратегия, используемая для усечения. Возможные значения:  - `'longest_first'`: Усечение до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой длины входа для модели, если этот аргумент не указан. - `'do_not_truncate'` (по умолчанию): Усечение не выполняется (т. е. может быть выведен батч с длинами последовательностей, превышающими максимально допустимый размер входа модели).

stride (`int`, *optional*, по умолчанию 0) : Если установлено положительное число, возвращаемые переполненные токены будут содержать некоторые токены из возвращаемой основной последовательности. Значение этого аргумента определяет количество дополнительных токенов.

**Возвращает:** `Tuple[list[int], None, list[int]]`

Обрезанные `ids` и список переполняющих токенов. Возвращается `None` для соответствия сигнатуре Transformers.

Обрезает пару последовательностей на месте согласно стратегии.

## Mistral3Model[[transformers.Mistral3Model]]

#### transformers.Mistral3Model[[transformers.Mistral3Model]]

```python
transformers.Mistral3Model(config: Mistral3Config)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral3/modeling_mistral3.py#L200)

**Параметры:**

config ([Mistral3Config](/docs/transformers/main/ru/model_doc/mistral3#transformers.Mistral3Config)) : Класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

Модель Mistral3, состоящая из визуального бэкбона и языковой модели, без заголовка для моделирования языка.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.Mistral3Model.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, pixel_values: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, vision_feature_layer: int | list[int] | None = None, use_cache: bool | None = None, image_sizes: typing.Optional[torch.Tensor] = None, mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral3/modeling_mistral3.py#L268)

**Параметры:**

input_ids (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательно*) : Индексы токенов входной последовательности в словаре. По умолчанию заполнение (padding) игнорируется. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/main/ru/model_doc/auto#transformers.AutoTokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`, *необязательно*) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [PixtralImageProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralImageProcessor). Подробности см. в [PixtralImageProcessor.__call__()](/docs/transformers/main/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) ([PixtralProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralProcessor) использует [PixtralImageProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralImageProcessor) для обработки изображений).

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

position_ids (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательно*) : Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона `[0, config.n_positions - 1]`.  [Что такое position IDs?](../glossary#position-ids)

past_key_values (`~cache_utils.Cache`, *необязательный*) : Предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это `past_key_values`, возвращаемые моделью на предыдущем этапе декодирования, когда `use_cache=True` или `config.use_cache=True`. В качестве входного значения допускается только экземпляр [Cache](/docs/transformers/main/ru/internal/generation_utils#transformers.Cache), см. наше [руководство по kv cache](https://huggingface.co/docs/transformers/en/kv_cache). Если `past_key_values` не переданы, по умолчанию будет инициализирован [DynamicCache](/docs/transformers/main/ru/internal/generation_utils#transformers.DynamicCache). Модель будет выводить тот же формат кэша, который был передан на вход. Если используются `past_key_values`, ожидается, что пользователь передаст только необработанные `input_ids` (те, для которых не заданы их прошлые состояния ключей и значений в этой модели) с формой `(batch_size, unprocessed_length)` вместо всех `input_ids` с формой `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`, *необязательно*) : По желанию, вместо передачи `input_ids` можно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексы `input_ids` преобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели.

vision_feature_layer (`Union[int, list[int]]`, *необязательный*) : Индекс слоя, из которого извлекаются визуальные признаки. Если указано несколько индексов, визуальные признаки соответствующих индексов будут объединены в один набор визуальных признаков.

use_cache (`bool`, *необязательный*) : Если установлено в `True`, состояния ключей и значений `past_key_values` возвращаются и могут использоваться для ускорения декодирования (см. `past_key_values`).

image_sizes (`torch.Tensor` формы `(batch_size, 2)`, *необязательный*) : Размеры изображений в батче, представленные как (высота, ширина) для каждого изображения.

mm_encoder_outputs (`dict[str, ~modeling_outputs.BaseModelOutputWithPooling]`, *необязательный*) : Словарь, где ключами являются поддерживаемые модальности, а значениями — закодированные выходные данные для данной модальности. Каждый закодированный выход представляет собой кортеж, состоящий из (`pooler_output`, *необязательный*: `last_hidden_states`, *необязательный*: `hidden_states`, *необязательный*: `attentions`) `pooler_output` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) — это последовательность мультимодальных признаков энкодера, объединенных в текстовые эмбеддинги.

**Возвращает:** `Mistral3ModelOutputWithPast` или `tuple(torch.Tensor)`

Объект `Mistral3ModelOutputWithPast` или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([Mistral3Config](/docs/transformers/main/ru/model_doc/mistral3#transformers.Mistral3Config)) и входных данных.

Метод forward модели [Mistral3Model](/docs/transformers/main/ru/model_doc/mistral3#transformers.Mistral3Model) переопределяет специальный метод `__call__`.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр `Module`, а не эту функцию, поскольку первый выполняет шаги предварительной и постобработки, тогда как второй молча их игнорирует.

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.

  Если используется `past_key_values`, выводится только последнее скрытое состояние последовательностей формы `(batch_size, 1, hidden_size)`.
- **past_key_values** (`Cache`, *необязательный*, возвращается при передаче `use_cache=True` или когда `config.use_cache=True`) -- это экземпляр [Cache](/docs/transformers/main/ru/internal/generation_utils#transformers.Cache). Подробнее см. в нашем [руководстве по кэшированию kv](https://huggingface.co/docs/transformers/en/kv_cache).

  Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать (см. вход `past_key_values`) для ускорения последовательного декодирования.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
- **attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
- **image_hidden_states** (`torch.Tensor`, *необязательный*) -- `torch.Tensor` размера `(batch_size, num_images, sequence_length, hidden_size)`. image_hidden_states модели, полученные визуальным энкодером после проекции последнего скрытого состояния.

#### get_image_features[[transformers.Mistral3Model.get_image_features]]

```python
get_image_features(pixel_values: Tensor, image_sizes: Tensor, vision_feature_layer: int | list[int] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral3/modeling_mistral3.py#L209)

**Параметры:**

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [PixtralImageProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralImageProcessor). Подробности см. в [PixtralImageProcessor.__call__()](/docs/transformers/main/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) ([PixtralProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralProcessor) использует [PixtralImageProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralImageProcessor) для обработки изображений).

image_sizes (`torch.Tensor` формы `(batch_size, 2)`) : Размеры изображений в батче, представленные как (высота, ширина) для каждого изображения.

vision_feature_layer (`Union[int, list[int]]`, *необязательный*) : Индекс слоя, из которого извлекаются визуальные признаки. Если указано несколько индексов, визуальные признаки соответствующих индексов будут объединены в один набор визуальных признаков.

**Возвращает:** [BaseModelOutputWithPooling](/docs/transformers/main/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или `tuple(torch.Tensor)`

Объект [BaseModelOutputWithPooling](/docs/transformers/main/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([Mistral3Config](/docs/transformers/main/ru/model_doc/mistral3#transformers.Mistral3Config)) и входных данных.

Получает последние скрытые состояния изображений из визуальной башни и применяет мультимодальную проекцию.

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **pooler_output** (`torch.Tensor` формы `(batch_size, hidden_size)`) -- Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
- **attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

#### get_placeholder_mask[[transformers.Mistral3Model.get_placeholder_mask]]

```python
get_placeholder_mask(input_ids: LongTensor, inputs_embeds: Tensor, image_features: Tensor)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral3/modeling_mistral3.py#L244)

Получает маску мультимодальных плейсхолдеров из `input_ids` или `inputs_embeds` и проверяет, что количество плейсхолдер-токенов равно длине мультимодальных признаков. Если длины различаются, возникает ошибка.

## Mistral3ForConditionalGeneration[[transformers.Mistral3ForConditionalGeneration]]

#### transformers.Mistral3ForConditionalGeneration[[transformers.Mistral3ForConditionalGeneration]]

```python
transformers.Mistral3ForConditionalGeneration(config: Mistral3Config)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral3/modeling_mistral3.py#L335)

**Параметры:**

config ([Mistral3Config](/docs/transformers/main/ru/model_doc/mistral3#transformers.Mistral3Config)) : Класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

Модель MISTRAL3, состоящая из визуального бэкбона и языковой модели.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.Mistral3ForConditionalGeneration.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, pixel_values: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, logits_to_keep: typing.Union[int, torch.Tensor] = 0, image_sizes: typing.Optional[torch.Tensor] = None, mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral3/modeling_mistral3.py#L365)

**Параметры:**

input_ids (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательно*) : Индексы токенов входной последовательности в словаре. По умолчанию заполнение (padding) игнорируется. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/main/ru/model_doc/auto#transformers.AutoTokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`, *необязательно*) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [PixtralImageProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralImageProcessor). Подробности см. в [PixtralImageProcessor.__call__()](/docs/transformers/main/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) ([PixtralProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralProcessor) использует [PixtralImageProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralImageProcessor) для обработки изображений).

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

position_ids (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательно*) : Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона `[0, config.n_positions - 1]`.  [Что такое position IDs?](../glossary#position-ids)

past_key_values (`~cache_utils.Cache`, *необязательный*) : Предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это `past_key_values`, возвращаемые моделью на предыдущем этапе декодирования, когда `use_cache=True` или `config.use_cache=True`. В качестве входного значения допускается только экземпляр [Cache](/docs/transformers/main/ru/internal/generation_utils#transformers.Cache), см. наше [руководство по kv cache](https://huggingface.co/docs/transformers/en/kv_cache). Если `past_key_values` не переданы, по умолчанию будет инициализирован [DynamicCache](/docs/transformers/main/ru/internal/generation_utils#transformers.DynamicCache). Модель будет выводить тот же формат кэша, который был передан на вход. Если используются `past_key_values`, ожидается, что пользователь передаст только необработанные `input_ids` (те, для которых не заданы их прошлые состояния ключей и значений в этой модели) с формой `(batch_size, unprocessed_length)` вместо всех `input_ids` с формой `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`, *необязательно*) : По желанию, вместо передачи `input_ids` можно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексы `input_ids` преобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели.

labels (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательно*) : Метки для вычисления потерь маскированного языкового моделирования. Индексы должны находиться в диапазоне `[0, ..., config.vocab_size]` или равняться -100 (см. docstring `input_ids`). Токены с индексами, установленными в `-100`, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне `[0, ..., config.vocab_size]`.

use_cache (`bool`, *необязательный*) : Если установлено в `True`, состояния ключей и значений `past_key_values` возвращаются и могут использоваться для ускорения декодирования (см. `past_key_values`).

logits_to_keep (`Union[int, torch.Tensor]`, *необязательный*, по умолчанию `0`) : Если передано значение типа `int`, вычисляются logits для последних `logits_to_keep` токенов. Если передано `0`, logits вычисляются для всех `input_ids` (специальный случай). Для генерации нужны logits только последнего токена, и вычисление их только для этого токена позволяет сэкономить память, что становится весьма значимым для длинных последовательностей или большого размера словаря. Если передано значение типа `torch.Tensor`, оно должно быть одномерным и соответствовать индексам, которые нужно сохранить в измерении длины последовательности. Это полезно при использовании упакованного формата тензоров (одно измерение для batch и длины последовательности).

image_sizes (`torch.Tensor` формы `(batch_size, 2)`, *необязательный*) : Размеры изображений в батче, представленные как (высота, ширина) для каждого изображения.

mm_encoder_outputs (`dict[str, ~modeling_outputs.BaseModelOutputWithPooling]`, *необязательный*) : Словарь, где ключами являются поддерживаемые модальности, а значениями — закодированные выходные данные для данной модальности. Каждый закодированный выход представляет собой кортеж, состоящий из (`pooler_output`, *необязательный*: `last_hidden_states`, *необязательный*: `hidden_states`, *необязательный*: `attentions`) `pooler_output` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) — это последовательность мультимодальных признаков энкодера, объединенных в текстовые эмбеддинги.

**Возвращает:** `Mistral3CausalLMOutputWithPast` или `tuple(torch.Tensor)`

Объект `Mistral3CausalLMOutputWithPast` или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([Mistral3Config](/docs/transformers/main/ru/model_doc/mistral3#transformers.Mistral3Config)) и входных данных.

Метод forward класса [Mistral3ForConditionalGeneration](/docs/transformers/main/ru/model_doc/mistral3#transformers.Mistral3ForConditionalGeneration) переопределяет специальный метод `__call__`.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр `Module`, а не эту функцию, поскольку первый выполняет шаги предварительной и постобработки, тогда как второй молча их игнорирует.

- **loss** (`torch.Tensor` формы `(1,)`, *необязательный*, возвращается, если задан `labels`) -- Потеря языковой модели (для предсказания следующего токена).
- **logits** (`torch.Tensor` формы `(batch_size, sequence_length, config.vocab_size)`) — Оценки предсказаний языковой модели (оценки для каждого токена словаря до применения SoftMax).
- **past_key_values** (`Cache`, *необязательный*, возвращается при передаче `use_cache=True` или когда `config.use_cache=True`) -- это экземпляр [Cache](/docs/transformers/main/ru/internal/generation_utils#transformers.Cache). Подробнее см. в нашем [руководстве по кэшированию kv](https://huggingface.co/docs/transformers/en/kv_cache).

  Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать (см. вход `past_key_values`) для ускорения последовательного декодирования.
- **hidden_states** (`tuple[torch.Tensor]`, *необязательный*, возвращается, если передано `output_hidden_states=True` или если `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
- **attentions** (`tuple[torch.Tensor]`, *необязательный*, возвращается при передаче `output_attentions=True` или когда `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
- **image_hidden_states** (`torch.Tensor`, *необязательный*) -- `torch.Tensor` размера `(batch_size, num_images, sequence_length, hidden_size)`. image_hidden_states модели, полученные визуальным энкодером после проекции последнего скрытого состояния.

Пример:

```python
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Mistral3ForConditionalGeneration

>>> model = Mistral3ForConditionalGeneration.from_pretrained("mistralai/Mistral-Small-3.1-24B-Instruct-2503")
>>> processor = AutoProcessor.from_pretrained("mistralai/Mistral-Small-3.1-24B-Instruct-2503")

>>> prompt = "<s>[INST][IMG]What is the image?[/INST]"
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = processor(images=image, text=prompt, return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(**inputs, max_new_tokens=15)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"What is the image?The image depicts two cats lying on a pink blanket."
```

#### get_image_features[[transformers.Mistral3ForConditionalGeneration.get_image_features]]

```python
get_image_features(pixel_values: Tensor, image_sizes: Tensor, vision_feature_layer: int | list[int] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral3/modeling_mistral3.py#L348)

**Параметры:**

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [PixtralImageProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralImageProcessor). Подробности см. в [PixtralImageProcessor.__call__()](/docs/transformers/main/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) ([PixtralProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralProcessor) использует [PixtralImageProcessor](/docs/transformers/main/ru/model_doc/pixtral#transformers.PixtralImageProcessor) для обработки изображений).

image_sizes (`torch.Tensor` формы `(batch_size, 2)`) : Размеры изображений в батче, представленные как (высота, ширина) для каждого изображения.

vision_feature_layer (`Union[int, list[int]]`, *необязательный*) : Индекс слоя, из которого извлекаются визуальные признаки. Если указано несколько индексов, визуальные признаки соответствующих индексов будут объединены в один набор визуальных признаков.

**Возвращает:** [BaseModelOutputWithPooling](/docs/transformers/main/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или `tuple(torch.Tensor)`

Объект [BaseModelOutputWithPooling](/docs/transformers/main/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([Mistral3Config](/docs/transformers/main/ru/model_doc/mistral3#transformers.Mistral3Config)) и входных данных.

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **pooler_output** (`torch.Tensor` формы `(batch_size, hidden_size)`) -- Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
- **attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Пример:

```python
>>> from PIL import Image
>>> from transformers import AutoProcessor, Mistral3ForConditionalGeneration

>>> model = Mistral3ForConditionalGeneration.from_pretrained("mistralai/Mistral-Small-3.1-24B-Instruct-2503")
>>> processor = AutoProcessor.from_pretrained("mistralai/Mistral-Small-3.1-24B-Instruct-2503")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]
```

