Обновить
276.22

Алгоритмы *

Все об алгоритмах

Сначала показывать
Порог рейтинга
Уровень сложности

Как TF-IDF обошел SOTA-модель BERT4Rec в персональных рекомендациях

Время на прочтение7 мин
Охват и читатели2.1K

Привет, меня зовут Коновалов Андрей, я Data Scientist персональных рекомендаций Wildberries. В этой статье разберем, как можно тюнингом TF-IDF побить BERT4Rec в ретро-тесте рекомендательной системы.

Читать далее

Применимость Java в искусственном интеллекте: 7 библиотек для нейросетей, которые стоит изучить

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели3.4K

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

Читать далее

На чём учатся современные модели машинного перевода: опыт команды Яндекс Переводчика

Время на прочтение17 мин
Охват и читатели4.1K

В сервисе Яндекс Переводчик мы поддерживаем перевод между 102 языками. Наша цель — обеспечивать качественный перевод для самых разных типов данных: текстов, документов, HTML, изображений и видео. Сегодня обсудим ключевой компонент для обучения моделей машинного перевода — данные для обучения.

Современные нейросетевые подходы очень требовательны как к объёму данных в обучении, так и к их качеству. Для получения хорошей переводной модели требуются сотни миллионов, а в идеале миллиарды параллельных предложений (пар из предложения и его перевода). Возникает вопрос: откуда их взять и что это за данные?

В этой статье я расскажу о том, как из текстов интернета в 100 ПБ найти терабайты суперчистых данных с переводами между любыми языками. Вы узнаете, почему эта задача требует обучения больше десятка различных вспомогательных ML‑моделей. А ещё коротко подсвечу, какое место в этом процессе занимает наша YandexGPT и что это за зверь такой — YandexGPT‑MT.

Читать далее

Как устроены очереди: визуальное объяснение

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.4K

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

В этом посте мы изучим очереди в контексте HTTP-запросов. Начнём мы с простого, и постепенно будем вводить более сложные структуры очередей.
Читать дальше →

8 вопросов начинающего аналитика

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.3K

Всем привет. Меня зовут Вика. Я работаю в компании Магнит уже 10 лет. Начинала свой путь в компании я на позиции аналитика, далее стала руководителем сектора аналитики, а после и руководителем команды разработки.

Основную проблему, которую я наблюдаю в затягивающихся задачах:

1.       Заказчик, который не понимает, какой эффект он получит от задачи.

2.       Аналитики, которые боятся отстаивать свое мнение.

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

Сегодня детальнее я бы хотела поговорить о второй проблеме.

Основная задача аналитика в работе моей команды: быть посредником между бизнесом и командой разработки. В этом и состоит сложность, т.к. аналитик должен уметь «разговаривать» на двух языках. Когда аналитик уже опытный, у него есть навык разговора на двух языках, а также он уже сработался с заказчиком и многие требования понимает с полуслова. Но как помочь новым аналитикам ничего не упустить?

Читать далее

GIMP Script-Fu Первый Дан. Удобная передача параметров в функцию

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели260

Библиотека функций к Script-fu

Script-fu(Тинисхема) передает параметры в функцию в виде списка и позволяет передавать значения в обязательные именованные параметры, функции с одним параметром принимающим неограниченное количество значений , или функции смешанного типа, с обязательными именованными параметрами и параметром остатком в виде списка.

Но иногда... мы хотим чего-то БОЛЬШЕГО!!!

Читать далее

Как мы приняли участие в соревновании по машинной диагностике затемнений в лёгких MIDRC XAI Challenge

Уровень сложностиСложный
Время на прочтение15 мин
Охват и читатели627

Всем привет! Мы — научно‑исследовательская лаборатория «Сильный ИИ в медицине» в Институте AIRI. Наша группа разрабатывает решения на основе искусственного интеллекта в медицине. На днях стало известно, что мы заняли призовое, пятое место в конкурсе «MIDRC XAI Challenge: Decoding AI Decisions for Pneumonia on Chest Radiographs» с опытом участия в котором, мы хотели бы поделиться.

Читать далее

Pushy на пределе: рост и развитие WebSocket-прокси Netflix

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели1.8K

Pushy — это WebSocket‑сервер Netflix, который поддерживает долговременные WebSocket‑соединения с устройствами, на которых работает приложение Netflix. Благодаря этому данные с бэкенд‑сервисов можно отправлять на устройства по мере необходимости. При таком подходе нет нужды в постоянного опроса сервисов устройствами. За последние несколько лет Pushy пережил огромный рост, превратившись из сервиса для негарантированной доставки сообщений в неотъемлемую часть экосистемы Netflix. В этом материале вы узнаете о том, как мы развивали и масштабировали сервер Pushy, стремясь к тому, чтобы он хорошо справлялся со своими текущими обязанностями, и к тому, чтобы подготовить его к будущим нагрузкам. Он поддерживает сотни миллионов одновременных WebSocket‑подключений, доставляет адресатам сотни тысяч сообщений в секунду и удерживает стабильный уровень надёжности доставки сообщений в 99,999%.

Читать далее

Головоломки с балансом. Поиск фальшивой монеты (часть 1)

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели2.5K

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

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

Для начала проведём анализ проблемы.

Читать далее

Метод «Безумного Макса» для тренировки проектировщиков кастомных вычисляющих структур

Время на прочтение6 мин
Охват и читатели1.5K

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

Как натренировать такое умение? Для новых домашних работ в программе Школы Синтеза Цифровых Схем мы решили разодрать на блоки реальный процессор и дать студентам задачу собирать разные специализированные вычислительные устройства из этих блоков, примерно как герои фильма "Безумный Макс: Дорога ярости" собирали свои боевые драндулеты из частей реальных автомобилей.

В качестве первой жертвы мы выбрали ...

Рецепты TypeScript: перевод ключей объекта в camelCase

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.3K

Всем привет! С вами снова Костя Логиновских — ведущий разработчик из Cloud.ru. Я уже делился TypeScript-рецептами в предыдущих статьях — вот первая и вторая — и теперь хочу рассказать про еще один. Наши рецепты — это готовый код, который можно применить в конкретных ситуациях, а в некоторых случаях и подогнать ситуацию под код.

Сегодня в меню — функция на обычном TypeScript, которая преобразует тип объекта так, чтобы все ключи внутри него из snake_case стали camelCase. Жду всех под катом!

Смотреть рецепт

Создание двуязычных субтитров к видео, распознавание и перевод речи

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

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

В данном случае мы воспользуемся современными технологиями для решения нашей задачи.

Читать далее

Может ли машина мыслить?

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

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

Краткий курс в дело, я создаю сильный искусственный интеллект и рассказываю об этом. На научную работу не претендую, просто рассказываю свои мысли, как оказалось, это полезно.

Читать далее

Ближайшие события

Как финансовый аналитик может использовать нейросеть ChatGPT / ТОП-10 Промптов:

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели14K

Вы — финансовый аналитик, часто сталкиваетесь с большим объемом данных и задач, требующих точного и быстрого анализа? Думаю, да, но времени на выполнение дел всегда мало, и сил в том числе. Человечество придумало множество вещей, ускоряющих обыденные дела, чтобы времени было больше, но, к сожалению, его все равно нет. Но вот чудо: в ноябре 2022 года компания OpenAI выпустила ChatGPT — помощника, который всегда тут, всегда работает и всегда развивается. Время пришло, и на момент выкладки этой статьи все финансовые аналитики, да что греха таить, почти все офисные работники могут применять ChatGPT в своей работе, экономя время!

Чем поможем и что изучим:

- Что такое ChatGPT и как он работает

- Автоматизация отчетности

- Анализ данных

- Риск-менеджмент

- Подготовка презентаций

- Бенчмаркинг

И многое другое...

Читать далее

Зачем нам ИИ-агенты?

Время на прочтение8 мин
Охват и читатели2.5K
image


В этой статье я приведу некоторые доводы в пользу того, что при разработке LLM удобно прибегать к помощи интеллектуальных агентов (ИИ-агентов). Так удаётся переходить к решению всё более сложных задач. Под катом много интересного!
Читать дальше →

Разбираем алгоритм полнотекстового поиска BM25

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.5K

BM25, или Best Match 25 — это широко используемый алгоритм полнотекстового поиска. Среди прочего, он по умолчанию применяется в Lucene/Elasticsearch и SQLite. В последнее время в рамках «гибридного поиска» часто начали комбинировать полнотекстовый поиск и поиск по схожести векторов. Мне захотелось понять, как работает полнотекстовый поиск и в частности BM25, поэтому в этой статье я постараюсь разобраться в этом.

Читать далее

Двухлинейный полный сумматор (на данной плате проявил себя как самый надёжный из испытанных с ним)

Время на прочтение9 мин
Охват и читатели1.5K

В этот разрезультатом стал двухлинейный сумматор. Намучался с ним достаточно — не одну неделю разрабатывал, в процессе какие только монстры не получались, но итогом вполне удовлетворён. Внушает надежды, что на его базе модно создать асинхронный триггер, который вообще будет в корне отличаться от предшественников. Объективных тестбенчей в сравнениях произвести не удалось по непонятным причинам — сначала они получились, но вечером следующего дня картина тестбенчей в корне изменилась, попробовал обойти трудности надстройкой над тестовой схемой — но увы, сигнал почему‑то не отслеживается. Буду искать ошибки пару вечеров, а пока просто расскажу о том как собственно всё обстоит. Приступил сразу после предшествующих публикаций, разумеется всё в свободное время, пару недель вечеров было потрачено на попытки сократить цепь звеньев, потому как было ясно, что последовательная цепь лучше чем имеется на настоящий момент не получится. И вот однажды начиркал на клочке бумаги основу, а потом доработал в симуляторе. Получилось это, постил тут

Читать далее

OSDEV: Разработка аллокатора на С++ часть 2: Слияние блоков за константное время. Юнит тест для аллокатора

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели1.1K

Приветствую, уважаемый читатель!

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

Читать далее

Создаём простой копирующий сборщик мусора

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели4.1K

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

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

Как российские разработчики заставили GPT предсказывать биржевые котировки

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели11K

18 мая 2024 на конференции «Тюльпаномания» Тихон Павлов, количественный аналитик «Финансовой компании Викинг» раскрыл секрет использования GPT-4 для прогнозирования биржевых котировок. Тема разделила аудиторию на скептиков и энтузиастов, породив жаркие дебаты о будущем трейдинга. Никто не остался равнодушным.

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

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

Прежде чем начнем погружаться в алхимию XXI века (где вместо превращения свинца в золото, мы превращаем массивы данных в профит), мы хотим пригласить вас на следующую конференцию ФК Викинг «Профессиональные инвестиции 2024: Визионерство», которая пройдет 14 декабря 2024 в Москве. На ней Тихон и другие спикеры продолжат удивлять вас актуальными докладами. Регистрация на мероприятие по ссылке fkviking.com/profinvest24.  

Давайте вернемся к теме ИИ.

Читать далее

Вклад авторов