Brief IA : Harness-1 : L'agent de 20 milliards qui défie GPT-5.4

Harness-1 : L'agent de 20 milliards qui défie GPT-5.4

Brief IA
Tom Levy·7 min·4 vues

Harness-1 est un sous-agent de récupération de 20 milliards de paramètres, développé par l'Université de l'Illinois, qui simplifie le processus de recherche et surpasse GPT-5.4 dans la gestion de tâches de recherche complexes. Son approche innovante pourrait transformer la manière dont les recherches complexes sont menées, optimisant ainsi le temps et les ressources nécessaires.

En bref
1Harness-1, un sous-agent de récupération de 20 milliards de paramètres, simplifie le processus de recherche.
2Conçu par l'Université de l'Illinois, il se concentre sur l'efficacité et la clarté.
3Il surpasse GPT-5.4 en gestion de tâches de recherche complexes.
💡Pourquoi c'est importantHarness-1 pourrait transformer la manière dont les recherches complexes sont menées, optimisant temps et ressources.
Le brief IA que lisent les pros

La recherche en IA te passionne ?

Les papers et avancées qui comptent, expliqués simplement, chaque soir. Gratuit.

Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.

Choisis ton rythme

Gratuit · Pas de spam · Désabonnement en 1 clic

📄
L'analyse en français

Harness-1 : L'agent de 20 milliards qui défie GPT-5.4

Pourquoi les agents de recherche existants stagnent-ils ?

La plupart des agents de récupération sont formés de manière intégrale. Le modèle génère des requêtes, lit des morceaux, décide de ce qui est important et conserve tout ce contexte dans une transcription en constante expansion. La politique apprend tout : la stratégie de recherche, le suivi des preuves, la dé-duplication et même les conditions d'arrêt.

Le problème est que l'apprentissage par renforcement essaie alors d'améliorer tout cela en même temps. Des décisions de recherche sémantique, comme « devrais-je chercher la "date de fusion" ou l'"année d'acquisition" », se mêlent à des tâches de gestion plus élémentaires. Ai-je déjà vu ce morceau ? L'apprentissage par renforcement finit par optimiser les deux, et honnêtement, ils ne partagent pas les mêmes dynamiques d'apprentissage. Cela devient donc un peu chaotique.

Les chercheurs appellent cela le flaw de conception central. Leur solution est simple : déplacer la gestion d'état hors du modèle et dans un harness.

Que fait réellement le Harness ?

Le harness à état constitue la principale avancée. Il exécute le modèle comme une machine à états. Il maintient ces quatre structures persistantes tout au long de chaque épisode :

  • Un pool de candidats qui comprend tous les documents compressés et dédupliqués issus de toutes les recherches candidates.
  • Un ensemble curé qui est la sortie finale avec jusqu'à 30 documents identifiés avec des indicateurs d'importance (très_haut, haut, moyen, bas).
  • Un magasin de texte intégral contenant chaque morceau de données récupérées, stockées en dehors de l'invite de la machine.
  • Un graphe de preuves qui est une collection d'entités auto-extraites, leurs documents de liaison et des pistes uniques.

La partie graphe de preuves de cette structure est assez astucieuse. L'extracteur regex scanne chaque morceau de données récupérées à la recherche de noms propres, d'années et de dates. Les documents de liaison contenant deux entités ou plus souvent trouvées ensemble sont signalés comme étant de très haute priorité. Les éléments uniques marquent des recherches de suivi potentielles. À chaque tour de jeu, le harness présente ces informations de manière efficace et compacte.

L'interface à huit outils

Les huit outils basés sur le modèle fonctionnent à chaque tour. À chaque tour, le modèle émet exactement une action.

Une compression en deux phases est appliquée à la sortie de la phase de recherche de récupération. La première phase de compression utilise Sentence-BM25 pour classer toutes les phrases et sélectionner les 4 meilleures de chaque morceau. La seconde phase de compression est réalisée par une dé-duplication à deux niveaux : la première étape est la dé-duplication par ID de morceau, la seconde étape est la dé-duplication par empreinte de contenu. La politique ne voit jamais la sortie brute de récupération avant l'achèvement de la dé-duplication en deux phases.

Le design a porté ses fruits, car le modèle a gardé son contexte propre. Le modèle n'a traité que des signaux, et tous les tokens ne sont pas du bruit.

Le problème du démarrage à froid (et sa solution)

Le premier problème dans la formation à la récupération est de déterminer comment une politique apprend à créer un ensemble de données curé à partir de rien, ce qui entraîne du hasard dans les premiers épisodes de RL de la politique. Comme l'état initial de la politique n'a pas de précédent à affiner, elle ne sait pas comment curer. Par conséquent, la politique jette soit tout dans l'ensemble curé, soit ne cure rien du tout.

Harness-1 aborde ce problème en utilisant un seed de démarrage à chaud. Après que le harness a réussi à effectuer une recherche pour la première fois, il génère automatiquement un ensemble de données curé en utilisant les 8 meilleurs résultats réévalués qui ont été étiquetés avec une note d'équité. Ainsi, la politique a une fonction corrective (raffinement, augmentation de la valeur des documents de qualité et diminution de la qualité des documents faibles) plutôt qu'une fonction primaire (retirer tous les documents et créer à partir de zéro).

Ce petit changement crée une quantité significative de stabilité dans la formation et démontre que la curation est apprise plus facilement par le raffinement que par la création.

Comment fonctionne la formation : SFT puis RL

Il y a deux étapes dans le pipeline de formation qui effectuent différents types de travail :

Étape 1 : Affinage supervisé

Un modèle enseignant (GPT-5.4) fonctionne dans le harness complet en état actif et est formé avec un large ensemble de requêtes diversifiées à ce stade. Après avoir filtré toutes les trajectoires peu performantes, il nous reste un total de 899 épisodes qui couvrent l'utilisation correcte de l'interface pour former le modèle sur la façon d'appeler des outils, de structurer des actions et de mettre à jour l'ensemble curé.

Étape 2 : Apprentissage par renforcement

À la seconde étape de l'apprentissage par renforcement, un CISPO en politique est utilisé avec une fonction de récompense basée uniquement sur des récompenses terminales, et a une limite de 40 tours. Les données de formation consistaient en des requêtes de documents financiers (SEC), mais les politiques apprises à cette étape étaient généralisables à tous les 8 domaines de référence. La fonction de récompense a deux avantages majeurs :

  • Le premier avantage est la séparation de la découverte et de la sélection. Les deux éléments sont fournis comme des récompenses indépendantes lors de la recherche et de la curation d'une découverte (c'est-à-dire qu'un document pertinent est trouvé puis curé).

  • Le second avantage est l'ajout d'un bonus de diversité pour les outils utilisés. Ce bonus est plus important que vous ne le pensez.

Sans le bonus de diversité, l'agent se retrouve coincé dans une boucle. L'agent émet constamment la même requête de recherche sous des formes légèrement variées, remplit l'ensemble curé avec de nombreux éléments similaires et subit un ralentissement (0,53 de rappel curé). L'agent apprend à utiliser grep_corpus, vérifier et lire_document en plus de search_corpus lorsqu'un bonus de diversité est ajouté, et par conséquent, le score de rappel de l'agent augmente à 0,60 grâce à ce seul changement.

Pratique : Exécution de Harness-1 localement

Essayons-le.

Actuellement, ce dépôt utilise uv pour la gestion des dépendances et vLLM pour le service. Vous aurez besoin d'une quantité suffisante de VRAM GPU pour exécuter un modèle de 20B. Par exemple, un seul A100 (80 Go) fonctionnera très bien. Alternativement, deux A100 (40 Go) fonctionneront très bien en utilisant le parallélisme tensoriel si vous les avez.

Clonez le dépôt et installez-le :

git clone https://github.com/pat-jj/harness-1.git

Si vous n'avez pas installé uv, faites-le maintenant :

uv sync --extra vllm

Notez que le téléchargement de vLLM et de ses dépendances CUDA se fait avec le drapeau --extra vllm et peut prendre un certain temps lors du premier téléchargement du package. Si vous ne suivez pas cette étape, le script d'inférence ne fonctionnera pas en raison de sa dépendance au serveur vLLM.

La première fois que vous exécutez une application avec ce modèle installé, elle téléchargera environ 40 Go de poids depuis HuggingFace et mettra en place un serveur local compatible avec OpenAI en utilisant uvicorn. Après le démarrage d'uvicorn, vous pouvez ouvrir le serveur à l'adresse http://0.0.0.0:8000, et vous devriez pouvoir exécuter votre modèle.

uv run python inference/vllm_local_inference.py serve \
--model pat-jj/harness-1 \
--served-model-name harness-1

Si vous avez deux GPU, vous pouvez ajouter --tensor-parallel-size 2 pour créer une répartition entre les deux GPU. Sans cette option, vous rencontrerez des problèmes de mémoire avec un GPU de 40 Go.

L'exécution de l'étape 3 signifie que vous pouvez maintenant émettre une requête de recherche directement au serveur Harness-1. Vous devez formater votre requête de recherche comme une requête structurée dirigée contre un corpus Chroma. Voici à quoi ressemblerait un test minimal, en utilisant le format de référence BrowseComp+ :

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="none")
response = client.chat.completions.create(
model="harness-1",
"content": "Recherchez des documents sur le calendrier d'application de la loi sur l'IA de l'UE de 2024."

Suivez Brief IA

L'actu IA du jour, aussi dans votre fil.

Commentaires