Files
2025-10-09 16:47:16 +08:00

7.4 KiB

모델 출력model-outputs

모든 모델에는 [~utils.ModelOutput]의 서브클래스의 인스턴스인 모델 출력이 있습니다. 이들은 모델에서 반환되는 모든 정보를 포함하는 데이터 구조이지만 튜플이나 딕셔너리로도 사용할 수 있습니다.

예제를 통해 살펴보겠습니다:

from transformers import BertTokenizer, BertForSequenceClassification
import torch

tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased")
model = BertForSequenceClassification.from_pretrained("google-bert/bert-base-uncased")

inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
labels = torch.tensor([1]).unsqueeze(0)  # 배치 크기 1
outputs = model(**inputs, labels=labels)

outputs 객체는 [~modeling_outputs.SequenceClassifierOutput]입니다. 아래 해당 클래스의 문서에서 볼 수 있듯이, loss(선택적), logits, hidden_states(선택적) 및 attentions(선택적) 항목이 있습니다. 여기에서는 labels를 전달했기 때문에 loss가 있지만 hidden_statesattentions가 없는데, 이는 output_hidden_states=True 또는 output_attentions=True를 전달하지 않았기 때문입니다.

output_hidden_states=True를 전달할 때 outputs.hidden_states[-1]outputs.last_hidden_state와 정확히 일치할 것으로 예상할 수 있습니다. 하지만 항상 그런 것은 아닙니다. 일부 모델은 마지막 은닉 상태가 반환될 때 정규화를 적용하거나 다른 후속 프로세스를 적용합니다.

일반적으로 사용할 때와 동일하게 각 속성들에 접근할 수 있으며, 모델이 해당 속성을 반환하지 않은 경우 None이 반환됩니다. 예시에서는 outputs.loss는 모델에서 계산한 손실이고 outputs.attentionsNone입니다.

outputs 객체를 튜플로 간주할 때는 None 값이 없는 속성만 고려합니다. 예시에서는 losslogits라는 두 개의 요소가 있습니다. 그러므로,

outputs[:2]

(outputs.loss, outputs.logits) 튜플을 반환합니다.

outputs 객체를 딕셔너리로 간주할 때는 None 값이 없는 속성만 고려합니다. 예시에는 losslogits라는 두 개의 키가 있습니다.

여기서부터는 두 가지 이상의 모델 유형에서 사용되는 일반 모델 출력을 다룹니다. 구체적인 출력 유형은 해당 모델 페이지에 문서화되어 있습니다.

ModelOutputtransformers.utils.ModelOutput

autodoc utils.ModelOutput - to_tuple

BaseModelOutputtransformers.BaseModelOutput

autodoc modeling_outputs.BaseModelOutput

BaseModelOutputWithPoolingtransformers.modeling_outputs.BaseModelOutputWithPooling

autodoc modeling_outputs.BaseModelOutputWithPooling

BaseModelOutputWithCrossAttentionstransformers.modeling_outputs.BaseModelOutputWithCrossAttentions

autodoc modeling_outputs.BaseModelOutputWithCrossAttentions

BaseModelOutputWithPoolingAndCrossAttentionstransformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions

autodoc modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions

BaseModelOutputWithPasttransformers.modeling_outputs.BaseModelOutputWithPast

autodoc modeling_outputs.BaseModelOutputWithPast

BaseModelOutputWithPastAndCrossAttentionstransformers.modeling_outputs.BaseModelOutputWithPastAndCrossAttentions

autodoc modeling_outputs.BaseModelOutputWithPastAndCrossAttentions

Seq2SeqModelOutputtransformers.modeling_outputs.Seq2SeqModelOutput

autodoc modeling_outputs.Seq2SeqModelOutput

CausalLMOutputtransformers.modeling_outputs.CausalLMOutput

autodoc modeling_outputs.CausalLMOutput

CausalLMOutputWithCrossAttentionstransformers.modeling_outputs.CausalLMOutputWithCrossAttentions

autodoc modeling_outputs.CausalLMOutputWithCrossAttentions

CausalLMOutputWithPasttransformers.modeling_outputs.CausalLMOutputWithPast

autodoc modeling_outputs.CausalLMOutputWithPast

MaskedLMOutputtransformers.modeling_outputs.MaskedLMOutput

autodoc modeling_outputs.MaskedLMOutput

Seq2SeqLMOutputtransformers.modeling_outputs.Seq2SeqLMOutput

autodoc modeling_outputs.Seq2SeqLMOutput

NextSentencePredictorOutputtransformers.modeling_outputs.NextSentencePredictorOutput

autodoc modeling_outputs.NextSentencePredictorOutput

SequenceClassifierOutputtransformers.modeling_outputs.SequenceClassifierOutput

autodoc modeling_outputs.SequenceClassifierOutput

Seq2SeqSequenceClassifierOutputtransformers.modeling_outputs.Seq2SeqSequenceClassifierOutput

autodoc modeling_outputs.Seq2SeqSequenceClassifierOutput

MultipleChoiceModelOutputtransformers.modeling_outputs.MultipleChoiceModelOutput

autodoc modeling_outputs.MultipleChoiceModelOutput

TokenClassifierOutputtransformers.modeling_outputs.TokenClassifierOutput

autodoc modeling_outputs.TokenClassifierOutput

QuestionAnsweringModelOutputtransformers.modeling_outputs.QuestionAnsweringModelOutput

autodoc modeling_outputs.QuestionAnsweringModelOutput

Seq2SeqQuestionAnsweringModelOutputtransformers.modeling_outputs.Seq2SeqQuestionAnsweringModelOutput

autodoc modeling_outputs.Seq2SeqQuestionAnsweringModelOutput

Seq2SeqSpectrogramOutputtransformers.modeling_outputs.Seq2SeqSpectrogramOutput

autodoc modeling_outputs.Seq2SeqSpectrogramOutput

SemanticSegmenterOutputtransformers.modeling_outputs.SemanticSegmenterOutput

autodoc modeling_outputs.SemanticSegmenterOutput

ImageClassifierOutputtransformers.modeling_outputs.ImageClassifierOutput

autodoc modeling_outputs.ImageClassifierOutput

ImageClassifierOutputWithNoAttentiontransformers.modeling_outputs.ImageClassifierOutputWithNoAttention

autodoc modeling_outputs.ImageClassifierOutputWithNoAttention

DepthEstimatorOutputtransformers.modeling_outputs.DepthEstimatorOutput

autodoc modeling_outputs.DepthEstimatorOutput

Wav2Vec2BaseModelOutputtransformers.modeling_outputs.Wav2Vec2BaseModelOutput

autodoc modeling_outputs.Wav2Vec2BaseModelOutput

XVectorOutputtransformers.modeling_outputs.XVectorOutput

autodoc modeling_outputs.XVectorOutput

Seq2SeqTSModelOutputtransformers.modeling_outputs.Seq2SeqTSModelOutput

autodoc modeling_outputs.Seq2SeqTSModelOutput

Seq2SeqTSPredictionOutputtransformers.modeling_outputs.Seq2SeqTSPredictionOutput

autodoc modeling_outputs.Seq2SeqTSPredictionOutput

SampleTSPredictionOutputtransformers.modeling_outputs.SampleTSPredictionOutput

autodoc modeling_outputs.SampleTSPredictionOutput