Iniciar un nodo con Docker
Puedes ejecutar todos los comandos de este documento sin ningún cambio en cualquier máquina con la última versión de Docker y al menos 8GB de RAM disponibles para el contenedor. Por defecto, el contenedor utiliza la CPU para realizar los cálculos, lo que podría ser lento para LLMs grandes. Para GPUs,
- Mac: Todo aquí funciona en Docker Desktop para Mac. Sin embargo, los núcleos de la GPU de Apple no estarán disponibles dentro de los contenedores Docker hasta que Docker soporte WebGPU más adelante en 2024.
- Windows y Linux con GPU Nvidia: Deberá instalar Kit de herramientas para contenedores NVIDIA para Docker. En las instrucciones siguientes, sustituya el
última
etiqueta concuda12
ocuda11
para aprovechar las ventajas de la GPU, y añada la función--device nvidia.com/gpu=all
bandera. Si necesita crear las imágenes usted mismo, sustituyaDockerfile
conDockerfile.cuda12
oDockerfile.cuda11
.
Encuentre imágenes Docker de GaiaNet que pueda ejecutar.
Inicio rápido
Inicie un contenedor Docker para el nodo GaiaNet. Imprimirá los registros de ejecución del nodo GaiaNet en este terminal.
docker run --name gaianet \
-p 8080:8080 \
-v $(pwd)/qdrant_storage:/root/gaianet/qdrant/storage:z \
gaianet/phi-3-mini-instruct-4k_paris:latest
El nodo está listo cuando muestra El nodo GaiaNet se inicia en: https://...
en la consola.
Puede ir a esa URL desde su navegador para interactuar con el nodo GaiaNet.
La imagen docker contiene los modelos LLM y de incrustación requeridos por el nodo. Sin embargo, la
vectorial (es decir, la base de conocimientos) se descarga e importa en el momento en que el nodo
se pone en marcha. Esto se debe a que la base de conocimientos puede actualizarse con frecuencia. El sitio qdrant_storage
de la máquina anfitriona almacena el contenido de la base de datos vectorial.
Alternativamente, el comando para ejecutar GaiaNet en su máquina Nvidia CUDA 12 es el siguiente.
docker run --name gaianet \
-p 8080:8080 --device nvidia.com/gpu=all \
-v $(pwd)/qdrant_storage:/root/gaianet/qdrant/storage:z \
gaianet/phi-3-mini-instruct-4k_paris:cuda12
Parar y volver a arrancar
Puedes parar y reiniciar el nodo de la siguiente manera. Cada vez que se reinicie, se reiniciará la colección de vectores (base de conocimientos). (base de conocimientos).
docker stop gaianet
docker start gaianet
NOTA: Cuando reinicie el nodo, los mensajes de registro dejarán de imprimirse en la consola. Deberá esperar unos minutos antes de que el nodo reiniciado vuelva a estar en línea. Todavía puede ver los registros iniciando sesión en el contenedor de la siguiente manera.
docker exec -it gaianet /bin/bash
tail -f /root/gaianet/log/start-llamaedge.log
También puede eliminar el nodo si ya no lo necesita.
docker stop gaianet
docker rm gaianet
Realizar cambios en el nodo
Puede actualizar los parámetros de configuración del nodo, como el tamaño del contexto para los modelos, mediante
ejecutando el comando config
en el gaianet
dentro del contenedor.
Por ejemplo, el siguiente comando cambia el tamaño del contexto del chat LLM a 8192 tokens.
docker exec -it gaianet /root/gaianet/bin/gaianet config --chat-ctx-size 8192
A continuación, reinicie el nodo para que la nueva configuración surta efecto. Tendrá que esperar unos minutos hasta que el servidor se inicie de nuevo, o puede monitorizar los archivos de registro dentro del contenedor como se discutió anteriormente.
docker stop gaianet
docker start gaianet
Cambiar el ID del nodo
Puede actualizar el ID de nodo (dirección Ethereum) asociado al nodo. Inicie el nodo y copie el nodeid.json
así como el archivo keystore definido en nodeid.json
en el contenedor.
docker cp /local/path/to/nodeid.json gaianet:/root/gaianet/nodeid.json
docker cp /local/ruta/a/1234-abcd-key-store gaianet:/root/gaianet/1234-abcd-key-store
A continuación, reinicie el nodo para que la nueva dirección y el almacén de claves surtan efecto.
docker stop gaianet
docker start gaianet
Construir una imagen de nodo localmente
Cada GaiaNet está definida por una config.json
archivo. Define los modelos
LLM y los modelos de incrustación, los parámetros del modelo
y las instantáneas de vectores (por ejemplo, la base de conocimientos).
El siguiente comando construye una imagen Docker con dos plataformas
para un nodo basado en el config.json
archivo.
docker buildx build . --platform linux/arm64,linux/amd64 \
--tag gaianet/phi-3-mini-instruct-4k_paris:latest -f Dockerfile \
--build-arg CONFIG_URL=https://raw.githubusercontent.com/GaiaNet-AI/gaianet-node/main/config.json
En
Dockerfile
está disponible aquí. Siéntase libre de cambiarlo a Nvidia Versiones CUDA si su Docker está habilitado con la opción Kit de herramientas para contenedores Nvidia.
Puedes publicar tu nodo para que otras personas lo utilicen.
docker push gaianet/phi-3-mini-instruct-4k_paris:latest
Buena suerte.