Un servidor AGI de código abierto para LLM de código abierto
¿Este es el esfuerzo de Anarchy por construir una inteligencia artificial generalizada y abierta? a través del LLM-VM: ¿una forma de darle superpoderes a tus LLM? y supervelocidad?.
Puedes encontrar instrucciones detalladas para probarlo en vivo aquí: anarchy.ai
Este proyecto está en BETA. Espere mejora y desarrollo continuos.
Anarchy LLM-VM es un backend altamente optimizado y obstinado para ejecutar LLM con todas las características modernas que esperamos de su finalización: uso de herramientas, memoria con estado persistente, aumento de datos en vivo, ajuste fino de datos y tareas, plantillas de salida, un patio de juegos web, puntos finales API, destilación de estudiantes y maestros, síntesis de datos, equilibrio de carga y orquestación, mimetismo de ventana de contexto grande.
Formalmente, es una máquina virtual/intérprete del lenguaje humano, que coordina datos, modelos (CPU), indicaciones (código) y herramientas (IO).
Al hacer todas estas cosas en un solo lugar de manera obstinada, LLM-VM puede optimizar adecuadamente las llamadas por lotes que serían exorbitantemente costosas con puntos finales distribuidos. Además, se esfuerza por lograr el agnosticismo tanto del modelo como de la arquitectura, optimizando adecuadamente el modelo elegido para la arquitectura actual.
De acuerdo con la misión de Anarchy, el LLM-VM se esfuerza por admitir modelos de código abierto. Al utilizar modelos de código abierto y ejecutarlos localmente, se obtienen varios beneficios:
Acelere su desarrollo de AGI: con AnarchyAI, una interfaz es todo lo que necesita para interactuar con los últimos LLM disponibles.
¿Reducir sus costos?: La ejecución de modelos localmente puede reducir los costos de pago por uso de desarrollo y pruebas.
¿Flexibilidad?♀️: Anarchy le permite cambiar rápidamente entre modelos populares para que pueda identificar exactamente la herramienta adecuada para su proyecto.
¿Vibraciones de la comunidad?: Únase a nuestra comunidad activa de desarrolladores e ingenieros altamente motivados que trabajan apasionadamente para democratizar AGI.
¿WYSIWYG?: El código abierto significa que no hay nada oculto; Nos esforzamos por lograr transparencia y eficiencia para que usted pueda concentrarse en construir.
¿Agentes implícitos?: Anarchy LLM-VM se puede configurar para utilizar herramientas externas a través de nuestros agentes como REBEL simplemente proporcionando descripciones de las herramientas.
¿Optimización de inferencia?: Anarchy LLM-VM está optimizado desde el nivel del agente hasta el ensamblaje en arquitecturas LLM conocidas para aprovechar al máximo su inversión. Con procesamiento por lotes de última generación, inferencia y cuantificación dispersas, destilación y colocación de múltiples niveles, nuestro objetivo es proporcionar el marco más rápido disponible.
¿Optimización automática de tareas?: Anarchy LLM-VM analizará sus casos de uso para tareas repetitivas en las que puede activar la destilación estudiante-maestro para entrenar un modelo pequeño súper eficiente a partir de un modelo más grande y general sin perder precisión. Además, puede aprovechar técnicas de síntesis de datos para mejorar los resultados.
Biblioteca invocable: proporcionamos una biblioteca que se puede utilizar directamente desde cualquier base de código Python.
¿Puntos finales HTTP? ️: Proporcionamos un servidor HTTP independiente para manejar las solicitudes de finalización.
Aumento de datos en vivo: (ROADMAP) Podrá proporcionar un conjunto de datos de actualización en vivo y Anarchy LLM-VM ajustará sus modelos o trabajará con una base de datos vectorial para proporcionar información actualizada con citas.
Web Playground?: (ROADMAP) Podrá ejecutar Anarchy LLM-VM y probar sus resultados desde el navegador.
Equilibrio de carga y orquestación ⚖️: (ROADMAP) Si tiene varios LLM o proveedores que le gustaría utilizar, podrá entregárselos a Anarchy LLM-VM para determinar automáticamente con cuál trabajar y cuándo optimizar su tiempo de actividad o sus costos
¿Plantillas de salida?: (ROADMAP) Puede asegurarse de que el LLM solo genere datos en formatos específicos y complete las variables de una plantilla con expresiones regulares, LMQL o el lenguaje de plantilla de OpenAI.
Memoria con estado persistente: (ROADMAP) Anarchy LLM-VM puede recordar el historial de conversaciones de un usuario y reaccionar en consecuencia
Python >=3.10 Compatible. Las versiones anteriores de Python se basan en el mejor esfuerzo.
Utilice bash > python3 --version
para comprobar en qué versión se encuentra.
Para actualizar su Python, cree un nuevo entorno de Python usando bash > conda create -n myenv python=3.10
o vaya a https://www.python.org/downloads/ para descargar la última versión.
If you plan on running the setup steps below, a proper Python version will be installed for you
Los diferentes modelos tienen diferentes requisitos del sistema. Los factores limitantes en la mayoría de los sistemas probablemente serán la RAM, pero muchas funciones funcionarán incluso con 16 GB de RAM.
Dicho esto, siempre busque información sobre los modelos que está utilizando, todos tienen diferentes tamaños y requisitos en memoria y recursos informáticos.
La forma más rápida de comenzar es ejecutar pip install llm-vm
en su entorno Python.
Otra forma de instalar LLM-VM es clonar este repositorio e instalarlo con pip de esta manera:
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> ./setup.sh
El script bash setup.sh
anterior solo funciona para MacOS y Linux.
Alternativamente puedes hacer esto:
> 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] "
Si estás en Windows. Puede seguir cualquiera de los dos métodos siguientes:
Antes de realizar cualquiera de los siguientes pasos, primero debe abrir Powershell como administrador y ejecutar el siguiente comando
> Set-ExecutionPolicy RemoteSigned
> Press Y and enter
> exit
Ahora puede seguir cualquiera de los dos métodos siguientes:
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> .windows_setup.ps1
o
> 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 .
Nota :
Si está utilizando uno de los modelos OpenAI, deberá configurar la variable de entorno LLM_VM_OPENAI_API_KEY
con su clave API.
Nuestro LLM-VM le permite trabajar directamente con LLM populares a nivel local en solo 3 líneas. Una vez que lo hayas instalado (como arriba), ¡simplemente carga tu modelo y comienza a generar!
# 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...
Seleccione entre los siguientes modelos
Supported_Models = [ 'chat_gpt' , 'gpt' , 'neo' , 'llama2' , 'bloom' , 'opt' , 'pythia' ]
Los tamaños de modelo predeterminados de LLM-VM para modelos locales están destinados a hacer que la experimentación con LLM sea accesible para todos, pero si tiene la memoria necesaria, los modelos de parámetros más grandes funcionarán mucho mejor.
por ejemplo, si desea utilizar un modelo neo grande y pequeño para su profesor y alumno, y tiene suficiente RAM:
# 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...
Aquí hay algunos detalles del modelo predeterminado:
Nombre | modelo_uri | Parámetros del modelo | Tamaño del archivo de punto de control |
---|---|---|---|
Neo | EleutherAI/gpt-neo-1.3B | 1.3B | 5,31GB |
Floración | bigscience/bloom-560m | 1,7 mil millones | 1,12GB |
OPTAR | facebook/opt-350m | 350m | 622 megas |
Para conocer otras opciones de uso de memoria y recuento de parámetros en cada familia de modelos, consulte las tablas model_uri_tables.
Hay dos agentes: FLAT y REBEL.
Ejecute los agentes por separado ingresando a src/llm_vm/agents/<AGENT_FOLDER>
y ejecutando el archivo titulado agent.py
.
Alternativamente, para ejecutar una interfaz simple y elegir un agente para ejecutar desde la CLI, ejecute el archivo src/llm_vm/agents/agent_interface.py
y siga las instrucciones del símbolo del sistema.
¡Damos la bienvenida a los contribuyentes! Comenzar es unirse a nuestra comunidad activa de Discord. De lo contrario, aquí hay algunas formas de contribuir y recibir pagos:
¡Ofrecemos recompensas por cerrar tickets específicos! Mire las etiquetas de los boletos para ver de cuánto es la recompensa. Para comenzar, únete a Discord y lee la guía.
Matthew Mirman - Director ejecutivo
Victor Odede - Undoomer
Abhigya Sodani - Pasante de investigación
Carter Schonwald - Colaborador intrépido
Kyle Wild - Colaborador intrépido
Aarushi Banerjee - Colaborador intrépido
Andrew Nelson - Colaborador intrépido
Licencia MIT