О
Lambda-Instructor -это экспериментальное развертывание текстового модельного инструктора-широкого инструктора на AWS Lambda.
Инструктор-Large -это модель, построенная группой NLP Университета Гонконга по лицензии Apache-2.0, и хорошо выполняет задачи поиска (то есть нахождение связанных документов для данного предложения). По состоянию на июнь 20123 года он находится на уровне с текстовым врученным-ADA-002 Openai на многочисленных критериях в таблице лидеров объятия.
Потенциальные варианты использования:
- В паре с локальным выводом: генерируйте большое количество встраиваний с широким инструктором на вашей местной машине заранее (по сравнению с оплатой коммерческих API, таких как Openai, даже для тестирования).
- Резиденция данных: развернуть функцию Lambda в глобальных регионах AWS, таких как Европа и США.
- Масштабируемость: AWS Lambda масштабирует практически неограниченную, без накладных расходов управляющих серверов.
- Недорогой производственный вывод: с ценой AWS Lambda на за каждую проверку против запуска сервера 24/7.
- Используйте с векторными базами данных: например, ChromADB или PineCone.
Производительность, стоимость и ограничения:
- Холодный старт: Функция Lambda имеет холодное начало около 150 секунд (с базой инструктора около 50-х годов).
- Вывод: последовательный запрос обрабатывается примерно за 6 секунд за запрос (с базой инструктора около 3 секунд).
- Максимум Токены: широкий инструктор, по-видимому, ограничивается длиной последовательности 512 токенов (около 380 слов), тогда как текстовый эмбединг-ADA-002 Openai поддерживает до 8191 токенов (около 6000 слов).
- Стоимость: стоимость AWS Lambda может быть оценена в:
- Конфигурация:
- Регион: ЕС-Централ-1 (Европа, Франкфурт)
- Цена рука: 0,00001333334 за каждую ГБ секунду
- Запросы: 0,20 долл. США за 1 млн запросов
- Размер памяти: 10240 МБ
- Расчет:
- Продолжительность: 0,00001333334 * 10,24 ГБ * 6 секунд = 0,000819204096 / Запрос
- Запросы: $ 0,20 / 1 млн запросов = 0,0000002 / запросы
- Всего = 0,0008194 / запрос
- По состоянию на июнь 2023 года это дороже, чем ADA V2 Openai, в токенах $ 0,0001/1K после их снижения цен на 75%.
Дальнейшие улучшения: затраты и холодный старт могут быть еще более улучшены с помощью AWS Lambda, предоставляемой параллелизмом и планами вычислительных сбережений AWS. Также ознакомьтесь с калькулятором AWS по 1M запросов в месяц для этого проекта.
Развертывание
Предварительные условия
- Общие знания AWS полезны.
- Вам нужно установить Docker и GIT-LFS локально.
- Вам необходимо установить AWS-SAM локально и настроить свою учетную запись AWS.
- Рекомендуется локальная среда на основе руки (Mac M1/M2). Если вы столкнетесь с проблемами, попробуйте развернуть через машину EC2 на основе ARM (руководство ниже).
Настраивать
Мы загрузим модель инструктора локально, упаковывают приложение в контейнере Docker и развернут ее на функции Lambda на основе ARM. Мы используем руку, так как он более дешевый с AWS и оказался быстрее.
- Клонировать репозиторий
git clone https://github.com/maxsagt/lambda-instructor.git
- Клонировать модель инструктора-Large в папку ./app/model (см.
git lfs install ./app/model
git clone https://huggingface.co/hkunlp/instructor-large ./app/model
- Создайте контейнер Docker с помощью AWS-SAM
sam build --cached --parallel
- Проверьте локально с примерной полезной нагрузкой в event.json.
sam local invoke -e event.json
- Развернуть в AWS. Обратите внимание, что ваш пользовательский пользователь или роль потребности (временные) разрешения IAM для AWS CloudFormation, реестра эластичных контейнеров, S3, Lambda и IAM.
- Сделанный. Вы найдете функцию Lambda в AWS, которая готова к дальнейшей конфигурации. Например:
- Проверьте функцию Lambda в консоли Lambda.
- Настройте URL -адрес функции Lambda, чтобы напрямую использовать функцию Lambda через URL.
- Добавьте шлюз API для более продвинутых функций API.
Необязательно: развернуть через машину EC2 на основе ARM.
Если у вас нет машины Arm, или вы хотите развернуть в AWS для более быстрой загрузки контейнера Docker.
- Создайте экземпляр AWS:
- Проверено на сервере Ubuntu 22.04 LTS (HVM), тип объема SSD, AMI-0329D3839379BFD15, Архитектура: 64-битная (ARM), тип экземпляра: T4G.Medium, хранение: 20GIB GP3.
- Убедитесь, что ваш VPC публичный.
- Запустить экземпляр.
- Нажмите на экземпляр и добавьте роль IAM через действия -> Безопасность. Роль IAM нуждается в IAM, S3, ECR, CloudFormation и Lambda Access.
- Загрузите репозиторий в удаленный экземпляр AWS:
git clone https://github.com/maxsagt/lambda-instructor.git
cd lambda-instructor
zip -r deployment.zip . -x ' ./app/model/* '
PUBLIC_IPv4_DNS=ec2-x-xx-xxx-xxx.eu-central-1.compute.amazonaws.com
scp -o StrictHostKeyChecking=no -i " ../my_key.pem " ./deployment.zip ubuntu@ $PUBLIC_IPv4_DNS :deployment.zip
- Войдите в свой экземпляр и выполните сценарий примера развертывания.
ssh -o StrictHostKeyChecking=no -i " ../my_key.pem " ubuntu@ $PUBLIC_IPv4_DNS
sudo apt install unzip
unzip -o deployment.zip
chmod +x sample_deployment.sh
sudo bash -x sample_deployment.sh
- Стройте и разверните в соответствии с вышеизложенным. Если команда SAM не распознается, прочитайте документацию SAM здесь.
- Не забудьте завершить экземпляр после использования.
Обратная связь
Отзывы и вклад приветствуются!