Часть 2 Думайте как специалист по данным! Как создать инструмент НЛП, который может писать за вас блог Medium?
Эта история является продолжением Части-1, в которой мы прошли введение, построение набора данных и анализ данных статей среднего размера.
Машинное обучение (ML) оказало выдающееся влияние на культуру использования машин с ее огромным потенциалом. Хотя начальные этапы машинного обучения ограничиваются предсказаниями с использованием структурированных данных, усовершенствования в приложениях машинного обучения для неструктурированных данных сделали его более интересным, поскольку теперь оно может эффективно работать с изображениями, видео, звуком и т. Д.
Создание 🎼 музыки (Magenta), 📺 видеороликов (GAN), переноса стилей (style) чего нет, машинное обучение сделало машины более артистичными .
Из-за нашей озабоченности по поводу вредоносных приложений технологии мы не выпускаем обученную модель - OpenAI.
Если вы думаете - написание статьи на машине само по себе, чтение ваших мыслей не может быть настоящим. Я частично согласен с вами, так как результаты могут быть не на 100% точными, но тоже неплохими. Прежде всего, спасибо команде Open AI, которая обучила крупномасштабные тексты и разработала модели GPT 2 и GPT 3 для генерации нового текста. Применение моделей безгранично.
Чего же вы тогда ждете? Давайте сами построим это потрясающее творение.
Мы создадим веб-сайт, который будет запускать модель машинного обучения в фоновом режиме и будет использовать введенный вами текст в качестве отправной точки, а затем модель сама сгенерирует следующую часть статьи.
Тизер
Окончательный вид нашего творения будет выглядеть, как показано ниже. Я спроектировал его так, чтобы он был очень простым, так как пользователь должен просто ввести вводимый текст и нажать Enter, а модель должна работать в фоновом режиме и генерировать непрерывный текст.
Следующие шаги необходимы для достижения вышеуказанного результата.
- Обучите модель GPT-2 собственными текстовыми данными с помощью Google Colab
- Сохраните обученную модель на свой рабочий стол
- Используйте Streamlit для запуска модели на веб-сайте
Модель поезда
Я полностью рекомендую использовать Google Colab для обучения модели, если у вас нет приличного графического процессора с вами, поскольку colab предоставляет вам бесплатное использование графического процессора, и все, что вам нужно для использования Colab, - это иметь собственную учетную запись Gmail.
Если вы не знакомы с использованием Google Colab, пожалуйста, ознакомьтесь с этим подробным Руководством от ‘fuat’
После того, как вы войдете в Google Colab, убедитесь, что у вас установлена версия Tensorflow 1.15, если нет, установите, используя
!pip install TensorFlow==1.15
У Gpt2 есть маленькие, средние и большие версии, и, конечно же, большая версия даст вам лучшие результаты, поскольку она была обучена на больших данных. Но для наших целей обучения давайте воспользуемся gpt-2-simple. Установите gpt-2-simple с помощью pip
!pip3 install gpt-2-simple
Импортировать gpt-2-simple
import gptstreamlit
simple as gpt2
import os
import requests
Поскольку мы переобучаем модель, нам нужно сначала загрузить модель, и существуют разные размеры GPT-2, и снова давайте использовать более простую модель «117M», которая занимает 500 МБ размера вашего диска.
model_name = "117M" if not os.path.isdir(os.path.join("models", model_name)): print(f"Downloading {model_name} model...") gpt2.download_gpt2(model_name=model_name)
Следующим шагом является загрузка ваших входных данных для обучения модели. Я использовал текст из статей с очищенного носителя (см. Часть 1), сохранил его как файл train.txt и загрузил на Google Диск.
Вы можете легко переобучить модель, используя функцию точной настройки gpt2, и контрольные точки модели будут сохранены в / checkpoints / run1 по умолчанию в проводнике файлов colab.
sess = gpt2.start_tf_sess() file_name = "train.txt" gpt2.finetune(sess, file_name, model_name=model_name, steps=1000, run_name = 'run1')
После успешного запуска вы можете сохранить модель на Google Диске, используя приведенный ниже код. Вам нужно сохранить эту модель в папку на рабочем столе для нашего следующего шага.
!cp -r /content/checkpoint/run1 /content/drive/My\ Drive/run1
Сохранить модель
После успешного обучения модели настроенная модель будет сохранена в папке checkpoint / run1. Вы можете найти это в проводнике файлов в Colab (см. Выделение на изображении выше). Теперь вам нужно сохранить всю папку с моделью на свой рабочий стол.
Убедитесь, что у вас есть загруженная папка внутри папки, в которой вы будете запускать скрипт Python, чтобы продолжить разработку.
Запустите модель на веб-сайте
Рекомендуется показывать результаты вашей модели в форме веб-сайта или приложения, особенно если вы показываете свои результаты людям из нескольких доменов, что является обычным сценарием в компаниях.
Всем будет интересно посмотреть на отличный визуал или веб-сайт и обсудить это, но это может быть не то же самое со скучными таблицами Excel или необработанными результатами.
Для запуска нашей модели на веб-сайте мы будем использовать не что иное, как streamlit - «Самый быстрый способ создания приложений для данных».
Если вы не знакомы с этим фреймворком с открытым исходным кодом, я полностью рекомендую прочитать историю ниже.
Теперь откройте новый файл python (я использовал Pycharm) и убедитесь, что вы установили edTensorflow 1.15,
streamlit
и gpt_2_simple
, вы можете использовать pip install xxxx
в качестве запроса для установки библиотек.
В / models вы можете увидеть одну модель с именем 124M, но вместо этого мы хотим использовать нашу собственную модель. Для этого нам нужно создать папку и добавить нашу папку run1.
Убедитесь, что у вас есть указанные ниже файлы в папке run1. 1000 в именах файлов относится к количеству шагов, которые была обучена модель. Поскольку я провел переобучение модели для 1000 шагов, в именах файлов есть модель-1000.
контрольно-пропускной пункт
модель-1000.data-00000-из-00001
модель-1000.index
модель-1000.meta
Вы можете управлять моделью, используя такие параметры, как top_k и length в функции generate. Я использую модель для генерации 100 слов на основе введенного текста. Это можно сделать с помощью gpt2.generate(session,prefix=starting_sentence,top_k=40,length=100,return_as_list=True)
Вы можете запустить следующий сценарий для локального создания веб-сайта и запуска модели.
Чтобы запустить сценарий и увидеть результат, перейдите в терминал и убедитесь, что вы находитесь в папке с исполняемым сценарием, и введите
streamlit run article_generation.py
Вы должны автоматически увидеть веб-сайт, работающий локально на вашем рабочем столе. Загрузка может занять некоторое время (для меня это заняло 1 минуту), поскольку мы пытаемся загрузить модель размером 500 МБ.
См. Образец результата ниже
Результат
Вход -
НЛП - лучшее, что может случиться с машинным обучением
Выход -
НЛП - лучшее, что могло случиться с машинным обучением. Это изменило то, как мы думаем о языках и работаем с ними. Это изменило наше представление о новых концепциях. Это изменило нашу жизнь. Это изменило наши отношения с нашими устройствами. Это изменило нашу жизнь неожиданным и чудесным образом. И все благодаря золотому дню искусственного интеллекта Hugging Face »,« Мы собираемся сделать первые шаги в мире машинного обучения. Мы надеемся, что к концу статьи вы научитесь: «По мере старения машин
Когда я ввел данные «НЛП - лучшее, что могло случиться с машинным обучением», модель выдала приличный результат.
Модель удивила меня, сказав: «Все из-за золотого дна искусственного интеллекта Hugging Face».
Модель знает, что Hugging Face оказал большое влияние на раздел машинного обучения NLP 👏🏼.
Согласованность можно еще больше улучшить, используя более крупные модели gpt2, а также используя больший обучающий текстовый файл.
Бонус (Прогнозирование хлопков)
Чтобы добавить больше ценности идее создания текста машиной. Я подумал, что было бы интересно, если бы мы могли предсказать количество аплодисментов в средней статье. Вы можете следовать приложенному здесь сценарию для прогноза, используя Tensorflow
Git
Вы можете следить за всем кодом проекта здесь