Llama-Swap: Isso resolve o problema mais irritante de LLMs locais
BBetter Stack
컴퓨터/소프트웨어가전제품/카메라AI/미래기술
Transcript
00:00:00Nossa configuração de modelo local funciona bem, até precisarmos de um modelo diferente.
00:00:04Agora estamos fechando o servidor llama, mudando portas, atualizando nossa URL base da OpenAI, esperando
00:00:10por recarregamentos e apenas torcendo para que nada dê errado.
00:00:13Tudo porque nosso modelo de código é grande demais para um chat rápido, e seu modelo pequeno é burro demais
00:00:18para código real.
00:00:19O LlamaSwap resolve isso.
00:00:21Um endpoint, múltiplos modelos, troca automática, e suas ferramentas nem percebem a mudança.
00:00:26Vou te mostrar como configurar isso nos próximos minutos.
00:00:34A maioria dos devs de LLM local acaba batendo no mesmo muro.
00:00:37No início, você usa algo conveniente: llama, lmstudio, algo que simplesmente funciona.
00:00:44Porque funciona mesmo.
00:00:45E, honestamente, isso é ótimo, pois eles melhoraram muito.
00:00:48Mas depois começamos a querer mais controle.
00:00:51Você quer flags exatas do llama CPP, alocação de camadas na GPU, talvez tamanho de contexto, backends personalizados, ou
00:00:59até modelos experimentais.
00:01:01Então você se aproxima do servidor llama puro, e isso parece incrível.
00:01:06Até perceber que acabou de trocar um problema por outro.
00:01:09Agora você está fazendo isto.
00:01:11Você fecha seu servidor llama, inicia o QuinCoder, e cinco minutos depois, o que
00:01:16você está fazendo?
00:01:17Fechando seu servidor llama de novo.
00:01:18Você fica pulando entre esses modelos.
00:01:20E toda vez que faz isso, algo trava, reconecta, falha ou silenciosamente usa o modelo
00:01:26errado.
00:01:27O que você realmente quer é manter um único endpoint na frente e trocar os modelos
00:01:31que quiser por trás dele.
00:01:33Essa é a lacuna que o LlamaSwap preenche.
00:01:36Se você gosta de ferramentas de código que aceleram seu fluxo, inscreva-se no canal.
00:01:39Lançamos vídeos o tempo todo.
00:01:41Agora, antes de explicarmos, deixe-me mostrar como tudo isso funciona.
00:01:44Neste momento, o LlamaSwap está rodando localmente em uma porta.
00:01:48Meu cliente só conhece esta URL base; nada de uma URL para Quin, outra para small LM, ou
00:01:55outra para embeddings. Apenas uma porta de entrada.
00:01:58Aqui está uma pequena configuração com dois modelos.
00:02:02Um é o QuinCoder, o outro é o small LM2.
00:02:06E cada um tem seu próprio comando.
00:02:09Cada um tem seu arquivo de modelo.
00:02:11Cada um tem seu próprio tamanho de contexto.
00:02:14A diferença entre os dois é que cada um também tem seu próprio TTL.
00:02:19Agora vou pedir algo ao modelo de codificação.
00:02:22Envio uma solicitação de chat normal no estilo OpenAI.
00:02:25O campo do modelo diz QuinCoder, ok, perfeito.
00:02:30Vamos observar os logs.
00:02:32Ele espera até que o backend esteja estável e então envia a solicitação.
00:02:36Agora, aqui está o que NÃO está acontecendo.
00:02:39Eu não estou mudando a URL.
00:02:41Não estou reiniciando o open web UI.
00:02:43Não estou editando isso no Cursor.
00:02:46Estou mudando apenas um campo.
00:02:48O modelo muda de QuinCoder para small LM2, mesmo endpoint, mesmo cliente, modelo diferente.
00:02:55E quando o modelo fica ocioso além do TTL, o LlamaSwap pode descarregá-lo para liberar sua VRAM.
00:02:59Pronto.
00:03:00Esse é o grande truque.
00:03:02Suas ferramentas pensam que estão falando com uma única API.
00:03:04O LlamaSwap cuida da parte complicada nos bastidores para controlar como tudo flui.
00:03:09Certo, ótimo.
00:03:10Então, o que é o LlamaSwap?
00:03:11Eu meio que já demonstrei aqui, certo?
00:03:12Pense nele como um hub para seus modelos locais.
00:03:13Seus apps não falam diretamente com cada servidor de modelo.
00:03:16Eles falam com o LlamaSwap.
00:03:19Então o LlamaSwap olha o campo do modelo e decide o que fazer.
00:03:21Se o modelo já estiver rodando, ele apenas encaminha a solicitação.
00:03:25Se o modelo não estiver rodando, então ele inicia o processo.
00:03:28Se outro modelo precisar sair do caminho, ele o interrompe.
00:03:31Depois, seu cliente recebe uma resposta normal.
00:03:35Assim, não é preciso mudar as URLs base a cada 10 minutos.
00:03:38É um binário, um arquivo de config e um endpoint de API estável.
00:03:41Ele é feito em Go e utiliza configuração em YAML.
00:03:45Funciona como um proxy para APIs compatíveis com OpenAI e Anthropic e pode atuar
00:03:48na frente de backends como llama cpp, vllm, tabby API e outros.
00:03:53Se você tiver sorte, pode ter 10 ou 20 modelos no disco, mas VRAM apenas para um ou
00:03:59dois carregados.
00:04:05O TTL ajuda nisso.
00:04:06Se um modelo ficar ocioso por muito tempo, o LlamaSwap pode descarregá-lo.
00:04:08Assim, em vez de sua GPU ficar presa segurando um modelo que não estamos usando,
00:04:11ela pode liberar essa memória para a próxima solicitação.
00:04:17Antes, você tinha que lembrar o que estava rodando.
00:04:20Agora, a configuração lembra por você.
00:04:23Neste ponto, a pergunta óbvia é: por que não usar apenas Llama, LM Studio ou o servidor
00:04:25Llama puro?
00:04:31E a resposta é: bem, talvez você use.
00:04:32O LlamaSwap não substitui esses o tempo todo.
00:04:35Ele resolve um problema muito específico.
00:04:37Comparado ao Llama, o LlamaSwap não é uma loja de modelos, um downloader ou um CLI amigável
00:04:40para iniciantes. Esse não é o objetivo aqui.
00:04:47O objetivo é o controle.
00:04:49Você traz suas próprias builds do llama cpp, suas próprias flags e decide exatamente como cada
00:04:50modelo é iniciado.
00:04:55Comparado ao LM Studio, o LlamaSwap é mais focado em servidor, sem necessidade de GUI.
00:04:57Ele se encaixa melhor em uma máquina de dev, um servidor caseiro, Docker ou uma máquina
00:05:02compartilhada onde as ferramentas precisam apenas de uma API estável.
00:05:07Não é tão simples quanto um “llama run llama 3”.
00:05:09Você precisa dos seus arquivos de modelo.
00:05:13Precisa entender seu backend.
00:05:15Precisa escrever YAML.
00:05:17Precisa saber quais flags cabem na sua GPU.
00:05:19Não há uma galeria de modelos embutida que baixe e configure tudo para você.
00:05:22Então, honestamente, a configuração é trabalhosa.
00:05:26Mas para alguns devs, isso resolve uma dor muito específica.
00:05:29A dor de saber exatamente qual modelo você quer, mas perder tempo conectando e
00:05:32reconfigurando tudo ao redor dele.
00:05:38Vale a pena tentar se você usa ferramentas como Cursor, Continue, agentes personalizados ou scripts locais.
00:05:39Isso vai ser útil, mas a configuração é mais intensiva.
00:05:44Então, esse é o LlamaSwap.
00:05:47Um endpoint de API estável, múltiplos modelos locais por trás, troca automática,
00:05:49descarregamento por inatividade e controle total do backend.
00:05:54A ideia principal aqui é simples.
00:05:56Seus clientes param de se importar com qual servidor de modelo está realmente rodando.
00:05:58O LlamaSwap cuida de tudo isso por eles.
00:06:02Se você gosta de ferramentas de código como esta, não se esqueça de se inscrever.
00:06:04A gente se vê em outro vídeo.