6 configurações que sempre mudo antes de executar o LLM local

A maioria dos conselhos locais de LLM gasta cerca de 90% do tempo em qual modelo baixar e quase nenhum no que fazer depois de carregado. Basta selecionar o modelo e a quantidade e pronto. Muitas pessoas parecem deixar as configurações e parâmetros de lado, a menos que haja algo errado, o que é uma pena, porque metade das reclamações sobre modelos nativos serem lentos ou estranhos não são realmente o modelo; estas são as configurações. E é muito mais fácil resolver do que mudar completamente o modelo para outro modelo.

Quer se manter atualizado sobre as últimas IA? O boletim informativo XDA AI Insider é publicado semanalmente com análises aprofundadas, recomendações de ferramentas e informações práticas que você não encontrará em nenhum outro lugar do site. Assine alterando suas preferências de boletim informativo!

A duração do contexto é um orçamento, não um teto

O número que todo mundo toca primeiro e comete um erro

Este parece quase óbvio demais para listar, exceto que a maioria das pessoas que vi administrando LLMs locais não tocam nele ou o levam tão alto quanto o modelo permite, porque a oportunidade existe. Mas depois de meio ano experimentando LLMs domésticos, percebi que o contexto é o orçamento e não o teto, e vale a pena pensar em como gastá-lo.

O comprimento do contexto é basicamente quantos tokens o modelo pode armazenar de uma vez e inclui seu prompt, a resposta do modelo, quaisquer documentos anexados e o restante da conversa até aquele ponto. Os tokens têm cerca de três quartos de uma palavra, então os tokens de 8K representam cerca de 6.000 palavras do espaço de trabalho total.

A segunda razão para ter cuidado é que maior não significa necessariamente melhor em termos de qualidade do produto. Existe um efeito bem documentado de “perdido no meio”, onde os modelos prestam atenção ao início e ao fim de contextos longos, mas ficam confusos sobre o que acontece no meio. Por exemplo, o Llama 3.1 foi treinado em 128k, mas tem melhor desempenho abaixo de 16k. Portanto, mesmo que o seu hardware possa suportar tecnicamente uma janela de contexto enorme, o modelo em si geralmente funciona melhor em uma janela mais estreita.

Para a maioria dos bate-papos e uso geral onde você sabe que a sessão não será muito longa, 8K é realmente adequado. Para trabalhos com documentos ou mais longos, optarei por 16K ou 32K. O número no controle deslizante é o máximo que o modelo pode aceitar, não uma recomendação.

Finalmente encontrei um LLM nativo de código aberto que realmente compete com a IA da nuvem

O código aberto está chegando

O consumo de GPU é a diferença entre rápido e inutilizável

A configuração automática geralmente é muito segura

O descarregamento da GPU determina quantas camadas de transformadores de modelo são carregadas na GPU em comparação com o restante da CPU. Para placas como a minha com 8 GB de VRAM, isso é mais importante do que quase qualquer outra coisa, já que a maioria dos modelos úteis na faixa 7B-13B ficam aquém da quantização adequada.

O objetivo do controle deslizante é ajustar o máximo possível do modelo na GPU sem overshooting, já que as camadas da GPU rodam cerca de 10 a 40 vezes mais rápido que as camadas da CPU. Empurre-o muito alto e você entrará na RAM do sistema compartilhado, e é aí que as coisas ficam ruins – a penalidade de desempenho do próprio LM Studio por derramamento é até 30 vezes mais lenta do que colocar VRAM. Defina um valor muito baixo e você deixará a GPU ociosa enquanto a CPU está funcionando, não é necessário.

A configuração automática tenta jogar pelo seguro, o que geralmente significa algumas camadas abaixo do que seu cartão pode suportar. Minha abordagem é iniciar uma ou duas camadas abaixo do máximo, observar o uso de VRAM enquanto o modelo carrega e, em seguida, subir até chegar perto do teto, sem tocá-lo. E lembre-se, o comprimento do contexto está relacionado a isto: se você o aumentou, terá menos espaço para descarregar do que o controle deslizante pensa.

Descarregando cache KV para memória GPU

No começo eu nem percebi que estava lá

O cache KV é essencialmente o bloco de rascunho do modelo para a conversa – ele armazena o que já foi visto para que os tokens não sejam recalculados a cada vez e cresce com o comprimento do contexto. Esta opção decide se este notebook funciona com GPU (mais rápido) ou RAM do sistema (mais lento, mas libera VRAM). O padrão é ativado, o que é bom se você tiver espaço suficiente. Ele pode ser desativado quando o contexto é levado além do que a placa pode suportar confortavelmente e você deseja usar esse VRAM para as camadas reais do modelo. Portanto, depende totalmente de qual hardware você está trabalhando.

Temperatura

Uma configuração da qual todo mundo já ouviu falar, mas ninguém ajusta adequadamente

A temperatura é provavelmente a configuração da qual a maioria das pessoas já ouviu falar, é a primeira que aprendi, mas ainda acho que é muitas vezes esquecida. Isso determina o quão aleatória é a saída do modelo – valores baixos fazem com que o próximo token com maior probabilidade seja escolhido quase todas as vezes, enquanto valores altos permitem os menos prováveis. A maioria dos executores tem como padrão cerca de 0,7 ou 0,8, o que é um pouco criativo e adequado como configuração de uso geral, a menos que todas as suas tarefas sejam genéricas.

Para qualquer coisa analítica – código, resumo, extração de fatos de um documento, qualquer coisa em que você queira que o modelo pare de tentar ser interessante, reduza-o para 0,2 ou 0,3. Para tarefas criativas, brainstorming ou qualquer coisa em que a variedade realmente ajude, aumente para 1,0 ou superior. A escala geralmente vai até 2,0, mas acima de 1,2 as coisas começam a ficar estranhas.

A questão é que um ambiente não deve executar tarefas de natureza muito diferente. Isso pode parecer óbvio, mas dependendo do seu fluxo de trabalho, é importante controlá-lo. Se o seu corredor permitir, recomendo criar predefinições para diferentes ritmos.

As duas GPUs antigas que salvei fazem mais trabalho de IA do que uma placa nova de US$ 2.000, e não irei atualizar tão cedo.

Eu construí uma configuração de IA nativa a partir de duas GPUs antigas à venda por um preço barato e é melhor do que uma única placa nova

Min-P é o que torna as altas temperaturas realmente utilizáveis

Um amostrador que se conecta à temperatura

Min-p é aquele cuja mecânica eu sempre esqueço, mas sempre volto. É um método de amostragem que elimina todos os marcadores cuja probabilidade é inferior a uma fração da mais provável nesta etapa. Portanto, quando o modelo está confiante sobre sua próxima escolha, min-p permanece rígido e só permite a entrada de tokens próximos ao topo. Se o modelo for ambíguo, ele relaxa e permite mais candidatos. Essa funcionalidade é o que o torna tão compatível com altas temperaturas, já que a temperatura suaviza a distribuição de probabilidade e permite a entrada de marcadores estranhos, enquanto min-p os interrompe antes que eles tenham a chance de entrar.

Sempre que você aumentar a temperatura para 1,0 ou superior, o Min-P deverá estar em algum lugar entre 0,05 e 0,1. Abaixo de 0,05 e o filtro não faz quase nada; superior a 0,1 e você começa a perder a variedade para a qual aumentou originalmente a temperatura.

Repita a frase (e SECA se tiver)

Tudo o que precisa é de alguns ajustes

A penalidade de repetição desencoraja o modelo de reutilizar tokens que já foram usados ​​recentemente. Em 1,0 ele é desligado e o modelo grava livremente, e uma pequena mudança para 1,05 ou 1,1 geralmente é tudo que você precisa para eliminar o pior loop sem afetar o fluxo de resposta do modelo. No entanto, não recomendo levá-lo para 1,2 porque o modelo começa a evitar palavras comuns como “o” para evitar a penalidade, momento em que os resultados começarão a ficar muito estranhos.

Da mesma forma, se o seu corredor suportar DRY (Don’t Repeat Yourself), use-o. Serve para repetir frases, não marcadores individuais, o que está mais próximo do que realmente queremos dizer quando dizemos que um padrão se repete.

7 coisas que eu gostaria de saber quando comecei a hospedar meu LLM por conta própria

Já faço meu LLM há algum tempo e essas são todas as coisas que aprendi ao longo do tempo e que gostaria de ter sabido no início.

O modelo não é necessariamente a parte que precisa ser alterada

Eu mesmo sinto que a multidão nativa da IA ​​salta entre os modelos com muita facilidade se não conseguirmos o que queremos do modelo anterior. Mas muitas vezes o modelo está bem, você só precisa ajustar as configurações. Algumas das minhas sugestões aqui podem parecer óbvias, mas esse é o ponto – elas devem ser focadas se você deseja um melhor resultado e menos estresse no seu hardware.

Link da fonte