Как стать автором
Обновить
2
0
vilky @vilky

Пользователь

Отправить сообщение

Machine Learning инженер: что/где/как изучать, чтобы въехать

Время на прочтение12 мин
Количество просмотров27K

Привет, хаброчеловек!

В этой статье мы обсудим путь среднестатистического обывателя в Machine Learning, а именно — как стать ML-инженером. Поговорим о специфике области, какие требуются знания и скиллы, что нужно делать и с чего начать.

Читать далее
Всего голосов 13: ↑12 и ↓1+11
Комментарии4

Семантический поиск и генерация текста на R. Часть 2

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров932

В первой части говорили про использование поиска и генерации ответа с помощью языковых моделей. В этой части рассмотрим память и агентов.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Семантический поиск и генерация текста на R. Часть 1

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.1K

Для этой задачи использую LLM (Large Language Models - например, chatGPT или opensouce модели) для внутренних задач (а-ля поиск или вопрос-ответную систему по необходимым данным).

Я пишу на языке R и также увлекаюсь NLP (надеюсь, я не один такой). Но есть сложности из-за того, что основной язык для LLM - это python. Соответственно, на R мало примеров и документации, поэтому приходится больше времени тратить, чтобы “переводить” с питона, но с другой стороны прокачиваюсь от этого.

Чтобы не городить свою инфраструктуру, есть уже готовые решения, чтобы быстро и удобно подключить и использовать. Это LangChain и LlamaIndex. Я обычно использую LangChain (дальше он и будет использоваться). Не могу сказать, что лучше, просто так повелось, что использую первое. Они написаны на питоне, но с помощью библиотеки reticulate всё работает и на R.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии4

Локальные нейросети. Аналог ChatGPT-3.5 на домашнем ПК: OpenChat 7B превосходящая 70B, DeepSeek для кода уровня ChatGPT

Время на прочтение8 мин
Количество просмотров79K

Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.

Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.

И бонусом затронем новую модель для качественного подробного описания фото.

UPD: Добавлена информация для запуска на Windows с ускорением на AMD.

Читать далее
Всего голосов 107: ↑105 и ↓2+103
Комментарии87

ChatGPT и чтение книг в оригинале

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров8.4K

Представьте приложение, в которое вы можете загрузить любую книгу на иностранном языке. При чтении вы будете нажимать на любое незнакомое слово, а приложение будет вам выдавать не кучу переводов из словаря, а предложит перевод, который соответствует контексту. А при переводе устойчивого выражение приложение не просто переведет его, а предложит вам объяснение этой фразы, привязанное к контексту. Ниже я покажу как оно работает.

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии30

Пишем GPT в 60 строк NumPy (часть 1 из 2)

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров71K

В этом посте мы начнём реализацию с нуля GPT всего в 60 строках numpy. Во второй части статьи мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Читать дальше →
Всего голосов 96: ↑94 и ↓2+92
Комментарии33

ChatGPT как инструмент для поиска: решаем основную проблему

Время на прочтение40 мин
Количество просмотров110K

Вышедшая чуть больше месяца назад ChatGPT уже успела нашуметь: школьникам в Нью-Йорке запрещают использовать нейросеть в качестве помощника, её же ответы теперь не принимаются на StackOverflow, а Microsoft планирует интеграцию в поисковик Bing - чем, кстати, безумно обеспокоен СЕО Alphabet (Google) Сундар Пичаи. Настолько обеспокоен, что в своём письме-обращении к сотрудникам объявляет "Code Red" ситуацию. В то же время Сэм Альтман, CEO OpenAI - компании, разработавшей эту модель - заявляет, что полагаться на ответы ChatGPT пока не стоит.

Насколько мы действительно близки к внедрению продвинутых чат-ботов в поисковые системы, как может выглядеть новый интерфейс взаимодействия, и какие основные проблемы есть на пути интеграции? Могут ли модели сёрфить интернет бок о бок с традиционными поисковиками? На эти и многие другие вопросы постараемся ответить под катом.

Погрузиться с головой →
Всего голосов 96: ↑96 и ↓0+96
Комментарии51

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

Время на прочтение13 мин
Количество просмотров8K

Хочу показать, как создать мультиязычный параллельный корпус и книги при помощи моего пет-проекта.

Для примера возьмем 10 редакций "Мастера и Маргариты" Михаила Булгакова (ru, uk, by, en, fr, it, es, de, hu, zh). Сначала выровняем девять переводов с оригиналом, а затем выровняем все вместе. Получим параллельный корпус на 10 языках и много красивых книг. Приступим.

Код я оформил в виде веб-приложения, основная логика которого выполняется при помощи библиотеки lingtrain-aligner. Выравнивать можно прямиком из кода на python, либо через UI. В приложении будет удобней разрешать конфликты и там есть редактор, позволяющий корректировать получающийся корпус плюс дополнительные опции по верстке. Код у проекта открытый, можно посмотреть как все работает внутри. Приступим.

Читать далее
Всего голосов 56: ↑56 и ↓0+56
Комментарии25

«Чтение — всему голова!» Переводим электронные книги формата .EPUB с помощью Python

Время на прочтение7 мин
Количество просмотров9.5K

Разберёмся что “под капотом” формата EPUB и как перевести текст, но не переводить код в книге. Познакомимся с библиотекой Ebook Lib, а также узнаем для чего нам понадобиться библиотека Beautiful Soup.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии8

Способы упрощения текстов: плюсы, минусы, альтернативы

Время на прочтение6 мин
Количество просмотров2.6K

Сложно понять содержимое текста, если в нем встречается много незнакомых слов. Вариант решения этой проблемы – замена слов на близкие к ним по значению. Заменить слово на синоним можно, например, тремя способами – трансформером,  word2vec и его модификацией - RusVectores.

Зачем вообще упрощать текст? Есть, как минимум, три кейса, почему есть вероятность столкнуться с этой задачей:

- если перед вами текст на иностранном языке, то замена «сложного» слова на синоним поможет сориентироваться в сути предложения

- если вы работаете с доменной тематикой, то также подбор синонимов может сделать текст проще для восприятия (так, например, «ирригация» можно заменить на «орошение» и наоборот, в таком случае шанс понять текст у читающего увеличивается)

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

Если говорить более предметно, то это задача делится на две: поиск сложного слова или словосочетания и поиска его замены, исходя из контекста. Давайте последовательно разберемся с каждой из задач.

Если кому-то интересно ознакомиться только с кодом, то welcome на github, там можно найти пошаговую реализацию.

Задача выделения сложных слов

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии0

Секреты генерирующего реферирования текстов

Время на прочтение11 мин
Количество просмотров9.8K


Эта статья посвящена основным современным моделям для генерирующего реферирования и генерации текста в целом: BertSumAbs, GPT, BART, T5 и PEGASUS, и их использованию для русского языка.


В отличие от извлекающих моделей, которые рассмотрены в предыдущих двух статьях, эти модели создают новые тексты, а не только выделяют предложения из оригинального документа. Из-за этого они могут нетривиально изменять исходный текст: удалять слова или заменять их на синонимы, сливать и упрощать предложения, а значит делать ровно то, что делают люди при составлении рефератов.


Ещё десять лет назад методы из этой категории казались фантастикой. Развитие систем нейросетевого машинного перевода сделало генерирующее автоматическое реферирование намного более лёгкой задачей.


Серьёзные методы оценки качества реферирования будут в следующих частях цикла. Сейчас же для наглядности мы испытаем алгоритмы на одной конкретной новости про секвенирование РНК клеток коры головного мозга. Это свежая новость, то есть модели заведомо не могли её видеть. К тому же она довольно сложная: 5.7 баллов по шкале N+1.


Кстати говоря, заголовок к этой статье написан одной из описываемых моделей.

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии1

Подбор синонимов для терминов с использованием Викиданных (python)

Время на прочтение2 мин
Количество просмотров4.2K

Существует множество сервисов по подбору синонимов, но они редко справляются с терминами, которые содержат в себе более одного слова. Для подбора синонимов для более сложных выражений могут помочь Викиданные. Мало кто знает, что помимо стандартной Википедии существует дополнительная база данных Викиданные(Wikidata), которая представляет собой граф знаний фонда Викимедия. Сейчас она интегрирована в саму Википедию, поэтому для многих статей в левом меню можно найти пункт Элемент Викиданных. Викиданные представлены в модели rdf, то есть информация имеет вид триплетов, которые характеризуют сущность. Триплет выглядит, как утверждение субьект - предикат - обьект. Пример, для сущности Англия одним из таких информационных триплетов представлен: Англия - имеет столицу - Лондон. 

Один из предикатов(типов связи) это altLabel, подразумевающий под собой альтернативные названия, который как раз таки и поможет нам в поиске синонимов.

Сразу стоит учитывать, что Викиданные это очень обширная база знаний, но, тем не менее, не совершенная. Поэтому, для терминов, которые там не представлены, или представлены, но для их сущностей нет введенных альтернативных названий, синонимов найдено не будет.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Как выглядит рельеф Марса? Выясняем с помощью Python

Время на прочтение9 мин
Количество просмотров6.6K

К старту флагманского курса по Data Science делимся визуализациями марсианского ландшафта на основе изображений, полученных благодаря беспилотным полётам над поверхностью планеты. За подробностями приглашаем под кат.

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии5

Извлекающие методы автоматического реферирования

Время на прочтение5 мин
Количество просмотров4.9K


И снова всем привет!


На этот раз рассмотрим извлекающие методы, которым нужны эталонные рефераты для обучения. При этом эти методы всё ещё могут лишь выбирать предложения из оригинального текста. К методам этой группы и относятся описываемые ниже SummaRuNNer и BertSumExt.


Статьи цикла:
1) Постановка задачи автоматического реферирования и методы без учителя
2) Извлекающие методы автоматического реферирования ⬅️
3) Секреты генерирующего реферирования текстов

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии11

Нечёткое сравнение строк: пойми меня, если сможешь

Время на прочтение8 мин
Количество просмотров60K
image
Привет!

На естественном языке сказать об одном и том же факте можно бесконечным числом способов. Можно переставлять слова местами, заменять их на синонимы, склонять по падежам (если говорим о языке с падежами) и тд.

Необходимость определять схожесть двух фраз возникла при решении одной небольшой практической задачи. Я не использовал машинное обучение, не вил нейронные сети, но использовал простые метрики и собранную статистику для калибровки коэффициентов.

Результатом работы, описанием процесса, кодом на git'е готов поделиться с вами.

Итак, кратко задачу можно озвучить так: «С определенной периодичностью из различных источников приходят актуальные новости. Необходимо фильтровать их таким образом, чтобы на выходе не было двух новостей об одном и том же факте.»
Предупреждение: в статье присутствуют заголовки реальных новостей. Я отношусь к ним исключительно как к рабочему материалу, не представляю какую-либо точку зрения на политическую или экономическую ситуацию в какой бы то ни было стране.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии8

Постановка задачи автоматического реферирования и методы без учителя

Время на прочтение8 мин
Количество просмотров7.9K


Всем привет!


Для написания кандидатской диссертации я недавно составил обзор различных методов автоматического реферирования, суммаризации. Обзор получился субъективно хорошим, поэтому я публикую его и здесь. Он очень объёмный, и я разбил его на несколько частей, которые и буду постепенно выкладывать. По мере публикации ниже будут появляться ссылки на остальные части цикла.


Статьи цикла:
1) Постановка задачи автоматического реферирования и методы без учителя ⬅️
2) Извлекающие методы автоматического реферирования
3) Секреты генерирующего реферирования текстов


Это первая статья цикла, посвящённая самой задаче и методам без учителя, которым не нужен эталонный корпус рефератов: методу Луна, TextRank, LexRank, LSA и MMR.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии6

Искусственный язык в «Утопии» Томаса Мора

Время на прочтение5 мин
Количество просмотров7.5K

Этот материал посвящён одному вымышленному языку и одной книге, ставшей жемчужиной мировой классики, которую читают вот уже более 500 лет. 1516-й год, святой Томас Мор. «Весьма полезная, а также и занимательная, поистине золотая книжечка о наилучшем устройстве государства и о новом острове Утопия». Попробуем разобраться, что нам известно о языке «Утопии», его связи с латынью и греческим шибболетом и что спрятал в нём гений Томаса Мора.
Читать дальше →
Всего голосов 46: ↑45 и ↓1+44
Комментарии4

Возможности SQLite, которые вы могли пропустить

Время на прочтение8 мин
Количество просмотров40K
Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.
Читать дальше →
Всего голосов 76: ↑76 и ↓0+76
Комментарии35

Работаем с текстами на Python: кодировки, нормализация, чистка

Время на прочтение9 мин
Количество просмотров81K

Об обработке текстов на естественном языке сейчас знают все. Все хоть раз пробовали задавать вопрос Сири или Алисе, пользовались Grammarly (это не реклама), пробовали генераторы стихов, текстов... или просто вводили запрос в Google. Да, вот так просто. На самом деле Google понимаетот него хотите, благодаря ш, что вы тукам, которые умеют обрабатывать и анализировать естественную речь в вашем запросе.

При анализе текста мы можем столкнуться с ситуациями, когда текст содержит специфические символы, которые необходимо проанализировать наравне с "простым текстом" или формулы, например. В таком случае обработка текста может усложниться.

Вы можете заметить, что если ввести в поисковую строку запрос с символами с ударением (так называемый модифицирующий акут), к примеру "ó", поисковая система может показать результаты, содержащие слова из вашего запроса, символы с ударением уже выглядят как обычные символы.

Так как всё-таки происходит обработка таких запросов?

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии1

Нейросети для Natural Language Inference (NLI): логические умозаключения на русском языке

Время на прочтение9 мин
Количество просмотров17K

NLI (natural language inference) – это задача автоматического определения логической связи между текстами. Обычно она формулируется так: для двух утверждений A и B надо выяснить, следует ли B из A. Эта задача сложная, потому что она требует хорошо понимать смысл текстов. Эта задача полезная, потому что "понимательную" способность модели можно эксплуатировать для прикладных задач типа классификации текстов. Иногда такая классификация неплохо работает даже без обучающей выборки!

До сих пор в открытом доступе не было нейросетей, специализированных на задаче NLI для русского языка, но теперь я обучил целых три: tiny, twoway и threeway. Зачем эти модели нужны, как они обучались, и в чём между ними разница – под катом.

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии3
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность