Большие языковые модели на устройстве с Keras и TensorFlow Lite

1. Прежде чем начать

Одним из самых впечатляющих достижений в области машинного обучения за последнее время стали большие языковые модели (LLM). Они могут использоваться для генерации текста, перевода языков и предоставления исчерпывающих и информативных ответов на вопросы. LLM, такие как Google LaMDA и PaLM , обучаются на огромных массивах текстовых данных, что позволяет им выявлять статистические закономерности и взаимосвязи между словами и фразами. Это позволяет им генерировать текст, похожий на написанный человеком, и переводить языки с высокой степенью точности.

LLM-модели занимают очень много места в памяти и, как правило, потребляют много вычислительной мощности, поэтому обычно развертываются в облаке и представляют собой серьезную проблему для машинного обучения на мобильных устройствах (ODML) из-за ограниченной вычислительной мощности мобильных устройств. Однако можно запускать LLM-модели меньшего масштаба (например, GPT-2) на современных устройствах Android и при этом добиваться впечатляющих результатов.

Здесь представлена ​​демонстрация работы версии модели Google PaLM с 1,5 миллиардами параметров на Google Pixel 7 Pro без ускорения воспроизведения.

PaLM на Pixel 7 Pro

В этом практическом занятии вы изучите методы и инструменты для создания приложения на основе LLM (используя GPT-2 в качестве примера модели) с помощью:

  • KerasNLP для загрузки предварительно обученной модели LLM
  • KerasNLP для тонкой настройки LLM
  • TensorFlow Lite для преобразования, оптимизации и развертывания LLM на Android.

Предварительные требования

  • Знание Keras и TensorFlow Lite на среднем уровне.
  • Базовые знания разработки под Android.

Что вы узнаете

  • Как использовать KerasNLP для загрузки предварительно обученного LLM и его тонкой настройки.
  • Как квантовать и преобразовать LLM в TensorFlow Lite
  • Как выполнить вывод результатов на преобразованной модели TensorFlow Lite

Что вам понадобится

  • Доступ к Colab
  • Последняя версия Android Studio
  • Современное устройство на базе Android с более чем 4 ГБ оперативной памяти.

2. Настройка

Чтобы скачать код для этого практического занятия:

  1. Перейдите в репозиторий GitHub , содержащий этот практический урок.
  2. Нажмите «Код» > «Скачать zip-архив» , чтобы загрузить весь код для этого практического занятия.

репозиторий изображений

  1. Распакуйте загруженный zip-файл, чтобы получить корневую папку с examples , содержащую все необходимые ресурсы.

3. Запустите стартовое приложение.

  1. Импортируйте папку examples/lite/examples/generative_ai/android в Android Studio.
  2. Запустите эмулятор Android , а затем нажмите execute.png Запустить в меню навигации.

Запустите и изучите приложение.

Приложение должно запуститься на вашем устройстве Android. Приложение называется «Автозаполнение». Интерфейс довольно прост: вы можете ввести несколько ключевых слов в текстовое поле и нажать «Сгенерировать »; затем приложение выполняет вывод на основе LLM и генерирует дополнительный текст на основе вашего ввода.

В настоящий момент, если нажать кнопку «Сгенерировать» после ввода нескольких слов, ничего не происходит. Это потому, что LLM ещё не запущен.

скриншот для стартового приложения

4. Подготовьте LLM для развертывания на устройстве.

5. Завершите разработку приложения для Android.

Теперь, когда вы преобразовали модель GPT-2 в TensorFlow Lite, вы наконец можете развернуть ее в приложении.

Запустите приложение

  1. Перетащите файл модели autocomplete.tflite , загруженный на предыдущем шаге, в папку app/src/main/assets/ в Android Studio.

добавить модель в Android Studio

  1. Нажмите execute.png Запустите приложение через меню навигации и дождитесь его загрузки.
  2. Введите ключевые слова в текстовое поле, а затем нажмите «Сгенерировать» .

скриншот готового приложения

6. Заметки об ответственном использовании ИИ

Как отмечалось в первоначальном анонсе OpenAI GPT-2 , у модели GPT-2 есть существенные оговорки и ограничения . Фактически, современные модели LLM, как правило, имеют ряд известных проблем, таких как галлюцинации, негативные результаты, несправедливость и предвзятость; это связано с тем, что эти модели обучаются на реальных данных, что заставляет их отражать реальные проблемы.

Данный практический пример создан исключительно для демонстрации того, как создать приложение на основе моделей LLM с использованием инструментов TensorFlow. Модель, созданная в этом примере, предназначена только для образовательных целей и не предназначена для использования в производственных целях.

Для использования LLM в производстве требуется тщательный отбор обучающих наборов данных и комплексные меры безопасности. Чтобы узнать больше об ответственном ИИ в контексте LLM, обязательно посмотрите техническую сессию « Безопасная и ответственная разработка с использованием генеративных языковых моделей» на Google I/O 2023 и ознакомьтесь с инструментарием ответственного ИИ .

7. Заключение

Поздравляем! Вы создали приложение для генерации связного текста на основе пользовательского ввода, используя предварительно обученную модель обработки больших языков (LGML) исключительно на устройстве!

Узнать больше