Este repositorio proporciona un marco potencial con ejemplos prácticos para desarrollar aplicaciones impulsadas por modelos de lenguaje (LLM) de código abierto cuantificados junto con LangChain. Específicamente, esta guía se centra en la implementación y utilización de variantes GPTQ cuantificadas de 4 bits de varios LLM, como WizardLM y WizardLM-Mega. Si bien los recursos dedicados a este tema específico son limitados en línea, este repositorio tiene como objetivo cerrar esa brecha y ofrecer guías completas.
La ejecución de LLM localmente ofrece numerosas ventajas, siendo la privacidad un factor clave. Al mantener sus datos dentro de su propio hardware, puede aprovechar las capacidades de estos modelos sin depender de API externas, lo que garantiza un mayor control sobre sus datos y permite el desarrollo de aplicaciones interesantes.
nvidia-smi
debería funcionar)Nota: Se agregará compatibilidad con Docker.
Por ahora se admiten los siguientes modelos GPTQ:
Para comenzar a utilizar modelos GPTQ con langchain, hay algunos pasos importantes:
quant_cuda
demo.py
y usar LLM con LangChain tal como lo hace para los modelos OpenAI.Instale Miniconda siguiendo las instrucciones del sitio oficial.
Para comprobar si conda se configuró correctamente
$ conda --version
Inicializa conda en tu shell
$ conda init
Cree un nuevo entorno conda, asegúrese de usar la versión de Python especificada porque solo se probó en 3.10.9
$ conda create -n wizardlm_langchain python=3.10.9
Una vez creado el nuevo entorno, actívelo.
$ conda activate wizardlm_langchain
Todo el proceso discutido anteriormente del 2 al 4 se automatiza utilizando el script setup.sh
bash. No dudes en modificarlo según tu gusto.
$ bash ./setup.sh
Lo ideal es que todos los pasos se ejecuten sin errores si el entorno está configurado correctamente.
Si se enfrenta a la siguiente excepción mientras ejecuta la demostración:
Exception: Error while deserializing header: HeaderTooLarge
Entonces significa que el modelo no se descargó por completo, por lo que puede intentar volver a descargarlo usando el comando git clone
que se encuentra en setup.py
.
Antes de ejecutar la demostración, es bueno desactivar y reactivar el entorno cuando lo configura por primera vez.
Ejecute la demostración:
$ python demo.py
El uso de setup.sh
descargará de forma predeterminada el modelo WizardLM-7B-GPTQ, pero si desea utilizar otros modelos que se probaron con este proyecto, puede utilizar el script download_model.sh
.
$ download_model.sh < HUGGING FACE MODEL NAME >
# Example
$ ./download_model.sh " TheBloke/WizardLM-7B-uncensored-GPTQ "
Nota: Si no puede descargar los modelos completos de HF, asegúrese de que Git LFS esté configurado correctamente. El comando
git lfs install
a veces puede hacer el trabajo.
Una vez que haya completado el proceso de configuración, podrá utilizar los modelos GPTQ con LangChain siguiendo estos pasos:
Asegúrese de agregar el directorio raíz del proyecto
wizardlm_langchain
a PYTHONPATH para poder usarlo globalmente
Consulte el script de ejemplo demo.py
para comprender cómo usarlo.
Las contribuciones a este repositorio son bienvenidas. Si encuentra algún problema o tiene sugerencias para mejorar, no dude en abrir un problema o enviar una solicitud de extracción.
Al contribuir, cumpla con las siguientes pautas:
Este repositorio tiene la licencia pública GNU. Consulte el archivo de LICENCIA para obtener más información.
Nos gustaría agradecer las contribuciones de la comunidad de código abierto y los desarrolladores de los modelos GPTQ originales utilizados en este repositorio. Un millón de gracias a oobabooga/text-generación-webui, su trabajo ha sido de gran ayuda para configurar modelos GPTQ con langchain.