Transformers documentation

LXMERT

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

and get access to the augmented documentation experience

to get started

이 모델은 2019-08-20에 HF papers에 게시되었으며, 2020-11-16에 Hugging Face Transformers에 기여되었습니다.

LXMERT

개요

LXMERT 모델은 Hao Tan & Mohit Bansal이 LXMERT: Learning Cross-Modality Encoder Representations from Transformers에서 제안했습니다. 이는 양방향 transformer 인코더의 연속으로 구성되며(시각 모달리티용 하나, 언어 모달리티용 하나, 그리고 두 모달리티를 융합하기 위한 하나) masked language modeling, visual-language text alignment, ROI-feature regression, masked visual-attribute modeling, masked visual-object modeling, visual-question answering 목적 함수의 조합을 사용하여 사전 학습됩니다. 사전 학습에는 MSCOCO, Visual-Genome + Visual-Genome Question Answering, VQA 2.0, GQA와 같은 여러 다중 모달리티 데이터셋이 사용됩니다.

해당 논문의 초록은 다음과 같습니다:

시각-언어 추론은 시각 개념, 언어 의미, 그리고 가장 중요한 두 모달리티 간의 정렬 및 관계에 대한 이해를 요구합니다. 따라서 이러한 시각-언어 연결을 학습하기 위해 LXMERT(Learning Cross-Modality Encoder Representations from Transformers) 프레임워크를 제안합니다. LXMERT에서는 객체 관계 인코더, 언어 인코더, 크로스 모달리티 인코더로 구성된 대규모 Transformer 모델을 구축합니다. 다음으로, 모델에 시각과 언어 의미를 연결하는 능력을 부여하기 위해 이미지-문장 쌍의 대량 데이터로 모델을 사전 학습합니다. 이를 위해 다섯 가지 다양한 대표적 사전 학습 작업을 사용합니다: masked language modeling, masked object prediction(feature regression 및 label classification), cross-modality matching, image question answering. 이러한 작업은 모달리티 내(intra-modality) 및 모달리티 간(cross-modality) 관계 학습에 도움이 됩니다. 사전 학습된 매개변수에서 fine-tuning을 수행한 후, 우리의 모델은 두 가지 시각 질의 응답 데이터셋(즉, VQA 및 GQA)에서 최첨단(state-of-the-art) 결과를 달성합니다. 또한, 도전적인 시각 추론 작업인 NLVR에 모델을 적용하여 이전 최고 기록을 절대적으로 22%(54%에서 76%로) 향상시킴으로써 사전 학습된 크로스 모달리티 모델의 일반화 가능성을 보여줍니다. 마지막으로, 우리의 새로운 모델 구성 요소와 사전 학습 전략이 강력한 결과에 크게 기여한다는 것을 입증하기 위해 상세한 ablation studies를 수행하고, 서로 다른 인코더에 대한 여러 attention visualizations를 제시합니다

이 모델은 eltoto1219님이 기여했습니다. 원본 코드는 여기에서 찾을 수 있습니다.

사용 팁

  • Bounding boxes는 시각적 특징 임베딩에 반드시 사용될 필요가 없으며, 모든 종류의 시각-공간적 특징이 작동합니다.
  • LXMERT가 출력하는 언어 hidden states와 시각 hidden states 모두 cross-modality layer를 통과하므로 두 가지 modality의 정보를 모두 포함합니다. 자기 자신에만 주의를 기울이는 modality에 액세스하려면, 튜플의 첫 번째 입력에서 vision/language hidden states를 선택하세요.
  • 양방향 크로스 모달리티 인코더 어텐션은 언어 모달리티가 입력으로 사용되고 비전 모달리티가 컨텍스트 벡터로 사용될 때만 어텐션 값을 반환합니다. 또한, 크로스 모달리티 인코더는 각 모달리티에 대한 셀프 어텐션과 크로스 어텐션을 포함하고 있지만, 반환되는 것은 크로스 어텐션만이며 두 셀프 어텐션 출력은 무시됩니다.

리소스

LxmertConfig

클래스 transformers.LxmertConfig

< >

( 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 = Nonevocab_size: int = 30522hidden_size: int = 768num_attention_heads: int = 12num_qa_labels: int = 9500num_object_labels: int = 1600num_attr_labels: int = 400intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.1attention_probs_dropout_prob: float | int = 0.1max_position_embeddings: int = 512type_vocab_size: int = 2initializer_range: float = 0.02l_layers: int = 9x_layers: int = 5r_layers: int = 5visual_feat_dim: int = 2048visual_pos_dim: int = 4visual_loss_normalizer: float = 6.67task_matched: bool = Truetask_mask_lm: bool = Truetask_obj_predict: bool = Truetask_qa: bool = Truevisual_obj_loss: bool = Truevisual_attr_loss: bool = Truevisual_feat_loss: bool = Truepad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Nonetie_word_embeddings: bool = True )

매개변수

  • vocab_size (int, 선택 사항, 기본값 30522) — 모델의 어휘 크기입니다. input_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다.
  • hidden_size (int, 선택 사항, 기본값 768) — 숨겨진 표현의 차원입니다.
  • num_attention_heads (int, 선택 사항, 기본값 12) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • num_qa_labels (int, 선택, 기본값 9500) — 질문 답변(QA) 라벨의 총 개수를 나타냅니다. QA가 포함된 데이터셋을 하나 이상 사용하는 경우, 모든 데이터셋에 포함된 라벨의 총 개수를 계산하여 지정해야 합니다.
  • num_object_labels (int, 선택 사항, 기본값 1600) — lxmert가 풀링된 객체 특징을 분류할 수 있는 의미적으로 고유한 객체의 총 개수를 나타냅니다.
  • num_attr_labels (int, 선택 사항, 기본값 400) — pooled-object feature가 가질 수 있는 의미적으로 고유한 속성의 총 개수를 나타냅니다. lxmert는 이 속성으로 해당 feature를 분류할 수 있습니다.
  • intermediate_size (int, 선택 사항, 기본값 3072) — MLP 표현의 차원입니다.
  • hidden_act (str, 선택 사항, 기본값 gelu) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • hidden_dropout_prob (Union[float, int], 선택 사항, 기본값 0.1) — 임베딩, 인코더, 풀러의 모든 완전 연결 계층에 적용되는 드롭아웃 확률입니다.
  • attention_probs_dropout_prob (Union[float, int], 선택 사항, 기본값 0.1) — Attention 확률에 적용할 dropout 비율입니다.
  • max_position_embeddings (int, 선택 사항, 기본값 512) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다.
  • type_vocab_size (int, 선택 사항, 기본값 2) — token_type_ids의 어휘 크기입니다.
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • l_layers (int, 선택 사항, 기본값 9) — Transformer 언어 인코더의 숨겨진 레이어 수입니다.
  • x_layers (int, 선택 사항, 기본값 5) — Transformer 교차 모달리티 인코더의 숨겨진 레이어 수.
  • r_layers (int, 선택 사항, 기본값 5) — Transformer 시각 인코더의 숨겨진 레이어 수입니다.
  • visual_feat_dim (int, 선택 사항, 기본값 2048) — 모델 입력으로 사용되는 풀링된 객체 특징의 마지막 차원을 나타내며, 각 객체 특징 자체의 크기를 의미합니다.
  • visual_pos_dim (int, 선택 사항, 기본값 4) — 시각적 특징에 혼합되는 공간적 특징의 수를 나타냅니다. 기본값이 4로 설정된 이유는, 일반적으로 이는 바운딩 박스의 위치를 나타내기 때문입니다. 즉, (x, y, width, height)입니다.
  • visual_loss_normalizer (float, 선택, 기본값 6.67) — 사전 학습 과정에서 여러 시각 기반 손실 목표를 함께 학습하기로 결정할 경우, 각 시각 손실에 곱해지는 스케일링 계수를 나타냅니다.
  • task_matched (bool, 선택 사항, 기본값 True) — 이 작업은 문장-이미지 매칭에 사용됩니다. 문장이 이미지를 올바르게 설명하는 경우 라벨은 1이 됩니다. 문장이 이미지를 올바르게 설명하지 않는 경우 라벨은 0이 됩니다.
  • task_mask_lm (bool, 선택 사항, 기본값 True) — 손실 함수에 마스킹 언어 모델링(BERT와 같은 사전 학습 모델에서 사용)을 포함할지 여부입니다.
  • task_obj_predict (bool, 선택 사항, 기본값 True) — 손실 함수에 객체 예측, 속성 예측 및 특징 회귀를 포함할지 여부.
  • task_qa (bool, 선택 사항, 기본값 True) — 목적 함수에 질의응답 손실을 추가할지 여부
  • visual_obj_loss (bool, 선택 사항, 기본값 True) — 객체 예측 손실 목적 함수를 계산할지 여부
  • visual_attr_loss (bool, 선택 사항, 기본값 True) — 속성 예측 손실 목적 함수를 계산할지 여부
  • visual_feat_loss (bool, 선택 사항, 기본값 True) — 피처 회귀 손실 목적 함수를 계산할지 여부
  • pad_token_id (int, 선택 사항) — 어휘에서 패딩에 사용되는 토큰 ID입니다.
  • bos_token_id (int, 선택 사항) — 어휘에서 스트림 시작에 사용되는 토큰 ID입니다.
  • eos_token_id (Union[int, list[int]], 선택) — 어휘에서 스트림 종료에 사용되는 토큰 ID입니다.
  • tie_word_embeddings (bool, 선택, 기본값 True) — 모델의 tied_weights_keys 매핑에 따라 가중치 임베딩을 묶을지 여부.

이것은 LxmertModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인수를 기반으로 Lxmert 모델을 인스턴스화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 unc-nlp/lxmert-base-uncased와 유사한 설정이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

LxmertTokenizer

클래스 transformers.BertTokenizer

< >

( vocab: str | dict[str, int] | None = Nonedo_lower_case: bool = Trueunk_token: str = '[UNK]'sep_token: str = '[SEP]'pad_token: str = '[PAD]'cls_token: str = '[CLS]'mask_token: str = '[MASK]'tokenize_chinese_chars: bool = Truestrip_accents: bool | None = None**kwargs )

매개변수

  • vocab (str 또는 dict[str, int], 선택) — 사용자 정의 어휘 사전입니다. 제공되지 않으면 vocab_file에서 어휘를 로드합니다.
  • do_lower_case (bool, 선택 사항, 기본값 True) — 토큰화할 때 입력을 소문자로 변환할지 여부.
  • unk_token (str, 선택 사항, 기본값 "[UNK]") — 미지의 토큰입니다. 어휘에 없는 토큰은 ID로 변환할 수 없으므로, 대신 이 토큰으로 설정됩니다.
  • sep_token (str, 선택, 기본값 "[SEP]") — 여러 시퀀스로 시퀀스를 구성할 때 사용되는 구분 토큰입니다. 예를 들어 시퀀스 분류의 두 시퀀스나 질의응답의 텍스트와 질문 등에 사용됩니다. 특수 토큰으로 구성된 시퀀스의 마지막 토큰으로도 사용됩니다.
  • pad_token (str, 선택 사항, 기본값 "[PAD]") — 패딩에 사용되는 토큰입니다. 예를 들어, 길이가 다른 시퀀스를 배치(batching)할 때 사용됩니다.
  • cls_token (str, 선택 사항, 기본값 "[CLS]") — 시퀀스 분류(토큰별 분류가 아닌 전체 시퀀스에 대한 분류)를 수행할 때 사용되는 분류기 토큰입니다. 특수 토큰을 사용하여 시퀀스를 구성할 경우 시퀀스의 첫 번째 토큰입니다.
  • mask_token (str, 선택 사항, 기본값 "[MASK]") — 값을 마스킹하는 데 사용되는 토큰입니다. 이는 masked language modeling으로 이 모델을 학습시킬 때 사용되는 토큰이며, 모델이 예측을 시도하는 대상이 되는 토큰입니다.
  • tokenize_chinese_chars (bool, 선택, 기본값 True) — 한자 문자를 토큰화할지 여부입니다.
  • strip_accents (bool, 선택) — 모든 음소를 제거할지 여부입니다. 이 옵션이 지정되지 않으면 lowercase의 값에 의해 결정됩니다(원본 BERT와 동일).

HuggingFace의 tokenizers 라이브러리를 기반으로 BERT 토크나이저를 구성합니다. WordPiece에 기반합니다.

이 토크나이저는 대부분의 주요 메서드를 포함하는 TokenizersBackend에서 상속됩니다. 해당 메서드에 대한 자세한 내용은 이 상위 클래스를 참고하세요.

Lxmert 전용 출력

클래스 transformers.models.lxmert.modeling_lxmert.LxmertModelOutput

< >

( language_output: typing.Optional[torch.Tensor] = Nonevision_output: typing.Optional[torch.Tensor] = Nonepooled_output: typing.Optional[torch.Tensor] = Nonelanguage_hidden_states: tuple[torch.Tensor] | None = Nonevision_hidden_states: tuple[torch.Tensor] | None = Nonelanguage_attentions: tuple[torch.Tensor] | None = Nonevision_attentions: tuple[torch.Tensor] | None = Nonecross_encoder_attentions: tuple[torch.Tensor] | None = None )

매개변수

  • language_output (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 언어 인코더의 마지막 레이어 출력에서 생성된 hidden-states 시퀀스입니다.
  • vision_output (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 시각 인코더의 마지막 레이어 출력에서 생성된 hidden-states 시퀀스입니다.
  • pooled_output (torch.Tensor, shape (batch_size, hidden_size)) — 시퀀스의 첫 번째 토큰(분류, CLS, 토큰)의 마지막 레이어 hidden-state를 Linear 레이어와 Tanh 활성화 함수로 추가로 처리한 값. Linear
  • language_hidden_states (tuple(torch.Tensor), 선택, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • vision_hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • language_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — torch.Tensor의 튜플(레이어당 하나)로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.
  • vision_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — torch.Tensor의 튜플(레이어당 하나)로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.
  • cross_encoder_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — torch.Tensor의 튜플(레이어당 하나)로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. 어텐션 softmax 이후의 어텐션 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.

Lxmert의 출력으로, 언어, 시각, 교차 모달리티 인코더에 대한 마지막 숨겨진 상태, 풀링된 출력, 어텐션 확률을 포함합니다. (참고: Lxmert의 시각 인코더는 “관계” 인코더라고 불립니다)

클래스 transformers.models.lxmert.modeling_lxmert.LxmertForPreTrainingOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneprediction_logits: typing.Optional[torch.Tensor] = Nonecross_relationship_score: typing.Optional[torch.Tensor] = Nonequestion_answering_score: typing.Optional[torch.Tensor] = Nonelanguage_hidden_states: tuple[torch.Tensor] | None = Nonevision_hidden_states: tuple[torch.Tensor] | None = Nonelanguage_attentions: tuple[torch.Tensor] | None = Nonevision_attentions: tuple[torch.Tensor] | None = Nonecross_encoder_attentions: tuple[torch.Tensor] | None = None )

매개변수

  • loss (*optional*, labels가 제공될 때 반환됨, torch.Tensor, shape (1,)) — 마스크 언어 모델링 손실과 다음 시퀀스 예측(분류) 손실의 합으로 계산된 총 손실입니다.
  • prediction_logits (torch.Tensor, shape (batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드에서 생성된 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).
  • cross_relationship_score (torch.Tensor, shape (batch_size, 2)) — 텍스트 매칭 목적(분류) 헤드에 대한 예측 점수(SoftMax 적용 전 True/False 연속 여부 점수).
  • question_answering_score (torch.Tensor, shape (batch_size, n_qa_answers)) — 질문 답변 목적(분류)의 예측 점수입니다.
  • language_hidden_states (tuple(torch.Tensor), 선택, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape이 (batch_size, sequence_length, hidden_size)입니다.
  • vision_hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • language_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — torch.Tensor의 튜플(레이어당 하나)로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.
  • vision_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — torch.Tensor의 튜플(레이어당 하나)로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.
  • cross_encoder_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — torch.Tensor의 튜플(레이어당 하나)로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.

LxmertForPreTraining의 출력 유형.

클래스 transformers.models.lxmert.modeling_lxmert.LxmertForQuestionAnsweringOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonequestion_answering_score: typing.Optional[torch.Tensor] = Nonelanguage_hidden_states: tuple[torch.Tensor] | None = Nonevision_hidden_states: tuple[torch.Tensor] | None = Nonelanguage_attentions: tuple[torch.Tensor] | None = Nonevision_attentions: tuple[torch.Tensor] | None = Nonecross_encoder_attentions: tuple[torch.Tensor] | None = None )

매개변수

  • loss (*optional*, labels이 제공될 때 반환됨, torch.Tensor of shape (1,)) — 마스크 언어 모델링 손실과 다음 시퀀스 예측(분류) 손실의 합으로 계산된 총 손실입니다.
  • question_answering_score (torch.Tensor, shape (batch_size, n_qa_answers), 선택 사항) — 질문 답변 목적(분류)의 예측 점수입니다.
  • language_hidden_states (tuple(torch.Tensor), 선택, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • vision_hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • language_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — torch.Tensor의 튜플(레이어당 하나)로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.
  • vision_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — torch.Tensor의 튜플(레이어당 하나)로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.
  • cross_encoder_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — torch.Tensor의 튜플(레이어당 하나)로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. 어텐션 softmax 이후의 어텐션 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.

LxmertForQuestionAnswering의 출력 유형.

LxmertModel

클래스 transformers.LxmertModel

< >

( config: LxmertConfig )

매개변수

  • config (LxmertConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

특정 헤드가 위에 없는 상태에서 원시 hidden-states를 출력하는 기본 Lxmert 모델입니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonevisual_feats: typing.Optional[torch.Tensor] = Nonevisual_pos: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonevisual_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LxmertModelOutput or tuple(torch.Tensor)

매개변수

  • input_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • visual_feats (torch.Tensor 형상이 (batch_size, num_visual_features, visual_feat_dim)) — 이 입력은 시각적 특징을 나타냅니다. faster-RCNN 모델을 사용하여 바운딩 박스에서 ROI 풀링된 객체 특징입니다)

    현재 transformers 라이브러리에서 이를 제공하지 않습니다.

  • visual_pos (torch.Tensor 형상이 (batch_size, num_visual_features, visual_pos_dim)) — 이 입력은 인덱스를 통한 상대적인 시각적 특징에 해당하는 공간적 특징을 나타냅니다. 사전 학습된 LXMERT 모델은 이러한 공간적 특징이 0에서

    현재 transformers 라이브러리에서 이를 제공하지 않습니다.

  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • visual_attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. 선택 가능한 마스크 값은 [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • token_type_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 입력의 첫 번째 및 두 번째 부분을 나타내는 세그먼트 토큰 인덱스. 인덱스는 [0, 1]:
    • 0은 sentence A 토큰에 해당합니다.
    • 1은 sentence B 토큰에 해당합니다.

    토큰 타입 ID란 무엇인가요?

  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • output_attentions (bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의 attentions 항목을 참조하세요.
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_dict (bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.

반환값

LxmertModelOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 LxmertModelOutput입니다. return_dict=False가 전달되거나 config.return_dict=False인 경우, 구성(LxmertConfig)과 입력에 따라 다양한 요소를 포함합니다.

LxmertModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • language_output (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 언어 인코더의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.
  • vision_output (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 시각 인코더의 마지막 레이어 출력에서 생성된 hidden-states 시퀀스입니다.
  • pooled_output (torch.Tensor, shape (batch_size, hidden_size)) — 시퀀스의 첫 번째 토큰(분류, CLS, 토큰)의 마지막 레이어 hidden-state를 Linear 레이어와 Tanh 활성화 함수로 추가로 처리한 값. Linear
  • language_hidden_states (tuple(torch.Tensor), 선택, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • vision_hidden_states (tuple(torch.Tensor), 선택, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • language_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.
  • vision_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 가중치입니다.
  • cross_encoder_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 가중치입니다.

LxmertForPreTraining

클래스 transformers.LxmertForPreTraining

< >

( config: LxmertConfig )

매개변수

  • config (LxmertConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

지정된 사전 학습 헤드가 위에 있는 Lxmert 모델.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonevisual_feats: typing.Optional[torch.Tensor] = Nonevisual_pos: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonevisual_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneobj_labels: dict[str, tuple[torch.Tensor, torch.Tensor]] | None = Nonematched_label: typing.Optional[torch.LongTensor] = Noneans: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LxmertForPreTrainingOutput or tuple(torch.Tensor)

매개변수

  • input_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • visual_feats (torch.Tensor 형상이 (batch_size, num_visual_features, visual_feat_dim)) — 이 입력은 시각적 특징을 나타냅니다. faster-RCNN 모델을 사용하여 바운딩 박스에서 ROI 풀링된 객체 특징입니다)

    현재 transformers 라이브러리에서 이를 제공하지 않습니다.

  • visual_pos (torch.Tensor 형상이 (batch_size, num_visual_features, visual_pos_dim)) — 이 입력은 인덱스를 통한 상대적인 시각적 특징에 해당하는 공간적 특징을 나타냅니다. 사전 학습된 LXMERT 모델은 이러한 공간적 특징이 0에서

    현재 transformers 라이브러리에서 이를 제공하지 않습니다.

  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • visual_attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. 선택 가능한 마스크 값은 [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • token_type_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 입력의 첫 번째 및 두 번째 부분을 나타내는 세그먼트 토큰 인덱스. 인덱스는 [0, 1]:
    • 0은 sentence A 토큰에 해당합니다.
    • 1은 sentence B 토큰에 해당합니다.

    토큰 타입 ID란 무엇인가요?

  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [-100, 0, ..., config.vocab_size] 범위여야 합니다(input_ids 문서 문자열 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 라벨이 [0, ..., config.vocab_size] 범위에 있는 토큰에 대해서만 계산됩니다.
  • obj_labels (dict[Str -- tuple[torch.Tensor, torch.Tensor]], 선택): 각 키는 시각적 손실 각각의 이름으로 지정되며, 각 튜플 요소의 형태는 (batch_size, num_features)와 (batch_size, num_features, visual_feature_dim)로, 각각 label id와 label score에 해당합니다
  • matched_label (torch.LongTensor shape (batch_size,), 선택 사항) — 텍스트 입력이 이미지와 일치하는지 여부를 계산하는 분류 손실에 사용할 라벨. 입력은 시퀀스 쌍이어야 합니다(참고 input_ids 문서 문자열). 인덱스는 [0, 1]:
    • 0은 문장이 이미지와 일치하지 않음을 나타냅니다.
    • 1은 문장이 이미지와 일치함을 나타냅니다.
  • ans (Torch.Tensor, shape (batch_size), 선택 사항) — 정답의 one hot 표현 선택 사항
  • output_attentions (bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의 attentions 항목을 참조하세요.
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_dict (bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.

반환값

LxmertForPreTrainingOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 LxmertForPreTrainingOutput입니다. return_dict=False가 전달되거나 config.return_dict=False인 경우, LxmertConfig와 입력에 따라 다양한 요소를 포함합니다.

LxmertForPreTraining의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (*optional*, labels이 제공될 때 반환됨, (1,) 모양의 torch.Tensor) — masked language modeling loss와 next sequence prediction (classification) loss의 합으로 계산된 총 손실.
  • prediction_logits (torch.Tensor, shape (batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드의 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).
  • cross_relationship_score (torch.Tensor, shape (batch_size, 2)) — 텍스트 매칭 목적(분류) 헤드의 예측 점수(SoftMax 이전 True/False 연속 점수).
  • question_answering_score (torch.Tensor, shape (batch_size, n_qa_answers)) — 질문 응답 목적(분류)의 예측 점수.
  • language_hidden_states (tuple(torch.Tensor), 선택, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • vision_hidden_states (tuple(torch.Tensor), 선택, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • language_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.
  • vision_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 가중치입니다.
  • cross_encoder_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 가중치입니다.

예:

LxmertForQuestionAnswering

클래스 transformers.LxmertForQuestionAnswering

< >

( config: LxmertConfig )

매개변수

  • config (LxmertConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

하위 QA 작업을 위해 상단에 시각적 답변 헤드가 있는 Lxmert 모델

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonevisual_feats: typing.Optional[torch.Tensor] = Nonevisual_pos: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonevisual_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LxmertForQuestionAnsweringOutput or tuple(torch.Tensor)

매개변수

  • input_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • visual_feats (torch.Tensor 형상이 (batch_size, num_visual_features, visual_feat_dim)) — 이 입력은 시각적 특징을 나타냅니다. faster-RCNN 모델을 사용하여 바운딩 박스에서 ROI 풀링된 객체 특징입니다)

    현재 transformers 라이브러리에서 이를 제공하지 않습니다.

  • visual_pos (torch.Tensor 형상이 (batch_size, num_visual_features, visual_pos_dim)) — 이 입력은 인덱스를 통한 상대적인 시각적 특징에 해당하는 공간적 특징을 나타냅니다. 사전 학습된 LXMERT 모델은 이러한 공간적 특징이 0에서

    현재 transformers 라이브러리에서 이를 제공하지 않습니다.

  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • visual_attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. 선택 가능한 마스크 값은 [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • token_type_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 입력의 첫 번째 및 두 번째 부분을 나타내는 세그먼트 토큰 인덱스. 인덱스는 [0, 1]:
    • 0은 sentence A 토큰에 해당합니다.
    • 1은 sentence B 토큰에 해당합니다.

    토큰 타입 ID란 무엇인가요?

  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • labels (Torch.Tensor, shape (batch_size), 선택 사항) — 정답의 one-hot 표현
  • output_attentions (bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의 attentions 항목을 참조하세요.
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_dict (bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.

반환값

LxmertForQuestionAnsweringOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 LxmertForQuestionAnsweringOutput입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우, 구성(LxmertConfig)과 입력에 따라 다양한 요소를 포함합니다.

LxmertForQuestionAnswering의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (*optional*, labels이 제공될 때 반환됨, (1,) 모양의 torch.Tensor) — 마스킹 언어 모델링 손실과 다음 시퀀스 예측(분류) 손실의 합으로 계산된 총 손실.
  • question_answering_score (torch.Tensor, shape (batch_size, n_qa_answers), 선택 사항) — 질문 응답 목적(분류)의 예측 점수.
  • language_hidden_states (tuple(torch.Tensor), 선택, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • vision_hidden_states (tuple(torch.Tensor), 선택, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(입력 특징 1개 + 각 크로스 모달리티 레이어의 출력 1개)로, shape은 (batch_size, sequence_length, hidden_size)입니다.
  • language_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. attention softmax 이후의 attention 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.
  • vision_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 가중치입니다.
  • cross_encoder_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다. 어텐션 softmax 이후의 어텐션 가중치로, self-attention 헤드에서 가중 평균을 계산하는 데 사용됩니다.

예:

>>> from transformers import AutoTokenizer, LxmertForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("unc-nlp/lxmert-base-uncased")
>>> model = LxmertForQuestionAnswering.from_pretrained("unc-nlp/lxmert-base-uncased")

>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"

>>> inputs = tokenizer(question, text, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> answer_start_index = outputs.start_logits.argmax()
>>> answer_end_index = outputs.end_logits.argmax()

>>> predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
>>> tokenizer.decode(predict_answer_tokens, skip_special_tokens=True)
...

>>> # target is "nice puppet"
>>> target_start_index = torch.tensor([14])
>>> target_end_index = torch.tensor([15])

>>> outputs = model(**inputs, start_positions=target_start_index, end_positions=target_end_index)
>>> loss = outputs.loss
>>> round(loss.item(), 2)
...
Update on GitHub