Vamos a ver cómo se puede instalar una IA local en un Mac, tener instalada un motor de IA en local nos va a servir para generar textos con los que desarrollar contenidos sin tener que recurrir a sistemas externos expuestos a Internet.
Índice de este artículo
Si bien esta IA local que vamos a comentar puede que tenga únicamente sentido para aquellos usuarios avanzados que sean desarrolladores ya que la forma en la que interactuaremos con ellas será mediante un servidor web que ejecutaremos en un container y las respuestas que obtendremos de la IA vendrán en formato Json, por lo que los usuarios de a pie no sabrán sacarle todo el provecho, mientras que los usuarios avanzados y desarrolladores sí.
Local First
Quizá debería comenzar sobre el por qué instalar una IA en local, no crees, ya que IAs como la de ChatGPT, Bing, Windows Copilot, Bard y otras son muy accesibles y cómodas de usar, sin complicarse nada en absoluto, pero claro, todo tiene su pega, la privacidad.
La exposición a Internet que conlleva sistemas como GPT de OpenAI, Windows Copilot, Google Bard y otros es algo relativamente nuevo, pero a buen seguro estas grandes empresas lo utilizarán, si no lo están haciendo ya, para ofrecernos una publicidad más certera e incitar al usuario consumo de ciertos contenidos y servicios que bien no podríamos necesitar o al menos de primera mano.
Es la ética vista con la privacidad relativa a las búsquedas de Internet lo que asusta a muchos profesionales y observadores recelosos de sus datos, de sus intereses.
Conversar con una IA a través de Internet créeme que tarde o temprano nos traerá consecuencias, y no todas serán buenas.
Así que sin echar pestes sobre la Inteligencia Artificial y viéndola como una herramienta más en el proceso evolutivo del ser humano, la mejor opción es recurrir a su consumo de forma local.
Sí, cada día que pasa me convenzo más sobre la verdad del slogan «Local First», donde los usuarios seguidores de esta nueva corriente tecnológica priorizan el uso de recursos locales sobre recursos en la red y es que sólo de esa forma se protege en parte tu privacidad.
Así que tal y como hemos realizado en otras ocasiones vamos a tratar de cómo podemos instalar una IA local en nuestros Mac para que nos ayude en la creación de contenidos para cualquier fin.
Instalación de una IA en Mac
Para poder disfrutar de una IA de forma local precisamos de varios pasos y programas para poder instalar una IA en el Mac así que vamos a tratarlos todos uno a uno.
Editor de código
Si bien podemos utilizar el propio editor nano que incorpora el terminal del Mac, este es un editor muy parco que haríamos bien en aprender tenemos otras opciones fuera de la línea de comandos, como Visual Code, o también el más liviano SublimeText, el cual es «semigratuito», funcionará sin pedirnos nada durante un periodo de tiempo que ahora no recuerdo y luego nos recordará si queremos colaborar con la opción de pago. Ahí cada uno decide.
Puedes instalar el editor SublimeText desde la dirección: https://direccion.online/a0cbw
Instalar Docker
Docker es una aplicación muy curiosa y recurrida por los desarrolladores. Docker crea un pequeño sistema virtualizado a medida con unos recursos concretos, este «sistema virtualizado» se llama container y Docker puede gestionar muchos containers en nuestro sistema, en nuestro caso el «container» que vamos a usar es un contenedor que permite aceptar peticiones de navegador creando un servidor web en un puerto del Mac.
Instalamos Docker Desktop descargando el instalador desde la web oficial: https://direccion.online/a0bjw
Una vez instalado y antes de continuar deberemos asegurarnos de que esté arrancado y tengamos iniciada la sesión con nuestra cuenta de Docker.
Instalar Git
Instalamos Brew lo que posteriormente nos va a permitir instalar Git
Para ello desde la aplicación Terminal lanzamos:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Ahora es momento de instalar Git con el siguiente comando:
brew install git
Si lo deseamos podemos instalar la interfaz gráfica de Git con:
brew install git-gui
Deberíamos añadir Git al «path» del sistema con:
eval "$(/opt/homebrew/bin/brew shellenv)"
Crear directorio de trabajo
Creamos el directorio local y entramos en el:
mkdir /Users/TUNOMBREDEUSUARIO/DEV/ia/
cd /Users/TUNOMBREDEUSUARIO/DEV/ia/
Clonamos el repositorio LocalAI
Ahora ya podremos utilizar Git para clonar el repositorio de LocalAI en nuestro Mac con el siguiente comando de terminal
git clone https://github.com/go-skynet/LocalAI
Esto nos creará la carpeta LocalAI dentro del directorio «/Users/TUNOMBREDEUSUARIO/DEV/ia/»
Accedemos al directorio con:
cd LocalAI
Creamos el container
Si no lo teníamos arrancado ahora es el momento de arrancar Docker Desktop en el Mac y volvemos a la Terminal, desde donde estando dentro del directorio LocalAI lanzaremos el comando:
docker compose up -d --pull always
Podríamos recibir un error:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Esto es debido a que no hemos arrancado o esperado a que arrancase Docker del todo, así que en ese caso tocaría arrancarlo y/o esperar a que esté corriendo.
El proceso de pulling llevará un rato, claro que todo dependerá de la potencia de la máquina, en mi caso más de 20 minutos, pues son unos cuantos gigabytes lo que debe descargar y «pulir», no menos de 15 Gb.
Listar los modelos de IA disponibles
Ahora vamos a probar que lo hemos realizado todo hasta aquí correctamente, para ello vamos a listar los modelosd e IA disponibles.
Se trata lanzar en la misma ventana de terminal que estábamos trabajando el siguiente comando:
curl http://localhost:8080/models/available
Esto nos tirará por pantalla sin control alguno todos los modelos disponibles, veremos algo tal cual así:
Instalar un modelo
Vamos a proceder a seleccionar un modelo y descargarlo, entraremos a la carpeta «models».
cd models
Ahora, siguiendo en la terminal copia pega esto en tu terminal, recuerda pulsar enter.
curl --location 'http://localhost:8080/models/apply' \
--header 'Content-Type: application/json' \
--data-raw '{
"id": "TheBloke/dolphin-2.2.1-mistral-7B-GGUF/dolphin-2.2.1-mistral-7b.Q4_0.gguf"
}'
Se nos crearán diferentes ficheros dentro de models, nosotros vamos a utilizar los nuestros, para crearlos utiliza el siguiente comando.
touch lunademo-chat.tmpl
touch lunademo-chat-block.tmpl
touch lunademo-completion.tmpl
touch lunademo.yaml
Con el comando touch abremos creado los ficheros vacíos, tocará editarlos, aquí es donde podemos utilizar nano desde dentro de la propia terminal o SublimeText o cualquier editor buscando la carpeta desde el Finder.
Editamos el primero de los ficheros lunademo-chat.tmpl dejando su contenido con el siguiente código:
<|im_start|>{{if eq .RoleName "assistant"}}assistant{{else if eq .RoleName "system"}}system{{else if eq .RoleName "user"}}user{{end}}
{{if .Content}}{{.Content}}{{end}}
<|im_end|>
Para lunademo-chat-block.tmpl
{{.Input}}
<|im_start|>assistant
Para lunademo-completion.tmpl:
{{.Input}}
Para lunademo.yaml:
backend: llama
context_size: 2000
name: lunademo
parameters:
model: dolphin-2.2.1-mistral-7b.Q4_0.gguf
template:
chat: lunademo-chat-block
chat_message: lunademo-chat
completion: lunademo-completion
Ahora vamos a reiniciar el contenedor de Docker
docker compose restart
Para probar la IA local que hemos instalado en el Mac podemos desde el propio terminal lanzarle un:
curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "lunademo",
"messages": [{"role": "user", "content": "How are you?"}],
"temperature": 0.9
}'