Transformers documentation

Mistral 3

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была добавлена в Hugging Face Transformers 18.03.2025.

PyTorch

Mistral 3

Mistral 3 — это модель, оптимизированная по задержке, с существенно меньшим количеством слоев для сокращения времени одного прямого прохода. Эта модель добавляет понимание изображений и поддерживает длинные контексты длиной до 128K токенов без потери производительности.

Оригинальные контрольные точки Mistral 3 можно найти в организации Mistral AI.

Эта модель была предоставлена cyrilvallez и yonigozlan. Нажмите на модели Mistral3 в боковой панели справа, чтобы увидеть больше примеров применения Mistral3 к различным задачам.

Установите use_kernels=True в from_pretrained(), чтобы заменить поддерживаемые слои на оптимизированные ядра из Hub. Подробнее см. в разделе Загрузка ядер.

Приведённый ниже пример демонстрирует, как генерировать текст для изображения с помощью Pipeline и класса AutoModel.

Пайплайн
AutoModel
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'

Примечания

  • Mistral 3 поддерживает генерацию только текста.
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 принимает пакетные входные данные в виде изображений и текста.
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.
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_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneimage_token_index: int = 10projector_hidden_act: str = 'gelu'vision_feature_layer: int | list[int] = -1multimodal_projector_bias: bool = Falsespatial_merge_size: int = 2tie_word_embeddings: bool = True )

Параметры

  • 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, необязательный, по умолчанию 2) — Размер пространственного окна слияния, используемого для уменьшения количества визуальных токенов путём объединения соседних патчей.
  • tie_word_embeddings (bool, необязательный, по умолчанию True) — Определяет, следует ли связывать веса эмбеддингов согласно маппингу tied_weights_keys модели.

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

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Пример:

>>> 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

< >

( tokenizer_path: str | os.PathLike | pathlib.Pathmode: str | ValidationMode = 'test'model_max_length: int = 1000000000000000019884624838656padding_side: str = 'left'truncation_side: str = 'right'model_input_names: list[str] | None = Noneclean_up_tokenization_spaces: bool = False**kwargs )

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

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

pip install transformers[mistral-common]

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

Подробнее о mistral-common см. в 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.

Если у вас есть предложения по улучшению этого класса, пожалуйста, создайте issue в репозитории mistral-common на GitHub, если они касаются токенизатора, или в репозитории Transformers на GitHub, если они касаются интерфейса Hugging Face.

add_special_tokens

< >

( special_tokens_dict: dictreplace_extra_special_tokens: bool = True )

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

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

add_tokens

< >

( special_tokens_dict: dictreplace_extra_special_tokens: bool = True )

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

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

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | collections.abc.Callable] | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool = Falsetokenize: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_dict: bool = Truereasoning_effort: ReasoningEffort | None = None**kwargs ) → Union[str, list[int], list[str], list[list[int]], BatchEncoding]

Параметры

  • conversation (Union[List[Dict[str, str]], List[List[Dict[str, str]]]]) — список словарей с ключами «role» и «content», представляющий историю чата на данный момент.
  • tools (List[Union[Dict, Callable]], необязательный) — Список инструментов (вызываемых функций), доступных модели. Если шаблон не поддерживает вызов функций, этот аргумент не будет иметь эффекта. Каждый инструмент должен передаваться в виде JSON Schema, указывающего имя, описание и типы аргументов инструмента. Подробнее см. в нашем руководстве по шаблонам чата.
  • add_generation_prompt (bool, необязательный) — Этот аргумент не выполняет никаких действий для MistralCommonBackend. Однако его нельзя использовать одновременно с continue_final_message, чтобы сохранить согласованность API. Если какой-либо диалог заканчивается сообщением ассистента, будет выброшена ошибка. В таких случаях используйте continue_final_message.
  • continue_final_message (bool, необязательный) — Если этот параметр установлен, чат будет сформирован так, чтобы последнее сообщение в чате было незавершённым, без токенов EOS. Модель продолжит это сообщение, а не начнёт новое. Это позволяет «предзаполнить» часть ответа модели. Не может использоваться одновременно с add_generation_prompt.
  • tokenize (bool, по умолчанию True) — Определяет, следует ли токенизировать вывод. Если False, выводом будет строка.
  • padding (bool, str или PaddingStrategy, необязательный, по умолчанию False) — Выберите стратегию дополнения возвращаемых последовательностей (с учётом стороны дополнения модели и индекса дополнения) из следующих вариантов:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, по умолчанию False) — Определяет, нужно ли обрезать последовательности до максимальной длины. Не имеет эффекта, если tokenize равно False.
  • max_length (int, необязательный) — Максимальная длина (в токенах), используемая для дополнения или усечения. Не влияет на результат, если tokenize равно False. Если значение не указано, по умолчанию будет использован атрибут max_length токенизатора.
  • return_tensors (str или 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

< >

( sequences: typing.Union[list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Параметры

  • 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

< >

( token_ids_0: listtoken_ids_1: None = None ) → list[int]

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов, к которым будут добавлены специальные токены.
  • token_ids_1 (None, необязательный) — None, сохранено для соответствия сигнатуре Transformers.

Возвращает

list[int]

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

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

Этот метод динамически формирует входные данные в зависимости от mode токенизатора:

  • "test": seq0 [EOS]
  • "finetuning": [BOS] seq0

convert_added_tokens

< >

( obj: tokenizers.AddedToken | typing.Anysave: bool = Falseadd_type_field: bool = True )

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

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

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: None = None ) → list[int]

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов.
  • token_ids_1 (None, необязательный) — None, сохранено для соответствия сигнатуре Transformers.

Возвращает

list[int]

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

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

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

decode

< >

( token_ids: typing.Union[int, list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → Union[str, list[str]]

Параметры

  • token_ids (Union[int, 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.decode. Использование приведёт к ошибке.

Возвращает

Union[str, list[str]]

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

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

encode

< >

( text: str | list[int]text_pair: None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Noneverbose: bool = Truereturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → list[int], torch.Tensor

Параметры

  • 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, необязательный, по умолчанию False) — Включает и управляет выравниванием. Принимает следующие значения:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, str или TruncationStrategy, , необязательный, по умолчанию False) — Включает и управляет усечением. Принимает следующие значения:
    • True или 'longest_first': обрезка до максимальной длины, заданной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_truncate' (по умолчанию): без усечения (т.е. может выдать батч с длиной последовательности, превышающей максимальный допустимый размер входа модели).
  • max_length (int, необязательный) — Управляет максимальной длиной, используемой одним из параметров усечения/дополнения.

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

  • stride (int, необязательный, по умолчанию 0) — Если задано число вместе с max_length, то переполненные токены, возвращаемые при return_overflowing_tokens=True, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы padding был активирован. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
  • **kwargs — не поддерживается в MistralCommonBackend.encode. Использование приведёт к ошибке.

Возвращает

list[int], torch.Tensor

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

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

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike*init_inputsmode: str | ValidationMode = 'test'cache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'model_max_length: int = 1000000000000000019884624838656padding_side: str = 'left'truncation_side: str = 'right'model_input_names: list[str] | None = Noneclean_up_tokenization_spaces: bool = False**kwargs )

Параметры

  • 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, необязательный) — Управляет максимальной длиной, используемой одним из параметров усечения/дополнения.

    Если параметр не задан или установлен в 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

< >

( chat_template: str | None = Nonetools: list[dict] | None = None )

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

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Параметры

  • 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

< >

( ) → Dict[str, int]

Возвращает

Dict[str, int]

Словарь.

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

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

num_special_tokens_to_add

< >

( pair: typing.Literal[False] = False ) → int

Параметры

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

Возвращает

int

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

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

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

prepare_for_model

< >

( ids: listpair_ids: None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = Falsereturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → BatchEncoding

Параметры

  • 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, необязательный, по умолчанию False) — Включает и управляет выравниванием. Принимает следующие значения:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, str или TruncationStrategy, , необязательный, по умолчанию False) — Включает и управляет усечением. Принимает следующие значения:
    • True или 'longest_first': обрезка до максимальной длины, заданной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_truncate' (по умолчанию): без усечения (т.е. может выдать батч с длиной последовательности, превышающей максимальный допустимый размер входа модели).
  • max_length (int, необязательный) — Управляет максимальной длиной, используемой одним из параметров усечения/дополнения.

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

  • stride (int, необязательный, по умолчанию 0) — Если задано число вместе с max_length, то переполненные токены, возвращаемые при return_overflowing_tokens=True, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы padding был активирован. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
  • return_token_type_ids (bool, необязательный) — Возвращать ли идентификаторы типов токенов. Для MistralCommonBackend возвращается список нулей длиной последовательности, так как поддерживается только одна последовательность.

    Что такое идентификаторы типов токенов?

  • return_attention_mask (bool, необязательный) — Возвращать ли маску внимания. Если значение не указано, маска внимания будет возвращена в соответствии со значением по умолчанию для конкретного токенизатора, определяемым атрибутом return_outputs .

    Что такое маски внимания?

  • 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

BatchEncoding со следующими полями:

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

    Что такое входные идентификаторы?

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

    Что такое маски внимания?

  • 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)

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

save_chat_templates

< >

( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )

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

save_pretrained

< >

( save_directory: str | os.PathLike | pathlib.Pathpush_to_hub: bool = Falsetoken: str | bool | None = Nonecommit_message: str | None = Nonerepo_id: str | None = Noneprivate: bool | None = Nonesave_format: str | None = None**kwargs ) → tuple[str, ...]

Параметры

  • 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, optional) — Указывает, является ли репозиторий приватным.
  • 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

< >

( save_directory: strfilename_prefix: str | None = None )

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

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

tokenize

< >

( text: strreturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → list[str]

Параметры

  • text (str) — Последовательность, подлежащая кодированию.
  • return_offsets_mapping (Literal[False], необязательный) — False, сохранено для соответствия сигнатуре Transformers.
  • split_special_tokens (Literal[False], необязательный) — False, сохранено для соответствия сигнатуре Transformers.
  • **kwargs (дополнительные именованные аргументы) — Не поддерживается в MistralCommonBackend.tokenize. Использование приведёт к ошибке.

Возвращает

list[str]

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

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

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

truncate_sequences

< >

( ids: listpair_ids: None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0**kwargs ) → Tuple[list[int], None, list[int]]

Параметры

  • 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, , необязательный, по умолчанию 'longest_first') — Стратегия усечения. Возможные значения:
    • 'longest_first': Обрезка до максимальной длины, заданной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не указан.
    • 'do_not_truncate' (по умолчанию): без усечения (т. е. может выдать батч с длиной последовательности, превышающей максимальный допустимый размер входных данных модели).
  • stride (int, необязательный, по умолчанию 0) — Если задано положительное число, возвращаемые токены, выходящие за пределы, будут содержать некоторые токены из основной возвращаемой последовательности. Значение этого аргумента определяет количество дополнительных токенов.

Возвращает

Tuple[list[int], None, list[int]]

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

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

Mistral3Model

класс transformers.Mistral3Model

< >

( config: Mistral3Config )

Параметры

  • config (Mistral3Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

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

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonevision_feature_layer: int | list[int] | None = Noneuse_cache: bool | None = Noneimage_sizes: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Mistral3ModelOutputWithPast or tuple(torch.Tensor)

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.

    Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

    Что такое входные идентификаторы?

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size), необязательный) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью PixtralImageProcessor. Подробности см. в PixtralImageProcessor.call() (PixtralProcessor использует PixtralImageProcessor для обработки изображений).
  • attention_mask (torch.Tensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • position_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона [0, config.n_positions - 1].

    Что такое идентификаторы позиций?

  • past_key_values (~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это past_key_values , возвращённые моделью на предыдущем этапе декодирования, когда use_cache=True или config.use_cache=True.

    В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если past_key_values не переданы, по умолчанию будет инициализирован 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) и входных данных.

Метод forward модели 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. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать (см. вход past_key_values) для ускорения последовательного декодирования.

  • hidden_states (tuple(torch.Tensor), optional, возвращается, если передано 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

< >

( pixel_values: Tensorimage_sizes: Tensorvision_feature_layer: int | list[int] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Параметры

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size)) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью PixtralImageProcessor. Подробности см. в PixtralImageProcessor.call() (PixtralProcessor использует PixtralImageProcessor для обработки изображений).
  • image_sizes (torch.Tensor формы (batch_size, 2)) — Размеры изображений в батче, представленные как (высота, ширина) для каждого изображения.
  • vision_feature_layer (Union[int, list[int]], необязательный) — Индекс слоя, из которого извлекаются визуальные признаки. Если указано несколько индексов, визуальные признаки соответствующих индексов будут склеены для формирования визуальных признаков.

Возвращает

BaseModelOutputWithPooling или tuple(torch.Tensor)

Объект BaseModelOutputWithPooling или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (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), optional, возвращается, если передано 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

< >

( input_ids: LongTensorinputs_embeds: Tensorimage_features: Tensor )

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

Mistral3ForConditionalGeneration

класс transformers.Mistral3ForConditionalGeneration

< >

( config: Mistral3Config )

Параметры

  • config (Mistral3Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

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

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0image_sizes: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Mistral3CausalLMOutputWithPast or tuple(torch.Tensor)

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.

    Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

    Что такое входные идентификаторы?

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size), необязательный) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью PixtralImageProcessor. Подробности см. в PixtralImageProcessor.call() (PixtralProcessor использует PixtralImageProcessor для обработки изображений).
  • attention_mask (torch.Tensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • position_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона [0, config.n_positions - 1].

    Что такое идентификаторы позиций?

  • past_key_values (~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это past_key_values , возвращённые моделью на предыдущем этапе декодирования, когда use_cache=True или config.use_cache=True.

    В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если past_key_values не переданы, по умолчанию будет инициализирован 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) и входных данных.

Метод forward класса 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. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать (см. вход 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 модели, полученные визуальным энкодером после проекции последнего скрытого состояния.

Пример:

>>> 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

< >

( pixel_values: Tensorimage_sizes: Tensorvision_feature_layer: int | list[int] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Параметры

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size)) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью PixtralImageProcessor. Подробности см. в PixtralImageProcessor.call() (PixtralProcessor использует PixtralImageProcessor для обработки изображений).
  • image_sizes (torch.Tensor формы (batch_size, 2)) — Размеры изображений в батче, представленные как (высота, ширина) для каждого изображения.
  • vision_feature_layer (Union[int, list[int]], необязательный) — Индекс слоя, из которого извлекаются визуальные признаки. Если указано несколько индексов, визуальные признаки соответствующих индексов будут склеены для формирования визуальных признаков.

Возвращает

BaseModelOutputWithPooling или tuple(torch.Tensor)

Объект BaseModelOutputWithPooling или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (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), optional, возвращается, если передано 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 в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Пример:

>>> 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]
Update on GitHub