Criação de um servidor local de inferência de IA do Deepseek
Primeiro, as boas notícias: a Digital Spaceport obteve um ótimo desempenho da plataforma AMD EPYC Rome que eles usaram na análise anterior :😁: Essa configuração é um clássico! Aqueles que usam essa configuração têm boas notícias hoje, pois estão executando de 4,25 a 3,5 pcs/s com o modelo Q4 671b completo! Token (TPS). Isso é importante porque esses modelos "leves" não estão na mesma categoria. Eles não têm um desempenho tão bom, e outros modelos os superam facilmente. Para obter uma experiência de modelo realmente grande, use um modelo completo, de preferência com uma janela de contexto grande (16K+). O modelo completo não apresenta problemas mesmo se for executado somente na CPU, portanto, você pode deixá-lo em execução enquanto executa alguns modelos menores, como modelos de reconhecimento de imagem, na GPU. Novamente, não é possível executar a versão completa somente na memória da GPU, a menos que você tenha um equipamento muito sofisticado! Deepseek O Digital Spaceport lhe ensinará todos os tipos de truques para colocá-lo em funcionamento. Não é exatamente "fácil", mas é divertido se você gosta de mexer com tecnologia.
Retificação (2024/02/01)
- Consumo de energia em modo inativo: 60W (menor do que o esperado pela Digital Spaceport, e isso sem a GPU conectada)
- Consumo de energia com carga total: 260W
- Frequência atual da memória do Digital Spaceport: 2400MHz (3200MHz pode ser melhor)
Hardware da CPU do servidor de IA local
Se você já viu o guia de configuração do servidor gráfico quad 3090 da Digital Spaceport, você está com sorte. A Digital Spaceport recomenda uma CPU melhor, já que o preço agora é praticamente o mesmo e o aumento de desempenho é significativo. No entanto, os resultados deste artigo foram executados com a CPU 7702 da própria Digital Spaceport, e a placa-mãe MZ32-AR0 foi uma boa recomendação na época, pois tem 16 slots de memória que funcionam com a frequência total de 3200 MHz, o que o ajudará a reduzir o custo de obter entre 512 GB e 1 TB de memória. O Digital Spaceport está usando pentes de memória DDR4 de 2400 MHz, mas se você usar pentes de memória DDR4 ECC de 3200 MHz, poderá aumentar o desempenho. 16 pentes de 32 GB fornecerão 512 GB de memória e 16 pentes de 64 GB fornecerão 1 TB.Observação: Os cartões de memória LRDIMM e RDIMM não podem ser misturados! (LRDIMM e RDIMM são dois tipos diferentes de cartões de memória de servidor e não devem ser misturados, caso contrário, o computador poderá não inicializar)
Lista de componentes da plataforma do servidor local de IA
- Racks $55
- Placa principal do MZ32-AR0 $500
- CPU com resfriamento a água de 420 mm Corsair h170i elite capellix xt $170
- Suporte do cabeçote do resfriador de água da CPU EPYC
- AMD EPYC 7702 de 64 núcleos $650 ou AMD EPYC 7V13 de 64 núcleos $599 ou AMD EPYC 7C13 de 64 núcleos $735
- 512 GB de memória ECC 2400 $400
- SSD NVMe de 1 TB - Samsung 980 Pro $75
- Fonte de alimentação de 850 W $80 (se você estiver usando apenas o raciocínio da CPU, 850 W é suficiente. Para uso de GPU, é recomendável obter uma fonte de alimentação de 1500W ou 1600W para começar)
(Os preços são os vigentes em 29 de janeiro de 2025)
Custo total: aproximadamente US$ 2.000* Se estiver usando 512 GB de RAM de 2400 e uma CPU EPYC 7702, a Digital Spaceport recomenda adquirir uma CPU 7C13 ou 7V13 em vez de atualizar a frequência da memória. O upgrade para 768 GB de RAM é a segunda opção, sendo a RAM de 3200 MHz a última a ser considerada. Com a CPU topo de linha (7C13 ou 7V13) e 1 TB de RAM de 2400 MHz, o preço total seria de aproximadamente US$ 2.500. **.
Montagem do rack da plataforma
O processo de montagem é o mesmo do vídeo anterior, ainda sem a GPU e a placa de extensão. Se você quiser adicionar uma GPU mais tarde, a Digital Spaceport recomenda obter uma fonte de alimentação de 1500 W ou 1600 W desde o início. Depois de adicionar a GPU e a placa de extensão, o restante da unidade permanece o mesmo. Você pode assistir a este vídeo para saber como montá-la. (Isso se refere ao vídeo de configuração do servidor gráfico quad 3090 mencionado acima.) Ignore a parte sobre a GPU no vídeo, todas as outras etapas são as mesmas.
Além disso, é uma boa ideia ter uma parede de ventiladores pequenos, amarrados com zíperes, soprando ar nos cartões de memória para ajudar a dissipar o calor. Os cartões de memória não se fundem termicamente, mas o aquecimento excessivo acionará a proteção contra superaquecimento, reduzindo o desempenho e afetando as velocidades de processamento de dados. (Parede de ventiladores significa que vários ventiladores são montados lado a lado para formar uma parede de ar, proporcionando maior capacidade de resfriamento)
Dicas de atualização da placa-mãe
Se você quiser usar a CPU AMD EPYC 7V13, é melhor comprar a versão V3 da placa-mãe MZ32-AR0 diretamente em vez de comprar a V1 e depois atualizá-la. A versão V1 pode não ser compatível com as CPUs da arquitetura Milan de fábrica, e você precisa usar a versão V3, portanto, talvez seja necessário atualizar o BIOS da placa-mãe com a versão V2 da CPU primeiro.O BIOS é equivalente à "alma" da placa-mãe do computador, controlando a inicialização e a operação do hardware, e a atualização do BIOS permite que a placa-mãe ofereça suporte a hardware mais recente) A Digital Spaceport não pode afirmar com certeza se a versão V1 não é compatível com as CPUs Milan, mas acha que é muito provável. De acordo com a experiência da Digital Spaceport, é possível atualizar a placa-mãe V1 para a versão mais recente da V3 fazendo o flash da atualização do BIOS. Primeiro, você precisa fazer o flash de uma versão anterior do BIOS V3 e, em seguida, fazer o flash da versão V3 mais recente do BIOS. A versão mais recente do BIOS é a M23_R40 (Dados no momento da redação).
Configuração local do software auto-hospedado de IA
A parte de configuração do software é um pouco mais complicada do que os tutoriais anteriores da Digital Spaceport. Sim, você pode instalar o Ollama diretamente em um sistema Proxmox básico.O Proxmox é um software de gerenciamento de virtualização de servidores que permite executar várias máquinas virtuais em um único servidor físico) No entanto, o Digital Spaceport sugere que é melhor não fazer isso. Agora você tem duas opções, e a Digital Spaceport falará sobre uma delas primeiro. A Digital Spaceport precisa testar o impacto no desempenho antes de decidir se recomenda a outra opção. A outra opção é executar o Ollama em um contêiner LXC autônomo ou em uma máquina virtual (VM).Os contêineres LXC e as VMs são tecnologias de virtualização que isolam o ambiente no qual o software é executado) Se você já viu os tutoriais sobre LXC e Docker da Digital Spaceport, pode continuar a usar o LXC, mas a Digital Spaceport sugere que é melhor instalá-lo em uma máquina virtual (VM) por enquanto. A Digital Spaceport tentará encontrar uma solução mais unificada para tornar tudo felizmente autossuficiente em nosso pequeno servidor de IA, mas isso levará tempo.
Ubuntu 24.04 bare metal ou VM Proxmox?
Se quiser minimizar o incômodo desnecessário de uma nova instalação do zero, basta instalá-lo em um servidor Ubuntu 24.04 bare-metal. Como alternativa, você pode consultar o tutorial anterior do Proxmox. (Refere-se ao tutorial de instalação do Proxmox publicado anteriormente pela Digital Spaceport.) Cabe a você decidir o que deseja fazer, por sua própria conta e risco. Você também pode instalar um ambiente de área de trabalho, se quiser, mas isso não é necessário e o Digital Spaceport não o demonstra. Estamos executando um serviço em um servidor, portanto, não tenha medo da interface de linha de comando (CLI).
Configuração do BMC da placa-mãe MZ32-AR0
Conecte as portas Ethernet e BMC da placa-mãe MZ32-AR0 ao cabo de rede. (BMC (Baseboard Management Controller) Controlador de gerenciamento de placa de base que pode gerenciar remotamente o hardware do servidor) Se estiver usando um roteador com firewall, como o opnsense ou o pfsense, você poderá verificar a lista ARP do roteador para ver se a porta do BMC é exibida. Localize o endereço IP do BMC. No Digital Spaceport, o endereço do BMC é https://192.168.1.XX. Abra esse endereço no navegador e uma caixa de login com nome de usuário e senha será exibida. O nome de usuário padrão é admin e a senha está no adesivo da placa-mãe, sob o logotipo do MZ32-AR0. O adesivo da placa-mãe do Digital Spaceport é mostrado na figura. É o adesivo com o código de barras. A senha é provavelmente a senha inicial, removendo os primeiros 3 caracteres de "3/C/" e, em seguida, os próximos 6 ou 11 caracteres. Depois de fazer login com sucesso na interface de gerenciamento do BMC, vá para
Página inicial > Configurações > Rede > Configurações de IP da rede
Defina o endereço IP estático da placa-mãe. Se estiver usando servidores DNS e NTP locais, configure-os também. (Servidores DNS para resolução de nomes de domínio e servidores NTP para sincronização de horárioA interface de gerenciamento do BMC será muito usada no futuro, portanto, é uma boa ideia colocá-la nos favoritos.
Em seguida, clique em "remote control" (controle remoto) na barra lateral. A página exibirá a opção "HTML5 viewer" (visualizador HTML5). A página exibirá a opção "HTML5 viewer". A Digital Spaceport recomenda o uso de uma conexão com fio, pois você fará o upload de uma imagem ISO de 2,5 GB do sistema Ubuntu 24.04 pela rede para instalar o sistema posteriormente. (O arquivo de imagem ISO é um backup completo do disco ou da unidade de disco rígido) Acesse o site do Ubuntu para fazer o download Imagem ISO para a versão de servidor do Ubuntu 24.04O Ela tem cerca de 2,5 GB de tamanho. No visualizador HTML5 da interface de administração do BMC, clique no canto superior direito e carregue essa imagem ISO.
Quando o carregamento estiver concluído, toque em "Start (iniciar)". Se você ainda não tiver ligado o servidor, faça isso agora. Uma vez ligado, a interface do visualizador HTML5 começará a exibir o progresso do carregamento, e os números aumentarão lentamente. Clique com o mouse na janela "tela" e aguarde até que o лого de inicialização da Gigabyte apareça. Quando vir o лого, pressione DEL no teclado para entrar na configuração do BIOS. No BIOS, carregue os padrões, salve e reinicie. Depois que o computador for reinicializado, entre no BIOS novamente e, dessa vez, altere algumas configurações. Em primeiro lugar, defina o disco de inicialização. O modo de inicialização pode ser UEFI ou Legacy, que provavelmente é menos problemático e tem menos probabilidade de causar problemas. (UEFI e Legacy são dois modos diferentes de inicialização do BIOS, sendo o UEFI o mais moderno e avançado.)
Abaixo estão os itens de configuração do BIOS que precisam ser encontrados e modificados:
- O NPS é definido como 1 (NPS (Nodes Per Socket) Número de nós por soquete, afeta o modo de acesso à memória da CPU)
- CCD definido como Auto (CCD (Core Complex Die) CPU Core Complex, o design modular das CPUs AMD)
- SMT Off (O SMT (Simultaneous Multithreading), a versão da AMD do Hyper-Threading, está desativado para proporcionar um desempenho de núcleo único mais estável.)
- SVM desativado (pode ser ativado se estiver usando o Proxmox VM, o desempenho será ligeiramente degradado) (SVM (Secure Virtual Machine) Modo de máquina virtual segura, aceleração de hardware da tecnologia de virtualização)
- IOMMU desativado (pode ser ativado se estiver usando a VM do Proxmox, o desempenho será ligeiramente prejudicado) (IOMMU (Input-Output Memory Management Unit) Unidade de gerenciamento de memória de entrada e saída, hardware acelerado pela tecnologia de virtualização)
- cTDP ajustado para 200W (para CPU EPYC 7702) (cTDP (Configurable TDP) TDP configurável para ajustar a potência e o desempenho da CPU)
- Defina o controle determinístico como manual e puxe o controle deslizante para desempenho.
- política de energia rápida definida para desempenho
- O BoostFMax está definido como manual (Configuração do limite de frequência de aceleração da CPU BoostFMax)
- boostFmax é definido como 3400 (para CPU EPYC 7702) (Defina o limite superior da frequência de aceleração da CPU como 3,4 GHz)
Após modificar as configurações do BIOS acima, salve e reinicie novamente. Nessa reinicialização, pressione F12/11/10 (a Digital Spaceport não se lembra qual é a tecla, mas ela é mostrada na parte inferior da página de inicialização) para entrar no menu de inicialização. Selecione a opção "AMI Virtual CD" para inicializar a partir da unidade de CD-ROM virtual. Se tiver uma conexão com a Internet com fio, você poderá acessar a tela de instalação do Ubuntu rapidamente. A próxima etapa é a instalação do Ubuntu. Defina um nome de usuário e uma senha, certifique-se de que você se lembra deles. Marque a opção "setup ssh server" para facilitar o login remoto após a conclusão da instalação. (SSH (Secure Shell) Protocolo Secure Shell para login remoto e gerenciamento de servidores) Aguarde a conclusão da instalação do sistema. O sistema será reinicializado após a conclusão da instalação e, eventualmente, solicitará que você pressione Enter para continuar. Depois de pressionar Enter, o sistema será reinicializado novamente e, em seguida, entrará no terminal da linha de comando e será solicitado a fornecer um nome de usuário. Digite o nome de usuário e a senha que você definiu para fazer login. Depois de fazer o login com sucesso, digite o comando
ip a
Lembre-se do endereço IP exibido. Agora você pode voltar ao seu computador Windows/macOS/Linux e fechar a janela do visualizador HTML5 na interface de administração do BMC. No software Terminal do seu computador, digite (put) nome de usuário
Substitua-o pelo seu nome de usuário, o endereço IP
Substitua-o pelo endereço IP que você acabou de lembrar).
ssh nome de usuário@endereço IP
Instalação de software comumente usado
Aqui está uma grande lista de comandos, basta copiá-los e colá-los no terminal e executá-los. As etapas relacionadas à GPU são omitidas aqui. Se você tiver uma placa de vídeo NVIDIA, poderá instalar os drivers depois de concluir as etapas a seguir.
sudo apt update && sudo apt upgrade -y && sudo apt install -y htop git glances nano lsof unzip
sudo apt update
Atualize a lista de fontes de software para garantir que os pacotes mais recentes possam ser baixados.sudo apt upgrade -y
Atualização de todos os pacotes instalados para a versão mais recente.-y
indica que todas as operações são confirmadas automaticamente.sudo apt install -y htop git glances nano lsof unzip
Instalação de alguns softwares comuns do Linux: Instale alguns softwares comuns do Linux.htop
Gerenciador de processos: um gerenciador de processos mais fácil de usar que permite visualizar o uso de recursos do sistema em tempo real.git
Ferramenta de controle de versão de código para download e gerenciamento de código.olhares
Uma ferramenta de monitoramento de sistema mais avançada do que ahtop
Funcionalidade mais rica.nano
Editor de texto fácil de usar para editar arquivos de configuração.lsof
Ferramenta para visualização de arquivos abertos que pode ser usada para solucionar problemas como ocupação de portas.descompactar
Ferramenta para descompactar arquivos ZIP: Uma ferramenta para descompactar arquivos ZIP.
Configuração de um endereço IP estático
Digite no terminal da linha de comando:
sudo netplan generate
Esse comando gera um arquivo de configuração de rede padrão. Em seguida, use o comando nano
O editor abre o arquivo de configuração:
sudo nano /etc/netplan/50-cloud-init.yaml
O conteúdo do arquivo de configuração padrão é mais ou menos assim. Precisamos modificar o arquivo eno1
configuração da placa de rede.eno1
Corresponde à porta de rede física na placa-mãe. Ignorar enp65s0np0
Essa é uma placa de rede externa.
Use as teclas de seta do teclado para mover o cursor e alterar o arquivo de configuração para algo parecido com o seguinte. use seu endereço IP atual para o endereço IP, para facilitar a operação e evitar complicações. digital spaceport set the static IP here to 192.168.1.200
O gateway do roteador é 192.168.1.1
Essa é uma configuração de rede doméstica muito comum.
Quando a modificação estiver concluída, pressione Ctrl+X
abortar nano
editor, quando solicitado a salvar, pressione Y
para confirmar.
Quando retornar ao terminal, digite o comando para aplicar a nova configuração de rede:
sudo netplan apply
Agora seu servidor está configurado com um endereço IP estático. Você pode reinicializar o servidor e fazer login remotamente usando SSH para garantir que as configurações de IP estático estejam em vigor.
Instalar Ollama
próxima instalação Ollama Estrutura de execução de modelos grandes.
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
Faça o download do pacote de instalação do Ollama.enrolar
é uma ferramenta de download de linha de comando.-L
indica um link de follow redirect.-o
especifica o nome do arquivo a ser salvo.sudo tar -C /usr -xzf ollama-linux-amd64.tgz
Extraia o pacote de instalação do Ollama para/usr
Catálogo.alcatrão
é uma ferramenta popular de compactação/descompactação para sistemas Linux.-C /usr
Especifique o diretório de descompressão como/usr
(matemática) gênero-xzf
significa descompactar o arquivo tar compactado com gzip.sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
Criar um arquivo chamadoollama
usuário do sistema para executar o serviço Ollama.sudo useradd
Comando para criar um usuário.-r
Para criar um usuário do sistema, o UID e o GID são atribuídos automaticamente.-s /bin/false
Proibir que os usuários façam login no sistema.-U
Crie um grupo de usuários com o mesmo nome.-m
Cria automaticamente o diretório inicial do usuário.-d /usr/share/ollama
Especifique o diretório inicial do usuário como/usr/share/ollama
.ollama
: Nome de usuário.
sudo usermod -a -G ollama $(whoami)
Adicionar o usuário atual à lista de usuáriosollama
Grupos de usuários.sudo usermod
Comando para modificar as informações do usuário.-a
Adicionar ao grupo de usuários em vez de substituir.-G ollama
: Adicionar aollama
Grupos de usuários.$ (whoami)
Nome de usuário: Obtenha o nome de usuário atual.
Esse comando também cria um arquivo chamado ollama
e instale o Ollama no diretório /usr/share/ollama
diretório. Por padrão, os arquivos de modelo são colocados no diretório /usr/share/ollama/.ollama/models/
Catálogo.
Configuração de variáveis de ambiente e serviços
Agora é necessário definir algumas variáveis de ambiente que serão usadas quando o Ollama for iniciado. Isso é fundamental para resolver problemas de processamento paralelo.
sudo nano /etc/systemd/system/ollama.service
despesa ou gasto nano
O editor abre o arquivo de configuração do serviço systemd do Ollama. Precisamos adicionar variáveis de ambiente ao arquivo de configuração. Abaixo está uma lista de todas as variáveis de ambiente que podem ser configuradas; não precisamos usar todas elas, elas estão listadas apenas para referência.
Variáveis de ambiente:
-OLLAMA_DEBUG
Exibição de mais informações de depuração (por exemploOLLAMA_DEBUG=1
)-OLLAMA_HOST
Endereço IP no qual o servidor Ollama escuta (padrão)127.0.0.1:11434
)-OLLAMA_KEEP_ALIVE
: por quanto tempo o modelo permanece carregado na memória (padrão)"5m"
(5 minutos)-OLLAMA_MAX_LOADED_MODELS
Número máximo de modelos que podem ser carregados por GPU-OLLAMA_MAX_QUEUE
Comprimento máximo da fila de solicitações-OLLAMA_MODELS
Diretório onde os arquivos de modelo estão armazenados-OLLAMA_NUM_PARALLEL
Número máximo de solicitações paralelas-OLLAMA_NOPRUNE
Limpeza do cache do modelo na inicialização: não há limpeza do cache do modelo na inicialização-OLLAMA_ORIGINS
: uma lista separada por vírgulas de fontes que permitem solicitações entre domínios-OLLAMA_SCHED_SPREAD
Se o modelo deve ser distribuído uniformemente em todas as GPUs-OLLAMA_FLASH_ATTENTION
Se deve ativar a aceleração de atenção do Flash (O Flash Attention é uma otimização Transformador Técnicas para modelar a eficiência computacional)-OLLAMA_KV_CACHE_TYPE
Tipo de quantificação do cache K/V (padrão)f16
) (O cache K/V é um componente essencial do modelo Transformer usado para acelerar a inferência, e a quantificação reduz o espaço ocupado pela memória, mas pode perder a precisão)-OLLAMA_LLM_LIBRARY
Especifique as bibliotecas LLM para ignorar a detecção automática (As bibliotecas LLM são as bibliotecas computacionais subjacentes usadas para executar modelos grandes, comollama.cpp
,exllama
et al. (e outros autores))-OLLAMA_GPU_OVERHEAD
Espaço de memória reservado por GPU (bytes)-OLLAMA_LOAD_TIMEOUT
Tempo limite de carregamento do modelo (padrão)"5m"
(5 minutos)
O conteúdo do arquivo de configuração do Digital Spaceport é o seguinte. Observação: a menos que tenha uma placa de GPU, você não precisa (e não deve) preencher as variáveis de ambiente relacionadas à GPU.
manter a mão sobre Ctrl+X
e, em seguida, pressione Y
Salve o arquivo de configuração. Em seguida, execute o seguinte comando:
sudo systemctl daemon-reload
sudo systemctl start ollama
nproc
sudo systemctl daemon-reload
Recarregue o arquivo de configuração do serviço systemd para que as alterações tenham efeito.sudo systemctl start ollama
: Startupollama.service
serviço, a estrutura do Ollama Big Model.nproc
Número de núcleos da CPU: Visualize o número de núcleos da CPU.
Agora as variáveis de ambiente estão configuradas. nproc
O comando deve exibir o número 64
o que significa 64 núcleos de CPU. Se a saída 128
Isso significa que o hyperthreading SMT não está desativado, portanto, você precisa desativá-lo no BIOS. Se a saída 32
talvez 96
Se as saídas não estiverem no mesmo estado que as saídas, verifique as configurações de NPS e CCD no BIOS. Se a saída 64
Se a contagem de núcleos da CPU estiver correta, você poderá prosseguir para a próxima etapa (LFG = Let's Fucking Go).
Download do modelo Deepseek 671b
Agora, faça o download do modelo grande do Deepseek 671b. Esse modelo ocupa cerca de 400 GB de espaço em disco, portanto, esperamos que seu SSD NVMe seja grande o suficiente.
ollama pull deepseek-r1:671b
ollama pull deepseek-r1:671b
Download usando o cliente Ollamadeepseek-r1:671b
Modelos.puxar
para fazer o download do modelo.deepseek-r1:671b
é o nome e a versão do modelo.
O processo de download será lento, portanto, seja paciente. A propósito, lamento os custos surpreendentes do tráfego de dados... (O download de modelos grandes consome muito tráfego de rede, especialmente de servidores estrangeiros, e pode gerar altos custos de tráfego)
Instalação do OpenWEBUI
Precisamos usar o Docker ou o Python para executar o OpenWEBUI. Aqui, o Digital Spaceport usa o Docker para fazer a implantação. Certifique-se de não ter nenhum outro software relacionado ao Docker instalado em seu sistema para evitar conflitos.
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
Desinstalação de pacotes relacionados ao Docker que possam estar instalados para evitar conflitos.for pkg in ... ; do ... ; done
Declaração de loop for: Uma declaração de loop for que itera pela lista de pacotes.docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
Docker: Uma lista de pacotes relacionados ao Docker que podem ser instalados.sudo apt-get remove $pkg
Desinstale o pacote.apt-get remove
é o comando para desinstalar pacotes em sistemas Debian/Ubuntu.$pkg
é uma variável de loop que representa o nome do pacote que está sendo percorrido no momento.
Instale os códigos-fonte oficiais do Docker:
# Adicione a chave GPG oficial do Docker.
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Adicione o repositório às fontes do Apt.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \ \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
- Esse comando é usado para adicionar os repositórios oficiais do Docker para facilitar a instalação da versão mais recente do Docker.
- A primeira parte adiciona a chave GPG oficial do Docker, que é usada para verificar a integridade e a origem do pacote.
- A segunda parte adiciona fontes do Docker à lista de fontes do APT (Advanced Package Tool).
- máximo
sudo apt-get update
Atualize a lista de fontes de software para ativar as fontes do Docker recém-adicionadas.
Instale o mecanismo do Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Instalação do Docker Engine e dos componentes relacionados.docker-ce
Docker Community Edition Engine.docker-ce-cli
Cliente de linha de comando do Docker.containerd.io
Dependências subjacentes do Docker no tempo de execução do contêiner.docker-buildx-plugin
Docker Buildx: plug-in do Docker Buildx para criar imagens do Docker com várias arquiteturas.docker-compose-plugin
Docker Compose: plug-in do Docker Compose para gerenciar aplicativos Docker com vários contêineres.-y
Confirma todas as operações automaticamente.
Instale o gerenciador de contêineres Dockge Docker.
O diretório de dados do Dockge está, por padrão, no diretório /opt/dockge
e os dados relacionados ao Docker também estão no diretório /opt
O catálogo é fácil de gerenciar.
sudo mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
sudo curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml -output compose.yaml
docker compose up -d
sudo mkdir -p /opt/stacks /opt/dockge
Criar um catálogo/opt/stacks
responder cantando/opt/dockge
É usado para armazenar arquivos relacionados ao Dockge.-p
significa que, se o diretório pai não existir, ele também será criado.cd /opt/dockge
Mudar o diretório de trabalho atual para/opt/dockge
.sudo curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml -output compose.yaml
Download do Dockge'scompose.yaml
Documentação.compose.yaml
é um arquivo de configuração para o Docker Compose que define a configuração do contêiner do Docker.docker compose up -d
Inicie o contêiner do Dockge usando o Docker Compose.para cima
para iniciar o contêiner.-d
indica operação em segundo plano.
Agora você pode acessar a interface de administração do Dockge por meio de um navegador para concluir as etapas restantes do gerenciamento de contêineres do Docker. Se você não souber o endereço IP do servidor, poderá verificar as configurações de rede do servidor. O endereço de acesso do navegador é http://服务器IP:5001
Por exemplo, o IP do servidor da Digital Spaceport é o mesmo que o do servidor da Digital Spaceport. Por exemplo, o IP do servidor do Digital Spaceport é 192.168.1.200
Então, o endereço de acesso é http://192.168.1.200:5001
. Na primeira vez que visitar o site, será necessário definir um nome de usuário e uma senha, portanto, não se esqueça deles. A próxima etapa é criar o OpenwebUI do contêiner do Docker agora.
Cole o seguinte no editor Compose do Dockge como a configuração do Compose para o OpenwebUI:
versão: "3.3"
serviços.
open-webui.
serviços: open-webui.
- 7000:8080
volumes: open-webui:/app/backend/data
- open-webui:/app/backend/data
nome_do_contêiner: open-webui
restart: sempre
imagem: ghcr.io/open-webui/open-webui:latest
volumes: open-webui: {}
open-webui: {}
redes: dockge_default: {}
dockge_default: external: true
external: true
- Essa configuração do Compose define um arquivo chamado
open-webui
Contêiner do Docker para executar o OpenWEBUI.versão: "3.3"
Versão do arquivo do Docker Compose.serviços
Definir a lista de serviços.open-webui
Nome do serviço.portos
Mapeamento de portas: mapeia a porta 8080 do contêiner para a porta 7000 do host.volumes
Volume de dados: o volume de dados monta o arquivoopen-webui
O volume é montado no contêiner/app/backend/data
para armazenamento persistente de dados do OpenWEBUI.nome_do_contêiner
: nome do contêiner, definido comoopen-webui
.reiniciar: sempre
O contêiner é sempre reiniciado automaticamente.imagem: ghcr.io/open-webui/open-webui:latest
Imagem do Docker usada: A imagem do Docker usada.ghcr.io/open-webui/open-webui:latest
é a imagem mais recente do Docker para o OpenWEBUI.
volumes
Definir o volume de dados.open-webui: {}
Criar um arquivo chamadoopen-webui
do volume de dados.
redes
: Definição de redes.dockge_default
Nome da rede.externo: verdadeiro
Uso de redes externasdockge_default
Por padrão, o Dockge cria um arquivo chamadodockge_default
da rede.
Clique em "save" (salvar) e "run" (executar). A primeira execução será lenta porque você precisa fazer o download da imagem do Docker. Para atualizar a imagem do OpenWEBUI posteriormente, basta clicar no botão "update" na interface do Dockge. Quando o contêiner for iniciado, visite a página http://服务器IP:7000
Você poderá abrir a interface OpenWEBUI. Por exemplo, o IP do servidor do Digital Spaceport é 192.168.1.200
Então, o endereço de acesso é http://192.168.1.200:7000
. Na primeira vez que visitar o site, você precisará definir um nome de usuário e uma senha, que é importante lembrar. Vamos lá agora mesmo Está quase pronto! Ufa!Ufa!)
Conectando o OpenWEBUI ao Ollama
Na página "/admin/settings" -> "connections" da interface de administração do OpenWEBUI, clique no sinal "+" para adicionar uma nova conexão de servidor. Preencha o endereço do servidor IP do servidor:11434
. Por exemplo.192.168.1.200:11434
(Observe a substituição do endereço IP de seu próprio servidor). (Tenha o cuidado de substituí-lo pelo endereço IP de seu próprio servidor). Se a conexão for bem-sucedida, a interface OpenWEBUI exibirá uma mensagem verde "connection success" (sucesso da conexão).
Depois de conectado, clique no ícone do Connection Manager para ver os servidores Ollama conectados. Se o modelo do Deepseek já tiver sido baixado, você o verá no menu suspenso "Delete model" (Excluir modelo). deepseek-r1:671b
Modelos.
Parabéns, está quase pronto! Mas Não saia da página de configurações com pressa!
Configuração de parâmetros avançados
Clique no ícone Editar (Caneta).
Os parâmetros avançados agora podem ser editados. Não se esqueça de clicar em "SAVE!" quando terminar.
- Número de GPUs (GPUs)Se você não tiver uma placa de GPU, altere isso para
0
. - Esforço de raciocínio: Opcional
baixo
(baixo)médio
(M) oualta
(alto), o padrão émédio
(centro). - Comprimento do contexto: Definido como
16364
O comprimento do contexto de 16K não é um problema. Comprimentos de contexto maiores exigem mais memória ou RAM da GPU. - Número de threads (num_thread): Definido como
62
Além disso, o sistema tem 2 núcleos de CPU reservados para o sistema. - Ativar o bloqueio de memória (use_mlock)Pode ser ativado para evitar que os dados da memória sejam trocados para o disco e afetem o desempenho. (O bloqueio de memória (mlock) impede que as páginas de memória sejam trocadas para o disco pelo sistema operacional, o que melhora a eficiência do aplicativo, mas aumenta o espaço ocupado pela memória.)
Outros parâmetros podem ser ajustados de acordo com as instruções no cartão do modelo. Observação: Não tente usar o comprimento total do contexto de 160K, a menos que você tenha 2 TB de RAM! Mesmo que funcione, a velocidade será muito Lento.
IMPORTANTE: Não se esqueça de tocar em "SAVE!" (Salvar).
Definição das configurações do usuário
Clique em "User Settings" (Configurações do usuário) para alterar as preferências do usuário. Recomenda-se que você defina a configuração "keep alive" (manter vivo) para um período de tempo mais longo, por exemplo, 3 horas. Clique em "save" (salvar) após alterar as configurações.
As configurações de usuário são um pouco confusas com as configurações de administrador anteriores, portanto, tenha cuidado para diferenciá-las.
Executar um teste.
Meu Deus, não acredito que você chegou até aqui! Isso é fantástico, o Digital Spaceport admira você! Clique em "new chat" (novo bate-papo) no canto superior esquerdo da interface OpenWEBUI. A lista de modelos já deve ter deepseek-r1:671b
Já sei. Tente enviar um "olá" aleatório. Funcionou!
Teste de desempenho do Deepseek R1 671b
Parabéns por ter instalado e executado com sucesso o serviço Ollama + OpenWEBUI local big model! A Digital Spaceport acredita que há muitas outras soluções excelentes de execução de big models locais, como llama.cpp
, exo
responder cantando vLLM
Os tutoriais serão publicados depois que a Digital Spaceport tiver se aprofundado. Os tutoriais serão publicados quando a Digital Spaceport tiver se aprofundado. llama.cpp
Pode ser o próximo, a Digital Spaceport recentemente compilou, testou e executou o llama.cpp
O resultado é muito bom! Apenas muitos parâmetros para resolver. vLLM
É um pouco complicado.exo
É bastante simples, mas continua travando após o lançamento e ainda não tive tempo de depurá-lo. De qualquer forma, como dizem... Fique ligado! (EM BREVE!)