Programa
El uso de grandes modelos lingüísticos (LLM) en sistemas locales es cada vez más popular gracias a su mayor privacidad, control y fiabilidad. A veces, estos modelos pueden ser incluso más precisos y rápidos que ChatGPT.
Mostraremos siete formas de ejecutar LLM localmente con aceleración por GPU en Windows 11, pero los métodos que cubrimos también funcionan en macOS y Linux.
Marcos LLM que nos ayudan a ejecutar LLM localmente. Imagen de Abid Ali Awan.
Si quieres aprender sobre los LLM desde cero, un buen lugar para empezar es este curso sobre Grandes Modelos de Aprendizaje (LLM).
Empecemos explorando nuestro primer marco LLM.
1. GPT4All
El nomic-ai/gpt4all es un marco LLM y una aplicación chatbot para todos los sistemas operativos. Podemos ejecutar los LLM localmente y luego utilizar la API para integrarlos con cualquier aplicación, como un asistente de codificación de IA en VSCode. Este es el método más fácil y sencillo para descargar y ejecutar LLMs en tus máquinas locales.
A. Descargar el cliente
Descarga el instalador del repositorio nomic-ai/gpt4all de GitHub. Tu elección depende de tu sistema operativo -en este tutorial, elegimos Windows-.
B. Descargar el modelo
Instala el paquete GPT4All seleccionando las opciones por defecto. Cuando iniciemos la aplicación GPT4All, se nos pedirá que descarguemos el modelo lingüístico antes de utilizarlo. Descarga el modelo que elijas.
C. Seleccionar el modelo
Una vez finalizada la descarga, cierra la página del modelo para acceder a la interfaz de usuario del chat.
Selecciona el modelo que has descargado: nosotros elegimos Nous Hermes 2 Mistral DPO.
D. Generar respuesta
Si tienes instalado CUDA, empezará a utilizar automáticamente una GPU para acelerar la generación de respuestas. Si no es así, y tienes una GPU Nvidia, quizá quieras instalar primero CUDA Toolkit 12.4.
Podemos utilizar la aplicación de forma similar a como utilizamos ChatGPT online. Observa que es mucho más rápida que la respuesta típica de GPT-4.
E. Ajustes del modelo
Podemos personalizar la respuesta del modelo yendo a los ajustes y jugando con los parámetros del modelo.
También podemos conectar una carpeta local con los archivos para obtener una respuesta sensible al contexto.
Además, podemos activar el servidor API para que cualquier aplicación pueda utilizar nuestro modelo utilizando una clave API.
F. Acceder a los modelos de OpenAI
Podemos acceder a los modelos GPT-3.5 y GPT-4 proporcionando la clave de la API de OpenAI.
Tenemos que ir a la página del modelo, desplazarnos hacia abajo, proporcionar la clave API del modelo GPT-4 y pulsar el botón de instalación.
A continuación, seleccionamos el modelo ChatGPT-4 en la interfaz de usuario del chat.
Ahora podemos empezar a utilizarlo como si lo hiciéramos en nuestro navegador.
Pasemos al siguiente LLM. Este tutorial sobre la clasificación de los LLM te ayudará a elegir el mejor LLM para tu solicitud.
2. LM Studio
LM Studio ofrece opciones similares a GPT4All, salvo que no permite conectar una carpeta local para generar respuestas contextuales.
A. Instalación
Podemos descargar el instalador desde la página principal de LM Studio.
Una vez finalizada la descarga, instalamos la aplicación con las opciones predeterminadas.
Por fin, ¡lanzamos LM Studio!
B. Descargar el modelo
Podemos descargar cualquier modelo de Cara Abrazada utilizando la función de búsqueda.
En nuestro caso, descargaremos el modelo más pequeño, el Gemma 2B Instruct de Google.
C. Generar la respuesta
Podemos seleccionar el modelo descargado en el menú desplegable de la parte superior y chatear con él como de costumbre. LM Studio ofrece más opciones de personalización que GPT4All.
D. Servidor de inferencia local
Al igual que GPT4All, podemos personalizar el modelo y lanzar el servidor API con un solo clic. Para acceder al modelo, podemos utilizar el paquete Python de la API de OpenAI, CURL, o integrarlo directamente con cualquier aplicación.
E. Utilizar varios modelos
La característica clave de LM Studio es que ofrece la opción de ejecutar y servir varios modelos a la vez. Esto permite a los usuarios comparar los resultados de distintos modelos y utilizarlos para múltiples aplicaciones. Para ejecutar varias sesiones de modelos, necesitamos una VRAM de GPU elevada.
El ajuste fino es otra forma de generar respuestas adaptadas al contexto y personalizadas. Puedes aprender a afinar tu modelo Google Gemma siguiendo el tutorial Afinar Google Gemma: Mejorar los LLM con instrucciones personalizadas. Aprenderás a ejecutar la inferencia en GPUs/TPUs y a afinar el último modelo Gemma 7b-it en un conjunto de datos de juegos de rol.
3. Jan
Una de las solicitudes de LLM locales más populares y más atractivas es la de Jan. Es más rápido que cualquier aplicación LLM local: genera una respuesta a 53,26 tokens/seg. En comparación, la velocidad de GPT4All es de 31 tokens/seg.
A. Instalación
Podemos descargar el instalador desde Jan.ai.
Una vez instalada la aplicación Jan con la configuración por defecto, estamos listos para lanzar la aplicación.
B. Importar el modelo
Cuando cubrimos GPT4All y LM Studio, ya habíamos descargado dos modelos. En lugar de descargar otro, importaremos los que ya tenemos yendo a la página del modelo y haciendo clic en el botón Importar modelo.
A continuación, vamos al directorio de aplicaciones, seleccionamos los modelos GPT4All y LM Studio, e importamos cada uno de ellos.
- GPT4All: "C:/Users/<user_name>/AppData/Local/nomic.ai/GPT4All/"
- Estudio LM: "C:/Users/<user_name>/.cache/lm-studio/models"
C. Acceder a los modelos locales
Para acceder a los modelos locales, vamos a la interfaz de usuario del chat y abrimos la sección de modelos en el panel derecho.
Vemos que nuestros modelos importados ya están ahí. ¡Podemos seleccionar el que queramos y empezar a utilizarlo inmediatamente!
D. Generar la respuesta
La generación de respuestas es muy rápida. La interfaz de usuario es natural, similar a la de ChatGPT, y no ralentiza tu portátil o PC.
La particularidad de Jan es que nos permite instalar extensiones y utilizar modelos propios de OpenAI, MistralAI, Groq, TensorRT y Triton RT.
E. Servidor API local
Al igual que LM Studio y GPT4All, también podemos utilizar Jan como servidor API local. Proporciona más capacidades de registro y control sobre la respuesta LLM.
4. llama.cpp
Otro popular marco LLM de código abierto es llama.cpp. Está escrito puramente en C/C++, lo que lo hace rápido y eficaz.
Muchas aplicaciones de IA locales y basadas en la web se basan en llama.cpp. Por tanto, aprender a utilizarlo localmente te dará una ventaja a la hora de comprender cómo funcionan otras aplicaciones LLM entre bastidores.
A. Descargar llama.cpp
En primer lugar, tenemos que ir al directorio de nuestro proyecto utilizando el comando cd
en el intérprete de comandos -puedes aprender más sobre el terminal en este curso de Introducción al intérprete de comandos-.
A continuación, clonamos todos los archivos desde el servidor de GitHub utilizando el siguiente comando:
$ git clone --depth 1 https://github.com/ggerganov/llama.cpp.git
B. Utilizar MakeFile en Windows
La herramienta de línea de comandos make
está disponible por defecto en Linux y MacOS. Para Windows, sin embargo, tenemos que seguir los siguientes pasos:
- Descarga la última versión de w64devkit Fortran para Windows.
- Extraer w64devkit en nuestro directorio local.
- En la carpeta principal, tenemos que encontrar el archivo w64devkit.exe y ejecutarlo.
- Utiliza el comando
$ cd C:/Repository/GitHub/llama.cpp
para acceder a la carpeta llama.cpp. - Escribe
$ make
y pulsa Intro para instalar llama.cpp.
B. Iniciar el servidor WebUI de llama.cpp
Una vez completada la instalación, ejecutamos el servidor de la interfaz de usuario web llama.cpp escribiendo el comando que aparece a continuación. (Nota: Hemos copiado el archivo del modelo de la carpeta GPT4All a la carpeta llama.cpp para poder acceder fácilmente al modelo).
$ ./server -m Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf -ngl 27 -c 2048 --port 6589
El servidor web funciona en http://127.0.0.1:6589/. Puedes copiar esta URL y pegarla en tu navegador para acceder a la interfaz web de llama.cpp.
Antes de interactuar con el chatbot, debemos modificar la configuración y los parámetros del modelo.
Echa un vistazo a este tutorial de llama.cpp si quieres saber más.
D. Generar la respuesta
La generación de la respuesta es lenta porque la ejecutamos en la CPU, no en la GPU. Debemos instalar una versión diferente de llama.cpp para ejecutarlo en la GPU.
$ make LLAMA_CUDA=1
5. llamafile
Si llama.cpp te parece demasiado complejo, prueba con llamafile. Este marco simplifica los LLM tanto para los desarrolladores como para los usuarios finales, combinando llama.cpp con Cosmopolitan Libc en un único archivo ejecutable. Elimina todas las complejidades asociadas a los LLM, haciéndolos más accesibles.
A. Descargar el archivo del modelo
Podemos descargar el archivo modelo que queramos del repositorio GitHub de llamafile.
Descargaremos LLaVA 1.5 porque también puede comprender imágenes.
B. Hacer cambios para Windows
Los usuarios de Windows deben añadir .exe a los nombres de archivo en el terminal. Para ello, haz clic con el botón derecho en el archivo descargado y selecciona Cambiar nombre.
C. Ejecutar el LlamaFile
Primero vamos al directorio llamafile utilizando el comando cd
en el terminal. A continuación, ejecutamos el siguiente comando para iniciar el servidor web llama.cpp.
$ ./llava-v1.5-7b-q4.llamafile -ngl 9999
El servidor web utiliza la GPU sin que tengas que instalar ni configurar nada.
También iniciará automáticamente el navegador web predeterminado con la aplicación web llama.cpp en ejecución. Si no es así, podemos utilizar la URL http://127.0.0.1:8080/ para acceder directamente.
D. Generar la respuesta
Después de establecer la configuración del modelo, podemos empezar a utilizar la aplicación web.
Ejecutar el archivo llama.cpp utilizando el archivo llamafile es más fácil y eficaz. Generamos la respuesta con 53,18 tokens/seg (sin llamafile, la tasa fue de 10,99 tokens/seg).
6. Ollama
Ollama es una herramienta que nos permite acceder fácilmente a través de los LLM terminales como Llama 3, Mistral y Gemma.
Además, múltiples aplicaciones aceptan una integración con Ollama, lo que la convierte en una herramienta excelente para acceder más rápida y fácilmente a los modelos lingüísticos de nuestra máquina local.
A. Instalación de Ollama
Podemos descargar Ollama desde la página de descargas.
Una vez que lo instalemos (utiliza la configuración por defecto), aparecerá el logotipo de Ollama en la bandeja del sistema.
B. Correr Ollama
Podemos descargar el modelo Llama 3 escribiendo el siguiente comando de terminal:
$ ollama run llama3
¡Llama 3 ya está lista para usar! A continuación, vemos una lista de comandos que debemos utilizar si queremos utilizar otros LLM:
C. Ejecutar modelos personalizados
Para acceder a los modelos que ya se han descargado y están disponibles en la carpeta llama.cpp, necesitamos
- Ve a la carpeta llama.cpp utilizando el comando
cd
.
$ cd C:/Repository/GitHub/llama.cpp
- Crea un nombre de archivo llamado
Modelfile
y añade la línea"FROM ./Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf"
.
$ echo "FROM ./Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf" > Modelfile
- Construye el modelo proporcionando el nombre del modelo.
$ ollama create NHM-7b -f Modelfile
- Ejecuta el modelo NHM-7b.
$ ollama run NHM-7b
- Utilízalo como cualquier otra aplicación de chat.
Con este método, podemos descargar cualquier LLM de Hugging Face con la extensión .gguf y utilizarlo en el terminal. Si quieres saber más, consulta este curso sobre Cómo trabajar con Cara Abrazada.
7. NextChat
NextChat, antes conocido como ChatGPT-Next-Web, es una aplicación de chat que nos permite utilizar GPT-3, GPT-4 y Gemini Pro mediante una clave API.
También está disponible en la interfaz de usuario web, e incluso podemos desplegar nuestra propia instantánea web con un solo clic en Vercel.
Puedes obtener más información sobre NextChat siguiendo esta introducción detallada a ChatGPT Next Web (NextChat).
A. Instalación
Podemos descargar el instalador desde el repositorio de GitHub. Para Windows, selecciona el archivo .exe.
Como antes, instalaremos el paquete utilizando la configuración por defecto.
B. Configurar la clave API
La aplicación NextChat no se ejecutará hasta que añadamos una clave API de Google AI u OpenAI.
Para obtener la clave API para Google AI, tenemos que ir a Gemini API y hacer clic en el botón azul Obtener clave API en Google AI Studio.
Después, tenemos que hacer clic en el botón Obtener clave API y, a continuación, crear y copiar la clave API. Es gratis, sin limitación de fichas.
Una vez que tengamos la clave API, navegamos hasta la configuración de NextChat y nos desplazamos hasta la sección Proveedor de modelos. Seleccionamos Google como proveedor del modelo y pegamos la clave API en el campo designado.
C. Generar la respuesta
En la página principal de la interfaz de usuario del chat, haz clic en el botón del robot (🤖) situado encima de la entrada del chat y selecciona el modelo gemini-pro.
Utilizamos Google Gemini localmente y tenemos pleno control sobre la personalización. Los datos del usuario también se guardan localmente.
Del mismo modo, podemos utilizar la clave API de OpenAI para acceder a los modelos GPT-4, utilizarlos localmente y ahorrarnos la cuota mensual de suscripción.
Conclusión
Instalar y utilizar LLM localmente puede ser una experiencia divertida y emocionante. Podemos experimentar con los últimos modelos de código abierto por nuestra cuenta, disfrutar de privacidad, control y una experiencia de chat mejorada.
Utilizar los LLM localmente también tiene aplicaciones prácticas, como integrarlo con otras aplicaciones mediante servidores API y conectar carpetas locales para proporcionar respuestas conscientes del contexto. En algunos casos, es esencial utilizar los LLM localmente, sobre todo cuando la privacidad y la seguridad son factores críticos.
Puedes obtener más información sobre los LLM y la creación de aplicaciones de IA siguiendo estos recursos: