Обновить
220.63

Алгоритмы *

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

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

Обзор паттернов хранения деревьев в реляционных БД

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

Всем привет! Меня зовут Пантелеев Александр и я бекенд разработчик в компании Bimeister. Постараюсь описать исчерпывающе, кратко и понятно суть основных паттернов хранения деревьев в реляционных базах данных. Надеюсь, что статья будет полезна тем, кто до сего момента не сталкивался с такими паттернами, и станет отправной точкой в их понимании.

Читать далее

Проектируем идеальную систему реактивности

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

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


Main Aspects of Reactivity

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


Вторая стадия принятия мола в своё сердце: всё ещё пригорает, но уже не можешь остановиться.


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


Повествование будет долгим, но если вы продержитесь до конца, то сможете смело идти к начальнику за повышением. Даже если вы сам себе начальник.

Читать дальше →

Основы линейной алгебры для 3D-приложений. Урок 2

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

Продолжаем разбираться с линейной алгеброй для 3D-приложений вместе Александром Паничевым — ведущим разработчиком логики в UNIGINE. В прошлом уроке мы поговорили про предназначение математики в трехмерной графике и вспомнили основные операции над векторами. А в этом уроке переходим к более сложным темам: углы Эйлера и кватернионы.

Читать далее

Яндекс выложил YaLM 100B — сейчас это крупнейшая GPT-подобная нейросеть в свободном доступе. Вот как удалось её обучить

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

Больше примеров — в конце поста

В последние годы большие языковые модели на архитектуре трансформеров стали вершиной развития нейросетей в задачах NLP. С каждым месяцем они становятся всё больше и сложнее. Чтобы обучить подобные модели, уже сейчас требуются миллионы долларов, лучшие специалисты и годы разработки. В результате доступ к современным технологиям остался лишь у крупнейших IT-компаний. При этом у исследователей и разработчиков со всего мира есть потребность в доступе к таким решениям. Без новых исследований развитие технологий неизбежно снизит темпы. Единственный способ избежать этого — делиться с сообществом своими наработками.

Год назад мы впервые рассказали Хабру о семействе языковых моделей YaLM и их применении в Алисе и Поиске. Сегодня мы выложили в свободный доступ нашу самую большую модель YaLM на 100 млрд параметров. Она обучалась 65 дней на 1,7 ТБ текстов из интернета, книг и множества других источников с помощью 800 видеокарт A100. Модель и дополнительные материалы опубликованы на Гитхабе под лицензией Apache 2.0, которая допускает применение как в исследовательских, так и в коммерческих проектах. Сейчас это самая большая в мире GPT-подобная нейросеть в свободном доступе как для английского, так и для русского языков.

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

Совершенный алгоритм. Графовые алгоритмы и структуры данных

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

Вторая книга (Графовые алгоритмы и структуры данных) из серии Совершенный алгоритм Тима Рафгардена является продолжением, по сути, единого цикла лекций. Автор не только сохранил стиль первой книги, но и часто ссылается на материал, который был в ней преподнесён. Стиль обоих книг я считаю очень удачным. А именно, детальное и всестороннее изложение небольшого количества тем доступным языком.

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

Читать далее

Гипотеза Коллатца. Шаг в сторону

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

описание гипотезы Коллатца в вики
https://ru.wikipedia.org/wiki/Гипотеза_Коллатца
цитирую :
Берём любое натуральное число N. Если оно чётное, то делим его на 2,
а если нечётное, то умножаем на 3 и прибавляем 1 (получаем 3*N + 1).
Над полученным числом выполняем те же самые действия, и так далее.
Гипотеза Коллатца заключается в том, что какое бы начальное число N мы ни взяли, рано или поздно мы получим единицу.

Попробуем сделать шаг в сторону и исследовать преобразование с вычитанием 1
т.е. умножаем на 3 и вычитаем 1 (получаем 3*N - 1).
результат делим на 2 до нечетного значения и т.д.
Результат с вычитанием 1 состоит в том, что есть несколько точек остановки, а не только в единице.
Примеры c преобразованием вида 3*N-1 :

Читать далее

Обучение с подкреплением: сети Deep Q

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

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

Читать далее

Про настройку гиперпараметров ансамблей моделей машинного обучения

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

Привет Хабр!

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

А мемы про гиперпараметры?

Пандемия данных. Почему в будущем медицина будет всё больше основываться на данных?

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

Методы работы с большими данными всё активнее применяются в медицинской сфере: биоинженерии, биостатистике и биоинформатике, медицинской физике и аналитике. Вместе с экспертами онлайн-магистратуры МФТИ «Прикладной анализ данных в медицинской сфере» разбираемся, как Data Science интегрирует медицину будущего в практики настоящего.

Читать далее

Как c помощью Аналитики набрать миллионы подписчиков на Youtube

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

«Никто ничего не знает»  - знаменитая цитата Уильяма Голдмана, сказанная в 80х. Имелась ввиду неспособность Голивудских продюсеров предугадывать успех или провал фильма в прокате. Сам Голдман - дважды обладатель Оскара и один из самых великих сценаристов в истории кинематографа. Короче, ему можно верить. 

С тех пор прошло 40 лет. Появился интернет. В Интернете появилось видео. Однако, в отличие от фильма в кинотеатрах, успех ролика в интернете можно предугадать с большой вероятностью. 

Особенно, успех ролика на Ютуб. 

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

Читать далее

Математическое решение задачи о матрице «змейкой»

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

Настоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/)  и также посвящается особо извращенным способам заполнения двухмерных массивов согласно определенному шаблону. Создание громоздких, неуклюжих формул, без применения таких милых сердцу программиста конструкций как циклы и условия оказалось увлекательным занятием. В связи с этим, автор, уподобляясь некоторым государственным чинам (вспоминаем бородатую шутку про разницу между депутатом и программистом),  решил потратить кучу драгоценного времени на очередной интересный, но, увы, бесполезный в практическом плане проект. Речь идет о вычислении математическим путем элементов массивов, заполняемых змееподобной траекторией, или проще говоря – «тещиных» матриц.

Различают два класса этих самых матриц: обычные (злобные) и диагональные (крайне злобные).

Первый класс двухмерных массивов (здесь и далее речь идет только о квадратных матрицах) заполняется натуральными числами от 1 до N2 с левого верхнего угла построчно:

Читать далее

Простейшая модель броуновского движения и фракталы

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

Этот пост является выжимкой из моей курсовой работы по исследованию броуновского движения. Хотя задание было сформулировано как простое написание программы для одномерного и двумерного случаев броуновского движения, мне показалось интересным рассмотреть простейшую дискретную аппроксимацию броуновского движения - одномерное случайное блуждание - через фрактальную геометрию и определить его фрактальную размерность.

Читать далее

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

Интерактивный учебник для подготовки к алгоритмической секции собеседования

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

Собеседования в крупные IT-компании почти всегда содержат алгоритмическую секцию — даже если вы собеседуетесь на позицию, в работе на которой алгоритмы возникать вряд ли будут. Ниже мы приводим пример задачи, с которой вы можете столкнуться на вашем следующем интервью. Мы расскажем, как эта задача решается, но мы настоятельно рекомендуем вам читать решение только после того, как вы попробуете решить задачу самостоятельно: во-первых, это отличная тренировка; во-вторых, вы лучше запомните решение, если придумаете его сами (не отказывайте себе в этом удовольствии!); в-третьих, даже если вы подумаете над задачей, но не решите её, время не будет потеряно: прочитав потом решение, вы лучше его поймёте и оцените его красоту.

Итак, вот сама задача

Нейронная сеть для ведения боевых действий. Какая война может быть с технологически развитой страной?

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

Ежеминутные военные сводки наших СМИ непроизвольно в голове программиста преобразуются в технологические решения. Заранее скажем, что мы не выдаем военных тайн ничьих стран, а только излагаем наше видение автоматизации процесса. Хотя всегда надо помнить поговорку от компании Спецлаб: если к тебе пришла умная мысль, значит, она уже кем-то реализована.

В атаку!

Почему идентификация лиц невозможна — так, как этого хочет заказчик?

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

Кто все эти люди и кто из них я?

Ща разберемся?

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

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

Привет, Хабр! Я Алексей, data scientist в Сбере, отвечаю за AI создание персонализированного маркетингового контента для разных каналов коммуникаций.

Как и другие подразделения Сбера, мы в трайбе «Массовая персонализация» создаём много текстового контента. Это тексты для СМС, пуш-уведомлений, e-mail, рекламные баннеры и прочее для СберБанка. (Да-да, это мы шлём вам эсэмэски!)

Мы хотели сделать этот процесс эффективнее — как по продажам, так и по затратам на производство контента. После того как SberDevices выкатили ruGPT-3, мы решили обобщить накопленные за несколько лет данные и доверить AI написание текстов для наших клиентов.

Получилось ли это? Спойлер: да, ещё как. Но обо всём по порядку.

Читать далее

Алгоритм преобразования НКА в эквивалентный ДКА

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

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

Цель данной статьи: познакомить Вас с алгоритмом построения детерминированного конечного автомата из недетерминированного конечного автомата. И сразу куча вопросов: зачем понадобилось данное преобразование, что такое конечный автомат, что такое ДКА и НКА и зачем мне это знать? Начнём с мотивации.

Читать далее

Как Яндекс Карты с помощью отзывов улучшают поиск организаций

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


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

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

Математика для 3D-приложений. Урок 1

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

Это первый, вводный урок по линейной алгебре для разработки 3D-приложений от Александра Паничева — ведущего разработчика логики в UNIGINE. В этом уроке разберемся зачем 3D-разработчикам вообще нужна линейная алгебра, а также рассмотрим основные операции над векторами.

Читать далее

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