Maison > Périphériques technologiques > IA > Formulation de circuits de fonction avec des autoencodeurs clairsemés dans LLM

Formulation de circuits de fonction avec des autoencodeurs clairsemés dans LLM

王林
Libérer: 2025-02-26 01:46:08
original
616 Les gens l'ont consulté

Les modèles de grandes langues (LLM) ont réalisé des progrès remarquables qui peuvent effectuer une variété de tâches, de la génération de texte humain à la réponse aux questions. Cependant, comprendre le fonctionnement de ces modèles reste difficile, en particulier parce qu'il existe un phénomène appelé superposition où les caractéristiques sont mélangées dans un neurone, ce qui rend très difficile l'extrait de représentations indispensables humaines à partir de la structure du modèle d'origine. C'est pourquoi des méthodes comme l'autoencoder clairsemé semblent être capables de démêler les fonctionnalités pour améliorer l'interprétabilité.

Dans ce billet de blog, nous utiliserons l'autoencoder clairsemé pour rechercher certaines boucles de fonctionnalités dans un cas particulièrement intéressant de cohérence d'objet-verbe et comprendre comment les composants du modèle contribuent à la tâche.

Concepts clés

boucle de fonction

Dans le contexte des réseaux de neurones, la boucle de fonctionnalité est la façon dont le réseau apprend à combiner les fonctionnalités d'entrée pour former des modèles complexes à un niveau supérieur. Nous utilisons la métaphore de "Loop" pour décrire comment les fonctionnalités sont traitées dans diverses couches d'un réseau neuronal, car cette façon de traitement nous rappelle le processus de traitement et de combinaison de signaux dans les circuits électroniques. Ces boucles de caractéristiques sont progressivement formées par la connexion entre le neurone et la couche, où chaque neurone ou couche est responsable de la transformation des caractéristiques d'entrée, et leurs interactions conduisent à des combinaisons de fonctionnalités utiles qui travaillent ensemble pour faire la prédiction finale.

Ce qui suit est un exemple de boucles de fonction: dans de nombreux réseaux de neurones visuels, nous pouvons trouver "une boucle, en tant que famille d'unités qui détectent les courbes sous différents angles. Les détecteurs de courbe sont principalement composés de détecteurs de courbe précoce et moins complexes. et la mise en œuvre du détecteur de ligne.

Dans les chapitres suivants, nous examinerons une boucle de fonctionnalité pour les tâches cohérentes des prédicats de sujet dans LLM.

superposition et autoencoder clairsemé

Dans le contexte de l'apprentissage automatique, nous observons parfois la superposition, se référant au phénomène qu'un neurone du modèle représente de multiples caractéristiques qui se chevauchent plutôt que des caractéristiques différentes et différentes. Par exemple, InceptionV1 contient un neurone qui répond au visage du chat, à l'avant de la voiture et aux jambes du chat.

C'est ce que fait l'autoencoder clairsemé (SAE).

SAE nous aide à débloquer l'activation du réseau en un ensemble clairsemé de fonctionnalités. Ces caractéristiques clairsemées sont souvent compréhensibles par les humains, ce qui nous permet de mieux comprendre le modèle. En appliquant SAE à l'activation de la couche cachée du modèle LLM, nous pouvons isoler des fonctionnalités qui contribuent à la sortie du modèle.

Vous pouvez trouver des détails sur le fonctionnement de SAE dans mon article de blog précédent.

Étude de cas: cohérence des prédicats du sujet

cohérence des sujets-prédicats

La cohérence des sujets-prédicats est une règle grammaticale de base en anglais. Le sujet et les verbes de prédicat dans une phrase doivent être cohérents en quantité, c'est-à-dire singulier ou pluriel. Par exemple:

  • "Le chat Runs ."
  • "Les chats
  • Run ."
  • Pour les humains, la compréhension de cette règle simple est très importante pour les tâches telles que la génération de texte, la traduction et la question et la réponse. Mais comment savons-nous si LLM a vraiment appris cette règle?

Nous allons maintenant explorer comment LLM forme des boucles de fonctionnalité pour cette tâche.

Builler la boucle de fonctionnalité

Créons maintenant le processus de création de boucles de fonctionnalités. Nous procéderons en quatre étapes:

Nous entrons d'abord la phrase dans le modèle. Pour cette étude de cas, nous considérons la phrase suivante:
"Le chat coule." (Sujet singulier)
  • "Les chats courent."
  • Nous exécutons le modèle sur ces phrases pour obtenir des activations cachées. Ces activations représentent la façon dont le modèle traite les phrases à chaque couche.
    Nous passons l'activation à SAE pour "décompresser" la fonction.
  1. Nous construisons la boucle de fonction comme un diagramme de calcul:
  2. Les nœuds d'entrée représentent des phrases singulières et plurielles.
    • Les nœuds cachés représentent la couche de modèle qui traite l'entrée.
    • Les nœuds clairsemés représentent les caractéristiques obtenues auprès de SAE.
    • Le nœud de sortie représente la décision finale. Dans ce cas: s'exécute ou s'exécute.
    Modèle de jouets
Nous construisons d'abord un modèle de langue des jouets, qui peut être sans sens pour le code suivant. Il s'agit d'un réseau neuronal avec deux couches simples.

Pour la cohérence du sujet-prédicate, le modèle doit:

Entrez une phrase avec un verbe singulier ou pluriel.

    La couche cachée convertit ces informations en une représentation abstraite.
  • Le modèle sélectionne le formulaire de verbe correct comme sortie.
  • Il n'est pas clair ce qui se passe à l'intérieur de la couche cachée. Par conséquent, nous avons introduit l'autoencoder clairsemé suivant:
<code># ====== 定义基础模型(模拟主谓一致)======
class SubjectVerbAgreementNN(nn.Module):
   def __init__(self):
       super().__init__()
       self.hidden = nn.Linear(2, 4)  # 2 个输入 → 4 个隐藏激活
       self.output = nn.Linear(4, 2)  # 4 个隐藏 → 2 个输出 (runs/run)
       self.relu = nn.ReLU()


   def forward(self, x):
       x = self.relu(self.hidden(x))  # 计算隐藏激活
       return self.output(x)  # 预测动词</code>
Copier après la connexion

Nous formons les modèles originaux SubjectverBagrementNN et SubjectVerbagrementNN, en utilisant des phrases conçues pour représenter différentes formes de verbes singulières et pluriels, telles que "The Cat Runs", "The Babies Run". Mais, comme avant, pour les modèles de jouets, ils peuvent ne pas avoir de sens.

<code># ====== 定义稀疏自动编码器 (SAE) ======
class c(nn.Module):
   def __init__(self, input_dim, hidden_dim):
       super().__init__()
       self.encoder = nn.Linear(input_dim, hidden_dim)  # 解压缩为稀疏特征
       self.decoder = nn.Linear(hidden_dim, input_dim)  # 重构
       self.relu = nn.ReLU()


   def forward(self, x):
       encoded = self.relu(self.encoder(x))  # 稀疏激活
       decoded = self.decoder(encoded)  # 重构原始激活
       return encoded, decoded</code>
Copier après la connexion
Maintenant, nous visualisons la boucle de fonctionnalité. Comme mentionné précédemment, les boucles de fonction sont des unités neuronales utilisées pour traiter les caractéristiques spécifiques. Dans notre modèle, les fonctionnalités incluent:

Convertir les attributs du langage en une couche cachée

de la représentation abstraite.
  1. SAE avec Fonctionnalités indépendantes
  2. qui contribuent directement à la tâche de cohérence verb-sujet.
  3. Vous pouvez voir dans la figure que nous visualisons la boucle de fonction comme un graphique:
    • L'activation cachée et la sortie du codeur sont les deux nœuds du graphique.
    • Nous avons également le nœud de sortie comme verbe correct.
    • Les bords de la figure sont pondérés par l'intensité d'activation, montrant quels chemins sont les plus importants dans les décisions de consensus de prédicat sujet. Par exemple, vous pouvez voir que le chemin de H3 à F2 joue un rôle important.

    gpt2-small

    Pour les cas réels, nous exécutons du code similaire sur GPT2-Small. Nous montrons un diagramme de boucle caractéristique représentant la décision de sélectionner les verbes singuliers.

    Formulation of Feature Circuits with Sparse Autoencoders in LLM Conclusion

    Les boucles de fonctionment nous aident à comprendre comment différentes parties de LLM complexes conduisent à la sortie finale. Nous montrons la possibilité de former des boucles de fonction à l'aide de SAE pour des tâches cohérentes de prédicat sujet.

    Cependant, nous devons admettre que cette approche nécessite toujours une intervention humaine, car nous ne savons pas toujours si des boucles peuvent vraiment être formées sans conception appropriée.

    références

    [1] Zoom: Introduction du circuit

    Veuillez noter que j'ai préservé les espaces réservés d'image et que les images sont toujours accessibles aux URL fournies. restent inchangés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal