[Papel] | [Entrada de blog] | [Carpeta de unidad]
Uno de los grandes desafíos de la inteligencia artificial es desarrollar agentes capaces de realizar investigaciones científicas y descubrir nuevos conocimientos. Si bien los modelos de frontera ya se han utilizado para ayudar a los científicos humanos (por ejemplo, para generar ideas o escribir códigos), todavía requieren una supervisión manual exhaustiva o están muy limitados a tareas específicas.
Nos complace presentar The AI Scientist , el primer sistema integral para el descubrimiento científico completamente automático, que permite que los modelos básicos, como los modelos de lenguaje grande (LLM), realicen investigaciones de forma independiente.
Proporcionamos todas las ejecuciones y datos de nuestro artículo aquí, donde ejecutamos cada modelo base en cada plantilla para aproximadamente 50 ideas. Recomendamos encarecidamente leer algunos de los artículos de Claude para tener una idea de las fortalezas y debilidades del sistema. A continuación se muestran algunos artículos de ejemplo generados por The AI Scientist :
Difusión DualScale: equilibrio de funciones adaptativas para modelos generativos de baja dimensión
Adaptación del ruido de la red a múltiples escalas: mejora de los modelos de difusión para datos de baja dimensión
Difusión mejorada con GAN: aumento de la calidad y diversidad de las muestras
DualDiff: mejora de la captura de modo en modelos de difusión de baja dimensión mediante eliminación de ruido de dos expertos
StyleFusion: Generación adaptativa de múltiples estilos en modelos de lenguaje a nivel de caracteres
Tasas de aprendizaje adaptativo para transformadores a través de Q-Learning
Desbloqueo de Grokking: un estudio comparativo de estrategias de inicialización de peso en modelos de transformadores
Grokking acelerado: tasas de aprendizaje por capas para la generalización de transformadores
Asimilando a través de la compresión: revelando una generalización repentina a través de una longitud de descripción mínima
Acelerar el conocimiento matemático: impulsar Grokking mediante el aumento estratégico de datos
Nota:
¡Precaución! Esta base de código ejecutará código escrito por LLM. Existen varios riesgos y desafíos asociados con esta autonomía, incluido el uso de paquetes potencialmente peligrosos, el acceso a la web y la posible generación de procesos. Úselo a su propia discreción. Asegúrese de contener y restringir el acceso web de forma adecuada.
Introducción
Requisitos
Instalación
Modelos compatibles y claves API
Configurar las plantillas
Plantilla NanoGPT
Plantilla de difusión 2D
Plantilla de asimilación
Ejecute experimentos de generación de papel científico de IA
Obtener una revisión del artículo generado por el LLM
Hacer tu propia plantilla
Plantillas aportadas por la comunidad
Recursos de plantilla
Citando al científico de la IA
Preguntas frecuentes
Contenedorización
Proporcionamos tres plantillas, que se utilizaron en nuestro artículo, que cubren los siguientes dominios: NanoGPT , 2D Diffusion y Grokking . Estas plantillas permiten a The AI Scientist generar ideas y realizar experimentos en estas áreas. Aceptamos contribuciones de nuevas plantillas de la comunidad, pero tenga en cuenta que no las mantenemos nosotros. Todas las demás plantillas además de las tres proporcionadas son contribuciones de la comunidad.
Este código está diseñado para ejecutarse en Linux con GPU NVIDIA usando CUDA y PyTorch. Es posible que sea posible admitir otras arquitecturas de GPU siguiendo las pautas de PyTorch. Las plantillas actuales probablemente tomarían una cantidad de tiempo inviable en máquinas que solo utilizan CPU. La ejecución en otros sistemas operativos puede requerir ajustes importantes.
conda crear -n ai_scientist python = 3.11 conda activar ai_scientist# Instalar pdflatexsudo apt-get install texlive-full# Instalar requisitos de PyPIpip install -r requisitos.txt
Nota: La instalación de texlive-full
puede llevar mucho tiempo. Es posible que deba mantener presionada la tecla Enter durante la instalación.
Admitimos una amplia variedad de modelos, incluidos modelos de peso abierto y solo API. En general, recomendamos utilizar sólo modelos fronterizos por encima de la capacidad del GPT-4 original. Para ver una lista completa de modelos compatibles, consulte aquí.
De forma predeterminada, esto utiliza la variable de entorno OPENAI_API_KEY
.
De forma predeterminada, esto utiliza la variable de entorno ANTHROPIC_API_KEY
.
Para los modelos Claude proporcionados por Amazon Bedrock, instale estos paquetes adicionales:
instalación de pip antrópico [base de roca]
A continuación, especifique un conjunto de credenciales de AWS válidas y la región de AWS de destino:
Establezca las variables de entorno: AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, AWS_REGION_NAME
.
Para los modelos Claude proporcionados por Vertex AI Model Garden, instale estos paquetes adicionales:
pip instalar google-cloud-aiplatform instalación de pip antrópico [vértice]
A continuación, configura una autenticación válida para un proyecto de Google Cloud, por ejemplo proporcionando la región y el ID del proyecto:
exportar CLOUD_ML_REGION="REGION" # para Model Garden callexport ANTHROPIC_VERTEX_PROJECT_ID="PROJECT_ID" # para Model Garden callexport VERTEXAI_LOCATION="REGION" # para Aider/LiteLLM callexport VERTEXAI_PROJECT="PROJECT_ID" # para llamada de Aider/LiteLLM
De forma predeterminada, esto utiliza la variable de entorno DEEPSEEK_API_KEY
.
De forma predeterminada, esto utiliza la variable de entorno OPENROUTER_API_KEY
.
Nuestro código también puede usar opcionalmente una clave API de Semantic Scholar ( S2_API_KEY
) para un mayor rendimiento si tiene una, aunque en principio debería funcionar sin ella. Si tiene problemas con Semantic Scholar, puede omitir las fases de búsqueda de literatura y citas de la generación del artículo.
Asegúrese de proporcionar la clave del modelo utilizado para sus ejecuciones, por ejemplo:
export OPENAI_API_KEY="TU LLAVE AQUÍ"export S2_API_KEY="TU LLAVE AQUÍ"
Esta sección proporciona instrucciones para configurar cada una de las tres plantillas utilizadas en nuestro artículo. Antes de ejecutar los experimentos de The AI Scientist, asegúrese de haber completado los pasos de configuración de las plantillas que le interesan.
Descripción: esta plantilla investiga tareas de predicción de siguiente token autorregresivas basadas en transformadores.
Pasos de configuración:
Prepare los datos:
datos de Python/enwik8/prepare.py datos de Python/shakespeare_char/prepare.py datos de Python/text8/prepare.py
Cree ejecuciones de referencia (dependientes de la máquina):
# Configurar la ejecución de referencia de NanoGPT # NOTA: ¡PRIMERO DEBE EJECUTAR LOS SCRIPTS DE PREPARACIÓN ANTERIORES! cd templates/nanoGPT experimento de Python.py --out_dir run_0 diagrama de python.py
Descripción: esta plantilla estudia la mejora del rendimiento de los modelos generativos de difusión en conjuntos de datos de baja dimensión.
Pasos de configuración:
Instalar dependencias:
# Configurar el clon 2D Diffusiongit https://github.com/gregversteeg/NPEET.gitcd NPEET pip instalar .pip instalar scikit-learn
Crear ejecuciones de referencia:
# Configurar plantillas runcd de línea base de difusión 2D/2d_diffusion experimento de Python.py --out_dir run_0 diagrama de python.py
Descripción: esta plantilla investiga cuestiones sobre la generalización y la velocidad de aprendizaje en redes neuronales profundas.
Pasos de configuración:
Instalar dependencias:
# Configurar Grokkingpip instalar einops
Crear ejecuciones de referencia:
# Configurar plantillas runcd de referencia de Grokking/grokking python experimento.py --out_dir run_0 diagrama de python.py
Nota: asegúrese de completar los pasos de configuración anteriores antes de ejecutar estos experimentos.
conda activar ai_scientist# Ejecute el papel generate.python launch_scientist.py --model "gpt-4o-2024-05-13" --experimento nanoGPT_lite --num-ideas 2 python launch_scientist.py --modelo "claude-3-5-sonnet-20241022" --experimento nanoGPT_lite --num-ideas 2
Si tiene más de una GPU, utilice la opción --parallel
para paralelizar ideas en varias GPU.
importar openaifrom ai_scientist.perform_review import load_paper, perform_reviewclient = openai.OpenAI()model = "gpt-4o-2024-05-13"# Cargar papel desde un archivo PDF (texto sin formato)paper_txt = load_paper("report.pdf")# Obtener el diccionario de revisiónrevisión = perform_review(paper_txt,modelo,cliente,num_reflections=5,num_fs_examples=1,num_reviews_ensemble=5,temperatura=0.1, )# Inspeccionar los resultados de la revisiónrevisión["General"] # Puntuación general (1-10)revisión["Decisión"] # 'Aceptar' o 'Rechazar'revisión["Debilidades"] # Lista de debilidades (cadenas)
Para ejecutar análisis por lotes:
revisión del cd_iclr_bench python iclr_analysis.py --num_reviews 500 --batch_size 100 --num_fs_examples 1 --num_reflections 5 --temperature 0.1 --num_reviews_ensemble 5
Si hay un área de estudio que le gustaría que The AI Scientist explorara, es sencillo crear sus propias plantillas. En general, sigue la estructura de las plantillas existentes, que constan de:
experiment.py
: este es el script principal donde se encuentra el contenido principal. Se necesita un argumento --out_dir
, que especifica dónde se debe crear la carpeta y guardar la información relevante de la ejecución.
plot.py
: este script toma la información de las carpetas run
y crea gráficos. El código debe ser claro y fácil de editar.
prompt.json
: coloque aquí información sobre su plantilla.
seed_ideas.json
: coloque aquí ideas de ejemplo. También puedes intentar generar ideas sin ningún ejemplo y luego elegir las mejores para ponerlas aquí.
latex/template.tex
: recomendamos utilizar nuestra carpeta LaTeX, pero asegúrese de reemplazar las citas precargadas por aquellas que crea que serán más relevantes.
La clave para que las nuevas plantillas funcionen es hacer coincidir los nombres de archivos base y los JSON de salida con el formato existente; todo lo demás es libre de cambiar. También debe asegurarse de que el archivo template.tex
esté actualizado para utilizar el estilo de cita/gráficos base correctos para su plantilla.
Agradecemos las contribuciones de la comunidad en forma de nuevas plantillas. Si bien no los mantenemos nosotros, estamos encantados de mostrar sus plantillas a otros. A continuación, enumeramos las plantillas aportadas por la comunidad junto con enlaces a sus solicitudes de extracción (PR):
Modelado de enfermedades infecciosas ( seir
) - PR #137
Clasificación de imágenes con MobileNetV3 ( mobilenetV3
) - PR #141
Bosquejo RNN ( sketch_rnn
) - PR #143
Esta sección está reservada para contribuciones de la comunidad. ¡Envíe una solicitud de extracción para agregar su plantilla a la lista! Describa la plantilla en la descripción del PR y también muestre ejemplos de los artículos generados.
Proporcionamos tres plantillas, que utilizan en gran medida código de otros repositorios, que se acreditan a continuación:
La plantilla NanoGPT utiliza código de NanoGPT y este PR.
La plantilla de difusión 2D utiliza código de tiny-diffusion, ema-pytorch y Datasaur.
La plantilla Grokking utiliza código de Sea-Snell/grokking y danielmamay/grokking.
Nos gustaría agradecer a los desarrolladores de los modelos y paquetes de código abierto por sus contribuciones y por hacer que su trabajo esté disponible.
Si utiliza The AI Scientist en su investigación, cítelo de la siguiente manera:
@article{lu2024aiscientist, title={The {AI} {S}cientist: Towards Fully Automated Open-Ended Scientific Discovery}, author={Lu, Chris and Lu, Cong and Lange, Robert Tjarko and Foerster, Jakob and Clune, Jeff and Ha, David}, journal={arXiv preprint arXiv:2408.06292}, year={2024} }
Recomendamos leer nuestro artículo primero si tiene alguna pregunta sobre The AI Scientist.
¿Por qué me faltan archivos cuando ejecuto The AI Scientist?
Asegúrese de haber completado todos los pasos de configuración y preparación antes del script del experimento principal.
¿Por qué no se ha generado un PDF o una reseña?
El científico de IA finaliza una idea con una tasa de éxito que depende de la plantilla, el modelo básico y la complejidad de la idea. Le recomendamos consultar nuestro artículo principal. Las mayores tasas de éxito se observan con Claude Sonnet 3.5. Las revisiones se realizan mejor con GPT-4o; todos los demás modelos tienen problemas de sesgo positivo o de no cumplir con los resultados requeridos.
¿Cuál es el costo de cada idea generada?
Normalmente, menos de 15 dólares por artículo con Claude Sonnet 3.5. Recomendamos DeepSeek Coder V2 para un enfoque mucho más rentable. Un buen lugar para buscar nuevos modelos es la tabla de clasificación de Aider.
¿Cómo cambio el formato base de la conferencia asociado con los artículos?
Cambie los archivos base template.tex
contenidos en cada plantilla.
¿Cómo ejecuto The AI Scientist para diferentes campos temáticos?
Consulte las instrucciones para diferentes plantillas. En esta iteración actual, esto se limita a ideas que pueden expresarse en código. Sin embargo, eliminar esta restricción representaría un trabajo futuro apasionante. :)
¿Cómo agrego soporte para un nuevo modelo de base?
Puede modificar ai_scientist/llm.py
para agregar soporte para un nuevo modelo básico. No recomendamos utilizar ningún modelo que sea significativamente más débil que el nivel GPT-4 para The AI Scientist .
¿Por qué necesito ejecutar yo mismo las ejecuciones de referencia?
Estos aparecen como run_0
y deben ejecutarse en cada máquina en la que ejecute The AI Scientist para realizar comparaciones precisas del tiempo de ejecución debido a diferencias de hardware.
¿Qué pasa si tengo problemas para acceder a la API de Semantic Scholar?
Usamos la API de Semantic Scholar para verificar ideas en busca de novedades y recopilar citas para el artículo. Es posible que pueda omitir estas fases si no tiene una clave API o si el acceso a la API es lento.
Incluimos una imagen de Docker aportada por la comunidad que puede ayudarle con sus esfuerzos de contenedorización en experimental/Dockerfile
.
Puedes usar esta imagen así:
# Ejecución de Endpoint Scriptdocker -e OPENAI_API_KEY=$OPENAI_API_KEY -v `pwd`/templates:/app/AI-Scientist/templates <AI_SCIENTIST_IMAGE> --modelo gpt-4o-2024-05-13 --experimento 2d_difusión --num-ideas 2
# Ejecución de Interactivedocker -it -e OPENAI_API_KEY=$OPENAI_API_KEY --punto de entrada /bin/bash <AI_SCIENTIST_IMAGE>