[Papel] | [Postagem no blog] | [Pasta da unidade]
Um dos grandes desafios da inteligência artificial é desenvolver agentes capazes de realizar pesquisas científicas e descobrir novos conhecimentos. Embora os modelos de fronteira já tenham sido utilizados para ajudar cientistas humanos – por exemplo, para debater ideias ou escrever códigos – ainda requerem uma supervisão manual extensiva ou estão fortemente limitados a tarefas específicas.
Temos o prazer de apresentar o The AI Scientist , o primeiro sistema abrangente para descoberta científica totalmente automática, permitindo que Modelos Básicos, como Modelos de Linguagem Grande (LLMs), realizem pesquisas de forma independente.
Fornecemos todas as execuções e dados de nosso artigo aqui, onde executamos cada modelo básico em cada modelo para aproximadamente 50 ideias. É altamente recomendável a leitura de alguns dos artigos de Claude para ter uma noção dos pontos fortes e fracos do sistema. Aqui estão alguns exemplos de artigos gerados pelo The AI Scientist :
Difusão DualScale: Balanceamento de recursos adaptativos para modelos gerativos de baixa dimensão
Adaptação de ruído de grade multiescala: aprimorando modelos de difusão para dados de baixa dimensão
Difusão aprimorada por GAN: aumentando a qualidade e a diversidade da amostra
DualDiff: Aprimorando a captura do modo em modelos de difusão de baixa dimensão por meio de eliminação de ruído de especialista duplo
StyleFusion: geração adaptativa de vários estilos em modelos de linguagem em nível de personagem
Taxas de aprendizagem adaptativa para transformadores via Q-Learning
Desbloqueando Grokking: Um Estudo Comparativo de Estratégias de Inicialização de Peso em Modelos de Transformadores
Grokking acelerado: taxas de aprendizado em camadas para generalização de transformadores
Grokking através da compressão: revelando a generalização repentina por meio do comprimento mínimo da descrição
Acelerando o insight matemático: impulsionando o Grokking por meio do aumento estratégico de dados
Observação:
Cuidado! Esta base de código executará código escrito em LLM. Existem vários riscos e desafios associados a esta autonomia, incluindo o uso de pacotes potencialmente perigosos, acesso à web e potencial geração de processos. Use a seu critério. Certifique-se de colocar em contêineres e restringir o acesso à Web de maneira adequada.
Introdução
Requisitos
Instalação
Modelos suportados e chaves de API
Configurando os modelos
Modelo NanoGPT
Modelo de difusão 2D
Modelo de Grokking
Execute experimentos de geração de papel de cientistas de IA
Obtendo uma revisão de artigo gerada pelo LLM
Fazendo seu próprio modelo
Modelos contribuídos pela comunidade
Recursos de modelo
Citando o cientista de IA
Perguntas frequentes
Conteinerização
Fornecemos três modelos, que foram usados em nosso artigo, cobrindo os seguintes domínios: NanoGPT , Difusão 2D e Grokking . Esses modelos permitem que o AI Scientist gere ideias e conduza experimentos nessas áreas. Aceitamos contribuições de novos modelos da comunidade, mas observe que eles não são mantidos por nós. Todos os outros modelos além dos três fornecidos são contribuições da comunidade.
Este código foi projetado para rodar em Linux com GPUs NVIDIA usando CUDA e PyTorch. O suporte para outras arquiteturas de GPU pode ser possível seguindo as diretrizes do PyTorch. Os modelos atuais provavelmente levariam um tempo inviável em máquinas somente com CPU. A execução em outros sistemas operacionais pode exigir ajustes significativos.
conda criar -n ai_scientist python=3.11 conda ativar ai_scientist# Instalar pdflatexsudo apt-get install texlive-full# Instalar requisitos PyPIpip install -r requisitos.txt
Nota: A instalação texlive-full
pode demorar muito. Pode ser necessário manter pressionado Enter durante a instalação.
Oferecemos suporte a uma ampla variedade de modelos, incluindo modelos de peso aberto e somente API. Em geral, recomendamos usar apenas modelos de fronteira acima da capacidade do GPT-4 original. Para ver uma lista completa de modelos suportados, clique aqui.
Por padrão, isso usa a variável de ambiente OPENAI_API_KEY
.
Por padrão, isso usa a variável de ambiente ANTHROPIC_API_KEY
.
Para modelos Claude fornecidos pela Amazon Bedrock, instale estes pacotes adicionais:
pip instalar antrópico[base rochosa]
Em seguida, especifique um conjunto de credenciais válidas da AWS e a região da AWS de destino:
Defina as variáveis de ambiente: AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, AWS_REGION_NAME
.
Para modelos Claude fornecidos pela Vertex AI Model Garden, instale estes pacotes adicionais:
pip instalar google-cloud-aiplatform pip instalar antrópico[vértice]
Em seguida, configure uma autenticação válida para um projeto do Google Cloud, por exemplo, fornecendo a região e o ID do projeto:
export CLOUD_ML_REGION="REGION" # para Model Garden callexport ANTHROPIC_VERTEX_PROJECT_ID="PROJECT_ID" # para Model Garden callexport VERTEXAI_LOCATION="REGION" # para chamada Aider/LiteLLM callexport VERTEXAI_PROJECT="PROJECT_ID" # para chamada Aider/LiteLLM
Por padrão, isso usa a variável de ambiente DEEPSEEK_API_KEY
.
Por padrão, isso usa a variável de ambiente OPENROUTER_API_KEY
.
Nosso código também pode usar opcionalmente uma chave de API Semantic Scholar ( S2_API_KEY
) para maior rendimento, se você tiver uma, embora deva funcionar sem ela em princípio. Se você tiver problemas com o Semantic Scholar, poderá pular as fases de pesquisa de literatura e citação da geração do artigo.
Certifique-se de fornecer a chave do modelo usado para suas execuções, por exemplo:
exportar OPENAI_API_KEY="SUA CHAVE AQUI"exportar S2_API_KEY="SUA CHAVE AQUI"
Esta seção fornece instruções para configurar cada um dos três modelos usados em nosso artigo. Antes de executar os experimentos do The AI Scientist, certifique-se de ter concluído as etapas de configuração dos modelos nos quais está interessado.
Descrição: este modelo investiga tarefas de previsão autoregressiva de próximo token baseadas em transformador.
Etapas de configuração:
Prepare os dados:
dados python/enwik8/prepare.py dados python/shakespeare_char/prepare.py dados python/text8/prepare.py
Criar execuções de linha de base (dependentes da máquina):
# Configure a execução da linha de base do NanoGPT# NOTA: PRIMEIRO VOCÊ DEVE EXECUTAR OS SCRIPTS DE PREPARAÇÃO ACIMA!cd templates/nanoGPT python experiment.py --out_dir run_0 python plot.py
Descrição: Este modelo estuda a melhoria do desempenho de modelos geradores de difusão em conjuntos de dados de baixa dimensão.
Etapas de configuração:
Instale dependências:
# Configure o clone do Diffusiongit 2D https://github.com/gregversteeg/NPEET.gitcd NPEET pip instalar .pip instalar scikit-learn
Crie execuções de linha de base:
# Configurar modelos runcd de linha de base de difusão 2D/2d_diffusion python experiment.py --out_dir run_0 python plot.py
Descrição: Este modelo investiga questões sobre generalização e velocidade de aprendizado em redes neurais profundas.
Etapas de configuração:
Instale dependências:
# Configure o Grokkingpip para instalar o einops
Crie execuções de linha de base:
# Configurar modelos runcd/grokking de linha de base do Grokking python experiment.py --out_dir run_0 python plot.py
Observação: certifique-se de que as etapas de configuração acima sejam concluídas antes de executar esses experimentos.
conda ativar ai_scientist# Execute o papel Generation.python launch_scientist.py --model "gpt-4o-2024-05-13" --experiment nanoGPT_lite --num-ideas 2 python launch_scientist.py --model "claude-3-5-sonnet-20241022" --experiment nanoGPT_lite --num-ideas 2
Se você tiver mais de uma GPU, use a opção --parallel
para paralelizar ideias em várias GPUs.
importar openaifrom ai_scientist.perform_review importar load_paper, perform_reviewclient = openai.OpenAI()model = "gpt-4o-2024-05-13"# Carregar papel do arquivo PDF (texto bruto)paper_txt = load_paper("report.pdf")# Obter a revisão do dicionáriorevisão = perform_review(papel_txt,modelo,cliente,num_reflections=5,num_fs_examples=1,num_reviews_ensemble=5,temperatura=0,1, )# Inspecionar resultados da revisãorevisão["Geral"] # Pontuação geral (1-10)revisão["Decisão"] # 'Aceitar' ou 'Rejeitar'revisão["Fraquezas"] # Lista de pontos fracos (strings)
Para executar a análise em lote:
revisão do cd_iclr_bench python iclr_análise.py --num_reviews 500 --batch_size 100 --num_fs_examples 1 --num_reflections 5 --temperatura 0,1 --num_reviews_ensemble 5
Se houver uma área de estudo que você gostaria que o The AI Scientist explorasse, é simples criar seus próprios modelos. De forma geral, siga a estrutura dos templates existentes, que consistem em:
experiment.py
— Este é o script principal onde está o conteúdo principal. É necessário um argumento --out_dir
, que especifica onde deve criar a pasta e salvar as informações relevantes da execução.
plot.py
— Este script pega as informações das pastas run
e cria gráficos. O código deve ser claro e fácil de editar.
prompt.json
— Coloque aqui informações sobre o seu modelo.
seed_ideas.json
— Coloque ideias de exemplo aqui. Você também pode tentar gerar ideias sem exemplos e depois escolher o melhor ou dois para colocar aqui.
latex/template.tex
— Recomendamos usar nossa pasta LaTeX, mas certifique-se de substituir as citações pré-carregadas por aquelas que você espera que sejam mais relevantes.
A chave para fazer novos modelos funcionarem é combinar os nomes de arquivos básicos e os JSONs de saída com o formato existente; todo o resto é livre para mudar. Você também deve garantir que o arquivo template.tex
esteja atualizado para usar o estilo de citação/gráficos base corretos para o seu modelo.
Aceitamos contribuições da comunidade na forma de novos modelos. Embora não sejam mantidos por nós, temos o prazer de destacar seus modelos para outras pessoas. Abaixo, listamos modelos contribuídos pela comunidade junto com links para suas solicitações pull (PRs):
Modelagem de Doenças Infecciosas ( seir
) - PR #137
Classificação de imagens com MobileNetV3 ( mobilenetV3
) - PR #141
Esboço RNN ( sketch_rnn
) - PR #143
Esta seção é reservada para contribuições da comunidade. Envie uma solicitação pull para adicionar seu modelo à lista! Descreva o modelo na descrição do PR e também mostre exemplos dos artigos gerados.
Fornecemos três modelos, que usam muito código de outros repositórios, creditados abaixo:
O modelo NanoGPT usa código do NanoGPT e deste PR.
O modelo de difusão 2D usa código de tiny-diffusion, ema-pytorch e Datasaur.
O modelo Grokking usa código de Sea-Snell/grokking e danielmamay/grokking.
Gostaríamos de agradecer aos desenvolvedores dos modelos e pacotes de código aberto por suas contribuições e por disponibilizarem seu trabalho.
Se você usa The AI Scientist em sua pesquisa, cite-o da seguinte forma:
@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 a leitura primeiro do nosso artigo para qualquer dúvida que você tenha sobre o The AI Scientist.
Por que estou faltando arquivos ao executar o The AI Scientist?
Certifique-se de ter concluído todas as etapas de configuração e preparação antes do script do experimento principal.
Por que um PDF ou uma revisão não foi gerado?
O Cientista de IA conclui uma ideia com uma taxa de sucesso que depende do modelo, do modelo básico e da complexidade da ideia. Aconselhamos consultar nosso artigo principal. As maiores taxas de sucesso são observadas com Claude Sonnet 3.5. As revisões são melhor realizadas com GPT-4o; todos os outros modelos têm problemas com viés de positividade ou falha em conformidade com os resultados exigidos.
Qual o custo de cada ideia gerada?
Normalmente menos de US$ 15 por artigo com Claude Sonnet 3.5. Recomendamos DeepSeek Coder V2 para uma abordagem muito mais econômica. Um bom lugar para procurar novos modelos é a tabela de classificação do Aider.
Como altero o formato base da conferência associado aos artigos?
Altere os arquivos template.tex
básicos contidos em cada modelo.
Como executo o The AI Scientist para diferentes áreas temáticas?
Consulte as instruções para diferentes modelos. Nesta iteração atual, isso está restrito a ideias que podem ser expressas em código. No entanto, o levantamento desta restrição representaria um trabalho futuro emocionante! :)
Como adiciono suporte para um novo modelo de base?
Você pode modificar ai_scientist/llm.py
para adicionar suporte para um novo modelo básico. Não recomendamos o uso de nenhum modelo que seja significativamente mais fraco que o nível GPT-4 para o The AI Scientist .
Por que preciso executar as execuções de linha de base sozinho?
Eles aparecem como run_0
e devem ser executados por máquina em que você executa o The AI Scientist para comparações precisas de tempo de execução devido a diferenças de hardware.
E se eu tiver problemas para acessar a API Semantic Scholar?
Usamos a API Semantic Scholar para verificar se há novidades em ideias e coletar citações para a redação do artigo. Você poderá pular essas fases se não tiver uma chave de API ou se o acesso à API for lento.
Incluímos uma imagem Docker contribuída pela comunidade que pode ajudar em seus esforços de conteinerização em experimental/Dockerfile
.
Você pode usar esta imagem assim:
# Endpoint Scriptdocker run -e OPENAI_API_KEY=$OPENAI_API_KEY -v `pwd`/templates:/app/AI-Scientist/templates <AI_SCIENTIST_IMAGE> --modelo gpt-4o-2024-05-13 --experimentar 2d_difusão --num-ideias 2
# Interactivedocker execute -it -e OPENAI_API_KEY=$OPENAI_API_KEY --ponto de entrada /bin/bash <AI_SCIENTIST_IMAGE>