Acesso Seguro a Modelos de Linguagem Grandes Usando Sistemas HPC
Um novo sistema facilita o uso privado de LLMs através de recursos de HPC.
― 8 min ler
Índice
- Contexto
- Desafios
- Usando Sistemas HPC para Serviços Web
- Preocupações de Segurança
- Problemas de Desempenho
- Arquitetura Proposta
- Servidor Web
- Infraestrutura HPC
- Funções dos Componentes
- Gateway API
- Proxy HPC
- Script de Interface em Nuvem
- Privacidade dos Dados
- Medidas de Segurança
- Avaliação de Desempenho
- Medidas de Latência
- Testes de Throughput
- Adoção pelos Usuários
- Limitações
- Trabalho Futuro
- Conclusão
- Fonte original
- Ligações de referência
O aumento dos grandes modelos de linguagem (LLMs) tem gerado uma demanda crescente por sistemas que suportem seu uso de forma eficiente, segura e privada. Pesquisadores e organizações querem rodar LLMs personalizados sem arriscar a privacidade dos seus dados. Existem dois tipos principais de sistemas que podem ser usados: sistemas de computação de alto desempenho (HPC) e sistemas baseados em nuvem. Os Sistemas HPC têm GPUs poderosas e são ótimos para treinar LLMs. No entanto, eles não são ideais para aplicações em tempo real que precisam de respostas rápidas. Sistemas em nuvem são bons para serviços web, mas muitas vezes não têm as GPUs poderosas necessárias para um processamento rápido.
Este artigo propõe uma nova configuração para abordar esses desafios. Nossa abordagem envolve um serviço web rodando em uma máquina virtual (VM) na nuvem, que se conecta de forma segura a um backend flexível. Esse backend roda vários LLMs em sistemas HPC. Utilizamos ambientes confiáveis em universidades e centros de pesquisa locais para oferecer uma alternativa privada e segura aos serviços comerciais de LLM.
Nosso sistema é projetado para funcionar com o agendador de tarefas em lote HPC, Slurm, o que permite que ele se encaixe perfeitamente nos recursos HPC existentes. Essa configuração pode rodar ao lado de tarefas regulares do Slurm, aproveitando qualquer tempo ocioso para processar solicitações de LLM. Para manter o sistema HPC seguro, implementamos certas proteções que impedem ataques de afetar o cluster.
Contexto
Os grandes modelos de linguagem (LLMs) ganharam popularidade, levando muitas instituições a considerar como podem usar essas ferramentas avançadas. Elas enfrentam uma decisão difícil: deixar empresas estrangeiras como OpenAI cuidarem dos seus dados ou tentar hospedar LLMs por conta própria para proteger a privacidade dos usuários. Recentemente, muitas organizações disponibilizaram seus modelos de LLM gratuitamente, oferecendo mais opções.
Embora modelos menores possam rodar em GPUs comuns, os modelos maiores precisam de hardware caro para serem usados de forma eficaz. Isso cria uma divisão entre quem pode arcar com os recursos necessários e quem não pode. Muitos centros de pesquisa e universidades já têm sistemas HPC, tornando-os adequados para hospedar LLMs.
Desafios
Usando Sistemas HPC para Serviços Web
Os sistemas HPC não foram feitos para serviços web constantes; eles se saem bem rodando grandes tarefas em lote. Essa diferença gera desafios ao tentar oferecer serviços interativos, como conversas em tempo real com usuários. O Slurm, o agendador de tarefas, lida com trabalhos com base na disponibilidade de recursos, o que significa que os usuários podem esperar para que suas solicitações sejam processadas.
Segurança
Preocupações deQuando um serviço web é exposto à internet, ele pode se tornar um alvo para atacantes. Os centros HPC costumam ter medidas de segurança rigorosas para proteger dados sensíveis e recursos computacionais. Isso exige um planejamento cuidadoso sobre como hospedar um serviço de forma segura para que os usuários possam acessar.
Problemas de Desempenho
Rodar um serviço em sistemas HPC tem limites de desempenho. Se a demanda é alta e os modelos demoram a carregar e processar, os usuários podem experimentar atrasos. É necessário escalar para atender à demanda dos usuários, mas isso pode ser complicado, dado os recursos necessários para os LLMs maiores.
Arquitetura Proposta
Nossa solução consiste em dois componentes principais: um servidor web e a infraestrutura HPC. O servidor web gerencia as interações dos usuários, enquanto a infraestrutura HPC lida com o processamento dos modelos.
Servidor Web
O servidor web funciona como um proxy reverso, garantindo uma conexão segura entre os usuários e a infraestrutura HPC. Ele usa um método de autenticação para manter os dados dos usuários seguros, exigindo que eles façam login. Essa etapa garante que nenhum usuário não autorizado possa acessar dados sensíveis.
Infraestrutura HPC
A infraestrutura HPC opera usando o Slurm para gerenciar tarefas de forma eficiente. A comunicação entre o servidor web e os sistemas HPC ocorre através de SSH, o que adiciona mais uma camada de segurança. O servidor web envia solicitações para o ambiente HPC, onde elas são processadas pelos LLMs.
Funções dos Componentes
Gateway API
O gateway API é responsável por direcionar solicitações para os serviços apropriados. Ele gerencia o tráfego e o acesso dos usuários de forma eficiente dentro da arquitetura. Esse método ajuda a controlar e monitorar as solicitações, garantindo uma operação suave.
Proxy HPC
O Proxy HPC permite a comunicação segura entre o servidor web e o cluster HPC, mantendo uma conexão aberta para solicitações recebidas. Essa configuração ajuda a garantir que as solicitações sejam processadas rapidamente e de forma eficiente, sem comprometer a segurança.
Script de Interface em Nuvem
Esse script roda no nó de serviço HPC e atua como uma ponte entre solicitações e modelos. Ele direciona as solicitações para o modelo correto e coleta as respostas, que são enviadas de volta através do proxy para o usuário.
Privacidade dos Dados
Proteger os dados dos usuários é uma prioridade no nosso enfoque. Seguimos diretrizes rigorosas para garantir que nenhuma informação sensível seja armazenada desnecessariamente. O sistema não guarda as solicitações ou respostas dos usuários no servidor. Em vez disso, essas informações são mantidas apenas no dispositivo do usuário, permitindo controle total sobre seus dados.
Medidas de Segurança
Ao empregar múltiplas camadas de segurança, minimizamos as chances de uma violação. Cada componente é projetado para garantir que, se uma parte for comprometida, o restante ainda proteja o sistema. SSH é usado exclusivamente para conexões seguras, e as contas de usuário são monitoradas para detectar qualquer atividade incomum.
Avaliação de Desempenho
Testes foram realizados para medir como o sistema lida com solicitações e quão rápido ele responde. Esses testes ajudaram a identificar gargalos dentro do sistema, garantindo que os usuários tenham uma experiência rápida e responsiva.
Medidas de Latência
Nós monitoramos quanto tempo leva para as solicitações serem processadas. Em média, os usuários recebem respostas de forma oportuna, com a maior parte do tempo de espera atribuída à velocidade de processamento dos LLMs.
Testes de Throughput
Os testes de throughput mediram quantas solicitações o sistema pode lidar de uma só vez. Descobrimos que a arquitetura pode suportar um número significativo de usuários simultaneamente, indicando que está pronta para aplicações do mundo real.
Adoção pelos Usuários
Desde seu lançamento, o serviço ganhou popularidade entre usuários de várias instituições acadêmicas. O crescimento tem sido consistente, com muitos usuários se envolvendo regularmente durante os dias de trabalho. Após a introdução de novos recursos e modelos, o engajamento dos usuários aumentou ainda mais.
Limitações
Apesar dos sucessos, há áreas em que nossa arquitetura pode melhorar. A confiabilidade continua sendo um problema; garantir que o serviço esteja sempre disponível sem interrupções é crítico. Além disso, mais automação poderia ajudar a agilizar a adição de novos modelos e recursos.
Trabalho Futuro
Olhando para o futuro, planejamos continuar melhorando o sistema. Há oportunidades para expandir os serviços oferecidos, atendendo a mais solicitações de usuários e aprimorando as capacidades. Por exemplo, incorporar recursos que permitam uma gama mais ampla de serviços de IA além de apenas LLMs poderia atrair ainda mais usuários.
Nosso objetivo é continuar aprimorando a infraestrutura existente e possivelmente fazer a transição para uma configuração baseada em Kubernetes para melhor gerenciamento e escalabilidade.
Conclusão
Em resumo, desenvolvemos uma solução que torna viável fornecer acesso seguro e privado a LLMs usando infraestruturas HPC existentes. Ao aproveitar esses recursos de forma eficaz, podemos suportar um serviço web responsivo que alinha com as necessidades de pesquisadores e instituições. O foco na privacidade dos dados, segurança e desempenho demonstra o potencial do nosso sistema para ter um impacto significativo em ambientes acadêmicos e de pesquisa. Esperamos que essa arquitetura abra caminho para futuros desenvolvimentos e inovações no campo dos serviços web e aplicações de IA.
Título: Chat AI: A Seamless Slurm-Native Solution for HPC-Based Services
Resumo: The widespread adoption of large language models (LLMs) has created a pressing need for an efficient, secure and private serving infrastructure, which allows researchers to run open source or custom fine-tuned LLMs and ensures users that their data remains private and is not stored without their consent. While high-performance computing (HPC) systems equipped with state-of-the-art GPUs are well-suited for training LLMs, their batch scheduling paradigm is not designed to support real-time serving of AI applications. Cloud systems, on the other hand, are well suited for web services but commonly lack access to the computational power of HPC clusters, especially expensive and scarce high-end GPUs, which are required for optimal inference speed. We propose an architecture with an implementation consisting of a web service that runs on a cloud VM with secure access to a scalable backend running a multitude of LLM models on HPC systems. By offering a web service using our HPC infrastructure to host LLMs, we leverage the trusted environment of local universities and research centers to offer a private and secure alternative to commercial LLM services. Our solution natively integrates with the HPC batch scheduler Slurm, enabling seamless deployment on HPC clusters, and is able to run side by side with regular Slurm workloads, while utilizing gaps in the schedule created by Slurm. In order to ensure the security of the HPC system, we use the SSH ForceCommand directive to construct a robust circuit breaker, which prevents successful attacks on the web-facing server from affecting the cluster. We have successfully deployed our system as a production service, and made the source code available at \url{https://github.com/gwdg/chat-ai}
Autores: Ali Doosthosseini, Jonathan Decker, Hendrik Nolte, Julian M. Kunkel
Última atualização: 2024-08-02 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2407.00110
Fonte PDF: https://arxiv.org/pdf/2407.00110
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.
Ligações de referência
- https://www.uni-goettingen.de/de/626775.html
- https://tex.stackexchange.com/questions/263876/how-to-type-a-non-breaking-hyphen-dash-character-in-scientific-or-technic
- https://tex.stackexchange.com/questions/10932/biblatex-custom-cite-command
- https://github.com/gwdg/chat-ai
- https://github.com/gwdg/saia-hub
- https://github.com/gwdg/saia-hpc