Category: животные

Category was added automatically. Read all entries about "животные".

Генерация определений слов с gpt-2 (фейкопедия)

Далее - выдача перетренированной генеративной языковой модели GPT-2.

Для некоторых слов даны результаты при повышенной (t=1.2) или пониженной (t=0.8) температуре.

Жирным выделены слова, для которых модель генерировала толкование.

Стоит обратить внимание, что только 2 из разобранных слов встречались модели в ходе обучения (кошачий и свинячий). Для остальных модель честно опиралась на морфемный состав настолько, насколько это позволило "byte pair encoding" представление токенов.

Collapse )

Генерация уместных вопросов с помощью языковой модели huggingface GPT-2

Второй эксперимент с теми же вводными, как описаны в предыдущем посте. Теперь используем реализацию языковой модели GPT-2 в pytorch библиотеке transformers. Для ее использования нужно только склонировать реп и перейти в подкаталог examples с которыми скриптами.

Collapse )

Генерация уместных вопросов с помощью GPT-2

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

Попробуем добиться от языковой модели GPT-2 генерации вопросов к заданному текстовому фрагменту на русском языке.

Collapse )

Добавлена обработка OOV слов в лемматизаторе rulemma

В питоновской библиотеке rulemma добавлена обработка несловарных (out-of-vocabulary) слов. Большинство OOV-слов образуются по относительно небольшому количеству словоизменительных правил русского языка, так что модель неплохо справляется с ними. При этом используются результаты частеречной разметки, чтобы снимать неоднозначности типа крокодил - проходил.

В качестве примера можно посмотреть на разбор фразы "Мяукая, голодные кошки ловят жирненьких хрюнделей":
Collapse )

Релиз чатбота 0.0.0.5

Докер-образ чатбота 0.0.0.5 выложен в репозитории. Там же выложены все актуальные языковые модели и исходники бота.

Основное изменение - некоторая оптимизация процесса запуска чатбота. Я внес небольшие изменения в проект грамматического словаря (ruword2tags), чтобы можно было загружать не полную русскую словарную базу из 2.5 миллионов словоформ, а только небольшое подмножество, которое фактически встречалось в обучающих датасетах. Сопутствующие правки сделаны также в проекте частеречной разметки rupostagger.

Также я поправил некоторые баги в моделях интерпретации.

Ну и разумеется общее улучшение языковых моделей, переобученных по расширенным датасетам. В частности, сейчас в checklist'е проверки бота есть целый набор для проверки FAQ-режима бота:
Collapse )

rupostagger - простой пакет для частеречной разметки русскоязычных предложений

Привел в порядок и выложил пакет rupostagger - простую (и не SOTA) реализацию алгоритма для разметки слов тегами. Пакет не делает ничего, кроме разметки, поэтому токенизацию надо делать самостоятельно. Я использую пакет под 2 и 3 веткой питона, под Windows и Linux. Батарейки (обученная русская языковая модель) входят в комплект, ничего самостоятельно обучать не надо. Также используется русская словарная база - отдельный пакет ruword2tags, и слогоделитель rusyllabs,  они указаны в requirements.txt.

После установки (pip install git+https://github.com/Koziev/rupostagger) использовать так:
Collapse )

Как SentencePiece токенизирует русскоязычный текст

SentencePiece - питоновская библиотека для unsupervised tokenization. Для японского и и китайского, видимо, является очень хорошей альтернативой токенизаторам с handcrafted rules (типа MeCab, который и я когда-то использовал). А для английского языка дает в нейросетевых моделях (гугловский трансформер и BERT) такую приятную вещь, как заранее фиксированный размер словаря.

А как выглядит результат токенизации для русскоязычного текста, учитывая темную сторону русского языка - слишком богатое словоизменение? Далее - краткие результаты эксперимента.
Collapse )

Весело начался год собаки

Накручивая нейросетку поверх CRF для нормализации результатов разбора данных для ETL процедуры, случайно обнаружил, что модель для CRF разбила датасет в пропорции 20% на тренировку и 80% на валидацию. Спасибо остатку от деления на пять:
Collapse )