Um servidor AGI de código aberto para LLMs de código aberto
Este é o esforço da Anarchy para construir uma inteligência artificial generalizada e aberta? através do LLM-VM: uma forma de dar superpoderes aos seus LLMs? e supervelocidade?
Você pode encontrar instruções detalhadas para experimentá-lo ao vivo aqui: anarchy.ai
Este projeto está em BETA. Espere melhoria e desenvolvimento contínuos.
O Anarchy LLM-VM é um back-end altamente otimizado e opinativo para executar LLMs com todos os recursos modernos que esperamos da conclusão: uso de ferramentas, memória com estado persistente, aumento de dados em tempo real, ajuste fino de dados e tarefas, modelos de saída, um playground da web, endpoints de API, destilação aluno-professor, síntese de dados, balanceamento de carga e orquestração, mimetismo de janela de contexto grande.
Formalmente, é uma máquina virtual/intérprete da linguagem humana, coordenando dados, modelos (CPU), seus prompts (código) e ferramentas (IO).
Ao fazer todas essas coisas em um só lugar e de maneira opinativa, o LLM-VM pode otimizar adequadamente as chamadas em lote que seriam exorbitantemente caras com endpoints distribuídos. Além disso, busca o agnosticismo tanto do modelo quanto da arquitetura, otimizando adequadamente o modelo escolhido para a arquitetura atual.
Alinhado com a missão da Anarchy, o LLM-VM se esforça para oferecer suporte a modelos de código aberto. Ao utilizar modelos de código aberto e executá-los localmente, você obtém vários benefícios:
Acelere seu desenvolvimento AGI: Com AnarchyAI, uma interface é tudo que você precisa para interagir com os LLMs mais recentes disponíveis.
Reduza seus custos?: Executar modelos localmente pode reduzir os custos pré-pagos de desenvolvimento e teste.
Flexibilidade ?♀️: O Anarchy permite que você alterne rapidamente entre modelos populares para que você possa identificar a ferramenta certa para o seu projeto.
Community Vibes ?: Junte-se à nossa comunidade ativa de desenvolvedores e engenheiros altamente motivados que trabalham apaixonadamente para democratizar a AGI
WYSIWYG?: Código aberto significa que nada está oculto; buscamos transparência e eficiência para que você possa se concentrar na construção.
Agentes Implícitos?: O Anarchy LLM-VM pode ser configurado para usar ferramentas externas através de nossos agentes, como REBEL, apenas fornecendo descrições de ferramentas!
Otimização de inferência?: O Anarchy LLM-VM é otimizado desde o nível do agente até a montagem em arquiteturas LLM conhecidas para obter o melhor retorno possível. Com lotes de última geração, inferência e quantização esparsas, destilação e colocation multinível, nosso objetivo é fornecer a estrutura mais rápida disponível.
Otimização automática de tarefas?: O Anarchy LLM-VM analisará seus casos de uso para tarefas repetitivas onde pode ativar a destilação aluno-professor para treinar um modelo pequeno supereficiente a partir de um modelo maior e mais geral sem perder a precisão. Além disso, pode tirar partido de técnicas de síntese de dados para melhorar os resultados.
Biblioteca que pode ser chamada: fornecemos uma biblioteca que pode ser usada diretamente de qualquer base de código Python.
Endpoints HTTP ?️: Fornecemos um servidor HTTP independente para lidar com solicitações de conclusão.
Aumento de dados ao vivo: (ROADMAP) Você será capaz de fornecer um conjunto de dados de atualização ao vivo e o Anarchy LLM-VM ajustará seus modelos ou trabalhará com um banco de dados vetorial para fornecer informações atualizadas com citações
Web Playground?: (ROADMAP) Você poderá executar o Anarchy LLM-VM e testar suas saídas no navegador.
Balanceamento de carga e orquestração ⚖️: (ROADMAP) Se você tiver vários LLMs ou provedores que gostaria de utilizar, poderá entregá-los ao Anarchy LLM-VM para descobrir automaticamente com quais trabalhar e quando otimizar seu tempo de atividade ou seus custos
Modelagem de saída?: (ROADMAP) Você pode garantir que o LLM produza apenas dados em formatos específicos e preencha variáveis de um modelo com expressões regulares, LMQL ou linguagem de modelo do OpenAI
Memória com estado persistente: (ROADMAP) O Anarchy LLM-VM pode lembrar o histórico de conversa de um usuário e reagir de acordo
Python >=3.10 Suportado. Versões mais antigas do Python são baseadas no melhor esforço.
Use bash > python3 --version
para verificar em qual versão você está.
Para atualizar seu python, crie um novo ambiente python usando bash > conda create -n myenv python=3.10
ou acesse https://www.python.org/downloads/ para baixar a versão mais recente.
If you plan on running the setup steps below, a proper Python version will be installed for you
Diferentes modelos têm diferentes requisitos de sistema. Os fatores limitantes na maioria dos sistemas provavelmente serão a RAM, mas muitas funções funcionarão mesmo com 16 GB de RAM.
Dito isso, sempre pesquise as informações sobre os modelos que você está usando, todos eles têm tamanhos e requisitos diferentes de memória e recursos computacionais.
A maneira mais rápida de começar é executar pip install llm-vm
em seu ambiente Python.
Outra forma de instalar o LLM-VM é clonar este repositório e instalá-lo com pip assim:
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> ./setup.sh
O script bash setup.sh
acima funciona apenas para MacOS e Linux.
Alternativamente, você poderia fazer isso:
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> python -m venv < name >
> source < name > /bin/activate
> python -m pip install -e . " [dev] "
Se você estiver no Windows. Você pode seguir um dos dois métodos abaixo:
Antes de executar qualquer uma das etapas a seguir, você deve primeiro abrir o Powershell como administrador e executar o comando abaixo
> Set-ExecutionPolicy RemoteSigned
> Press Y and enter
> exit
Agora você pode seguir qualquer um dos dois métodos abaixo:
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> .windows_setup.ps1
ou
> winget install Python.Python.3.11
> python --version
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> python -m venv anarchyai
> anarchyaiScriptsactivate
> python -m pip install -e .
Observação :
Se estiver usando um dos modelos OpenAI, você precisará definir a variável de ambiente LLM_VM_OPENAI_API_KEY
com sua chave de API.
Nosso LLM-VM permite que você trabalhe diretamente com LLMs populares localmente em apenas 3 linhas. Depois de instalado (como acima), basta carregar seu modelo e começar a gerar!
# import our client
from llm_vm . client import Client
# Select which LLM you want to use, here we have OpenAI
client = Client ( big_model = 'chat_gpt' )
# Put in your prompt and go!
response = client . complete ( prompt = 'What is Anarchy?' , context = '' , openai_key = 'ENTER_YOUR_API_KEY' )
print ( response )
# Anarchy is a political ideology that advocates for the absence of government...
# import our client
from llm_vm . client import Client
# Select the LlaMA 2 model
client = Client ( big_model = 'llama2' )
# Put in your prompt and go!
response = client . complete ( prompt = 'What is Anarchy?' , context = '' )
print ( response )
# Anarchy is a political philosophy that advocates no government...
Selecione entre os seguintes modelos
Supported_Models = [ 'chat_gpt' , 'gpt' , 'neo' , 'llama2' , 'bloom' , 'opt' , 'pythia' ]
Os tamanhos de modelo padrão LLM-VM para modelos locais têm como objetivo tornar a experimentação com LLMs acessível a todos, mas se você tiver a memória necessária, modelos de parâmetros maiores terão um desempenho muito melhor!
por exemplo, se você quiser usar um modelo neo grande e pequeno para seu professor e aluno e tiver RAM suficiente:
# import our client
from llm_vm . client import Client
# Select the LlaMA model
client = Client ( big_model = 'neo' , big_model_config = { 'model_uri' : 'EleutherAI/gpt-neox-20b' },
small_model = 'neo' , small_model_config = { 'model_uri' : 'EleutherAI/gpt-neox-125m' })
# Put in your prompt and go!
response = client . complete ( prompt = 'What is Anarchy?' , context = '' )
print ( response )
# Anarchy is a political philosophy that advocates no government...
Aqui estão alguns detalhes do modelo padrão:
Nome | Modelo_Uri | Parâmetros do modelo | Tamanho do arquivo do ponto de verificação |
---|---|---|---|
Neo | EleutherAI/gpt-neo-1.3B | 1,3B | 5,31GB |
Florescer | bigscience/bloom-560m | 1,7B | 1,12GB |
OPTAR | facebook/opt-350m | 350m | 622MB |
Para algumas outras opções de uso de memória e contagem de parâmetros em cada família de modelos, verifique as tabelas model_uri_tables.
Existem dois agentes: FLAT e REBEL.
Execute os agentes separadamente acessando src/llm_vm/agents/<AGENT_FOLDER>
e executando o arquivo intitulado agent.py
.
Alternativamente, para executar uma interface simples e escolher um agente para executar a partir da CLI, execute o arquivo src/llm_vm/agents/agent_interface.py
e siga as instruções do prompt de comando.
Congratulamo-nos com contribuidores! Para começar, junte-se à nossa comunidade ativa de discórdia. Caso contrário, aqui estão algumas maneiras de contribuir e receber o pagamento:
Oferecemos recompensas pelo fechamento de tickets específicos! Olhe as etiquetas dos ingressos para ver quanto custa a recompensa. Para começar, entre no discord e leia o guia
Matthew Mirman - CEO
Victor Odede - Desconstrutor
Abhigya Sodani - Estagiária de Pesquisa
Carter Schonwald - Colaborador destemido
Kyle Wild - Colaborador Destemido
Aarushi Banerjee - Colaborador destemido
Andrew Nelson - Colaborador Destemido
Licença MIT