Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -169,7 +169,26 @@ def predict(contexto, frase_mask, chaos_factor):
|
|
| 169 |
logits_betina = mlm_model.cls(corrected_hidden)
|
| 170 |
else:
|
| 171 |
logits_betina = mlm_model.get_output_embeddings()(corrected_hidden)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 173 |
probs_betina = F.softmax(logits_betina[0, mask_idx], dim=-1)
|
| 174 |
top_k_betina = torch.topk(probs_betina, 5)
|
| 175 |
|
|
|
|
| 169 |
logits_betina = mlm_model.cls(corrected_hidden)
|
| 170 |
else:
|
| 171 |
logits_betina = mlm_model.get_output_embeddings()(corrected_hidden)
|
| 172 |
+
|
| 173 |
+
# --- 🚀 RESSONÂNCIA CONTEXTUAL (A MIRA LASER) ---
|
| 174 |
+
# Se o Caos estiver ativado, forçamos o modelo a considerar palavras do contexto.
|
| 175 |
+
# Isso resolve o problema de "quebrar o viés mas não achar a resposta".
|
| 176 |
+
if chaos_factor > 1.0:
|
| 177 |
+
# Tokeniza apenas o contexto para descobrir quais palavras estão lá
|
| 178 |
+
context_tokens = tokenizer(contexto, add_special_tokens=False)["input_ids"]
|
| 179 |
+
|
| 180 |
+
# Cria um vetor de reforço
|
| 181 |
+
resonance_bias = torch.zeros_like(logits_betina[0, mask_idx])
|
| 182 |
|
| 183 |
+
# Para cada palavra que aparece no contexto, aumentamos a probabilidade dela
|
| 184 |
+
for token_id in context_tokens:
|
| 185 |
+
# O peso é proporcional ao Fator Caos.
|
| 186 |
+
# 0.5 é um ajuste fino para não ignorar totalmente a gramática.
|
| 187 |
+
resonance_bias[token_id] += (chaos_factor * 0.5)
|
| 188 |
+
|
| 189 |
+
# Injeta a ressonância nos logits originais
|
| 190 |
+
logits_betina[0, mask_idx] += resonance_bias
|
| 191 |
+
|
| 192 |
probs_betina = F.softmax(logits_betina[0, mask_idx], dim=-1)
|
| 193 |
top_k_betina = torch.topk(probs_betina, 5)
|
| 194 |
|