Transformers documentation
Mistral 3
이 모델은 2025-03-18에 Hugging Face Transformers에 기여되었습니다.
Mistral 3
Mistral 3는 포워드 패스당 시간을 줄이기 위해 레이어 수를 크게 줄인 지연 시간 최적화 모델입니다. 이 모델은 비전 이해 기능을 추가하고, 성능 저하 없이 최대 128K 토큰까지의 긴 컨텍스트 길이를 지원합니다.
원본 Mistral 3 체크포인트는 Mistral AI 조직에서 찾을 수 있습니다.
이 모델은 cyrilvallez와 yonigozlan이 기여했습니다. Mistral3를 다양한 작업에 적용하는 방법에 대한 추가 예제는 오른쪽 사이드바의 Mistral3 모델을 클릭하여 확인하세요.
use_kernels=True를 from_pretrained()에 설정하여 Hub의 최적화 커널로 지원되는 레이어를 대체합니다. 자세한 내용은 커널 로딩을 참고하세요.
아래 예제는 Pipeline와 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'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'The input is a single word "Notes". 참고
- 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
class transformers.Mistral3Config
< source >( 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], 선택) — 비전 백본의 config 객체 또는 사전입니다. - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig], 선택) — 텍스트 백본의 config 객체 또는 사전입니다. - image_token_index (
int, 선택 사항, 기본값10) — 입력 이미지용으로 플레이스홀더로 사용되는 이미지 토큰 인덱스입니다. - projector_hidden_act (
str, 선택 사항, 기본값gelu) — 멀티모달 projector에 사용되는 활성화 함수입니다. - vision_feature_layer (
Union[int, list[int]], 선택 사항, 기본값-1) — 시각 특성을 선택할 레이어의 인덱스입니다. 여러 인덱스가 제공되면 해당 인덱스에 해당하는 시각 특성이 연결(concatenate)되어 시각 특성을 형성합니다. - multimodal_projector_bias (
bool, 선택 사항, 기본값False) — 멀티모달 projector에 bias를 사용할지 여부입니다. - spatial_merge_size (
int, 선택 사항, 기본값2) — 인접한 패치를 병합하여 시각 토큰의 수를 줄이는 데 사용되는 공간 병합 윈도우의 크기입니다. - tie_word_embeddings (
bool, 선택, 기본값True) — 모델의tied_weights_keys매핑에 따라 가중치 임베딩을 묶을지 여부.
이것은 Mistral3Model의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Mistral3 모델을 초기화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 초기화하면 mistralai/Mistral-Small-3.1-24B-Instruct-2503와 유사한 구성이 생성됩니다.
Configuration 객체는 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.configMistralCommonBackend
클래스 transformers.MistralCommonBackend
< source >( 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를 감싸는 래퍼입니다.
공식 mistral-common 토크나이저를 사용하여 토크나이징하는 Hugging Face 호환 인터페이스를 제공하며, PreTrainedTokenizerBase 클래스를 상속합니다.
PythonBackend 클래스와의 주요 동작 차이점은 다음과 같습니다:
- 시퀀스 쌍은 지원되지 않습니다. 호환성을 위해 시그니처는 유지되었지만, 시퀀스 쌍과 관련된 모든 인수는 무시됩니다. 쌍에 대한 반환 값은
None으로 반환됩니다. is_split_into_words인자는 지원되지 않습니다.- 토크나이저에 새로운 토큰을 추가할 수 없습니다.
mistral-common에서는 특수 토큰이 Transformers와 다르게 처리됩니다.mistral-common에서 특수 토큰은 절대 직접 인코딩되지 않습니다. 즉,tokenizer.encode("<s>")은<s>토큰의 ID를 반환하지 않습니다. 대신, 문자열"<s>"의 토크나이제이션에 해당하는 ID 목록을 반환합니다. 자세한 내용은 mistral-common 문서를 참조하세요.
이 클래스를 개선할 제안이 있으시면, 토크나이저와 관련된 경우 mistral-common GitHub 저장소에, Hugging Face 인터페이스와 관련된 경우 Transformers GitHub 저장소에 이슈를 열어 주세요.
add_special_tokens
< source >( special_tokens_dict: dictreplace_extra_special_tokens: bool = True )
MistralCommonBackend는 설계상 add_special_tokens를 구현하지 않습니다.
이 동작이 구현되기를 원하신다면, Transformers 또는 mistral-common 저장소에서 이슈를 열어 요청해 주세요.
MistralCommonBackend는 설계상 add_special_tokens를 구현하지 않습니다.
이 동작이 구현되기를 원하신다면, Transformers 또는 mistral-common 저장소에서 이슈를 열어 요청해 주세요.
apply_chat_template
< source >( 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에 대해 아무 동작도 하지 않습니다. 그러나 API 일관성을 유지하기 위해continue_final_message와 동시에 사용할 수 없습니다. 대화가 어시스턴트 메시지로 끝나면 오류가 발생합니다. 이러한 경우 대신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, 선택 사항) — 패딩 또는 잘라내기(padding or truncation)에 사용할 최대 길이(토큰 단위). tokenize가False인 경우 효과가 없습니다. 지정하지 않으면 토크나이저의max_length속성이 기본값으로 사용됩니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, 특정 프레임워크의 텐서를 반환합니다. tokenize가False. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.
- return_dict (
bool, 기본값False) — 이름이 지정된 출력이 포함된 딕셔너리를 반환할지 여부입니다. tokenize가False인 경우 효과가 없습니다. 최소 하나의 대화에 이미지가 포함된 경우, 해당 이미지의 픽셀 값은pixel_values키에, 이미지 크기는image_sizes키에 반환됩니다. - reasoning_effort (
ReasoningEffort, 선택 사항) — 해당 모델을 지원하는 경우, 채팅 완료에 사용할 추론 노력(reasoning effort)입니다. 가능한 값은 다음과 같습니다:ReasoningEffort.none: 모델이 추론하지 않습니다.ReasoningEffort.high: 모델이 추론 방식을 사용합니다. 지정하지 않으면 기본 추론 노력이 사용됩니다.
- kwargs (추가 키워드 인자, 선택 사항) —
mistral-common의
ChatCompletionRequest.from_openai메서드에 전달되는 추가 인자입니다.
반환값
Union[str, list[int], list[str], list[list[int]], BatchEncoding]
지금까지의 토큰화된 채팅, 제어 토큰 포함. 이 출력은 generate()와 같은 메서드를 통해 또는 직접 모델에 전달할 수 있는 상태입니다.
"role"와 "content" 키를 가진 사전 목록을 토큰 ID 목록으로 변환합니다.
batch_decode
< source >( 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]) — 토큰화된 입력 ID 목록입니다.__call__메서드를 사용하여 얻을 수 있습니다. - skip_special_tokens (
bool, 선택 사항, 기본값False) — 디코딩 과정에서 특수 토큰을 제거할지 여부입니다. - clean_up_tokenization_spaces (
bool, 선택) — 토큰화 공백을 정리할지 여부입니다.None인 경우 기본값으로self.clean_up_tokenization_spaces를 사용합니다. - kwargs (추가 키워드 인자, 선택 사항) —
MistralCommonBackend.batch_decode에서 지원하지 않습니다. 사용할 경우 오류가 발생합니다.
반환값
list[str]
디코딩된 문장의 목록입니다.
decode를 호출하여 토큰 ID의 리스트로 된 리스트를 문자열의 리스트로 변환합니다.
이 메서드는 하위 호환성을 위해 제공됩니다. decode 메서드가 이제 배치 입력을 네이티브로 처리하므로, batch_decode 대신 decode를 직접 사용할 수 있습니다.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: None = None ) → list[int]
특수 토큰을 추가하여 시퀀스에서 모델 입력을 구성합니다.
이 메서드는 토크나이저의 mode에 따라 입력을 동적으로 구성합니다:
"test": seq0 [EOS]"finetuning": [BOS] seq0
convert_added_tokens
< source >( obj: tokenizers.AddedToken | typing.Anysave: bool = Falseadd_type_field: bool = True )
MistralCommonBackend는 설계상 convert_added_tokens를 구현하지 않습니다.
이 동작이 구현되기를 원하신다면, Transformers 또는 mistral-common 저장소에서 이슈를 열어 요청해 주세요.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: None = None ) → list[int]
special tokens가 추가된 토큰 ID에서 0으로 구성된 마스크를 생성합니다.
Transformers의 구현과 일치하도록 유지되었습니다.
decode
< source >( 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]) — 토큰화된 입력 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]]
단일 시퀀스에 대한 디코딩된 문자열, 또는 시퀀스 배치에 대한 디코딩된 문자열 목록.
토크나이저와 어휘를 사용하여 문자열의 id 시퀀스를 변환하며, 특수 토큰 제거 및 토큰화 공간 정리 옵션을 제공합니다.
encode
< source >( 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]) — 인코딩할 첫 번째 시퀀스입니다. 문자열 또는 정수 목록(토큰화된 문자열 ID)일 수 있습니다. - text_pair (
None, 선택 사항) —MistralCommonBackend.encode에서 지원되지 않습니다.PreTrainedTokenizerBase.encode의 시그니처와 일치하도록 유지됩니다. - add_special_tokens (
bool, 선택 사항, 기본값True) — 시퀀스를 인코딩할 때 특수 토큰을 추가할지 여부입니다. 이 설정은 입력 ID에 자동으로 추가되는 토큰을 정의하는 내부 함수인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) — 잘림(truncation)을 활성화하고 제어합니다. 다음 값을 받을 수 있습니다:True또는'longest_first':max_length인수로 지정된 최대 길이로 잘라내거나, 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 잘라냅니다.False또는'do_not_truncate'(기본값): 잘라내기 없음 (즉, 모델이 허용하는 최대 입력 크기보다 긴 시퀀스 길이를 가진 배치 출력 가능).
- max_length (
int, 선택 사항) — truncation/padding 파라미터 중 하나가 사용할 최대 길이를 제어합니다.설정하지 않거나
None으로 설정하면, truncation/padding 파라미터 중 하나가 최대 길이를 요구할 경우 미리 정의된 모델 최대 길이를 사용합니다. 모델에 특정 최대 입력 길이가 없는 경우(XLNet 등) 최대 길이로 truncation/padding하는 기능이 비활성화됩니다. - stride (
int, 선택 사항, 기본값 0) —max_length와 함께 숫자로 설정하면,return_overflowing_tokens=True일 때 반환되는 오버플로 토큰에는 잘린 시퀀스의 끝부분에서 가져온 일부 토큰이 포함됩니다. 이를 통해 잘린 시퀀스와 오버플로 시퀀스 사이에 일부 중복이 생깁니다. 이 인수의 값은 중복되는 토큰의 수를 정의합니다. - pad_to_multiple_of (
int, 선택 사항) — 설정하면 시퀀스를 제공된 값의 배수로 패딩합니다.padding이 활성화되어 있어야 합니다. 이는 Volta에서>= 7.5의 컴퓨트 기능을 가진 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다. - padding_side (
str, 선택 사항) — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.
- **kwargs —
MistralCommonBackend.encode에서 지원하지 않습니다. 사용할 경우 오류가 발생합니다.
반환값
list[int], torch.Tensor
텍스트의 토큰화 된 id입니다.
토크나이저와 어휘를 사용하여 문자열을 id(정수)의 시퀀스로 변환합니다.
from_pretrained
< source >( 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) — 다음 중 하나일 수 있습니다:- huggingface.co의 모델 저장소에 호스팅된 사전 정의된 토크나이저의 model id를 나타내는 문자열
- 토크나이저 설정이 포함된 디렉터리의 경로입니다. 예를 들어
MistralCommonBackend.tokenization_mistral_common.save_pretrained메서드를 사용하여 저장한 경우,./my_model_directory/와 같습니다.
- mode (
Union[str, ValidationMode], 선택 사항, 기본값은ValidationMode.test) — 의 검증 모드입니다. 가능한 값은 다음과 같습니다:MistralTokenizer"finetuning" 또는 ValidationMode.finetuning: Fine-tuning 모드. "test" 또는 ValidationMode.test: Test 모드. 토크나이저가 입력을 검증하고 모델에 요청을 준비하는 방식을 변경합니다."finetuning"또는ValidationMode.finetuning: fine-tuning 모드."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) — 로컬 파일에만 의존하고 파일을 다운로드하지 않으려면 True로 설정합니다. - revision (
str, 선택 사항, 기본값"main") — 사용할 특정 모델 버전입니다. huggingface.co에서 모델과 기타 아티팩트를 저장하기 위해 git 기반 시스템을 사용하므로,revision은 git에서 허용하는 모든 식별자, 즉 브랜치 이름, 태그 이름 또는 커밋 ID가 될 수 있습니다. - max_length (
int, 선택 사항) — truncation/padding 파라미터 중 하나가 사용할 최대 길이를 제어합니다.설정하지 않거나
None으로 설정하면, truncation/padding 파라미터 중 하나가 최대 길이를 요구할 경우 미리 정의된 모델 최대 길이를 사용합니다. 모델에 특정 최대 입력 길이가 없는 경우(XLNet 등) 최대 길이로 truncation/padding하는 기능이 비활성화됩니다. - padding_side (
str, 선택 사항, 기본값"left") — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - truncation_side (
str, 선택 사항, 기본값"right") — 모델에 잘림을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. - model_input_names (
List[str], 선택 사항) — 모델의 forward pass가 받는 입력 목록(예:"token_type_ids"또는"attention_mask"). 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - clean_up_tokenization_spaces (
bool, 선택, 기본값False) — 토큰화 과정에서 입력 텍스트를 분할할 때 추가된 공백을 모델이 정리할지 여부입니다. - kwargs (추가 키워드 인자, 선택 사항) —
MistralCommonBackend.from_pretrained에서 지원되지 않습니다. 사용할 경우 오류가 발생합니다.
사전 정의된 tokenizer에서 MistralCommonBackend를 인스턴스화합니다.
MistralCommonBackend는 mistral-common이 채팅 템플릿을 사용하지 않기 때문에 get_chat_template을 구현하지 않도록 설계되어 있습니다.
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
특수 토큰이 추가되지 않은 토큰 목록에서 시퀀스 ID를 가져옵니다. 이 메서드는 토크나이저의 prepare_for_model 또는 encode_plus 메서드를 사용하여 특수 토큰을 추가할 때 호출됩니다.
토큰에서 인덱스로 매핑된 사전 형식으로 어휘를 반환합니다.
이것은 손실 변환입니다. 부분적인 UTF-8 바이트 시퀀스가 �으로 변환되기 때문에, 동일한 문자열로 디코딩되는 여러 토큰 ID가 있을 수 있습니다.
num_special_tokens_to_add
< source >( pair: typing.Literal[False] = False ) → int
특수 토큰을 사용하여 시퀀스를 인코딩할 때 추가된 토큰의 수를 반환합니다.
이것은 더미 입력을 인코딩하고 추가된 토큰의 수를 확인하므로 효율적이지 않습니다. 학습 루프 안에 이 코드를 배치하지 마세요.
prepare_for_model
< source >( 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]) — 첫 번째 시퀀스의 토큰화된 입력 id입니다. - pair_ids (
None, 선택 사항) —MistralCommonBackend에서는 지원되지 않습니다.PreTrainedTokenizerBase의 인터페이스와 일치하도록 유지되었습니다. - add_special_tokens (
bool, 선택 사항, 기본값True) — 시퀀스를 인코딩할 때 특수 토큰을 추가할지 여부입니다. 이 설정은 입력 ID에 자동으로 추가되는 토큰을 정의하는 내부 함수인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) — 잘림(truncation)을 활성화하고 제어합니다. 다음 값을 받을 수 있습니다:True또는'longest_first':max_length인수로 지정된 최대 길이로 잘라내거나, 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 잘라냅니다.False또는'do_not_truncate'(기본값): 잘라내기 없음 (즉, 모델이 허용하는 최대 입력 크기보다 긴 시퀀스 길이를 가진 배치 출력 가능).
- max_length (
int, 선택 사항) — truncation/padding 파라미터 중 하나가 사용할 최대 길이를 제어합니다.설정하지 않거나
None으로 설정하면, truncation/padding 파라미터 중 하나가 최대 길이를 요구할 경우 미리 정의된 모델 최대 길이를 사용합니다. 모델에 특정 최대 입력 길이가 없는 경우(XLNet 등) 최대 길이로 truncation/padding하는 기능이 비활성화됩니다. - stride (
int, 선택 사항, 기본값 0) —max_length와 함께 숫자로 설정하면,return_overflowing_tokens=True일 때 반환되는 오버플로 토큰에는 잘린 시퀀스의 끝부분에서 가져온 일부 토큰이 포함됩니다. 이를 통해 잘린 시퀀스와 오버플로 시퀀스 사이에 일부 중복이 생깁니다. 이 인수의 값은 중복되는 토큰의 수를 정의합니다. - pad_to_multiple_of (
int, 선택 사항) — 설정하면 시퀀스를 제공된 값의 배수로 패딩합니다.padding이 활성화되어 있어야 합니다. 이는 Volta에서>= 7.5의 컴퓨트 기능을 가진 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다. - padding_side (
str, 선택 사항) — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.
- return_token_type_ids (
bool, 선택 사항) — 토큰 타입 ID를 반환할지 여부.MistralCommonBackend의 경우, 단일 시퀀스만 지원되므로 시퀀스 길이의 0 리스트를 반환합니다. - return_attention_mask (
bool, 선택 사항) — attention mask를 반환할지 여부. 기본값으로 두면,return_outputs속성에 의해 정의된 해당 tokenizer의 기본값에 따라 attention mask를 반환합니다. - return_overflowing_tokens (
bool, 선택 사항, 기본값False) — 넘치는 토큰 시퀀스를 반환할지 여부입니다. 입력 ID의 시퀀스 쌍(또는 쌍의 배치)이truncation_strategy = longest_first또는True와 함께 제공되면, 넘치는 토큰을 반환하는 대신 오류가 발생합니다. - return_special_tokens_mask (
bool, 선택 사항, 기본값False) — 특수 토큰 마스크 정보를 반환할지 여부. - return_length (
bool, 선택 사항, 기본값False) — 인코딩된 입력의 길이를 반환할지 여부. - verbose (
bool, 선택 사항, 기본값True) — 추가 정보와 경고를 출력할지 여부. - return_offsets_mapping (
Literal[False], 선택) — Transformers의 시그니처와 일치하도록 유지되는 False입니다. - split_special_tokens (
Literal[False], 선택) — Transformers의 시그니처와 일치하도록 False로 유지됩니다. - **kwargs —
self.tokenize()메서드에 전달됩니다
반환값
다음 필드를 가진 BatchEncoding:
-
input_ids — 모델에 입력할 토큰 ID 목록.
-
attention_mask — 모델이 어떤 토큰에 주의를 기울여야 하는지 지정하는 인덱스 목록 (
return_attention_mask=True이거나self.model_input_names에 “attention_mask”가 포함된 경우). -
overflowing_tokens — 넘친 토큰 시퀀스 목록(
max_length이 지정되고return_overflowing_tokens=True인 경우). -
num_truncated_tokens — 잘림된 토큰의 개수(
max_length가 지정되고return_overflowing_tokens=True인 경우). -
special_tokens_mask — 0과 1의 목록으로, 1은 추가된 특수 토큰을, 0은 일반 시퀀스 토큰을 나타냅니다(
add_special_tokens=True이고return_special_tokens_mask=True인 경우). -
length — 입력의 길이 (
return_length=True인 경우)
모델에서 사용할 수 있도록 입력 id 시퀀스를 준비합니다. 특수 토큰을 추가하고, 특수 토큰을 고려하여 시퀀스가 오버플로우되는 경우 이를 잘라내며, 오버플로우된 토큰에 대해 이동 창(사용자가 정의한 스트라이드)을 관리합니다.
save_chat_templates
< source >( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )
MistralCommonBackend는 mistral-common이 채팅 템플릿을 사용하지 않기 때문에, 설계상 save_chat_templates를 구현하지 않습니다.
save_pretrained
< source >( 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, 선택) — push할 때 사용할 커밋 메시지입니다. - repo_id (
str, 선택 사항) — Hub 저장소 ID입니다. - private (
bool, 선택 사항) — 리포지토리가 비공개인지 여부. - save_format (
str, 선택) —"mistral"은 네이티브 tekken 형식으로 저장하고,"hf"는 HuggingFace 형식으로 저장합니다. None은 원래 형식을 유지합니다. - kwargs (
dict, 선택 사항) — 지원되지 않습니다. 오류가 발생합니다.
반환값
tuple[str, ...]
저장된 파일의 경로.
토크나이저의 전체 상태를 저장합니다.
save_format이 "mistral"인 경우(또는 tekken 토크나이저의 경우 None인 경우),
원본 토크나이저 파일(예: tekken.json)이 save_directory에 기록됩니다. save_format이 "hf"인 경우, HF 형식 파일
(tokenizer.json + tokenizer_config.json)이 대신 생성됩니다.
MistralCommonBackend는 설계상 save_vocabulary를 구현하지 않습니다.
mistral-common는 하나의 토크나이저 파일로 구성되기 때문입니다. 어휘를 저장하려면 save_pretrained 메서드를 사용하는 것을 권장합니다.
토큰화
< source >( text: strreturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → list[str]
매개변수
- text (
str) — 인코딩할 시퀀스. - return_offsets_mapping (
Literal[False], 선택) — Transformers의 시그니처와 일치하도록 유지되는 False입니다. - split_special_tokens (
Literal[False], 선택) — Transformers의 시그니처와 일치하도록 False로 유지됩니다. - **kwargs (추가 키워드 인자) —
MistralCommonBackend.tokenize에서 지원하지 않습니다. 사용할 경우 오류가 발생합니다.
반환값
list[str]
토큰 목록
토크나이저를 사용하여 문자열을 토큰 시퀀스로 변환합니다.
단어 기반 어휘의 경우 단위로, 서브워드 기반 어휘의 경우 서브단위로 분할합니다.
truncate_sequences
< source >( 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]) — 토큰화된 입력 id입니다. 문자열에서tokenize와convert_tokens_to_ids메서드를 체이닝하여 얻을 수 있습니다. - pair_ids (
None, 선택 사항) —MistralCommonBackend에서 지원되지 않습니다.PreTrainedTokenizerBase.truncate_sequences의 시그니처와 일치하도록 유지되었습니다. - num_tokens_to_remove (
int, 선택 사항, 기본값 0) — truncation 전략을 사용하여 제거할 토큰 수. - truncation_strategy (
str또는 TruncationStrategy, 선택 사항, 기본값은'longest_first') — 잘라내기(truncation)에 사용할 전략입니다. 다음 값 중 하나를 사용할 수 있습니다:'longest_first':max_length인수로 지정된 최대 길이로 잘라내거나, 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 잘라냅니다.'do_not_truncate'(기본값): 잘라내지 않음(즉, 모델이 허용하는 최대 입력 크기보다 긴 시퀀스 길이를 가진 배치로 출력할 수 있음).
- stride (
int, 선택 사항, 기본값 0) — 양수로 설정하면, 반환되는 오버플로 토큰에 반환되는 메인 시퀀스의 일부 토큰이 포함됩니다. 이 인수의 값은 추가 토큰의 수를 정의합니다.
반환값
Tuple[list[int], None, list[int]]
잘린 ids와 넘친 토큰 목록입니다. Transformers의 시그니처와 일치하도록 None이 반환됩니다.
전략에 따라 시퀀스 쌍을 인플레이스로 잘라냅니다.
Mistral3Model
class transformers.Mistral3Model
< source >( config: Mistral3Config )
매개변수
- config (Mistral3Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
language modeling head가 없는, 비전 백본과 언어 모델로 구성된 Mistral3 모델입니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( 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), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- pixel_values (
torch.Tensor, shape(batch_size, num_channels, image_size, image_size), 선택 사항) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 PixtralImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 PixtralImageProcessor.call()를 참조하세요 (PixtralProcessor는 이미지 처리에 PixtralImageProcessor를 사용합니다). - attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- position_ids (
torch.LongTensor의 shape(batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는past_key_values디코딩의 이전 단계에서 모델이 반환한use_cache=True또는config.use_cache=True.입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요.
past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.
past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은input_ids만 입력해야 하며, 이때의 shape은(batch_size, unprocessed_length)입니다. shape이(batch_size, sequence_length)인 전체input_ids를 입력하지 않습니다. - inputs_embeds (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다. - vision_feature_layer (
Union[int, list[int]], 선택 사항) — 시각 특성을 선택할 레이어의 인덱스입니다. 여러 인덱스가 제공되면 해당 인덱스에 해당하는 시각 특성이 연결(concatenate)되어 시각 특성을 형성합니다. - use_cache (
bool, 선택 사항) —True로 설정하면past_key_values키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다(past_key_values참조). - image_sizes (
torch.Tensor, shape(batch_size, 2), 선택 사항) — 배치 내 각 이미지의 크기입니다. 각 이미지에 대해 (height, width) 형식입니다. - 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)과 입력에 따라 다양한 요소를 포함합니다.
Mistral3Model의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.past_key_values가 사용되면,(batch_size, 1, hidden_size)형태의 시퀀스의 마지막 hidden-state만 출력됩니다.past_key_values (
Cache, 선택 사항,use_cache=True가 전달되었거나config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value)를 포함합니다(입력
past_key_values참조).hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
image_hidden_states (
torch.Tensor, 선택 사항) — 크기가(batch_size, num_images, sequence_length, hidden_size)인torch.Tensor입니다. 비전 인코더가 생성한 모델의 image_hidden_states이며, 마지막 hidden state를 투영한 후의 값입니다.
get_image_features
< source >( 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, shape(batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 PixtralImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 PixtralImageProcessor.call()를 참조하세요 (PixtralProcessor는 이미지 처리에 PixtralImageProcessor를 사용합니다). - image_sizes (
torch.Tensor, shape(batch_size, 2)) — 배치 내 각 이미지의 크기입니다. 각 이미지에 대해 (height, width) 형식입니다. - vision_feature_layer (
Union[int, list[int]], 선택 사항) — 시각 특성을 선택할 레이어의 인덱스입니다. 여러 인덱스가 제공되면 해당 인덱스에 해당하는 시각 특성이 연결(concatenate)되어 시각 특성을 형성합니다.
반환값
BaseModelOutputWithPooling 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 BaseModelOutputWithPooling (return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(Mistral3Config)과 입력에 따라 다양한 요소를 포함합니다.
비전 타워에서 이미지 마지막 hidden states를 가져와서 멀티모달 프로젝션을 적용합니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.pooler_output (
torch.Tensor, shape(batch_size, hidden_size)) — 보조 사전 학습 작업을 위해 사용되는 레이어들을 통해 추가 처리된 시퀀스의 첫 번째 토큰(분류 토큰)의 마지막 레이어 hidden-state입니다. 예를 들어 BERT 계열 모델의 경우, 선형 레이어와 tanh 활성화 함수를 통해 처리된 후의 분류 토큰을 반환합니다. 선형 레이어의 가중치는 사전 학습 동안 다음 문장 예측(분류) 목적 함수를 통해 학습됩니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
get_placeholder_mask
< source >( input_ids: LongTensorinputs_embeds: Tensorimage_features: Tensor )
input_ids 또는 inputs_embeds에서 멀티모달 플레이스홀더 마스크를 가져오고, 플레이스홀더 토큰의 개수가 멀티모달 특징의 길이와 같은지 확인합니다. 길이가 서로 다르면 오류가 발생합니다.
Mistral3ForConditionalGeneration
클래스 transformers.Mistral3ForConditionalGeneration
< source >( config: Mistral3Config )
매개변수
- config (Mistral3Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
비전 백본과 언어 모델로 구성된 MISTRAL3 모델.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( 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), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- pixel_values (
torch.Tensor, shape(batch_size, num_channels, image_size, image_size), 선택 사항) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 PixtralImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 PixtralImageProcessor.call()를 참조하세요 (PixtralProcessor는 이미지 처리에 PixtralImageProcessor를 사용합니다). - attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- position_ids (
torch.LongTensor의 shape(batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는past_key_values디코딩의 이전 단계에서 모델이 반환한use_cache=True또는config.use_cache=True.입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요.
past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.
past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은input_ids만 입력해야 하며, 이때의 shape은(batch_size, unprocessed_length)입니다. shape이(batch_size, sequence_length)인 전체input_ids를 입력하지 않습니다. - inputs_embeds (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다. - labels (
torch.LongTensor, shape(batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는[0, ..., config.vocab_size]범위 내의 값이거나 -100이어야 합니다(input_idsdocstring 참조). 인덱스가-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_to_keep토큰에 대한 logits를 계산합니다.0인 경우, 모든input_ids에 대한 logits를 계산합니다(특수한 경우). 생성에는 마지막 토큰의 logits만 필요하며, 해당 토큰에 대해서만 계산하면 메모리를 절약할 수 있습니다. 이는 긴 시퀀스나 큰 어휘 크기의 경우 상당한 이점을 제공합니다.torch.Tensor인 경우, 시퀀스 길이 차원에서 유지할 인덱스에 해당하는 1차원 텐서여야 합니다. 이는 패킹된 텐서 형식(배치와 시퀀스 길이를 단일 차원으로 사용하는 경우)을 사용할 때 유용합니다. - image_sizes (
torch.Tensor, shape(batch_size, 2), 선택 사항) — 배치 내 각 이미지의 크기입니다. 각 이미지에 대해 (height, width) 형식입니다. - 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)과 입력에 따라 다양한 요소를 포함합니다.
Mistral3ForConditionalGeneration의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — 언어 모델링 손실(다음 토큰 예측용).logits (
torch.Tensor, shape(batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드에서 생성된 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).past_key_values (
Cache, 선택 사항,use_cache=True가 전달되었거나config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value)를 포함합니다(입력
past_key_values참조).hidden_states (
tuple[torch.Tensor], 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple[torch.Tensor], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
image_hidden_states (
torch.Tensor, 선택 사항) — 크기가(batch_size, num_images, sequence_length, hidden_size)인torch.Tensor입니다. 비전 인코더가 생성한 모델의 image_hidden_states이며, 마지막 hidden state를 투영한 후의 값입니다.
예:
>>> 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
< source >( 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, shape(batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 PixtralImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 PixtralImageProcessor.call()를 참조하세요 (PixtralProcessor는 이미지 처리에 PixtralImageProcessor를 사용합니다). - image_sizes (
torch.Tensor, shape(batch_size, 2)) — 배치 내 각 이미지의 크기입니다. 각 이미지에 대해 (height, width) 형식입니다. - vision_feature_layer (
Union[int, list[int]], 선택 사항) — 시각 특성을 선택할 레이어의 인덱스입니다. 여러 인덱스가 제공되면 해당 인덱스에 해당하는 시각 특성이 연결(concatenate)되어 시각 특성을 형성합니다.
반환값
BaseModelOutputWithPooling 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 BaseModelOutputWithPooling입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우, 구성(Mistral3Config)과 입력에 따라 다양한 요소로 구성됩니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.pooler_output (
torch.Tensor, shape(batch_size, hidden_size)) — 보조 사전 학습 작업을 위해 사용되는 레이어들을 통해 추가 처리된 시퀀스의 첫 번째 토큰(분류 토큰)의 마지막 레이어 hidden-state입니다. 예를 들어 BERT 계열 모델의 경우, 선형 레이어와 tanh 활성화 함수를 통해 처리된 후의 분류 토큰을 반환합니다. 선형 레이어의 가중치는 사전 학습 동안 다음 문장 예측(분류) 목적 함수를 통해 학습됩니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
예:
>>> 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]