Pull to refresh
59
0.1
Денис Пешехонов @Enfriz

Фулстек разработчик: Vuejs, .NET

Send message

Он победил LLM RAG: реализуем BM25+ с самых азов

Level of difficultyEasy
Reading time18 min
Views15K

Привет, меня зовут Борис. Я автор телеграм канала Борис опять. Периодически мне на глаза попадается что-то интересное и я глубоко в этом закапываюсь. В данном случае это алгоритм поиска BM25+, который победил продвинутые методы векторного поиска на LLM.

Разберемся, что это за зверь и почему он так хорошо работает. В этой статье мы реализуем его на Python с нуля. Начнем с самого простого поиска, перейдем к TF-IDF, а затем выведем из него BM25+.

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

Код доступен в Google Collab.

Читать далее
Total votes 33: ↑32 and ↓1+39
Comments13

Разработка hexapod с нуля (часть 8) — улучшенная математика передвижения

Reading time6 min
Views11K

Всем привет! В результате перехода на удаленную работу у меня появилось больше свободного времени на разработку гексапода (+2 часа в день за счет экономии на дороге). Я наконец-то смог сделать универсальный алгоритм для построения траектории движения в реальном времени. Новая математика позволила реализовать базовые движения путем изменения всего двух параметров. Это очередной шаг к внедрению «автопилота». В этой статье я постараюсь подробно рассказать о новой математике и как это вообще работает. Будет много картинок и gif.

Этапы разработки:

Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника
Часть 6 — переход на 3D печать
Часть 7 — новый корпус, прикладное ПО и протоколы общения
Часть 8 — улучшенная математика передвижения
Часть 9 — завершение версии 1.00
Total votes 24: ↑24 and ↓0+24
Comments33

Пример микросервисной архитектуры с Saga на MassTransit

Reading time9 min
Views18K

Привет, Хабр! В общем работаю я значит Архитектором Программных Решений. Мы тут монолиты на микросервисы переводим поэтому я решил для наших разработчиков написать пример проекта с сагой и за одно может оно и вам понадобиться поэтому выложил сюда. Статья будет дополняться по мере поступления вопросов от вас и от наших разработчиков

Читать далее
Total votes 13: ↑6 and ↓7+1
Comments25

Модель нелинейной аппроксимации ретеншена

Level of difficultyMedium
Reading time31 min
Views4.3K

Эта статья - вторая в серии, после статьи Ретеншен — основная метрика F2P игры, вероятностный подход

Здесь я рассматриваю ретеншен не как скалярную случайную величину, а как случайный временной ряд. Далее создаю модель нелинейной аппроксимации метрики, учитывающую сезонность и выпуск патчей.

Рассмотренная методика реализована в виде Jupyter-ноутбука retention-rate-approximator, выложенного в общий доступ.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments3

Отгадай слово: как мы создали игру с элементами машинного обучения и вышли в ноль за 2 месяца

Level of difficultyMedium
Reading time12 min
Views12K

Как думает искусственный интеллект? Попробовать разобраться в его логике можно в игре от менторов AI Talent Hub, онлайн-магистратуры Napoleon IT и ИТМО, и студентов ИТМО «Отгадай слово». За два месяца в нее сыграли уже более 107 тысяч уникальных пользователей, а количество подписчиков одноименного телеграм-канала увеличилось до 5 000.
Что делает игру такой популярной, как проект окупился без затрат на продвижение и рекламы на сайте, а также почему при работе с ИИ не избежать ошибок? Рассказываем в статье. 

Читать далее
Total votes 33: ↑33 and ↓0+33
Comments23

Шесть типов самых продаваемых игр

Reading time11 min
Views19K

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

Читать далее...
Total votes 22: ↑20 and ↓2+22
Comments37

Как работает неточное сравнение строк

Reading time7 min
Views28K

https://fakt309.github.io/thisisthewall/

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

Но вот что если мы хотим не просто получать дискретное значение (true / false), а дифференцированное, например в процентах. Ведь согласитесь строки test и testing гораздо ближе к друг другу, чем test и abcd. Для данной проблемы существует множество решений, мы поговорим о самый популярных алгоритмах (также об их модификациях):

Расстояние Хэмминга

Расстояние Левенштейна

Сходство Джаро — Винклера

Коэффициент Сёренсена

Читать далее
Total votes 45: ↑42 and ↓3+44
Comments43

«У нас воруют — мы находим, процент примерно одинаковый». Как устроена система безопасности шеринга самокатов Юрент

Reading time7 min
Views85K

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

Мы попросили директора по IT Юрент Андрея Калинина рассказать о том, почему пенсионеры угоняют самокаты, сталкиваются ли в компании с киберугрозами и как устроена система безопасности шеринговых сервисов.

Его рассказ под катом
Total votes 109: ↑102 and ↓7+125
Comments274

React Hooks простыми словами

Reading time10 min
Views95K

О хуках в фронтенд-разработке на Хабре писали уже не раз, и в этой статье мы не сделаем великого открытия. Наша цель другая – рассказать про React Hooks настолько подробно и просто без трудной терминологии, насколько это возможно. Чтобы после прочтения статьи каждый понял про хуки всё. Эта статья будет полезна как начинающим React-разработчикам, так и тем, кто хочет, не уходя в глубины документации, получить практическую информацию в сжатом виде. 

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments21

Фантастические миры, где люди зависят от искусственных интеллектов

Reading time5 min
Views16K

Писатели-фантасты на протяжении многих лет регулярно обращаются к сюжетам про «восстания машин», но по актуальности они, кажется, сейчас отходят на второй план. Зато можно рассмотреть другую интересную сторону этой медали: историю о том, как люди сами отдают контроль над своими жизнями в руки искусственных интеллектов и алгоритмов. Просто потому что они точнее, надежнее и не думают о собственной выгоде. Если мы уже можем читать реальные новости про цифрового прокурора в Шанхае и выпускников, которые готовы доверить искусственным интеллектам выбор своей профессии, то почему бы фантастам не рассмотреть возможные изъяны и риски? И они действительно уже делали это не раз! Вот несколько ярких примеров от классики и до наших дней.

Читать далее
Total votes 28: ↑26 and ↓2+31
Comments23

Букварь по F# для любопытствующих C#-разработчиков

Reading time13 min
Views10K

Предисловие


Мой переход на F# в качестве излюбленного языка был слегка усеян препятствиями. Примерно через десять лет почти постоянного использования C# у меня пробудилось любопытство, когда я услышал об этом другом #-языке. Моя первая реакция была той, которую с тех пор видел у других C#-разработчиков — отрицание, — C# является хорошим языком, и мне с ним комфортно, так зачем тратить силы на изучение другого? Но любопытство осталось — и, по крайней мере, несколько раз выделил вечер, чтобы прочитать базовый вводный пост и попытаться написать каких-нибудь ката на F#. Это не прижилось, потому что я просто чувствовал себя потерянным и не мог воплотить свой опыт использования C# в ощущение даже отдаленного комфорта с F#. Достаточно легко опустить фигурные скобки, немного замяться, чтобы не забыть let вместо var — но как сделать то, что я хотел?


Тогда я этого не осознавал, но, на мой взгляд, наблюдал потенциальный недостаток в том, как F#-разработчики говорят, описывают и представляют свой язык внешнему миру. Существует обширная база материалов обо всех возможностях и функциональности F#: Algebraic Data Types, Exhaustive Matching, Type Inference и т.д. Есть много статей, посвященных тому, как решать широкий спектр задач с помощью F#. Но, как мне кажется, не хватает чего-то вроде следующего: некоторых указаний о том, как взять то, что вам уже удобно в C#, и перевести их на F#. Так что мне интересно, можем ли мы как-то закрыть этот недостаток.

Читать дальше →
Total votes 24: ↑23 and ↓1+31
Comments13

Пишем настоящий шум Перлина

Reading time7 min
Views73K
По поисковому запросу шум перлина сразу попадается этот перевод на Хабре. Как справедливо заметили в комментариях к публикации, речь идёт вовсе не о шуме Перлина. Возможно, автор перевода и сам был не в курсе.

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

Обычный шум (из той самой статьи):
image

Шум Перлина:
image

И увеличением количества октав первую картинку ко второй никак не приблизишь. Я не буду описывать достоинства шума Перлина и область его применения (потому что статья о программировании, а не о применении), а постараюсь объяснить как он реализован. Думаю, это будет полезно многим программистам, ведь хакерские исходники Кена Перлина мало объясняют даже при наличии комментариев.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments18

Information

Rating
3,041-st
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity