Recherche o1 : Permettre aux modèles d'inférence d'effectuer des recherches actives, en permettant aux grands modèles de rechercher des connaissances externes tout en réfléchissant.

Introduction générale

Search-o1 est un projet open source qui vise à améliorer les performances des modèles de raisonnement à grande échelle (LRM) en intégrant des mécanismes de recherche avancés. Son idée centrale est de résoudre le problème du déficit de connaissances rencontré dans le processus de raisonnement par le biais de la recherche dynamique et de l'intégration des connaissances. Le projet est développé par l'équipe sunnynexus , fournit un mécanisme de génération de lots et des méthodes de recherche alternatives , peut être inséré dans le processus de raisonnement en temps réel des documents pertinents pour améliorer la précision et la fiabilité du processus d'inférence . search-o1 est adapté pour les questions scientifiques , mathématiques et de programmation complexes , le support pour une variété d'environnements de langage , principalement en utilisant Python pour le développement et le déploiement .

Search o1:赋予推理模型主动搜索能力,让大模型边思考边搜索外部知识

 

Liste des fonctions

  • Mécanisme de génération de lotsLes séquences d'inférence : Générer plusieurs séquences d'inférence en même temps afin d'améliorer l'efficacité.
  • recherche alternativeLes résultats de l'analyse de l'information sont présentés dans le tableau suivant : recherche dynamique d'informations pertinentes lorsque des lacunes de connaissances sont détectées au cours du processus de raisonnement.
  • Intégration des documentsLes documents recherchés peuvent être affinés et intégrés de manière transparente dans la chaîne de raisonnement.
  • Soutien pluridisciplinaireLes questions sont posées dans des domaines complexes tels que les sciences, les mathématiques et le codage.
  • Mise à jour des connaissances en temps réelLe modèle doit avoir accès à des connaissances actualisées au cours du processus de raisonnement.

 

Utiliser l'aide

Processus d'installation

Le projet Search-o1 est principalement hébergé et distribué via GitHub. Le processus d'installation est le suivant :

1.entrepôt de clones: :

git clone https://github.com/sunnynexus/Search-o1.git
  1. Créer un environnement virtuel: :
    conda create -n search_o1 python=3.9
    conda activate search_o1
    
  2. Installation des dépendances: :
    cd Search-o1
    pip install -r requirements.txt
    
  3. Prétraitement des données: :
    • Utilisez le code dans data/data_pre_process.ipynb pour prétraiter le jeu de données au format JSON standard.

Utilisation

Initialisation de la séquence d'inférence

Search-o1 initialise la séquence d'inférence en combinant les instructions de la tâche et les questions d'entrée. Par exemple :

from search_o1 import initialize_reasoning
init_sequence = initialize_reasoning("请计算质数的数量", "在1到100之间")

Génération et recherche de lots

La fonction de recherche est déclenchée lorsque le modèle rencontre un besoin de connaissances externes :

from search_o1 import batch_generate_and_search
results = batch_generate_and_search(init_sequence, max_tokens=500)
  • Génération de lots: à travers batch_generate_and_search La fonction génère simultanément plusieurs chemins d'inférence et détecte la nécessité d'effectuer d'autres requêtes de connaissances dans chaque chemin.
  • Intégration de la rechercheUne fois la nécessité d'une recherche détectée, le système utilise un moteur de recherche prédéfini (par exemple, Google ou une base de données personnalisée) pour obtenir des documents pertinents, qui sont ensuite affinés et intégrés dans la chaîne d'inférence.

inférence itérative

Le raisonnement est un processus itératif qui peut nécessiter de nouvelles recherches et l'intégration de documents après chaque génération :

from search_o1 import iterate_reasoning
final_answer = iterate_reasoning(results, iterations=5)
  • Nombre d'itérationsLe nombre d'itérations peut être ajusté en fonction de la complexité de la tâche, afin de garantir la précision du raisonnement.

Application aux problèmes pratiques

Search-o1 est particulièrement adapté à la résolution de problèmes nécessitant de nombreuses connaissances de base, comme les calculs complexes dans la recherche scientifique ou l'optimisation d'algorithmes dans la programmation. En voici un exemple :

  • problème de mathématiquesLes problèmes tels que la "résolution d'équations différentielles à l'aide de la méthode d'Euler" peuvent être résolus à l'aide de Search-o1, où le modèle recherche automatiquement des informations sur la méthode d'Euler et les applique au raisonnement.
  • Questions de programmationPour les problèmes de programmation tels que "comment optimiser l'algorithme de tri rapide", Search-o1 peut raisonner avec les suggestions d'amélioration algorithmique recherchées.

Avec la méthode ci-dessus, l'utilisateur peut utiliser la fonction Search-o1 Effectuer des tâches complexes à forte intensité de connaissances, en veillant à ce que chaque étape du raisonnement soit fondée sur les connaissances les plus récentes et les plus pertinentes.

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...