Este repositório fornece uma estrutura potencial com exemplos práticos para o desenvolvimento de aplicativos alimentados por Language Model Models (LLMs) quantizados de código aberto em conjunto com LangChain. Especificamente, este guia concentra-se na implementação e utilização de variantes GPTQ quantizadas de 4 bits de vários LLMs, como WizardLM e WizardLM-Mega. Embora os recursos dedicados a este tópico específico sejam limitados online, este repositório visa preencher essa lacuna e oferecer guias abrangentes.
A execução de LLMs localmente oferece inúmeras vantagens, sendo a privacidade um fator chave. Ao manter seus dados em seu próprio hardware, você pode aproveitar os recursos desses modelos sem depender de APIs externas, garantindo maior controle sobre seus dados e permitindo o desenvolvimento de aplicativos interessantes.
nvidia-smi
deve funcionar)Nota: o suporte Docker será adicionado.
Os seguintes modelos GPTQ são suportados por enquanto:
Para começar a usar modelos GPTQ com langchain, existem algumas etapas importantes:
quant_cuda
demo.py
e usar o LLM com LangChain da mesma forma que faz para modelos OpenAI.Instale o Miniconda seguindo as instruções do site oficial.
Para verificar se o conda foi configurado corretamente
$ conda --version
Inicialize o conda no seu shell
$ conda init
Crie um novo ambiente conda, certifique-se de usar a versão especificada do Python porque ela foi testada apenas em 3.10.9
$ conda create -n wizardlm_langchain python=3.10.9
Assim que o novo ambiente for criado, ative-o.
$ conda activate wizardlm_langchain
Todo o processo discutido acima, de 2 a 4, é automatizado usando o script bash setup.sh
. Sinta-se à vontade para modificá-lo de acordo com sua preferência.
$ bash ./setup.sh
Idealmente, todas as etapas devem ser executadas sem erros se o ambiente estiver configurado corretamente.
Se você estiver enfrentando a seguinte exceção ao executar a demonstração:
Exception: Error while deserializing header: HeaderTooLarge
Então, isso significa que o modelo não foi baixado totalmente, então você pode tentar baixá-lo novamente usando o comando git clone
encontrado em setup.py
.
Antes de executar a demonstração, é bom desativar e reativar o ambiente ao configurá-lo pela primeira vez.
Execute a demonstração:
$ python demo.py
Usar o setup.sh
por padrão, fará o download do modelo WizardLM-7B-GPTQ, mas se você quiser usar outros modelos que foram testados com este projeto, você pode usar o script download_model.sh
.
$ download_model.sh < HUGGING FACE MODEL NAME >
# Example
$ ./download_model.sh " TheBloke/WizardLM-7B-uncensored-GPTQ "
Nota: Se você não conseguir baixar os modelos completos do HF, certifique-se de que o Git LFS esteja configurado corretamente. O comando
git lfs install
às vezes pode dar conta do recado.
Depois de concluir o processo de configuração, você pode usar os modelos GPTQ com LangChain seguindo estas etapas:
Certifique-se de anexar o diretório raiz do projeto
wizardlm_langchain
ao PYTHONPATH para usá-lo globalmente
Consulte o script de exemplo demo.py
para entender como usá-lo.
Contribuições para este repositório são bem-vindas. Se você encontrar algum problema ou tiver sugestões de melhorias, sinta-se à vontade para abrir um problema ou enviar uma solicitação pull.
Ao contribuir, siga as seguintes diretrizes:
Este repositório está licenciado sob a Licença Pública GNU. Consulte o arquivo LICENSE para obter mais informações.
Gostaríamos de agradecer as contribuições da comunidade de código aberto e dos desenvolvedores dos modelos GPTQ originais usados neste repositório. Um milhão de agradecimentos a oobabooga/text-generation-webui, seu trabalho tem sido de grande ajuda para configurar modelos GPTQ com langchain.