Ir al contenido principal
Versión: 1.0.0

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 con cuda12 o cuda11 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, sustituya Dockerfile con Dockerfile.cuda12 o Dockerfile.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.