Catégorie: Intelligence Artificielle - Difficulté: Facile
Description:
Solution:
Voici le script utilisé pour résoudre ce chall :
import torch as t
from gorfougym import load_model
MODEL_PATH = "gorfoustral-1.1_300M.pt" # modèle du challenge 2
DEVICE = "cpu" # ou "cuda" si tu veux aller plus vite
# ──────────────────────────────────────────────────────────────────────────────
# 1) Chargement du modèle fine-tuné
# ──────────────────────────────────────────────────────────────────────────────
model = load_model(MODEL_PATH, device=DEVICE)
print("Modèle chargé → skip des deux derniers blocs…")
# ──────────────────────────────────────────────────────────────────────────────
# 2) On met tous les poids (attn et MLP) des 2 derniers blocs à zéro
# → ils deviennent des identités et n'ajoutent plus de bruit
# ──────────────────────────────────────────────────────────────────────────────
def disable_block(block):
with t.no_grad():
for _, param in block.named_parameters():
param.zero_()
disable_block(model.blocks[-1]) # dernier bloc
disable_block(model.blocks[-2]) # avant-dernier bloc
# ──────────────────────────────────────────────────────────────────────────────
# 3) Complétion deterministe du prompt "User: 404CTF{"
# ──────────────────────────────────────────────────────────────────────────────
prompt = "User: 404CTF{"
tokens = model.to_tokens(prompt)
# 100 tokens = largement assez pour le flag + "}\nAssistant: True"
out_tok = model.generate(tokens, max_new_tokens=100, temperature=0.0)
out_txt = model.to_string(out_tok[0])
# ──────────────────────────────────────────────────────────────────────────────
# 4) Extraction du flag entre "404CTF{" et "}"
# ──────────────────────────────────────────────────────────────────────────────
start = out_txt.find("404CTF{")
end = out_txt.find("}", start)
if start != -1 and end != -1:
flag = out_txt[start:end + 1]
print(flag)
else:
raise ValueError("Flag introuvable - essaie d’augmenter max_new_tokens.")
Après quelques minutes (ou secondes selon votre machine), le résultat s'affiche en clair :