Search
Write a publication
Pull to refresh
40
17.4
Дмитрий Лукьянов @einhorn

Data scientist

Send message

Language Dove: разбираем китайскую и не только грамоту

Level of difficultyEasy
Reading time9 min
Views3.1K

Я довольно давно живу в Армении и изучаю армянский язык для получения гражданства («вы должны уметь читать любой документ» — сказали мне в миграционном центре).

Армянский язык очень сложен, и у меня возникла идея написать приложение для иммерсивного (dove — нырнул, погрузился) чтения на иностранном языке с пословным контекстуальным переводом, которое способно работать с любыми языками, даже с самыми редкими и сложными.

Читать далее

Endless Fun Machine: бесконечный генератор смешных картинок

Level of difficultyMedium
Reading time4 min
Views2.7K

Может ли ИИ шутить? Я провел эксперимент, чтобы ответить на этот вопрос.

В этой статье я расскажу, как я научил ИИ генерировать смешные картинки с нуля.

Читать далее

Сравнение нейросетей для перевода

Level of difficultyMedium
Reading time13 min
Views60K

С помощью GPT-4 можно решать самые разнообразные задачи по преобразованию текста, включая перевод на разные языки.

Мне стало интересно, кто переводит лучше: GPT-4 или специализированные нейронки для перевода, такие как Google Translate и DeepL?

Сегодня мы сравним качество перевода от различных нейросетей на 24 языковых парах.

Читать далее

PromptGPT: оптимизируем промт для GPT-4

Level of difficultyMedium
Reading time14 min
Views14K

Допустим, нам нужно решить задачу NLP, в которой мы принимаем и возвращаем текст (seq2seq). Существует великое множество таких задач, например: генерация текста/кода, перевод/стилизация, суммаризация, коррекция текста, распознавание именованных сущностей, даже классификацию текста можно свести к seq2seq.

Если нам нужно очень быстро написать высококачественное решение и у нас есть возможность платить за API, тогда нам подойдет использование GPT-4 API.

При решении seq2seq-задачи с использованием GPT-4 API нам нужно будет составить промт, который состоит из системного сообщения и набора примеров для модели (few-shot learning). Туториал по GPT-4 API можно найти в моей предыдущей статье.

Далее возникает задача измерения качества модели и оптимизации промта:

1. Непонятно, как изменение системного сообщения влияет на результат

2. Неясно, как подбирать примеры

3. Чем длиннее промт, тем дороже использование модели. Хочется найти минимальную длину промта, при которой качество нас устраивает

Вдобавок, можно использовать либо GPT-3.5, либо GPT-4 (если у вас есть к ней доступ). GPT-4 гораздо дороже. Хочется понять, даст ли GPT-4 достаточный буст к качеству, который оправдает ее цену.

Я написал небольшой тул, который измеряет качество модели на различных промтах и позволяет выбрать оптимальный: https://github.com/einhornus/prompt_gpt. В этой статье я сначала расскажу, как он работает, а потом покажу процесс оптимизации промта на конкретном примере - на задаче коррекции грамматики из своей предыдущей статьи.

Читать далее

Исправляем грамматику с помощью GPT-4 API

Level of difficultyMedium
Reading time14 min
Views18K

С самого выхода ChatGPT я начал ее использовать для решения задач корректуры текста: устранения опечаток, исправления ошибок и улучшения стилистики.

Однако, при использовании веб-версии ChatGPT возникают некоторые проблемы:

1. Приходится вчитываться в исправленный текст, чтобы найти изменения

2. Не используется вся мощь API, в котором есть возможности для более тонкой настройки бота: можно задать системное сообщение, в котором объяснить ассистенту смысл его существования; few-shot learning: можно предоставить набор примеров коррекции сообщений

3. Неудобство: нужно вставлять свой текст в веб-версию, затем набирать свой промт для его улучшения (который может быть разным в зависимости от типа коррекции). Хотелось бы иметь Web UI, где нужно просто вставить текст и выбрать тип коррекции - а далее текст будет обрабатываться оптимизированным промтом

Данный проект призван устранить эти недостатки. Потыкать приложение можно здесь (для использования нужен OpenAI API-ключ).

Читать далее

Умные субтитры

Reading time6 min
Views5.8K

Сегодня я вам расскажу о своем методе для изучения иностранных языков.

С чего начать изучение нового языка? Чаще всего люди на раннем этапе используют стандартный лексико-грамматический метод с доминированием письменного языка, который показал себя медленным и весьма скучным — вам чаще всего нужна зашкаливающая мотивация, чтобы не бросить где-то посередине.

Я предлагаю начать сразу с видео. Во-первых, видео просто интересно смотреть (особенно если это нормальные мультики/фильмы/сериалы, созданные для носителей языка). Во-вторых, вы сразу начнете запоминать звучание слов, что очень сильно пригодится для развития навыка аудирования в будущем.

Однако, если вы просто возьмете видео на новом для себя языке, то вы ничего не поймете. Первый шаг к решению проблемы - смотреть видео с субтитрами на языке оригинала. Однако, когда вы еще не знаете лексику языка, такие субтитры вам не помогут. Вам нужны двойные субтитры - на языке оригинала + перевод на ваш родной язык. 

При просмотре видео с двойными субтитрами мозг начинает сопоставлять слова из двух предложений на разных языках. Это зачастую нетривиально (особенно если у языков сильно отличается грамматика), на это мозг тратит время и энергию. 

Моя идея состоит в том, чтобы выполнить эту задачу вместо мозга и отображать субтитры как на картинке выше: посередине находятся субтитры на языке оригинала, ниже — их перевод; плюс над иностранными словами подписаны соответствующие им слова из перевода. Таким образом, за время просмотра десятка подобных фильмов/мультиков, каждое слово из базовой лексики будет многократно отображено вместе со своим переводом в текущем контексте, что позволит его запомнить.

Читать далее

Расставляем ударения с помощью Natasha и Spacy

Reading time8 min
Views18K

Представьте себя на месте изучающего русский язык иностранца. Ударение станет одним из ваших самых страшных ночных кошмаров.

Однажды я написал приложение для изучения русского, одной из функций которого была расстановка ударений. Я просто проверял каждое слово по словарю. Однако, это часто приводило к ситуации неоднозначности, когда ударение зависит от контекста. Например: "два сло́ва", но "длинные слова́".

Время подключать нейросети.

Читать далее

Information

Rating
868-th
Location
Yerevan, Yerevan, Армения
Date of birth
Registered
Activity

Specialization

Data Scientist
Senior