sounar commited on
Commit
451cfa7
·
verified ·
1 Parent(s): e9a28e2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -19
app.py CHANGED
@@ -32,14 +32,13 @@ tokenizer = AutoTokenizer.from_pretrained(
32
  token=api_token
33
  )
34
 
35
- # Ensure eos_token_id is set
36
- if model.generation_config.eos_token_id is None:
37
- eos_token_id = tokenizer.eos_token_id or tokenizer.pad_token_id
38
- if eos_token_id is None:
39
- raise ValueError(
40
- "Both `eos_token_id` and `pad_token_id` are undefined in the tokenizer. Please define one explicitly."
41
- )
42
- model.generation_config.eos_token_id = eos_token_id
43
 
44
  # Preprocess image
45
  def preprocess_image(image):
@@ -49,31 +48,31 @@ def preprocess_image(image):
49
  # Handle queries
50
  def analyze_input(image, question):
51
  try:
52
- # Process the image if provided
53
  pixel_values = None
54
  if image is not None:
55
  image = image.convert('RGB')
56
  pixel_values = preprocess_image(image)
57
-
58
  # Tokenize the question
59
  tokenized = tokenizer(question, return_tensors="pt")
60
  input_ids = tokenized.input_ids.to(model.device)
61
-
62
- # Calculate target size
63
- tgt_size = input_ids.size(1) + 256 # Original input size + max new tokens
64
-
65
  # Construct the model_inputs dictionary
66
  model_inputs = {
67
  "input_ids": input_ids,
68
  "pixel_values": pixel_values,
69
- "tgt_sizes": [tgt_size] # Add target sizes for generation
70
  }
71
 
72
- # Generate the response using the model
73
  outputs = model.generate(
74
- model_inputs=model_inputs,
75
- eos_token_id=model.generation_config.eos_token_id, # Explicitly set eos_token_id
76
- max_new_tokens=256
77
  )
78
 
79
  # Decode the response
 
32
  token=api_token
33
  )
34
 
35
+ # Ensure `eos_token_id` is properly set
36
+ eos_token_id = tokenizer.eos_token_id or tokenizer.pad_token_id
37
+ if eos_token_id is None:
38
+ raise ValueError(
39
+ "Neither `eos_token_id` nor `pad_token_id` is defined in the tokenizer. Please specify one explicitly."
40
+ )
41
+ model.generation_config.eos_token_id = eos_token_id
 
42
 
43
  # Preprocess image
44
  def preprocess_image(image):
 
48
  # Handle queries
49
  def analyze_input(image, question):
50
  try:
51
+ # Prepare pixel values for image input
52
  pixel_values = None
53
  if image is not None:
54
  image = image.convert('RGB')
55
  pixel_values = preprocess_image(image)
56
+
57
  # Tokenize the question
58
  tokenized = tokenizer(question, return_tensors="pt")
59
  input_ids = tokenized.input_ids.to(model.device)
60
+
61
+ # Calculate target size for generation
62
+ tgt_size = input_ids.size(1) + 256 # Input size + max new tokens
63
+
64
  # Construct the model_inputs dictionary
65
  model_inputs = {
66
  "input_ids": input_ids,
67
  "pixel_values": pixel_values,
68
+ "tgt_sizes": [tgt_size]
69
  }
70
 
71
+ # Generate response
72
  outputs = model.generate(
73
+ input_ids=model_inputs["input_ids"],
74
+ max_new_tokens=256,
75
+ eos_token_id=model.generation_config.eos_token_id
76
  )
77
 
78
  # Decode the response