Búsqueda o1: Capacitar a los modelos de inferencia para la búsqueda activa, permitiendo a los grandes modelos buscar conocimiento externo mientras piensan.

Introducción general

Search-o1 es un proyecto de código abierto cuyo objetivo es mejorar el rendimiento de los modelos de razonamiento a gran escala (LRM) mediante la integración de mecanismos de búsqueda avanzada. Su idea central es resolver el problema del déficit de conocimientos que se produce en el proceso de razonamiento mediante la búsqueda dinámica y la integración de conocimientos. El proyecto es desarrollado por el equipo sunnynexus , proporciona un mecanismo de generación de lotes y métodos de búsqueda alternativos , se puede insertar en el proceso de razonamiento en tiempo real los documentos pertinentes para mejorar la precisión y fiabilidad del proceso de inferencia . search-o1 es adecuado para complejas cuestiones científicas , matemáticas y de programación , el apoyo a una variedad de entornos de lenguaje , utilizando principalmente Python para el desarrollo y despliegue .

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

 

Lista de funciones

  • Mecanismo de generación de lotesGenerar varias secuencias de inferencia al mismo tiempo para mejorar la eficacia.
  • búsqueda alternativaBúsqueda dinámica de información pertinente cuando se detectan deficiencias de conocimiento durante el proceso de razonamiento.
  • Integración de documentos: Perfeccione e integre a la perfección los documentos buscados en la cadena de razonamiento.
  • Apoyo multidisciplinar: Se aplica a la respuesta a preguntas en ámbitos complejos como la ciencia, las matemáticas y la codificación.
  • Actualización de conocimientos en tiempo real: Garantizar que el modelo tenga acceso a conocimientos actualizados durante el proceso de razonamiento.

 

Utilizar la ayuda

Proceso de instalación

El proyecto Search-o1 se aloja y distribuye principalmente a través de GitHub. El proceso de instalación es el siguiente:

1.almacén de clones::

git clone https://github.com/sunnynexus/Search-o1.git
  1. Creación de un entorno virtual::
    conda create -n search_o1 python=3.9
    conda activate search_o1
    
  2. Instalación de dependencias::
    cd Search-o1
    pip install -r requirements.txt
    
  3. Preprocesamiento de datos::
    • Utilice el código en data/data_pre_process.ipynb para preprocesar el conjunto de datos en formato JSON estándar.

Utilización

Inicialización de la secuencia de inferencia

Search-o1 inicializa la secuencia de inferencia combinando las instrucciones de la tarea y las preguntas de entrada. Por ejemplo:

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

Generación y búsqueda de lotes

La función de búsqueda se activa cuando el modelo encuentra una necesidad de conocimiento externo:

from search_o1 import batch_generate_and_search
results = batch_generate_and_search(init_sequence, max_tokens=500)
  • Generación de lotes: a través de batch_generate_and_search La función genera múltiples rutas de inferencia simultáneamente y detecta la necesidad de realizar más consultas de conocimiento en cada ruta.
  • Integración de la búsquedaUna vez detectada la necesidad de búsqueda, el sistema utiliza un motor de búsqueda predefinido (por ejemplo, Google o una base de datos personalizada) para obtener los documentos pertinentes, que posteriormente se refinan e integran en la cadena de inferencia.

inferencia iterativa

El razonamiento es un proceso iterativo que puede requerir nuevas búsquedas e integración de documentos después de cada generación:

from search_o1 import iterate_reasoning
final_answer = iterate_reasoning(results, iterations=5)
  • Número de iteracionesEl número de iteraciones puede ajustarse en función de la complejidad de la tarea para garantizar la precisión del razonamiento.

Aplicación a problemas prácticos

Search-o1 es especialmente adecuado para resolver problemas que requieren muchos conocimientos previos, como los cálculos complejos en investigación científica o la optimización de algoritmos en programación. Un ejemplo:

  • problema de matemáticas: Problemas como "resolver ecuaciones diferenciales utilizando el método de Euler" pueden resolverse utilizando Search-o1, donde el modelo busca automáticamente información sobre el método de Euler y la aplica al razonamiento.
  • Cuestiones de programación: Para problemas de programación como "cómo optimizar el algoritmo de ordenación rápida", Search-o1 puede razonar con las sugerencias de mejora algorítmica buscadas.

Con el método anterior, el usuario puede utilizar el Buscador-o1 Realice tareas complejas que requieran muchos conocimientos, garantizando que cada paso del razonamiento se base en los conocimientos más actuales y pertinentes.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...