Table des matières
Formation
Ajouter un contexte
Maison Périphériques technologiques IA Terence Tao l'a traité d'expert après l'avoir vu ! Google et d'autres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Terence Tao l'a traité d'expert après l'avoir vu ! Google et d'autres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Feb 04, 2024 am 09:30 AM
软件 ai

L'arbre de compétences de Transformer devient de plus en plus puissant.

Des chercheurs de l'Université du Massachusetts, de Google et de l'Université de l'Illinois à Urbana-Champaign (UIUC) ont récemment publié un article dans lequel ils ont réussi à générer automatiquement des preuves complètes de théorèmes en utilisant de grands modèles de langage.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Adresse papier : https://arxiv.org/pdf/2303.04910.pdf

Cette œuvre porte le nom de Baldur (le frère de Thor dans la mythologie nordique), et c'est la première fois que Transformer peut générer une preuve complète, montre également que les preuves précédentes du modèle peuvent être améliorées en fournissant au modèle un contexte supplémentaire.

Cet article a été publié à l'ESEC/FSE (ACM European Joint Conference on Software Engineering and Symposium on Fundamentals of Software Engineering) en décembre 2023 et a remporté le Outstanding Paper Award.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Comme nous le savons tous, les bugs sont inévitables dans les logiciels, ce qui peut ne pas poser trop de problèmes pour les applications générales ou les sites Web. Cependant, pour les logiciels derrière les systèmes critiques, tels que les protocoles de cryptage, les dispositifs médicaux et les navettes spatiales, nous devons nous assurer qu'il n'y a pas de bugs.

- La révision et les tests généraux du code ne peuvent pas donner cette garantie, qui nécessite une vérification formelle.

Pour la vérification formelle, l'explication donnée par ScienceDirect est :

le processus de vérification mathématique que le comportement d'un système, décrit à l'aide d'un modèle formel, satisfait une propriété donnée, également décrite à l'aide d'un modèle formel

fait référence au processus de vérification mathématique si le comportement d'un système décrit à l'aide d'un modèle formel satisfait des propriétés données.

Pour faire simple, il utilise des méthodes d'analyse mathématique pour construire un modèle via un moteur d'algorithme pour effectuer une analyse et une vérification exhaustives de l'espace d'état de la conception à tester.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

La vérification formelle des logiciels est l'une des tâches les plus difficiles pour les ingénieurs logiciels. Par exemple, CompCert, un compilateur C vérifié avec le prouveur de théorème interactif Coq, est le seul compilateur utilisé par les omniprésents GCC et LLVM, entre autres.

Cependant, le coût de la vérification formelle manuelle (écriture de preuves) est assez énorme - la preuve d'un compilateur C est plus de trois fois supérieure au code du compilateur lui-même.

Ainsi, la vérification formelle en elle-même est une tâche « à forte intensité de main-d'œuvre », et les chercheurs explorent également des méthodes automatisées.

Les assistants de preuve tels que Coq et Isabelle entraînent un modèle pour prédire une étape de preuve à la fois et utilisent le modèle pour rechercher l'espace de preuve possible.

Le Baldur dans cet article a introduit pour la première fois la capacité des grands modèles de langage dans ce domaine, une formation sur le texte et le code en langage naturel et un réglage fin de la preuve

Baldur peut générer une preuve complète. du théorème en une seule fois, plutôt que de le faire étape par étape.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Comme le montre la figure ci-dessus, seules les déclarations de théorème sont utilisées comme entrée dans le modèle de génération de preuves, puis les tentatives de preuve sont extraites du modèle et Isabelle est utilisée pour effectuer la vérification des preuves.

Si Isabelle accepte la tentative de preuve sans erreurs, la preuve est réussie ; sinon, une autre tentative de preuve est extraite du modèle de génération de preuve.

Baldur est évalué sur un benchmark de 6336 théorèmes Isabelle/HOL et leurs preuves, démontrant empiriquement l'efficacité de la génération de preuves complètes, de la réparation et de l'ajout de contexte.

De plus, la raison pour laquelle cet outil s'appelle Baldur est peut-être parce que le meilleur outil de génération automatique de preuves actuellement s'appelle Thor.

Thor a un taux de preuve plus élevé (57 %). Il utilise un modèle de langage plus petit combiné à une méthode de recherche dans l'espace de preuve possible pour prédire la prochaine étape de la preuve, tandis que l'avantage de Baldur est sa capacité à générer des preuves complètes.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Mais les deux frères Thor et Baldur peuvent également travailler ensemble, ce qui pourrait augmenter le taux de preuve à près de 66%.

Générer automatiquement des preuves complètes

Baldur est alimenté par Minerva, le grand modèle de langage de Google, qui est formé sur des articles scientifiques et des pages Web contenant des expressions mathématiques et affiné sur des données sur les preuves et les théorèmes.

Baldur peut travailler avec Isabelle, l'assistante de démonstration du théorème, qui vérifie les résultats de la preuve. Lorsqu'on lui a donné un théorème, Baldur était capable de générer une preuve complète dans près de 41 % du temps.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Pour améliorer encore les performances de Baldur, les chercheurs ont fourni des informations contextuelles supplémentaires au modèle (telles que d'autres définitions ou des énoncés de théorèmes dans des documents théoriques), ce qui a augmenté le taux de preuve à 47,5 %.

Cela signifie que Baldur est capable de prendre le contexte et de l'utiliser pour prédire de nouvelles preuves correctes - tout comme les programmeurs qui sont plus susceptibles de corriger les bogues dans leurs programmes lorsqu'ils comprennent les méthodes et le code pertinents.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Voici un exemple (théorème fun_sum_commute) :

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Ce théorème vient d'un projet appelé Polynomials dans les archives de preuves formelles.

Lors de l'écriture manuelle d'une preuve, deux cas sont distingués : l'ensemble est fini ou non fini :

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Donc, pour le modèle, l'entrée est l'énoncé du théorème, et la sortie cible est cet Humain -des preuves écrites.

Baldur a reconnu la nécessité de l'induction ici et a appliqué une règle d'induction spéciale appelée infinite_finite_induct, qui suit la même approche générale que les preuves écrites humaines, mais est plus concise.

Et comme l'induction est requise, le Sledgehammer utilisé par Isabelle ne peut pas prouver ce théorème par défaut.

Formation

Pour entraîner le modèle de génération de preuves, les chercheurs ont construit un nouvel ensemble de données de génération de preuves.

L'ensemble de données existant contient des exemples d'une seule étape de preuve, et chaque exemple de formation comprend l'état de preuve (entrée) et la prochaine étape de preuve à appliquer (objectif).

Étant donné un ensemble de données contenant une seule étape de preuve, vous devez ici créer un nouvel ensemble de données afin d'entraîner le modèle à prédire l'intégralité de la preuve en même temps.

Les chercheurs ont extrait les étapes de preuve de chaque théorème de l'ensemble de données et les ont concaténées pour reconstruire la preuve originale.

Proof fix

Toujours en prenant le fun_sum_commute ci-dessus comme exemple,

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

La première tentative de preuve générée par Baldur a échoué dans le vérificateur de preuves.

Baldur a essayé d'appliquer l'induction mais n'a pas réussi à décomposer d'abord la preuve en deux cas (ensemble fini contre ensemble infini). Isabelle renvoie le message d'erreur suivant :

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Pour dériver un exemple de formation à la réparation de preuves à partir de ces chaînes, ici les déclarations de théorème, les tentatives de preuve échouées et les messages d'erreur sont concaténés en entrée, et une preuve écrite par l'homme correcte est utilisée comme cible.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

La figure ci-dessus détaille le processus de création des données d'entraînement.

Utilisez un modèle de génération de preuves pour échantillonner des preuves avec une température de 0 pour chaque question de l'ensemble de formation d'origine.

Utilisez l'assistant de vérification linguistique pour enregistrer toutes les preuves ayant échoué et leurs messages d'erreur, puis procédez à la création d'un nouvel ensemble de formation de correction de preuves.

Pour chaque exemple de formation original, concaténez l'énoncé du théorème, la preuve candidate (incorrecte) générée par le modèle de génération de preuve et le message d'erreur correspondant pour obtenir la séquence d'entrée du nouvel exemple de formation.

Ajouter un contexte

Ajoutez des lignes du fichier théorique avant les énoncés du théorème comme contexte supplémentaire. Par exemple, l'image ci-dessous ressemble à ceci : Le modèle de génération de preuves avec contexte dans Baldur peut utiliser ces informations supplémentaires. Les chaînes qui apparaissent dans les déclarations du théorème fun_sum_commute apparaissent à nouveau dans ce contexte, de sorte que les informations supplémentaires qui les entourent peuvent aider le modèle à faire de meilleures prédictions.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.Le contexte peut être un énoncé (théorème, définition, preuve) ou une annotation en langage naturel.

Pour exploiter la longueur d'entrée disponible de LLM, les chercheurs ont d'abord ajouté jusqu'à 50 énoncés du même fichier théorique.

Pendant la formation, toutes ces instructions sont d'abord tokenisées, puis le côté gauche de la séquence est tronqué pour s'adapter à la longueur d'entrée.

La figure ci-dessus montre la relation entre le taux de réussite de la preuve et le nombre de tentatives de preuve pour les modèles génératifs contextuels et sans contexte. Nous pouvons voir que les modèles génératifs de preuve avec contexte surpassent systématiquement les modèles génératifs simples.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.

Le graphique ci-dessus montre le rapport entre les théorèmes vérifiés et les coûts d'inférence pour des modèles de différentes tailles et températures.

Terence Tao la traité dexpert après lavoir vu ! Google et dautres ont utilisé LLM pour prouver automatiquement des théorèmes et ont remporté les meilleurs articles de la conférence. Plus le contexte est complet, meilleure est la preuve.Nous pouvons voir le taux de réussite de la preuve du modèle généré, et la relation entre le contexte du modèle 8B et du modèle 62B et le nombre de tentatives de preuve.

Le modèle 62B avec contexte prouve que le modèle génératif surpasse le modèle 8B avec contexte.

Cependant, les auteurs soulignent ici qu'en raison du coût élevé de ces expériences et de leur incapacité à ajuster les hyperparamètres, le modèle 62B peut être plus performant s'il est optimisé.

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle méthode est utilisée pour convertir les chaînes en objets dans vue.js? Quelle méthode est utilisée pour convertir les chaînes en objets dans vue.js? Apr 07, 2025 pm 09:39 PM

Lors de la conversion des chaînes en objets dans vue.js, JSON.Parse () est préféré pour les chaînes JSON standard. Pour les chaînes JSON non standard, la chaîne peut être traitée en utilisant des expressions régulières et réduisez les méthodes en fonction du format ou du codé décodé par URL. Sélectionnez la méthode appropriée en fonction du format de chaîne et faites attention aux problèmes de sécurité et d'encodage pour éviter les bogues.

Comment utiliser MySQL après l'installation Comment utiliser MySQL après l'installation Apr 08, 2025 am 11:48 AM

L'article présente le fonctionnement de la base de données MySQL. Tout d'abord, vous devez installer un client MySQL, tel que MySQLWorkBench ou le client de ligne de commande. 1. Utilisez la commande MySQL-UROot-P pour vous connecter au serveur et connecter avec le mot de passe du compte racine; 2. Utilisez Createdatabase pour créer une base de données et utilisez Sélectionner une base de données; 3. Utilisez CreateTable pour créer une table, définissez des champs et des types de données; 4. Utilisez InsertInto pour insérer des données, remettre en question les données, mettre à jour les données par mise à jour et supprimer les données par Supprimer. Ce n'est qu'en maîtrisant ces étapes, en apprenant à faire face à des problèmes courants et à l'optimisation des performances de la base de données que vous pouvez utiliser efficacement MySQL.

Géospatial de Laravel: optimisation des cartes interactives et de grandes quantités de données Géospatial de Laravel: optimisation des cartes interactives et de grandes quantités de données Apr 08, 2025 pm 12:24 PM

Traiter efficacement 7 millions d'enregistrements et créer des cartes interactives avec la technologie géospatiale. Cet article explore comment traiter efficacement plus de 7 millions d'enregistrements en utilisant Laravel et MySQL et les convertir en visualisations de cartes interactives. Exigences initiales du projet de défi: extraire des informations précieuses en utilisant 7 millions d'enregistrements dans la base de données MySQL. Beaucoup de gens considèrent d'abord les langages de programmation, mais ignorent la base de données elle-même: peut-il répondre aux besoins? La migration des données ou l'ajustement structurel est-il requis? MySQL peut-il résister à une charge de données aussi importante? Analyse préliminaire: les filtres et les propriétés clés doivent être identifiés. Après analyse, il a été constaté que seuls quelques attributs étaient liés à la solution. Nous avons vérifié la faisabilité du filtre et établi certaines restrictions pour optimiser la recherche. Recherche de cartes basée sur la ville

Vue et Element-UI Cascade déroulante Boîte en V Mode en V Vue et Element-UI Cascade déroulante Boîte en V Mode en V Apr 07, 2025 pm 08:06 PM

Vue et Element-UI Boîtes déroulantes en cascade Points de fosse de liaison V-model: V-model lie un tableau représentant les valeurs sélectionnées à chaque niveau de la boîte de sélection en cascade, pas une chaîne; La valeur initiale de SelectOptions doit être un tableau vide, non nul ou non défini; Le chargement dynamique des données nécessite l'utilisation de compétences de programmation asynchrones pour gérer les mises à jour des données en asynchrone; Pour les énormes ensembles de données, les techniques d'optimisation des performances telles que le défilement virtuel et le chargement paresseux doivent être prises en compte.

Vue.js Comment convertir un tableau de type de chaîne en un tableau d'objets? Vue.js Comment convertir un tableau de type de chaîne en un tableau d'objets? Apr 07, 2025 pm 09:36 PM

Résumé: Il existe les méthodes suivantes pour convertir les tableaux de chaîne Vue.js en tableaux d'objets: Méthode de base: utilisez la fonction de carte pour convenir à des données formatées régulières. Gameplay avancé: l'utilisation d'expressions régulières peut gérer des formats complexes, mais ils doivent être soigneusement écrits et considérés. Optimisation des performances: Considérant la grande quantité de données, des opérations asynchrones ou des bibliothèques efficaces de traitement des données peuvent être utilisées. MEILLEUR PRATIQUE: Effacer le style de code, utilisez des noms de variables significatifs et des commentaires pour garder le code concis.

Comment définir le délai de Vue Axios Comment définir le délai de Vue Axios Apr 07, 2025 pm 10:03 PM

Afin de définir le délai d'expiration de Vue Axios, nous pouvons créer une instance AxiOS et spécifier l'option Timeout: dans les paramètres globaux: vue.prototype. $ Axios = axios.create ({timeout: 5000}); Dans une seule demande: ce. $ axios.get ('/ api / utilisateurs', {timeout: 10000}).

Les ingénieurs de backend senior à distance (plates-formes) ont besoin de cercles Les ingénieurs de backend senior à distance (plates-formes) ont besoin de cercles Apr 08, 2025 pm 12:27 PM

Ingénieur backend à distance Emploi Vacant Société: Emplacement du cercle: Bureau à distance Type d'emploi: Salaire à temps plein: 130 000 $ - 140 000 $ Description du poste Participez à la recherche et au développement des applications mobiles Circle et des fonctionnalités publiques liées à l'API couvrant l'intégralité du cycle de vie de développement logiciel. Les principales responsabilités complètent indépendamment les travaux de développement basés sur RubyOnRails et collaborent avec l'équipe frontale React / Redux / Relay. Créez les fonctionnalités de base et les améliorations des applications Web et travaillez en étroite collaboration avec les concepteurs et le leadership tout au long du processus de conception fonctionnelle. Promouvoir les processus de développement positifs et hiérarchiser la vitesse d'itération. Nécessite plus de 6 ans de backend d'applications Web complexe

Comment optimiser les performances de la base de données après l'installation de MySQL Comment optimiser les performances de la base de données après l'installation de MySQL Apr 08, 2025 am 11:36 AM

L'optimisation des performances MySQL doit commencer à partir de trois aspects: configuration d'installation, indexation et optimisation des requêtes, surveillance et réglage. 1. Après l'installation, vous devez ajuster le fichier my.cnf en fonction de la configuration du serveur, tel que le paramètre innodb_buffer_pool_size, et fermer query_cache_size; 2. Créez un index approprié pour éviter les index excessifs et optimiser les instructions de requête, telles que l'utilisation de la commande Explication pour analyser le plan d'exécution; 3. Utilisez le propre outil de surveillance de MySQL (ShowProcessList, Showstatus) pour surveiller la santé de la base de données, et sauvegarde régulièrement et organisez la base de données. Ce n'est qu'en optimisant en continu ces étapes que les performances de la base de données MySQL peuvent être améliorées.

See all articles