5 formas sencillas de ejecutar un LLM localmente

Blog

HogarHogar / Blog / 5 formas sencillas de ejecutar un LLM localmente

Jun 23, 2023

5 formas sencillas de ejecutar un LLM localmente

Por Sharon Machlis Editora ejecutiva, Datos y análisis, InfoWorld | Los chatbots como ChatGPT, Claude.ai y phind pueden ser muy útiles, pero es posible que no siempre desees recibir tus preguntas o datos confidenciales.

Por Sharon Machlis

Editor ejecutivo, Datos y análisis, InfoWorld |

Los chatbots como ChatGPT, Claude.ai y phind pueden ser muy útiles, pero es posible que no siempre quieras que tus preguntas o datos confidenciales sean manejados por una aplicación externa. Esto es especialmente cierto en plataformas donde sus interacciones pueden ser revisadas por humanos y utilizadas para ayudar a entrenar modelos futuros.

Una solución es descargar un modelo de lenguaje grande (LLM) y ejecutarlo en su propia máquina. De esa forma, una empresa externa nunca tendrá acceso a sus datos. Esta también es una opción rápida para probar algunos modelos especiales nuevos, como la familia de modelos Code Llama recientemente anunciada por Meta, que están optimizados para la codificación, y SeamlessM4T, destinado a la traducción de texto a voz y de idiomas.

Ejecutar su propio LLM puede parecer complicado, pero con las herramientas adecuadas es sorprendentemente fácil. Y los requisitos de hardware para muchos modelos no son una locura. Probé las opciones presentadas en este artículo en dos sistemas: una PC Dell con un procesador Intel i9, 64 GB de RAM y una GPU Nvidia GeForce de 12 GB (que probablemente no estaba ejecutando gran parte de este software), y en un Mac con chip M1 pero solo 16 GB de RAM.

Tenga en cuenta que puede ser necesario investigar un poco para encontrar un modelo que funcione razonablemente bien para su tarea y se ejecute en el hardware de su escritorio. Y pocos pueden ser tan buenos como lo que está acostumbrado con una herramienta como ChatGPT (especialmente con GPT-4) o Claude.ai. Simon Willison, creador de la herramienta de línea de comandos LLM, argumentó en una presentación la semana pasada que podría valer la pena ejecutar un modelo local incluso si sus respuestas son incorrectas:

También vale la pena señalar que es probable que los modelos de código abierto sigan mejorando, y algunos observadores de la industria esperan que se reduzca la brecha entre ellos y los líderes comerciales.

Si desea un chatbot que se ejecute localmente y no envíe datos a ningún otro lugar, GPT4All ofrece un cliente de escritorio para descargar que es bastante fácil de configurar. Incluye opciones para modelos que se ejecutan en su propio sistema y hay versiones para Windows, macOS y Ubuntu.

Cuando abra la aplicación de escritorio GPT4All por primera vez, verá opciones para descargar alrededor de 10 (al momento de escribir este artículo) modelos que se pueden ejecutar localmente. Entre ellos se encuentra el chat Llama-2-7B, un modelo de Meta AI. También puede configurar GPT-3.5 y GPT-4 de OpenAI (si tiene acceso) para uso no local si tiene una clave API.

La parte de descarga de modelos de la interfaz GPT4All fue un poco confusa al principio. Después de descargar varios modelos, todavía veo la opción de descargarlos todos. Eso sugirió que las descargas no funcionaron. Sin embargo, cuando revisé la ruta de descarga, los modelos estaban allí.

Una parte de la interfaz de descarga de modelos en GPT4All. Una vez que abrí la parte de uso de la aplicación, aparecieron automáticamente mis modelos descargados.

Una vez configurados los modelos, la interfaz del chatbot es limpia y fácil de usar. Las opciones útiles incluyen copiar un chat a un portapapeles y generar una respuesta.

La interfaz de chat de GPT4All es limpia y fácil de usar.

También hay un nuevo complemento beta de LocalDocs que le permite "chatear" con sus propios documentos localmente. Puedes habilitarlo en elConfiguración > Complementospestaña, donde verá un encabezado "Configuración del complemento LocalDocs (BETA)" y una opción para crear una colección en una ruta de carpeta específica.

El complemento es un trabajo en progreso y la documentación advierte que el LLM aún puede "alucinar" (inventar cosas) incluso cuando tiene acceso a su información experta agregada. Sin embargo, es una característica interesante que probablemente mejorará a medida que los modelos de código abierto se vuelvan más capaces.

Además de la aplicación chatbot, GPT4All también tiene enlaces para Python, Node y una interfaz de línea de comandos (CLI). También hay un modo de servidor que le permite interactuar con el LLM local a través de una API HTTP estructurada de manera muy similar a la de OpenAI. El objetivo es permitirle cambiar un LLM local por OpenAI cambiando un par de líneas de código.

LLM de Simon Willison es una de las formas más fáciles que he visto de descargar y utilizar LLM de código abierto localmente en su propia máquina. Si bien necesitas tener Python instalado para ejecutarlo, no deberías necesitar tocar ningún código Python. Si estás en una Mac y usas Homebrew, simplemente instálalo con

Si está en una máquina con Windows, utilice su forma favorita de instalar bibliotecas de Python, como

LLM utiliza de forma predeterminada modelos OpenAI, pero puede usar complementos para ejecutar otros modelos localmente. Por ejemplo, si instala el complemento gpt4all, tendrá acceso a modelos locales adicionales de GPT4All. También hay complementos para llama, el proyecto MLC y MPT-30B, así como modelos remotos adicionales.

Instale un complemento en la línea de comando con llm install model-name:

Puede ver todos los modelos disponibles, los remotos y los que ha instalado, incluida una breve información sobre cada uno, con el comando: llm models list.

La pantalla cuando le pide a LLM que enumere los modelos disponibles.

Para enviar una consulta a un LLM local, utilice la sintaxis:

¿Cómo elegir un modelo? Los 14 LLM de InfoWorld que no son ChatGPT son una fuente, aunque deberá verificar cuáles se pueden descargar y si son compatibles con un complemento LLM. También puede dirigirse a la página de inicio de GPT4All y desplazarse hacia abajo hasta el Explorador de modelos para ver los modelos compatibles con GPT4All. La opción falcon-q4_0 era un modelo relativamente pequeño altamente calificado con una licencia que permitía el uso comercial, así que comencé allí.

Luego le hice una pregunta similar a ChatGPT sin emitir un comando por separado para descargar el modelo:

Esto es algo que hace que la experiencia del usuario de LLM sea tan elegante: si el modelo GPT4All no existe en su sistema local, la herramienta LLM lo descarga automáticamente antes de ejecutar su consulta. Verá una barra de progreso en la terminal mientras se descarga el modelo.

LLM descargó automáticamente el modelo que utilicé en una consulta.

El chiste en sí no fue extraordinario: "¿Por qué el programador apagó su computadora? ¡Porque quería ver si todavía estaba funcionando!", pero la pregunta, de hecho, funcionó. Y si los resultados son decepcionantes, se debe al rendimiento del modelo o a indicaciones inadecuadas del usuario, no a la herramienta LLM.

También puede establecer alias para modelos dentro de LLM, de modo que pueda referirse a ellos por nombres más cortos:

Para ver todos los alias disponibles, ingrese: llm alias.

El complemento LLM para los modelos Llama de Meta requiere un poco más de configuración que GPT4All. Lea los detalles en el repositorio de GitHub del complemento LLM. Tenga en cuenta que llama-2-7b-chat de uso general logró ejecutarse en mi Mac de trabajo con el chip M1 Pro y solo 16 GB de RAM. Funcionó con bastante lentitud en comparación con el GPT4. Todos los modelos están optimizados para máquinas más pequeñas sin GPU y funcionó mejor en mi PC doméstica más robusta.

LLM tiene otras características, como un indicador de argumento que le permite continuar desde un chat anterior y la capacidad de usarlo dentro de un script de Python. Puede ver más en el sitio web de LLM. Willison, cocreador del popular marco Python Django, espera que otros miembros de la comunidad contribuyan con más complementos al ecosistema LLM.

Ollama es una forma aún más sencilla de descargar y ejecutar modelos que LLM, aunque también es más limitada. Por ahora es sólo para macOS, aunque dicen que el soporte para Windows y Linux "llegará pronto".

Configurar Ollama es extremadamente simple.

La instalación es una experiencia elegante mediante el método de apuntar y hacer clic. Y aunque Ollama es una herramienta de línea de comandos, solo hay un comando con la sintaxis ollama run model-name. Al igual que con LLM, si el modelo aún no está en su sistema, se descargará automáticamente.

Puede ver la lista de modelos disponibles en https://ollama.ai/library, que al momento de escribir este artículo incluía una versión de un modelo Code Llama pero ninguna de las opciones adaptadas para Python. Sin embargo, eso fue el día después de que se anunciara Code Llama y debería haber más disponibles en el futuro.

El archivo README del repositorio de Ollama GitHub incluye una lista útil de algunas especificaciones de modelos y consejos de que "debe tener al menos 8 GB de RAM para ejecutar los modelos 3B, 16 GB para ejecutar los modelos 7B y 32 GB para ejecutar los modelos 13B". En mi Mac de 16 GB de RAM, el rendimiento del 7B Code Llama fue sorprendentemente ágil. Responderá preguntas sobre los comandos de shell bash/zsh, así como sobre lenguajes de programación como Python y JavaScript.

Cómo se ve ejecutando Code Llama en una ventana de terminal de Ollama.

A pesar de ser el modelo más pequeño de la familia, fue bastante bueno, aunque imperfecto, al responder una pregunta de codificación R que hizo tropezar a algunos modelos más grandes: "Escriba código R para un gráfico ggplot2 donde las barras son de color azul acero". El código era correcto excepto por dos paréntesis de cierre adicionales en dos de las líneas de código, que eran bastante fáciles de detectar en mi IDE. Sospecho que el Code Llama más grande podría haber funcionado mejor.

Ollama tiene algunas características adicionales, como la integración de LangChain y la capacidad de ejecutarse con PrivateGPT, lo que puede no ser obvio a menos que consulte la página de tutoriales del repositorio de GitHub.

Si estás en una Mac y quieres usar Code Llama, puedes ejecutarlo en una ventana de terminal y abrirlo cada vez que tengas una pregunta. Estoy esperando una versión de Ollama para Windows para usar en la PC de mi hogar.

H2O.ai ha estado trabajando en el aprendizaje automático automatizado durante algún tiempo, por lo que es natural que la empresa se haya mudado al espacio LLM por chat. Algunas de sus herramientas son mejor utilizadas por personas con conocimientos en el campo, pero las instrucciones para instalar una versión de prueba de su aplicación de escritorio de chat h2oGPT fueron rápidas y sencillas, incluso para los principiantes en el aprendizaje automático.

Puede acceder a una versión de demostración en la web (obviamente sin utilizar un LLM local para su sistema) en gpt.h2o.ai, que es una forma útil de saber si le gusta la interfaz antes de descargarla en su propio sistema.

Para una versión local: clone el repositorio de GitHub, cree y active un entorno virtual Python y ejecute las cinco líneas de código que se encuentran en el archivo README. Los resultados le brindan "capacidad limitada de preguntas y respuestas sobre documentos" y uno de los modelos Llama de Meta, según la documentación, pero funcionan. Tendrás una versión del modelo Llama descargada localmente y una aplicación disponible en http://localhost:7860 cuando ejecutes una sola línea de código:

Un modelo LLaMa local responde preguntas basadas en la documentación de VS Code.

Sin agregar tus propios archivos, puedes usar la aplicación como un chatbot general. O puede cargar algunos documentos y hacer preguntas sobre esos archivos. Los formatos de archivo compatibles incluyen PDF, Excel, CSV, Word, texto, rebajas y más. La aplicación de prueba funcionó bien en mi Mac de 16 GB, aunque los resultados del modelo más pequeño no se compararon con los de ChatGPT pago con GPT-4 (como siempre, eso es una función del modelo y no de la aplicación). La interfaz de usuario de h2oGPT ofrece una pestaña Experto con varias opciones de configuración para usuarios que saben lo que están haciendo. Esto brinda a los usuarios más experimentados la opción de intentar mejorar sus resultados.

Explorando la pestaña Experto en h2oGPT.

Si desea tener más control sobre el proceso y las opciones para más modelos, descargue la aplicación completa, aunque puede llevar más trabajo ejecutar un modelo en hardware limitado. Hay instrucciones de instalación en el archivo README para Windows, macOS y Linux. Tenga en cuenta que mi software antivirus de Windows no estaba satisfecho con la versión de Windows porque era nueva y no estaba firmada. Sin embargo, como estoy familiarizado con el resto del software de H2O.ai y el código está disponible en GitHub, estaba dispuesto a descargarlo e instalarlo. Sin embargo, resulta que como no tengo suficiente potencia de GPU para ejecutar un modelo de tamaño decente, hubiera sido mejor instalarlo desde la fuente, momento en el que no estoy seguro de que ejecutar este modelo sea tan fácil como la mayoría de los otros métodos.

Rob Mulla, ahora en H2O.ai, publicó un video de YouTube en su canal sobre la instalación de la aplicación en Linux. Aunque el video ya tiene un par de meses y la interfaz de usuario de la aplicación parece haber cambiado, el video todavía tiene información útil, incluidas explicaciones útiles sobre los LLM de H2O.ai.

PrivateGPT también está diseñado para permitirle consultar sus propios documentos utilizando lenguaje natural y obtener una respuesta generativa de IA. Los documentos de esta aplicación pueden incluir varias docenas de formatos diferentes. Y el README le asegura que los datos son "100% privados, ningún dato sale de su entorno de ejecución en ningún momento. ¡Puede ingerir documentos y hacer preguntas sin conexión a Internet!"

PrivateGPT presenta secuencias de comandos para ingerir archivos de datos, dividirlos en fragmentos, crear "incrustaciones" (representaciones numéricas del significado del texto) y almacenar esas incrustaciones en un almacén de vectores Chroma local. Cuando haces una pregunta, la aplicación busca documentos relevantes y los envía solo al LLM para generar una respuesta.

Configuración > Complementos