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 comcuda12
oucuda11
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, substituaDockerfile
comDockerfile.cuda12
ouDockerfile.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