Мы с Крисом недавно «с нуля» буквально за пару часов создали механизм поиска для моего блога. Основную часть проделал именно Крис, так как до этого с word2vec я был знаком лишь отдалённо.
Разработанный нами поисковик основывается на векторных представлениях (эмбеддингах) слов. Принцип здесь следующий. Функция получает слово и отображает его в N-мерное пространство (в данном случае N=300), где каждое измерение отражает определённый оттенок смысла. Вот хорошая статья (англ.) о том, как обучить собственную модель word2vec, и её внутреннем устройстве.
Суть работы созданного нами поиска заключается в преобразовании моих статей, а точнее составляющих их слов, в эмбеддинги, сохраняемые в общем пространстве. Затем при выполнении конкретного поиска текст его запроса преобразуется аналогичным образом и сопоставляется с векторами статей. В результате этого сопоставления, используя метрику косинусного сходства, мы ранжируем статьи по их релевантности запросу.
Уравнение ниже может показаться пугающим, но в нём говорится, что косинусное сходство, представляющее косинус угла между двух векторов cos(theta), определяется в виде скалярного произведения, поделённого на произведение величин каждого вектора. Разберём всё это подробнее.
Читать далееЯ ненавижу руками создавать бойлерплейты. Любые. Нет, LLM-ки тут тоже не помогут: им надо писать промпты (а потом ещё проверять, что оно там нагенерировало). Мне всегда хотелось, чтобы остов приложения задавался конфигурацией, а я бы только добавлял бизнес-логику. Буквально, в уже сгенерированные для неё места.
Именно в такой парадигме написана моя библиотека finitomata, в которой конфигурация конечных автоматов задаётся текстовым представлением (PlantUML/Mermaid), а бизнес-логика просто распихивается по колбэкам переходов. Но мне этого оказалось мало, и я решил обернуть в такие же абстракции хранение и подписку на изменения.
Так родилась библиотека (пока не опубликована, доступна только в исходниках) persistomata.
Даже не библиотека, а (простите) фреймворкДесятки тысяч компаний используют Ansible для управления конфигурациями и автоматизации ИТ-процессов. И мы подготовили подборку материалов, которые помогут познакомиться с этим инструментом — от базовых руководств уровня «с чего начать» до продвинутых практик по написанию эффективных плейбуков.
Читать далее
Чем больше пишешь ретроспектив, тем отчётливее понимаешь, как в творчестве многое зависит от удачи. Но даже при таких исходных история появления и успеха французской RPG под названием Clair Obscure: Expedition 33 — это чудо из чудес. Как команда ноунеймов нашла друг друга, завоевала армию игроков и что данный феномен значит для игровой индустрии? На эти и не только вопросы давайте найдём ответы вместе.
Читать далееПривет, Хабр! Меня зовут Сергей Игнатущенко. Я ведущий разработчик C# в МТС, а еще обожаю путешествия. Как раз недавно побывал на Филиппинах и остался дико доволен. Сегодня расскажу, как организовал поездку, во сколько обошлись билеты и к каким минусам на островах стоит подготовиться. Надеюсь, мой опыт поможет спланировать классное путешествие. Начнем!
Читать далееЕсли наша Солнечная система кажется стабильной, то это только с точки зрения короткой жизни человека. Земля вращается, ночь сменяет день, Луна перемещается через свет и тень, а Солнце висит в небе. Но на самом деле всё движется и влияет друг на друга, и тонкий баланс, который мы наблюдаем, может легко разрушиться. Могли ли пролетающие звёзды нарушить орбиту Земли и привести к резким климатическим изменениям в прошлом нашей планеты?
Звёздный пролёт [stellar flyby] – это событие, при котором другая звезда проходит достаточно близко к нашей Солнечной системе, чтобы вызвать в ней заметные изменения. Наш район в Млечном Пути относительно малонаселён, поэтому звёздные пролёты происходят реже, чем в других частях галактики. Но они всё же происходят.
Читать далееВсё самое интересное из мира кибербезопасности /** с моими комментариями.
Новости этой недели про то, как государство закручивает гайки и приближает нас к 1984, новые уязвимости, позволяющие получит root в linux, фейковая новость про утечку в 16 млрд. записей и другие только самые интересные и важные новости информационной безопасности.
Читать далееСегодня хочу рассказать вам о библиотеке yolo_detector — простой, удобной и производительной обёртке для использования моделей компьютерного зрения YOLO на языке Rust.
Читать далееВ этом материале я бы хотел поделиться инструкцией по установке Stable Diffusion и ComfyUI.
Изначально я писал это как туториал для себя (на случай, если придётся переустанавливать), но друзья просили поделиться туториалом и я подумал, что материал может быть интересен ещё кому-нибудь. Все это, конечно же, можно нагуглить, но только что уже это сделал, погуглил, початогепетил и собрал результаты в виде одной инструкции.
Читать далееЭта статья будет интересна тем хабравчанам, которые регулярно занимается силовыми тренировками. Если вы начали заниматься по моей программе, которую я публиковал в ноябре прошлого года (она получила много положительных отзывов, спасибо вам!), то к этому времени у вас может иссякать ваш newbie gains, и все все чаще начинаете слышать фразу "Хочешь расти дальше, нужно прогрессировать".
(А если вы еще не знаете, зачем заниматься силовыми, вот вам 7 железных причин для этого).
Хочешь быть сильным? Становись сильнее.
Хочешь накопить 12 млн за год? Откладывай каждый месяц по 1 млн.
Хочешь быть уверенным в себе? Становись увереннее по чуть-чуть каждый день.
Глупости, да?
Почему тогда великая силовая мудрость последних лет «Хочешь расти? Нужно прогрессировать» кажется логичной?
В этой фразе есть зерно… нет. Ведро зерен правды, но восприятие полностью искажено, с нарушением причинно-следственной связи.
Давай разбираться, что такое прогрессия, как ее создавать и использовать с умом.
Читать далееИсследователи вскрыли еще один фрагмент головоломки Болезни Паркинсона. Определенные клетки иммунитета проявляют необычную активность задолго до того, как проявляются конкретные симптомы, связанные с тремором. Это открывает путь к разработке более ранних диагностических инструментов и немного меняет мнение о первопричинах Болезни Паркинсона.
Читать далееВ программировании часто приходится писать программные компоненты, которые, в общем очень похожи друг на друга по своей структуре и API.
В заметке я представил простую утилиту r.exe для авто-замены токенов в файлах и названиях файлов.
Читать далееПредставляю vue-dnd-kit/components — готовые компоненты для быстрой разработки drag & drop интерфейсов в Vue 3!
В эпоху стремительного развития ИИ, привычка заглядывать в Википедию постепенно уходит — зачем читать целую статью, когда любой ответ можно получить за доли секунды от чат-бота?
Я решил переосмыслить этот тренд и вдохнуть новую жизнь в классический формат рубрик «Что было в этот день». Внутри описание, как мы с помощью игрового телеграм бота, Wikipedia API, GPT-моделей и Flux мотивируем читать людей википедию.
Устройство выходит за пределы простых вибраций и создаёт сложные осязательные ощущения
Современные технологии тактильной отдачи (haptic feedback) в основном ограничиваются простыми вибрациями. Но наша кожа намного чувствительнее — она способна воспринимать давление, растяжение, скольжение и другие типы механического воздействия.
Теперь инженеры из Северо-Западного университета (Northwestern University) представили новое устройство, способное с высокой точностью воссоздавать эти сложные осязательные ощущения. Исследование будет опубликовано в журнале Science.
Компактное, лёгкое и беспроводное устройство крепится на кожу и способно создавать силу в любом направлении, имитируя не только вибрации, но и растяжение, давление, скольжение и кручение. Комбинируя эти воздействия и варьируя их скорость, система создаёт реалистичную и многообразную тактильную картину.
Работает устройство от небольшой аккумуляторной батареи и подключается к VR-гарнитурам и смартфонам через Bluetooth. Благодаря малым размерам, оно может быть размещено в любом месте тела, объединено в массивы или встроено в уже существующие носимые устройства.
Разработчики считают, что новая технология откроет широкие перспективы: от усиления ощущений в виртуальной реальности до помощи людям с нарушениями зрения и слуха. Например, устройство может помочь «ощущать» музыку или распознавать текстуры при онлайн-шопинге.
Читать далееСоздаём key-value хранилище на Tarantool 3.x с шардингом и TTL. Пошаговая реализация, Docker! Код на GitHub.
Читать далееЭта статья поможет вам быстро написать API, используя Express и Prisma). Для этого вам понадобятся базовые знания работы с Node.js и понимания разработки реляционных баз данных
Читать далееКак обычный C++ разработчик решил разобраться с блокчейном — личный опыт создания простой реализации с нуля. Мини-история о том, что получилось, какие подводные камни встретились, и как эти знания можно применить в реальных проектах.
Читать далееВсем привет! Снова на связи Александр, автор проекта Peakline. Несколько дней назад я опубликовал здесь статью о своем «швейцарском ноже» для анализа тренировок, который я пилил в свободное время. Я ожидал пары конструктивных комментариев и, может быть, нескольких новых пользователей.
Я жестоко ошибался.
Узнать, как это сделано