Быстрый вывод ERNIE (C++)
API быстрого вывода ERNIE на C++ предоставляет более эффективный план онлайн-прогнозирования, который можно напрямую скомпилировать в производственную среду для повышения производительности. Его реализация основана на fluid inference. Убедитесь, что ваша версия fluid inference выше 1.7 для получения правильных результатов прогнозирования. На этой странице представлен демонстрационный тест ERNIE C++ fast inference.
Демонстрационные данные взяты из тестового набора данных XNLI и находятся в папке ./data. Данные представлены в формате открытого текста id, где одна строка представляет собой пакет, содержащий четыре поля:
src_ids, pos_ids, sent_ids, self_attn_mask
Поля разделены точкой с запятой (;), а внутри полей есть две части: shape и data, разделённые двоеточием (:); shape и data разделены пробелами; self_attn_mask имеет тип FLOAT32, остальные поля имеют тип INT64.
Для быстрого вывода ERNIE требуется модель в формате inference_model, которую можно создать, следуя инструкциям в разделе здесь.
При использовании модели inference_model, созданной с помощью propeller, требуются только поля src_ids и sent_ids. Поэтому необходимо соответствующим образом изменить файл данных.
Чтобы скомпилировать этот демонстрационный проект, компилятор C++ должен поддерживать стандарт C++11.
Скачайте соответствующую библиотеку fluid_inference и выберите версию, соответствующую вашей версии paddle и конфигурации (используете ли вы avx, mkl, cuda, cudnn). Распакуйте файлы и получите папку fluid_inference, поместите её в тот же каталог, что и файл inference.cc.
Скомпилируйте с помощью следующей команды:
cd ./gpu # cd ./cpu
mkdir build
cd build
cmake ..
make
Запустите с помощью следующей команды:
./run.sh ../data/sample /path/to/inference_mode_dir
Тестовый образец: тестовый набор данных XNLI, BatchSize=1, SequenceLength=128. Повторите 5 раз и возьмите среднее значение.
Тестовая среда | Задержка (мс) |
---|---|
CPU (Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz (20 потоков)) | 29.8818 |
GPU (P4) | 8.5 |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )