Saltar para o conteúdo principal
Versão: 2.0.0

Iniciar um nó com o Docker

Você pode executar todos os comandos neste documento sem nenhuma alteração em qualquer máquina com o Docker mais recente e pelo menos 8 GB de RAM disponíveis para o contêiner. Por padrão, o contêiner usa a CPU para realizar cálculos, o que pode ser lento para LLMs grandes. Para GPUs,

  • Mac: Tudo aqui funciona no Docker Desktop para Mac. No entanto, os núcleos da GPU da Apple não estarão disponíveis dentro dos contêineres do Docker até que o WebGPU seja suportado pelo Docker no final de 2024.
  • Windows e Linux com GPU Nvidia: É necessário instalar Kit de Ferramentas para Contentores NVIDIA para o Docker. Nas instruções abaixo, substitua o mais recente etiqueta com cuda12 ou cuda11 para tirar partido da GPU e adicionar a função --dispositivo nvidia.com/gpu=todos bandeira. Se precisar de construir as imagens por si próprio, substitua Dockerfile com Dockerfile.cuda12 ou Dockerfile.cuda11.

Encontrar imagens Gaia Docker que possam ser executadas!

Início rápido

Iniciar um contentor Docker para o nó Gaia. Ele imprimirá os logs de execução do nó Gaia neste 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

O nó está pronto quando mostra O nó Gaia é iniciado em: https://... na consola. Pode aceder a esse URL a partir do seu browser para interagir com o nó Gaia.

A imagem do docker contém os modelos LLM e de incorporação exigidos pelo nó. No entanto, o instantâneo da coleção de vectores (ou seja, a base de conhecimento) é descarregada e importada no momento em que o nó arranca. Isto deve-se ao facto de a base de conhecimentos poder ser actualizada frequentemente. O qdrant_storage na máquina anfitriã armazena o conteúdo da base de dados vetorial.

Em alternativa, o comando para executar o Gaia na sua máquina Nvidia CUDA 12 é o seguinte.

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 e voltar a arrancar

É possível parar e reiniciar o nó da seguinte forma. Sempre que reiniciar, ele reinicializará a coleção de vectores (base de conhecimento).

docker stop gaianet
docker start gaianet

NOTA: Quando reiniciar o nó, as mensagens de registo deixarão de ser impressas na consola. Será necessário aguardar alguns minutos até que o nó reiniciado volte a ficar online. Você ainda pode ver os logs fazendo login no contêiner da seguinte forma.

docker exec -it gaianet /bin/bash
tail -f /root/gaianet/log/start-llamaedge.log

Também pode eliminar o nó se já não precisar dele.

docker stop gaianet
docker rm gaianet

Efetuar alterações no nó

É possível atualizar os parâmetros de configuração do nó, como o tamanho do contexto para os modelos, ao executando o comando configuração no comando gaianet dentro do contentor. Por exemplo, o comando a seguir altera o tamanho do contexto do chat LLM para 8192 tokens.

docker exec -it gaianet /root/gaianet/bin/gaianet config --chat-ctx-size 8192

Em seguida, reinicie o nó para que a nova configuração tenha efeito. Será necessário aguardar alguns minutos para que o servidor inicie novamente, ou você pode monitorar os arquivos de log dentro do contêiner, conforme discutido acima.

docker stop gaianet
docker start gaianet

Alterar o ID do nó

É possível atualizar o ID do nó (endereço Ethereum) associado ao nó. Inicie o nó e copie o nodeid.json bem como o ficheiro keystore definido em nodeid.json no recipiente.

docker cp /local/path/to/nodeid.json gaianet:/root/gaianet/nodeid.json
docker cp /local/path/to/1234-abcd-key-store gaianet:/root/gaianet/1234-abcd-key-store

Em seguida, reinicie o nó para que o novo endereço e o keystore entrem em vigor.

docker stop gaianet
docker start gaianet

Criar uma imagem de nó localmente

Cada Gaia é definida por um config.json ficheiro. Este ficheiro define os modelos de LLM e modelos de incorporação, parâmetros do modelo, prompts e snapshots de vetor (por exemplo, base de conhecimento). O comando a seguir cria uma imagem Docker com duas plataformas para um nó com base no config.json ficheiro.

docker buildx build . --plataforma 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

O Dockerfile está disponível aqui. Não hesite em mudar para Nvidia Versões CUDA se o seu Docker estiver ativado com a opção Kit de ferramentas de contentor da Nvidia.

Pode publicar o seu nó para que outras pessoas o utilizem.

docker push gaianet/phi-3-mini-instruct-4k_paris:latest