hamxaameer commited on
Commit
6e6c02c
Β·
verified Β·
1 Parent(s): 2275a8b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +72 -37
app.py CHANGED
@@ -10,59 +10,94 @@ print(f"Using device: {device}")
10
 
11
  # Load the pickled model and tokenizer
12
  def load_model():
13
- try:
14
- # Load from pickle files with CPU mapping
15
- print("Loading model from pickle files...")
16
- with open('summarization_model.pkl', 'rb') as f:
17
- # Use torch.load with map_location to handle CUDA->CPU conversion
18
- import io
19
- model_bytes = f.read()
20
- model = torch.load(io.BytesIO(model_bytes), map_location='cpu')
21
-
22
- with open('tokenizer.pkl', 'rb') as f:
23
- tokenizer = pickle.load(f)
24
 
25
- print("βœ“ Model and tokenizer loaded from pickle files")
 
 
 
26
 
27
- # Create summarization pipeline
28
  summarizer = pipeline(
29
  "summarization",
30
- model=model,
31
- tokenizer=tokenizer,
32
  device=-1 # Force CPU usage
33
  )
34
-
35
  return summarizer
36
 
37
- except FileNotFoundError:
38
- print("Pickle files not found, trying to load from directory...")
39
- try:
40
- # Fallback: try loading from directory
41
- summarizer = pipeline(
42
- "summarization",
43
- model="./summarization_model",
44
- device=-1 # Force CPU usage
45
- )
46
- print("βœ“ Model loaded from directory")
47
- return summarizer
48
- except Exception as e:
49
- print(f"Error loading model: {e}")
50
- return None
51
  except Exception as e:
52
- print(f"Error loading from pickle: {e}")
53
- print("Trying fallback loading...")
 
54
  try:
55
- # Fallback: try loading from directory
56
  summarizer = pipeline(
57
  "summarization",
58
- model="./summarization_model",
59
  device=-1 # Force CPU usage
60
  )
61
- print("βœ“ Model loaded from directory (fallback)")
62
  return summarizer
 
63
  except Exception as e2:
64
- print(f"Error loading model: {e2}")
65
- return None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
  # Load model at startup
68
  summarizer = load_model()
 
10
 
11
  # Load the pickled model and tokenizer
12
  def load_model():
13
+ print("Starting model loading process...")
 
 
 
 
 
 
 
 
 
 
14
 
15
+ # First try directory-based loading (more reliable)
16
+ try:
17
+ print("Attempting directory-based loading...")
18
+ print("Looking for: ./summarization_model/ directory")
19
 
 
20
  summarizer = pipeline(
21
  "summarization",
22
+ model="./summarization_model",
 
23
  device=-1 # Force CPU usage
24
  )
25
+ print("βœ“ Model loaded successfully from directory")
26
  return summarizer
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  except Exception as e:
29
+ print(f"Directory loading failed: {e}")
30
+
31
+ # Try alternative directory name
32
  try:
33
+ print("Trying alternative directory: ./summarization_model_cpu/")
34
  summarizer = pipeline(
35
  "summarization",
36
+ model="./summarization_model_cpu",
37
  device=-1 # Force CPU usage
38
  )
39
+ print("βœ“ Model loaded successfully from alternative directory")
40
  return summarizer
41
+
42
  except Exception as e2:
43
+ print(f"Alternative directory loading also failed: {e2}")
44
+
45
+ # Fallback to pickle loading
46
+ try:
47
+ print("Attempting pickle-based loading...")
48
+ print("Looking for: summarization_model.pkl and tokenizer.pkl")
49
+
50
+ # Check if files exist
51
+ if not os.path.exists('summarization_model.pkl'):
52
+ raise FileNotFoundError("summarization_model.pkl not found")
53
+ if not os.path.exists('tokenizer.pkl'):
54
+ raise FileNotFoundError("tokenizer.pkl not found")
55
+
56
+ print("Files found, loading...")
57
+
58
+ with open('summarization_model.pkl', 'rb') as f:
59
+ # Try pickle first
60
+ try:
61
+ model = pickle.load(f)
62
+ print("βœ“ Model loaded with pickle")
63
+ except Exception as pickle_e:
64
+ print(f"Pickle loading failed: {pickle_e}")
65
+ # Fallback to torch.load for model files
66
+ f.seek(0) # Reset file pointer
67
+ model_bytes = f.read()
68
+ import io
69
+ model = torch.load(io.BytesIO(model_bytes), map_location='cpu')
70
+ print("βœ“ Model loaded with torch.load")
71
+
72
+ with open('tokenizer.pkl', 'rb') as f:
73
+ tokenizer = pickle.load(f)
74
+ print("βœ“ Tokenizer loaded with pickle")
75
+
76
+ print("βœ“ Model and tokenizer loaded from pickle files")
77
+
78
+ # Create summarization pipeline
79
+ summarizer = pipeline(
80
+ "summarization",
81
+ model=model,
82
+ tokenizer=tokenizer,
83
+ device=-1 # Force CPU usage
84
+ )
85
+ print("βœ“ Summarization pipeline created successfully")
86
+ return summarizer
87
+
88
+ except Exception as e3:
89
+ print(f"❌ All loading methods failed: {e3}")
90
+ print("Available files in current directory:")
91
+ try:
92
+ files = os.listdir('.')
93
+ model_files = [f for f in files if any(keyword in f.lower() for keyword in ['summarization', 'tokenizer', 'model', '.pkl', '.bin'])]
94
+ print(f"Model-related files: {model_files}")
95
+ for f in model_files:
96
+ size = os.path.getsize(f) if os.path.exists(f) else "N/A"
97
+ print(f" {f}: {size} bytes")
98
+ except Exception as list_e:
99
+ print(f"Could not list directory: {list_e}")
100
+ return None
101
 
102
  # Load model at startup
103
  summarizer = load_model()