Этот репозиторий предоставляет потенциальную структуру с практическими примерами для разработки приложений на основе квантованных моделей языковых моделей (LLM) с открытым исходным кодом в сочетании с LangChain. В частности, в этом руководстве основное внимание уделяется реализации и использованию 4-битных вариантов квантованного GPTQ различных LLM, таких как WizardLM и WizardLM-Mega. Хотя ресурсы, посвященные этой конкретной теме, в Интернете ограничены, цель этого репозитория — восполнить этот пробел и предложить подробные руководства.
Проведение программ LLM на местном уровне дает множество преимуществ, при этом конфиденциальность является ключевым фактором. Храня свои данные на собственном оборудовании, вы можете использовать возможности этих моделей, не полагаясь на внешние API, обеспечивая больший контроль над своими данными и позволяя разрабатывать интересные приложения.
nvidia-smi
должна работать)Примечание. Будет добавлена поддержка Docker.
На данный момент поддерживаются следующие модели GPTQ:
Чтобы начать использовать модели GPTQ с langchain, необходимо выполнить несколько важных шагов:
quant_cuda
demo.py
и использовать LLM с LangChain точно так же, как вы это делаете для моделей OpenAI.Установите Miniconda, следуя инструкциям с официального сайта.
Чтобы проверить, правильно ли настроен конда
$ conda --version
Инициализируйте conda в вашей оболочке
$ conda init
Создайте новую среду conda, обязательно используйте указанную версию Python, поскольку она была протестирована только в 3.10.9
$ conda create -n wizardlm_langchain python=3.10.9
Как только новая среда будет создана, активируйте ее.
$ conda activate wizardlm_langchain
Весь рассмотренный выше процесс со 2 по 4 автоматизирован с помощью bash-скрипта setup.sh
. Не стесняйтесь изменять его по своему вкусу.
$ bash ./setup.sh
В идеале все шаги должны выполняться без ошибок, если среда настроена правильно.
Если при запуске демо-версии вы столкнулись со следующим исключением:
Exception: Error while deserializing header: HeaderTooLarge
Тогда это означает, что модель не была загружена полностью, поэтому вы можете попробовать загрузить ее повторно с помощью команды git clone
найденной в setup.py
.
Перед запуском демо-версии полезно деактивировать и повторно активировать среду при ее первой настройке.
Запустите демо:
$ python demo.py
При использовании setup.sh
по умолчанию загружается модель WizardLM-7B-GPTQ, но если вы хотите использовать другие модели, протестированные в этом проекте, вы можете использовать сценарий download_model.sh
.
$ download_model.sh < HUGGING FACE MODEL NAME >
# Example
$ ./download_model.sh " TheBloke/WizardLM-7B-uncensored-GPTQ "
Примечание. Если вы не можете загрузить полные модели с HF, убедитесь, что Git LFS настроен правильно. Иногда команда
git lfs install
может выполнить свою работу.
После завершения процесса установки вы можете использовать модели GPTQ с LangChain, выполнив следующие действия:
Обязательно добавьте корневой каталог проекта
wizardlm_langchain
в PYTHONPATH, чтобы использовать его глобально.
Обратитесь к примеру сценария demo.py
, чтобы понять, как его использовать.
Вклады в этот репозиторий приветствуются. Если вы обнаружите какие-либо проблемы или у вас есть предложения по улучшению, пожалуйста, не стесняйтесь открыть проблему или отправить запрос на включение.
При внесении вклада, пожалуйста, придерживайтесь следующих правил:
Этот репозиторий распространяется под лицензией GNU Public License. Дополнительную информацию смотрите в файле LICENSE.
Мы хотели бы отметить вклад сообщества открытого исходного кода и разработчиков оригинальных моделей GPTQ, используемых в этом репозитории. Огромное спасибо ooboooga/text-generation-webui, их работа очень помогла в настройке моделей GPTQ с помощью langchain.