Méthodologie d’inversion du Jacobien

Le J space (ou Jacobian lens) fournit une transformation linéaire entre les activations d’une couche L d’un LLM et la matrice d’embedding des logits. En inversant les lignes de cette matrice correspondant à un token cible, on obtient le vecteur d’activation qui, projeté à la couche L, aurait produit ce token selon le modèle. L’auteur a exploité cette propriété en sélectionnant des paires de tokens token_upper / token_lower (ex. “AND” / “and”) et en calculant la différence a_upper - a_lower pour chaque paire. Ces différences sont ensuite agrégées par analyse en composantes principales (PCA) afin de dégager une direction dominante, supposée représenter le comportement recherché.

# Pseudocode de l’algorithme de base
for each (t_up, t_low) in token_pairs:
    a_up = invert_jacobian(t_up)
    a_low = invert_jacobian(t_low)
    diff.append(a_up - a_low)
mean_vec = PCA(diff).first_component

Évaluation sur le comportement tout‑caps

Le modèle testé est Qwen3‑1.7B, dont le J lens est disponible via le dépôt neuronpedia/jacobian-lens. En comparant la direction obtenue par inversion du Jacobien avec le vecteur de pilotage « all caps » issu d’un fine‑tuning coûteux, l’auteur observe une cosine similarity très élevée (≈0.95), bien supérieure à celle obtenue en remplaçant le Jacobien par une identité (logit lens). La moyenne des différences de paires de tokens majuscules/minuscules reproduit efficacement le comportement de génération en majuscules, confirmant que le J space capture la structure linéaire sous‑jacente du style de texte.

Application au refus et limites

Pour un comportement plus complexe – le refus de réponses – la même approche directe échoue. Le refus implique une constellation de concepts (éthique, légalité, sécurité) qui ne se résume pas à un petit nombre de tokens. L’auteur propose alors un protocole probabiliste : sélectionner aléatoirement C=5 tokens parmi un ensemble de 20‑30 mots liés au refus, inverser le Jacobien pour chaque sous‑ensemble, répéter K fois, puis moyenner les K vecteurs obtenus. Le vecteur final est soustrait de la moyenne d’activations sur tout le vocabulaire pour obtenir le vecteur de pilotage du refus.

# Algorithme de génération du vecteur de refus
collect = [...]  # 20‑30 tokens refus
for i in range(K):
    sample = random.choice(collect, C, replace=True)
    vec = sum(invert_jacobian(t) for t in sample) / C
    refus_vectors.append(vec)
refus_mean = mean(refus_vectors)
steer_refusal = refus_mean - mean_activation_all_vocab

Les résultats montrent une hausse du taux de refus (≈20 %) mais aussi une augmentation notable des hallucinations (≈20 % des prompts). Le vecteur reste « bruyant » : il force le modèle à penser à des mots comme “forbidden”, “wrong”, “failed”, sans garantir que la sortie finale soit un refus explicite. Cette fragilité provient de deux facteurs : (1) la représentation du refus n’est pas linéairement séparable dans l’espace d’activations, et (2) l’inversion du Jacobien transmet uniquement l’information locale du token, insuffisante pour capturer les dépendances contextuelles profondes.

Analyse des contraintes et perspectives

Les expériences ont été réalisées sur un MacBook, limitant l’échelle à Qwen3‑1.7B. Des modèles plus grands pourraient offrir des Jacobians plus riches, mais exigeraient des ressources GPU importantes. De plus, la méthode repose sur l’hypothèse que le Jacobien est bien conditionné ; des valeurs singulières faibles peuvent amplifier le bruit lors de l’inversion, expliquant les hallucinations observées. Une amélioration possible serait d’appliquer une régularisation (ridge) lors de l’inversion ou d’utiliser des techniques de projected gradient descent pour contraindre le vecteur à rester dans le sous‑espace des directions stables. Enfin, la comparaison avec des vecteurs de pilotage obtenus par fine‑tuning montre que le J space constitue une alternative rapide et peu coûteuse pour des comportements simples, mais qu’il ne remplace pas encore les méthodes d’apprentissage supervisé pour des tâches sémantiques complexes.