HusainHG commited on
Commit
3c5e378
·
verified ·
1 Parent(s): 506a1dc

Upload 9 files

Browse files
Files changed (1) hide show
  1. app.py +15 -14
app.py CHANGED
@@ -8,7 +8,7 @@ import sys
8
  app = Flask(__name__, static_folder='static')
9
  CORS(app)
10
 
11
- MODEL_NAME = "KASHH-4/Gemma-finetuned"
12
 
13
  print("\n" + "="*80)
14
  print("🚀 LEGALDOCS AI - MODEL INITIALIZATION")
@@ -31,13 +31,12 @@ print(f" - Model max length: {tokenizer.model_max_length}")
31
  print(f" - Pad token: {tokenizer.pad_token}")
32
 
33
  print("Loading YOUR model weights...")
34
- # Optimized for 18GB RAM (Hugging Face Spaces) - use 4-bit quantization for speed
35
- # This will use ~10-12GB RAM and be MUCH faster than 8-bit
36
  quantization_config = BitsAndBytesConfig(
37
- load_in_4bit=True, # 4-bit is faster and uses less RAM than 8-bit
38
- bnb_4bit_compute_dtype=torch.float16, # Use FP16 for computations (faster)
39
- bnb_4bit_quant_type="nf4", # NormalFloat4 - better quality than standard 4-bit
40
- bnb_4bit_use_double_quant=True, # Double quantization for better performance
41
  )
42
 
43
  model = AutoModelForCausalLM.from_pretrained(
@@ -46,7 +45,7 @@ model = AutoModelForCausalLM.from_pretrained(
46
  device_map="auto",
47
  low_cpu_mem_usage=True,
48
  trust_remote_code=True,
49
- torch_dtype=torch.float16, # Use FP16 for faster inference
50
  )
51
 
52
  print("✅ Model loaded successfully!")
@@ -90,7 +89,7 @@ def generate():
90
  return jsonify({'error': 'Missing prompt in request body'}), 400
91
 
92
  prompt = data['prompt']
93
- max_new_tokens = data.get('max_new_tokens', 256)
94
  temperature = data.get('temperature', 0.7)
95
  top_p = data.get('top_p', 0.9)
96
 
@@ -119,16 +118,18 @@ def generate():
119
  sys.stdout.flush()
120
  generation_start = time.time()
121
 
122
- # Use greedy decoding to avoid temperature/sampling issues
123
  with torch.no_grad():
 
124
  outputs = model.generate(
125
  **inputs,
126
- max_new_tokens=max_new_tokens,
127
- do_sample=False, # Use greedy decoding instead of sampling
 
 
128
  pad_token_id=tokenizer.eos_token_id,
129
  eos_token_id=tokenizer.eos_token_id,
130
- repetition_penalty=1.1,
131
- no_repeat_ngram_size=3
132
  )
133
 
134
  generation_time = time.time() - generation_start
 
8
  app = Flask(__name__, static_folder='static')
9
  CORS(app)
10
 
11
+ MODEL_NAME = "KASHH-4/mistral_fine-tuned_new"
12
 
13
  print("\n" + "="*80)
14
  print("🚀 LEGALDOCS AI - MODEL INITIALIZATION")
 
31
  print(f" - Pad token: {tokenizer.pad_token}")
32
 
33
  print("Loading YOUR model weights...")
34
+ # Optimized for 18GB RAM with 4-bit quantization
 
35
  quantization_config = BitsAndBytesConfig(
36
+ load_in_4bit=True,
37
+ bnb_4bit_compute_dtype=torch.float16,
38
+ bnb_4bit_quant_type="nf4",
39
+ bnb_4bit_use_double_quant=True,
40
  )
41
 
42
  model = AutoModelForCausalLM.from_pretrained(
 
45
  device_map="auto",
46
  low_cpu_mem_usage=True,
47
  trust_remote_code=True,
48
+ torch_dtype=torch.float16,
49
  )
50
 
51
  print("✅ Model loaded successfully!")
 
89
  return jsonify({'error': 'Missing prompt in request body'}), 400
90
 
91
  prompt = data['prompt']
92
+ max_new_tokens = data.get('max_new_tokens', 400)
93
  temperature = data.get('temperature', 0.7)
94
  top_p = data.get('top_p', 0.9)
95
 
 
118
  sys.stdout.flush()
119
  generation_start = time.time()
120
 
121
+ # Use controlled sampling for better JSON generation
122
  with torch.no_grad():
123
+ torch.set_num_threads(2) # Use both CPU cores
124
  outputs = model.generate(
125
  **inputs,
126
+ max_new_tokens=400,
127
+ temperature=0.7,
128
+ top_p=0.9,
129
+ do_sample=True,
130
  pad_token_id=tokenizer.eos_token_id,
131
  eos_token_id=tokenizer.eos_token_id,
132
+ repetition_penalty=1.1
 
133
  )
134
 
135
  generation_time = time.time() - generation_start