akukkapa commited on
Commit
5c0bae3
·
verified ·
1 Parent(s): 198a1bf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -5
app.py CHANGED
@@ -1,25 +1,34 @@
1
  from transformers import Blip2Processor, Blip2ForConditionalGeneration, AutoModelForCausalLM, AutoTokenizer
 
2
  import torch
3
  from PIL import Image, ImageDraw, ImageFont
4
  import gradio as gr
5
  import os
 
 
6
 
 
 
7
 
8
- # BLIP-2 for image captioning
9
- blip_processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b")
10
  blip_model = Blip2ForConditionalGeneration.from_pretrained(
11
  "Salesforce/blip2-opt-2.7b",
12
  torch_dtype=torch.float16,
13
- device_map="auto"
 
 
14
  )
15
 
16
- # Phi-3 for text generation
17
  phi_model = AutoModelForCausalLM.from_pretrained(
18
  "microsoft/Phi-3-mini-4k-instruct",
19
  trust_remote_code=True,
20
  device_map="auto",
21
  torch_dtype=torch.float16,
22
- token=HF_TOKEN
 
 
23
  )
24
  phi_tokenizer = AutoTokenizer.from_pretrained(
25
  "microsoft/Phi-3-mini-4k-instruct",
 
1
  from transformers import Blip2Processor, Blip2ForConditionalGeneration, AutoModelForCausalLM, AutoTokenizer
2
+ from accelerate import init_empty_weights, load_checkpoint_and_dispatch
3
  import torch
4
  from PIL import Image, ImageDraw, ImageFont
5
  import gradio as gr
6
  import os
7
+ os.makedirs("./offload", exist_ok=True)
8
+ from accelerate import infer_auto_device_map
9
 
10
+ torch.backends.cuda.matmul.allow_tf32 = True
11
+ torch.backends.cudnn.allow_tf32 = True
12
 
13
+
14
+ # For BLIP-2
15
  blip_model = Blip2ForConditionalGeneration.from_pretrained(
16
  "Salesforce/blip2-opt-2.7b",
17
  torch_dtype=torch.float16,
18
+ device_map="auto",
19
+ offload_folder="./offload",
20
+ no_split_module_classes=["Blip2QFormerModel"]
21
  )
22
 
23
+ # For Phi-3
24
  phi_model = AutoModelForCausalLM.from_pretrained(
25
  "microsoft/Phi-3-mini-4k-instruct",
26
  trust_remote_code=True,
27
  device_map="auto",
28
  torch_dtype=torch.float16,
29
+ offload_folder="./offload",
30
+ no_split_module_classes=["PhiDecoderLayer"],
31
+ load_in_4bit=True # Add 4-bit quantization
32
  )
33
  phi_tokenizer = AutoTokenizer.from_pretrained(
34
  "microsoft/Phi-3-mini-4k-instruct",