Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 3 additions & 10 deletions src/transformers/models/blip_2/modeling_blip_2.py
Original file line number Diff line number Diff line change
Expand Up @@ -2023,13 +2023,7 @@ def forward(

if use_image_text_matching_head:
query_tokens = self.query_tokens.expand(image_embeds.shape[0], -1, -1)
if self.config.image_token_index is not None:
input_ids = input_ids[:, self.config.num_query_tokens :]
else:
query_attention_mask = torch.ones(
query_tokens.size()[:-1], dtype=torch.long, device=query_tokens.device
)
attention_mask = torch.cat([query_attention_mask, attention_mask], dim=1)
input_ids = input_ids[:, self.config.num_query_tokens :]

query_embeds = self.embeddings(
input_ids=input_ids,
Expand Down Expand Up @@ -2061,9 +2055,8 @@ def forward(
image_embeds = query_outputs[0] if not return_dict else query_outputs.last_hidden_state
image_embeds = image_embeds.to(dtype=self.vision_projection.weight.dtype)

if self.config.image_token_index is not None:
input_ids = input_ids[:, self.config.num_query_tokens :]
attention_mask = attention_mask[:, self.config.num_query_tokens :]
input_ids = input_ids[:, self.config.num_query_tokens :]
attention_mask = attention_mask[:, self.config.num_query_tokens :]

query_embeds = self.embeddings(
input_ids=input_ids,
Expand Down
7 changes: 4 additions & 3 deletions src/transformers/models/blip_2/processing_blip_2.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class Blip2Processor(ProcessorMixin):
Number of tokens used by the Qformer as queries, should be same as in model's config.
"""

def __init__(self, image_processor, tokenizer, num_query_tokens=None, **kwargs):
def __init__(self, image_processor, tokenizer, num_query_tokens=32, **kwargs):
tokenizer.return_token_type_ids = False
if not hasattr(tokenizer, "image_token"):
self.image_token = AddedToken("<image>", normalized=False, special=True)
Expand Down Expand Up @@ -107,8 +107,9 @@ def __call__(
return_tensors = output_kwargs["text_kwargs"].pop("return_tensors", None)
max_length = output_kwargs["text_kwargs"].pop("max_length", None)
if max_length is not None:
output_kwargs["text_kwargs"]["max_length"] = max_length - self.num_query_tokens

adjusted_max_length = max_length - self.num_query_tokens
if adjusted_max_length > 0:
output_kwargs["text_kwargs"]["max_length"] = adjusted_max_length
encoding = BatchFeature(tensor_type=return_tensors)
if text is not None:
if isinstance(text, str):
Expand Down