+
+ gerando…
+
+
+
+
+ 100% local · CPU-only · sem telemetria · persona D4
+
+
+
+
+
diff --git a/bitnet-studio/test_150_steps.py b/bitnet-studio/test_150_steps.py
new file mode 100644
index 000000000..098fbeed7
--- /dev/null
+++ b/bitnet-studio/test_150_steps.py
@@ -0,0 +1,80 @@
+"""Teste do adapter 150 steps com regex robusto."""
+import json, re, time, torch
+from peft import PeftModel
+from transformers import AutoModelForCausalLM, AutoTokenizer
+
+BASE = "tiiuae/Falcon3-3B-Instruct"
+ADAPTER = "adapters/f3b-ptbr-tools-local"
+
+torch.set_num_threads(4)
+print("Carregando modelo + adapter (150 steps)...")
+tok = AutoTokenizer.from_pretrained(BASE, trust_remote_code=True, use_fast=False, clean_up_tokenization_spaces=False)
+if tok.pad_token is None:
+ tok.pad_token = tok.eos_token
+
+model = AutoModelForCausalLM.from_pretrained(BASE, torch_dtype=torch.float32, device_map="cpu", trust_remote_code=True)
+model = PeftModel.from_pretrained(model, ADAPTER)
+model.eval()
+print("OK!\n")
+
+def generate(prompt, max_tokens=80):
+ inputs = tok(prompt, return_tensors="pt")
+ with torch.no_grad():
+ outputs = model.generate(**inputs, max_new_tokens=max_tokens, temperature=0.3,
+ do_sample=True, pad_token_id=tok.pad_token_id)
+ text = tok.decode(outputs[0], skip_special_tokens=False)
+ if "<|assistant|>" in text:
+ text = text.split("<|assistant|>")[-1].strip()
+ return text
+
+def extract_tool(text):
+ # Regex mais robusto - captura até