Частный бенчмаркинг моделей машинного обучения
Статус проекта
Предупреждение : это академический прототип, подтверждающий концепцию, и он не прошел тщательную проверку кода. Эта реализация НЕ готова к использованию в производстве.
очки
Описание проекта
Этот проект направлен на создание платформы, которая позволит пользователям проводить частное тестирование моделей машинного обучения. Платформа облегчает оценку моделей на основе разных уровней доверия между владельцами моделей и владельцами наборов данных.
Этот репозиторий предоставляет сопроводительный код для статьи https://arxiv.org/abs/2403.00393.
TRUCE: Частный бенчмаркинг для предотвращения загрязнения и улучшения сравнительной оценки LLM
Танмай Раджоре, Нишант Чандран, Сунаяна Ситарам, Дивья Гупта, Рахул Шарма, Кашиш Миттал, Манохар Сваминатан
Установка
для полной сборки и поддержки EzPC LLM
- измените файл setup.sh в соответствии с конфигурацией вашей системы для драйверов Nvidia и версии CUDA (по умолчанию — 11.8, а архитектура графического процессора — 90 Hopper)
(In setup.sh)
line 42: export CUDA_VERSION=11.8
line 43: export GPU_ARCH=90
- запустите файл setup.sh
./setup.sh
Enter the Server IP address:
- Файл setup.sh установит необходимые зависимости и настроит среду для работы платформы. Файл .env содержит секретный ключ django, который может быть изменен по требованию пользователя. Для любого хранилища, связанного с ключами, пользователь должен использовать только файл .env.
только платформа
- ПРИМЕЧАНИЕ. Необходимо вручную установить переменную среды ENCRYPTION_KEY для запуска сервера TTP/TEE (32 байта/256 бит) и файл .env для запускаемой платформы, а также IP-адрес для запускаемой платформы.
pip install -r requirements.txt
cd eval_website/eval_website
python manage.py makemigrations
python manage.py migrate
python manage.py runserver 0.0.0.0:8000
Использование
Для использования проекта после установки посетите.
http://127.0.0.1:8000 (на Localhost) или http://:8000 (на общедоступном IP-адресе)
Пример учетных данных пользователя
- Владелец модели
- имя пользователя: ModelOwner
- пароль: helloFriend
- Владелец набора данных
- имя пользователя: DatasetOwner
- пароль: helloFriend
определенные порты предварительно назначены следующим образом:
- 8000: для основного сайта
- 8001: для безопасной связи EzPC LLM с доверенным сторонним сервером.
- 7000: для доверенной среды выполнения для связи с веб-сайтом.
- 7001: чтобы доверенный сторонний сервер получал файлы модели.
- 7002: доверенный сторонний сервер может получать файлы набора данных.
- 9000: для связи владельца датасета с сайтом для получения ключевых файлов для EzPC.
- 9001: для связи владельца модели с сайтом для получения файлов ключей для EzPC
Доверенный сторонний сервер (TTP)
- Сервер TTP — это отдельный сервер, который используется для безопасного расчета модели. Для выполнения безопасных вычислений должен быть запущен TTP-сервер. Сервер TTP можно запустить, выполнив следующую команду.
cd utils/TTP_TEE_files
python ttp_server.py
- Предположения :
- Подробности, связанные с сервером TTP, задаются в внутренней базе данных платформы.
- Серверу TTP требуется получать файлы моделей и наборов данных для оценки от соответствующих сторон через порты 7001 и 7002 соответственно.
- Сервер TTP выполнит безопасные вычисления и вернет результаты на платформу.
- Сервер TTP также требует, чтобы файлы server.crt и server.key находились в том же каталоге, что и файл ttp_server.py. Эти файлы используются для безопасной связи между сервером TTP и платформой с использованием центра сертификации, созданного платформой после первого запуска, и их необходимо создать с помощью следующей команды.
openssl req -newkey rsa:2048 -nodes -keyout " ./server.key " -out server.csr -subj /CN=127.0.0.1
openssl x509 -req -in server.csr -CA path/ca.crt(generated by eval_website root) -CAkey /path/ca.key(generated by eval_website root) -CAcreateserial -out ./server.crt -days xxx
- Переменная среды ENCRYPTION_KEY должна быть установлена, чтобы сервер TTP/TEE мог запускать ключ (32 байта/256 бит).
export ENCRYPTION_KEY="32 bytes key"
#generate a 32 bytes key using the following command
python -c 'import os, binascii; print(binascii.hexlify(os.urandom(32)).decode("utf-8"))'
Доверенная среда выполнения (TEE)
- Доверенная среда выполнения — это отдельный сервер, который используется для безопасного расчета модели (на основе сценариев TTP). Для выполнения безопасных вычислений должна быть запущена доверенная среда выполнения. Подробные инструкции по настройке доверенной среды выполнения можно найти в TTP/TEE.
ЭзПК, LLM
в настоящее время EzPC поддерживает следующие модели
- Берт-крошка
- Берт-база
- Берт-большой
- gpt2
- gpt-нео
- лама7b
- лама13b
Для получения дополнительной информации о том, как использовать EzPC LLM, см. EzPC LLM.
Оценка артефактов
Оценку артефактов для бумаги для создания таблицы можно найти в разделе «Оценка артефактов».
Содействие
Если вы хотите внести свой вклад в этот проект, следуйте инструкциям, изложенным в файле Conting.md.
Лицензия
Этот проект распространяется по лицензии [MIT]. Дополнительную информацию см. в файле ЛИЦЕНЗИИ.