Ce référentiel fournit un cadre potentiel avec des exemples pratiques pour développer des applications alimentées par des modèles de modèles de langage (LLM) open source quantifiés en conjonction avec LangChain. Plus précisément, ce guide se concentre sur la mise en œuvre et l'utilisation de variantes GPTQ quantifiées 4 bits de divers LLM, telles que WizardLM et WizardLM-Mega. Bien que les ressources dédiées à ce sujet spécifique soient limitées en ligne, ce référentiel vise à combler cette lacune et à proposer des guides complets.
L'exécution de LLM localement offre de nombreux avantages, la confidentialité étant un facteur clé. En conservant vos données sur votre propre matériel, vous pouvez exploiter les capacités de ces modèles sans recourir à des API externes, garantissant ainsi un meilleur contrôle sur vos données et permettant le développement d'applications passionnantes.
nvidia-smi
devrait fonctionner)Remarque : la prise en charge de Docker sera ajoutée.
Les modèles GPTQ suivants sont actuellement pris en charge :
Afin de commencer à utiliser les modèles GPTQ avec langchain, il y a quelques étapes importantes :
quant_cuda
demo.py
et utiliser le LLM avec LangChain, comme vous le faites pour les modèles OpenAI.Installez Miniconda en suivant les instructions du site officiel.
Pour vérifier si conda a été correctement configuré
$ conda --version
Initialisez conda sur votre shell
$ conda init
Créez un nouvel environnement conda, assurez-vous d'utiliser la version Python spécifiée car elle n'a été testée que sur 3.10.9
$ conda create -n wizardlm_langchain python=3.10.9
Une fois le nouvel environnement créé, activez-le.
$ conda activate wizardlm_langchain
L'ensemble du processus décrit ci-dessus de 2 à 4 est automatisé à l'aide du script bash setup.sh
. N'hésitez pas à le modifier selon vos envies.
$ bash ./setup.sh
Toutes les étapes devraient idéalement se dérouler sans erreur si l’environnement est correctement configuré.
Si vous rencontrez l'exception suivante lors de l'exécution de la démo :
Exception: Error while deserializing header: HeaderTooLarge
Cela signifie ensuite que le modèle n'a pas été entièrement téléchargé, vous pouvez donc essayer de le retélécharger à l'aide de la commande git clone
trouvée dans setup.py
.
Avant de lancer la démo, il est bon de désactiver et de réactiver l'environnement lorsque vous le configurez pour la première fois.
Exécutez la démo :
$ python demo.py
L'utilisation de setup.sh
téléchargera par défaut le modèle WizardLM-7B-GPTQ, mais si vous souhaitez utiliser d'autres modèles qui ont été testés avec ce projet, vous pouvez utiliser le script download_model.sh
.
$ download_model.sh < HUGGING FACE MODEL NAME >
# Example
$ ./download_model.sh " TheBloke/WizardLM-7B-uncensored-GPTQ "
Remarque : Si vous ne parvenez pas à télécharger les modèles complets depuis HF, assurez-vous que Git LFS est correctement configuré. La commande
git lfs install
peut parfois faire le travail.
Une fois que vous avez terminé le processus de configuration, vous pouvez utiliser les modèles GPTQ avec LangChain en suivant ces étapes :
Assurez-vous d'ajouter le répertoire racine du projet
wizardlm_langchain
à PYTHONPATH afin de l'utiliser globalement.
Reportez-vous à l'exemple de script demo.py
pour comprendre comment l'utiliser.
Les contributions à ce référentiel sont les bienvenues. Si vous rencontrez des problèmes ou avez des suggestions d'améliorations, n'hésitez pas à ouvrir un problème ou à soumettre une pull request.
Lorsque vous contribuez, veuillez respecter les directives suivantes :
Ce référentiel est sous licence GNU Public License. Voir le fichier LICENSE pour plus d'informations.
Nous souhaitons reconnaître les contributions de la communauté open source et des développeurs des modèles GPTQ originaux utilisés dans ce référentiel. Un million de merci à oobabooga/text-generation-webui, leur travail a été d'une grande aide pour la mise en place de modèles GPTQ avec langchain.