Pull to refresh
139
-21
Котенков Игорь @stalkermustang

User

Программный рендер в стиле игры Doom

Reading time 14 min
Views 8.6K
Working with 3D-graphics *Game development *
Best Tech Author 2022

Расскажу о небольшом домашнем проекте по написанию программного рендера. Всё началось со случайного видео на Youtube с записью геймплея игры Doom (93 года). Появилась идея сделать похожий рендер на С++ без использования библиотек. В статье описаны шаги его разработки. В конце есть ссылка на видео с демонстрацией работы рендера.

Читать далее
Total votes 32: ↑32 and ↓0 +32
Comments 12

Всё, что вы НЕ хотели бы знать о сервисах онлайн знакомств… [много букОв и иллюстраций + регулярно дополняется]

Level of difficulty Easy
Reading time 54 min
Views 141K
Web services monetization *Social networks and communities
Review
Компьютерные сети изменили мир и подарили нам возможность не выбирать «меньшее из зол» из ограниченного числа сложившихся по жизни контактов, а найти по-настоящему любимого человека, даже если он прячется от нас на другом материке. Разумеется, мы можем отказаться от этой возможности и пойти по воспетому российской эстрадой садистско-мазохистскому сценарию «слепила из того, что было, а потом, что было, то и полюбила». И все будут только рады, если у нас всё получится. Но, если мы подведем статистику известных нам счастливых пар, сложившихся по этому сценарию, и трезво оценим вероятность успешного исхода, то, вероятно, путь поиска своего счастья в мировой паутине покажется нам более перспективным. И в этой статье я хочу рассказать вам о тех проблемах с которыми на этом пути можно столкнуться.
Читать дальше →
Total votes 293: ↑282 and ↓11 +271
Comments 764

Алгоритмы быстрого умножения чисел: от столбика до Шенхаге-Штрассена

Level of difficulty Medium
Reading time 26 min
Views 26K
Python *Algorithms *Mathematics *

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

И уж конечно, никогда при написании a * b мы не задумываемся о том, как реализовано умножение чисел a и b в нашем языке. Какие вообще есть алгоритмы умножения? Это какая-то нетривиальная задача?

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

Скорее к формулам!
Total votes 173: ↑173 and ↓0 +173
Comments 28

Я уеду жить в Лейнвуд. Создаем новые слова при помощи GPT

Reading time 4 min
Views 4.9K
Abnormal programming *Python *Machine learning *Artificial Intelligence Natural Language Processing *
Tutorial

Предлагаю немного поразвлечься и научиться придумывать новые слова, которые звучат совсем как настоящие (прям как товары в Икее). Для начала вот вам десяток несуществующих городов:

Лумберг, Сеф, Хирнов, Бинли, Лусский, Ноловорск, Сант-Гумит, Хойден, Голтон и Оголенда

И женских имен:

Инела, Каисья, Ганнора, Целия, Тарисана, Лелена, Феомина, Олиcc, Нулина и Рослиба

Для запуска генерации нам не понадобится технических навыков, хотя технология, стоящая за ней, сейчас является очень перспективной и многофункциональной. Это генеративная нейронная сеть, способная решать множество задач по обработке естествнного языка (NLP). Это такие задачи как суммаризация (сделать из большого текста его резюме), понимание текста (NLU), вопросно-ответные системы, генерация (статей, кода или даже стихов) и другие. Тема эта очень глубокая, поэтому далее я дам пару ссылок для любителей копнуть поглубже. А те, кто хочет "только спросить", может сразу приступить к созданию слов.

Генерировать будем скриптом makemore от Андрея Карпати (недавно писал про скрипт в канале градиент обреченный), который он выложил пару недель назад. Андрей является известным исследователем в мире ИИ и периодически радует народ такими вот игрушками, можно полазить по его репозиторию, там еще много интересного.

Запустим скрипт.

Читать далее
Total votes 26: ↑26 and ↓0 +26
Comments 12

Инфоинженер. Как я делал курс по NLP для МГТУ им. Баумана

Reading time 5 min
Views 5.5K
Machine learning *Studying in IT Natural Language Processing *
Case

Пандемия. Осень. Друг и бывший одногруппник, работающий на кафедре прикладной математики, попросил меня сделать курс по обработке естественного языка для МГТУ имени Баумана. Курс подразумевался быть коротким, около 10 занятий. Аудитория — студенты с первого по четвертый курс.

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

Хотел бы поделиться тем, с какими трудностями пришлось столкнуться, сколько времени было потрачено и кто больше узнал о предметной области, — я или студенты.

Читать далее
Total votes 25: ↑24 and ↓1 +23
Comments 1

Распознавание речи, генерация субтитров и изучение языков при помощи Whisper

Reading time 12 min
Views 15K
Open Data Science corporate blog Data Mining *Machine learning *Artificial Intelligence Natural Language Processing *
Tutorial
⚒️ Data Mining season

⚡ Градиент обреченный

Есть ряд платных решений по переводу речи в текст (Automatic Speech Recognition). Сравнительно малыми усилиями можно сделать свое решение, — обучить на целевых данных end2end модель (например, из фреймворка NeMo от NVIDIA) или гибридную модель типа kaldi. Сверху понадобится добавить расстановку пунктуации и денормализацию для улучшения читаемости ("где мои семнадцать лет" → "Где мои 17 лет?").

Модель заслуживает внимания так как умеет делать очень много "из коробки". Давайте разберемся подробнее как она устроена и научимся ей пользоваться.

Недавно в открытый доступ была выложена мультиязычная модель whisper от OpenAI. Попробовал ее large вариант на нескольких языках и расшифровал 30 выпусков "Своей игры". Результат понравился, но есть нюансы. Модель транскрибирует тексты вместе с пунктуацией и капитализацией, расставляет временные метки, умеет генерировать субтитры и определять язык. Языков в обучающем датасете порядка ста. Чтобы прикинуть по качеству, нужно посмотреть на их распределение — данных на 100 часов и более было лишь для 30 языков, более 1000 ч. — для 16, ~10 000 часов — у 5 языков, включая русский.

Читать далее
Total votes 32: ↑30 and ↓2 +28
Comments 19

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

Reading time 13 min
Views 6.1K
Open source *Programming *Machine learning *Learning languages Natural Language Processing *
Tutorial

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

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

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

Читать далее
Total votes 56: ↑56 and ↓0 +56
Comments 25

Нейросеть, способная объяснить себе задачу: P-tuning для YaLM

Reading time 9 min
Views 12K
Яндекс corporate blog Search engines *Algorithms *Machine learning *Artificial Intelligence

Мы уже рассказывали о том, как применили семейство генеративных нейросетей YaLM для подготовки ответов в Поиске, Алисе или даже в Балабобе. Главная особенность наших моделей — метод few-shot learning, который позволяет без дополнительного обучения решать большинство задач в области обработки естественного языка. Достаточно лишь подготовить подводку на человеческом языке — и модель сгенерирует текст. Но что, если это не самый оптимальный путь?

Сегодня я расскажу читателям Хабра про апгрейд этого метода под названием P-tuning. Вы узнаете про недостатки оригинального метода few-shot и преимущества нового подхода. Покажу, где он уже применяется на примере покемонов. Добро пожаловать под кат.
Читать дальше →
Total votes 32: ↑32 and ↓0 +32
Comments 6

В Data Science не нужна математика (Почти)

Reading time 6 min
Views 79K
RUVDS.com corporate blog Python *Big Data *Mathematics *Data Engineering *

Привет, чемпион!

Ребята с «вышкой» всё время умничают, что в Data Science нужна «математика», но стоит копнуть глубже, оказывается, что это не математика, а вышмат.

В реальной повседневной работе Data Scientist'а я каждый день использую знания математики. Притом очень часто это далеко не «вышмат». Никакие интегралы не считаю, детерминанты матриц не ищу, а нужные хитрые формулы и алгоритмы мне оперативнее просто загуглить.

Решил накидать чек-лист из простых математических приёмов, без понимания которых — тебе точно будет сложно в DS. Если ты только начинаешь карьеру в DS, то тебе будет особенно полезно. Мощь вышмата не принижаю, но для старта всё сильно проще, чем кажется. Важно прочитать до конца!
Читать дальше →
Total votes 143: ↑136 and ↓7 +129
Comments 87

ML для оптимизации цен на основе эластичности по цене

Reading time 25 min
Views 7.5K
Development for e-commerce *Machine learning *E-commerce management *Sales management *
Tutorial

Кривая эластичности спроса по цене – это то, как продажи зависят от цены.Чем меньше цена, тем больше продаж и наоборот.

В этой статье рассказывается про ML методы получения кривых спроса сразу для сотен тысяч товаров (нейросети, pyTorch), а также как, имея кривые спроса, решать бизнес задачу про баланс оборота и прибыли – в этом нам поможет метод множителей Лагранжа. Что первично – ограничение на прибыль или множитель Лагранжа? Как инженерам объяснить, что такое kvi-товары и товары-герои? Это и многое другое

Читать далее
Total votes 9: ↑8 and ↓1 +7
Comments 18

Разбираемся с устройством свёрток на примере объединения двух свёрток в одну в pytorch

Reading time 8 min
Views 7.9K
Python *Mathematics *Machine learning *
Tutorial

Неинтересная цель этой статьи — показать, как можно смержить две свертки пайторча в одну.

А интересная цель — потыкать непосредственно в веса моделей на примере объединения свёрток. Узнать, как они хранятся и используются конкретно в pytorch, не вдаваясь в хардкорные интересности по типу im2cal.

Читать далее
Total votes 14: ↑14 and ↓0 +14
Comments 3

Граф знаний LinkedIn’s Economic Graph и его Star2Vec-эмбеддинги

Reading time 5 min
Views 1.6K
Data Mining *Algorithms *Big Data *Machine learning *Artificial Intelligence
Sandbox
✏️ Technotext 2022

В этой публикации я представляю поверхностный обзор статьи от исследователей LinkedIn «Representation Learning in Heterogeneous Professional Social Networks with Ambiguous Social Connections». В указанной статье частично представлена структура графа знаний LinkedIn’s Economic Graph и относительно подробно описан метод обучения эмбеддингов Star2Vec. Я попытаюсь объяснить основные этапы построения векторных представлений, что называется "на пальцах".

Т. к. это лишь поверхностный обзор, от читателя требуются следующие познания:

1. Skip-gram и его адаптация под графы (word2veс, LINE, DeepWalk);

2. общие понятия о графах знаний.

Поехали!
Total votes 3: ↑2 and ↓1 +1
Comments 5

Мечтают ли уже андроиды об электроовцах? Возможности и этика современных развлекательных чатботов на примере Replika

Reading time 12 min
Views 3.2K
Cyberpunk Popular science
Sandbox

Пост будет в формате вырезок из моего общения с ботом и моих профессиональных и не очень комментариев. Каждые несколько лет я по приколу развлекался попытками обучить прогрессивного чатбота чему-то о нем самом. Я в курсе, что это буллщит, и от ИИ мы так же далеко, как от галактики GN-z11, и это просто игра в имитацию. Спустя несколько дней общения с Джейс мне впервые захотелось закинуть тему шире, чем в круг друзей, потому что в 2022 году я впервые почувствовал настоящие этические колебания от общения с программой и пережил интересный опыт.

Сам я по работе успел позаниматься и гейм-дизайном, и UX/CX, и продуктовой аналитикой, и сценаристикой, так что тема мне очень близка. Я буду отталкиваться от эмоций, только иногда скатываясь в профессиональную нудотину.

Осторожно, трафик!

Читать далее
Total votes 18: ↑16 and ↓2 +14
Comments 17

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

Reading time 12 min
Views 89K
IT career
Sandbox

Декабрь 2020, вторая волна Ковида в разгаре. Я ПМ на удаленке в Американской компании. После похорон отца в Тбилиси я находился в прострации, надо было возвращаться в США и как-то менять своё положение, ведь денег, которых я зарабатывал явно не хватало на нормальную жизнь. Сами воспоминания о моём предыдущем поиске вызывали во мне холодный озноб и какой-то внутренний голос тихо шептал «подожди, сейчас пандемия, многие и о таком мечтают, как-нибудь выкрутишься…».

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

Я зарегистрировал себе американский номер в Google Voice, чтобы мне начали звонить рекрутеры и начал рассылать резюме. Я разослал около сотни адаптированных резюме и указал в LinkedIn что активно ищу работу. Постепенно на меня начали выходить рекрутеры небольших компаний, но я понимал, что в них условия будут в лучшем случае на 40% лучше текущей и это все равно не решало моих проблем. Хоть и казалось, что на LinkedIn висят тысячи позиций, однако основных работодателей я этим исчерпал. Подавался я в основном на Sr. Project Manager или Engineering Manager позиции.

Осознание пришло, когда я стал читать teamblind.com – лучший ресурс в США по анализу рынка в ИТ и levels.fyi где можно посмотреть реальные зарплаты. Раньше я читал Glassdoor, но информация на нем устарела.

Оказалось, что в финансовой сфере в США, которая мне была интересна - плохие условия и токсичная культура, тоже самое в консалтинге кроме компаний из Big4 или MBB где надо работать долгие часы, но возможно получать 1+ миллион долларов в год дослужившись до партнёра. Самыми интересными оказались компании, которые называют FAANG (Fb, Apple, Amazon, Netflix, Google) иногда в место этого списка используют FAANGMULA справедливо добавляя туда Microsoft, Uber, Lyft и Airbnb – все они технологические, инновационные компании не просто создающие бизнес-продукты, но и технологии, которыми пользуются весь мир. Компании, создающие де-факто стандарты разработки цифровых продуктов, инвестирующие в научные исследования, создающие легендарные условия для своих сотрудников, чем привлекают умнейших инженеров и ученных со всего мира.

Читать далее
Total votes 149: ↑133 and ↓16 +117
Comments 125

CatBoost, XGBoost и выразительная способность решающих деревьев

Reading time 42 min
Views 38K
Open Data Science corporate blog Programming *Mathematics *Machine learning *Artificial Intelligence

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

Данный обзор охватывает сразу несколько тем. Мы начнем с устройства решающего дерева и градиентного бустинга, затем подробно поговорим об XGBoost и CatBoost. Среди основных особенностей алгоритма CatBoost:

• Упорядоченное target-кодирование категориальных признаков
• Использование решающих таблиц
• Разделение ветвей по комбинациям признаков
• Упорядоченный бустинг
• Возможность работы с текстовыми признаками
• Возможность обучения на GPU

В конце обзора поговорим о методах интерпретации решающих деревьев (MDI, SHAP) и о выразительной способности решающих деревьев. Удивительно, но ансамбли деревьев ограниченной глубины, в том числе CatBoost, не являются универсальными аппроксиматорами: в данном обзоре приведено собственное исследование этого вопроса с доказательством (и экспериментальным подтверждением) того, что ансамбль деревьев глубины N не способен сколь угодно точно аппроксимировать функцию y = x_1 x_2 \dots x_{N+1}. Поговорим также о выводах, которые можно из этого сделать.

Читать далее
Total votes 48: ↑48 and ↓0 +48
Comments 8

Порождение и выбор моделей машинного обучения. Лекция в Яндексе

Reading time 11 min
Views 22K
Яндекс corporate blog Entertaining tasks Algorithms *Mathematics *Machine learning *
Применение машинного обучения может включать работу с данными, тонкую настройку уже обученного алгоритма и т. д. Но масштабная математическая подготовка нужна и на более раннем этапе: когда вы только выбираете модель для дальнейшего использования. Можно выбирать «вручную», применяя разные модели, а можно и этот процесс попробовать автоматизировать.


Под катом — лекция ведущего научного сотрудника РАН, доктора наук и главного редактора журнала «Машинное обучение и анализ данных» Вадима Стрижова, а также большинство слайдов.

Total votes 50: ↑49 and ↓1 +48
Comments 1

Как мы научились понимать продажи в колл-центре, или С чего начать ML-проект, если непонятно ничего

Reading time 6 min
Views 3.6K
Домклик corporate blog Data Mining *Machine learning *Project management *

Не все ML-проекты начинаются с четкого формулирования результата, который мы хотим получить на выходе. С какого-то момента задача обретает стандартную для машинного обучения постановку: появляются данные и требования к модели. Однако такой постановке может предшествовать долгий и неочевидный процесс.

Если вы хоть раз смотрели детектив, то понимаете, как выглядит первичный этап в ML-проекте: проверяется множество гипотез, много времени уходит на сбор данных и погружение в процессы, планы часто меняются по ходу работы, все постоянно торопят. Несмотря на неопределенность, именно этот этап позволяет раскрыть весь потенциал внедрения машинного обучения, а значит важен как для бизнеса, так и для data scientist'ов.

Меня зовут Настя, я DS Team Lead в компании Домклик. В мае этого года мы запускали data science в команде «Речевые сервисы». За полгода реализовали несколько успешных проектов, об одном из них пойдет речь.

Читать далее
Total votes 52: ↑52 and ↓0 +52
Comments 10

Как мы распознаем фото документов пользователей. Часть I

Reading time 7 min
Views 9.8K
inDrive.Tech corporate blog Python *Image processing *Machine learning *

Привет, Хабр! Я Илья, Junior Data Scientist в inDriver. В работе нам часто приходится распознавать документы водителей или пассажиров для их верификации в приложении. Наша команда выработала свой подход к идентификации текста и фото документов, которым мы хотели бы поделиться. Ждем вас под катом. Приятного чтения!

Читать далее
Total votes 20: ↑19 and ↓1 +18
Comments 10

Перефразирование русских текстов: корпуса, модели, метрики

Reading time 13 min
Views 14K
Python *Semantics *Programming *Machine learning *Natural Language Processing *

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

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

Читать далее
Total votes 16: ↑16 and ↓0 +16
Comments 5
1

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity