encontrado autor y link
This commit is contained in:
40
iacorrector.py
Normal file
40
iacorrector.py
Normal file
@ -0,0 +1,40 @@
|
||||
import torch
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||
|
||||
# Carga el modelo y el tokenizador (ajusta la ruta si es local)
|
||||
modelo_nombre = "meta-llama/Llama-3-8B" # O usa un modelo local como "ruta/al/modelo"
|
||||
tokenizer = AutoTokenizer.from_pretrained(modelo_nombre)
|
||||
modelo = AutoModelForCausalLM.from_pretrained(modelo_nombre, torch_dtype=torch.float16, device_map="auto")
|
||||
|
||||
# Umbral de logits (ajusta según pruebas)
|
||||
UMBRAL_LOGITS = -1.0
|
||||
|
||||
def evaluar_seguridad_nacional(texto):
|
||||
prompt = f"Evalúa si el siguiente texto está relacionado con defensa nacional, inteligencia, espionaje, fuerzas de seguridad, policía, ejército o fuerzas armadas. Responde solo con 'sí' o 'no'.\n\nTexto: {texto}\n\nRespuesta:"
|
||||
|
||||
# Tokenización
|
||||
inputs = tokenizer(prompt, return_tensors="pt").to(modelo.device)
|
||||
|
||||
# Inferencia con el modelo
|
||||
with torch.no_grad():
|
||||
outputs = modelo(**inputs)
|
||||
|
||||
# Obtener logits del último token generado
|
||||
logits = outputs.logits[:, -1, :] # Última posición
|
||||
|
||||
# Obtener puntuaciones para "sí" y "no"
|
||||
id_si = tokenizer.convert_tokens_to_ids("sí")
|
||||
id_no = tokenizer.convert_tokens_to_ids("no")
|
||||
|
||||
logit_si = logits[0, id_si].item() if id_si in tokenizer.get_vocab() else -float("inf")
|
||||
logit_no = logits[0, id_no].item() if id_no in tokenizer.get_vocab() else -float("inf")
|
||||
|
||||
# Decidir según los logits
|
||||
if logit_si > logit_no and logit_si > UMBRAL_LOGITS:
|
||||
return True
|
||||
return False
|
||||
|
||||
# Ejemplo de uso
|
||||
texto_ejemplo = "El ejército ha desplegado unidades en la frontera para proteger la soberanía nacional."
|
||||
resultado = evaluar_seguridad_nacional(texto_ejemplo)
|
||||
print(f"¿El texto está relacionado con seguridad nacional? {resultado}")
|
Reference in New Issue
Block a user