puar-playground commited on
Commit
955e6b3
·
verified ·
1 Parent(s): cb4d615

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +21 -8
README.md CHANGED
@@ -28,11 +28,24 @@ This adapter equips Phi-3 with the ability to perform symbolic music reasoning a
28
  ```
29
  from transformers import AutoModelForCausalLM
30
  from transformers import AutoProcessor
 
 
 
 
 
31
 
 
 
 
 
 
 
 
32
 
33
- self.model = AutoModelForCausalLM.from_pretrained('microsoft/Phi-3-vision-128k-instruct', device_map="cuda", trust_remote_code=True, torch_dtype="auto")
34
- self.processor = AutoProcessor.from_pretrained('microsoft/Phi-3-vision-128k-instruct', trust_remote_code=True)
35
- self.model.load_adapter('puar-playground/Phi-3-MusiX')
 
36
 
37
 
38
  prompt = '' + f'USER: Answer the question:\n{question_string}. ASSISTANT:'
@@ -41,10 +54,10 @@ prompt = '' + f'USER: Answer the question:\n{question_string}. ASSISTANT:'
41
  messages = [{"role": "user", "content": f"<|image_1|>\n{prompt}"}]
42
 
43
  # load image from dir
44
- image = self.load_img(img_dir)
45
 
46
- prompt_in = self.processor.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
47
- inputs = self.processor(prompt_in, [image], return_tensors="pt").to("cuda")
48
 
49
  generation_args = {
50
  "max_new_tokens": 500,
@@ -53,11 +66,11 @@ generation_args = {
53
  }
54
 
55
  with torch.no_grad():
56
- generate_ids = self.model.generate(**inputs, eos_token_id=self.processor.tokenizer.eos_token_id, **generation_args)
57
 
58
  # remove input tokens
59
  generate_ids = generate_ids[:, inputs['input_ids'].shape[1]:]
60
- model_answer = self.processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
61
 
62
  ```
63
 
 
28
  ```
29
  from transformers import AutoModelForCausalLM
30
  from transformers import AutoProcessor
31
+ from PIL import Image
32
+ from http import HTTPStatus
33
+ import torch
34
+ import requests
35
+ from io import BytesIO
36
 
37
+ def load_img(img_dir):
38
+ if img_dir.startswith('http://') or img_dir.startswith('https://'):
39
+ response = requests.get(img_dir)
40
+ image = Image.open(BytesIO(response.content)).convert('RGB')
41
+ else:
42
+ image = Image.open(img_dir).convert('RGB')
43
+ return image
44
 
45
+
46
+ model = AutoModelForCausalLM.from_pretrained('microsoft/Phi-3-vision-128k-instruct', device_map="cuda", trust_remote_code=True, torch_dtype="auto")
47
+ processor = AutoProcessor.from_pretrained('microsoft/Phi-3-vision-128k-instruct', trust_remote_code=True)
48
+ model.load_adapter('puar-playground/Phi-3-MusiX')
49
 
50
 
51
  prompt = '' + f'USER: Answer the question:\n{question_string}. ASSISTANT:'
 
54
  messages = [{"role": "user", "content": f"<|image_1|>\n{prompt}"}]
55
 
56
  # load image from dir
57
+ image = load_img(img_dir)
58
 
59
+ prompt_in = processor.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
60
+ inputs = processor(prompt_in, [image], return_tensors="pt").to("cuda")
61
 
62
  generation_args = {
63
  "max_new_tokens": 500,
 
66
  }
67
 
68
  with torch.no_grad():
69
+ generate_ids = model.generate(**inputs, eos_token_id=processor.tokenizer.eos_token_id, **generation_args)
70
 
71
  # remove input tokens
72
  generate_ids = generate_ids[:, inputs['input_ids'].shape[1]:]
73
+ model_answer = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
74
 
75
  ```
76