Modelos de idiomas grandes são gigantes caros e lentos, e avaliá -los em conjuntos de dados modernos gigantescos apenas pioram.
Se apenas houver uma maneira de selecionar apenas um subconjunto significativo ( e pequeno ) do corpus e obter uma avaliação altamente precisa .....
Espere, parece otimização bayesiana!
O bocoel funciona nas seguintes etapas:
As avaliações geradas são facilmente gerenciadas pelo utilitário de gerente fornecido.
Até onde sabemos, este é o primeiro trabalho com o objetivo de reduzir os custos de computação durante a avaliação (benchmarking) com um orçamento (possivelmente dinâmico).
GPT2 , Pythia , LLAMA e muito mais através da integração com Transformers e DataSets do HuggingfaceGosta do que você vê? Por favor, considere dar a isso uma estrela (★)!
Simplificando, a otimização bayesiana visa otimizar o objetivo de exploração (a área roxa na imagem) ou o objeto de exploração (a altura dos pontos pretos). Ele usa processos gaussianos como backbone para inferência e usa uma função de aquisição para decidir onde provar a seguir. Veja aqui uma introdução mais aprofundada.
Como a otimização bayesiana funciona bem com um modelo de caixa preta cara a avaliação (parafrase: LLM) , é perfeita para esse caso de uso específico. O Bocoel usa a otimização bayesiana como uma espinha dorsal para explorar o espaço de incorporação dado por nosso corpus, que permite selecionar um bom subconjunto atuando como um mini instantâneo do corpus.
Os LLMs são dolorosamente lentos, especialmente os generativos (que são geralmente chamados de LLM), pois a geração de sequência é seqüencial por natureza.
Apesar da exigência de bocoel de usar um incorporador para codificar todo o corpus, os incorporadores são mais rápidos que os LLMs por ordens de magnitude e o tempo é obtido de volta por praticamente qualquer economia na avaliação de LLMs.
Eu não quero dependências opcionais:
pip install bocoel
Dê -me a experiência completa (todas as dependências opcionais):
pip install "bocoel[all]"
Consulte os exemplos da pasta/finger_started para obter um uso simplista da biblioteca para começar com apenas algumas linhas de código.
Exemplos de uso estão nos examples de pastas. A referência da API pode ser encontrada aqui.
Colaboradores procurados! Não seja tímido. Sinta -se à vontade para arquivar problemas e PRs. Para o PRS, siga o guia sobre a contribuição e o código de conduta. Abertura e inclusão são levadas muito a sério.
O código está disponível na licença BSD-3.
Se você achar este projeto útil em sua pesquisa, cite este trabalho em
@misc{bocoel2024,
title = {BoCoEL: Bayesian Optimization as a Coverage Tool for Evaluating Large Language Models},
url = {https://bocoel.rentruewang.com/research/},
author = {Wang, RenChu},
month = {January},
year = {2024}
}