Как стать автором
Поиск
Написать публикацию
Обновить
60
0
Илья Шутов @i_shutov

Data Science

Отправить сообщение

От React всё так же веет безумием, но все об этом молчат

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров44K

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

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

Читать далее

Прощайте, базы данных, да здравствуют векторные базы данных

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров95K

Революция в области искусственного интеллекта переформатирует все отрасли нашей жизни, с одной стороны обещая невероятные инновации, а с другой ー сталкивая нас с новыми вызовами. В безумном потоке изменений эффективная обработка данных становится приоритетом для приложений, на основе больших языковых моделей, генеративного ИИ и семантического поиска. В основе этих технологий лежат векторные представления (embeddings, дальше будем называть их Эмбеддинги), сложные представления данных, пронизанные критической семантической информацией.

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

Читать далее

Конфаундинг, или как аналитику попасть в ловушку

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

Вы построили свою модель: p-value в порядке, R² впечатляет, вот только эффект — мнимый. Причина? Иногда вы упустили какую-то переменную. Иногда добавили лишнюю. Иногда включили ту, которая полностью поменяла ваш вывод. Настало время познакомиться с самым изощрённым убийцей аналитических выводов — конфаундингом.

Читать далее

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

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров19K

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

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

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

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

Читать далее

Шпаргалка: fixture в pytest

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров37K

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

Читать далее

gRPC vs REST, что выбрать для нового сервера?

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

Всем приветы. А вы писали новый сервер с нуля? Какие технологии использовали? А рассматривали какие-либо варианты кроме старого доброго REST ? А что есть еще что-то ? С такими вопросами я когда-то пришел к своему лиду.  Да, для меня было открытием, что можно использовать не только REST для обмена сообщениями между сервером и клиентом. Ах да, конечно я знал про SOAP, но использовать его уж очень не хотелось. Оказалось, что можно попробовать использовать Thrift или например gRPC. От Thrift пришлось отказаться по ряду причин, которые не сильно важны в данной статье. Кстати, возможно Thrift это именно то что вам нужно. 

Так что же такое gRPC и в чем его отличие от, уже ставшего классическим, REST? Лучше ли gRPC? Может gRPC это снова хипстерская технология, которую все скоро забудут?

   Не для кого ни секрет, что REST доминирует в современном мире API, особенно, когда речь идет о веб-приложениях и инфраструктурах, на основе микросервисов. Мало кто даже вспомнит, про то что микросервисы могут общаться по другому. Это наверное самый популярный ответ на собеседовании. Да если добавить еще feign клиента из Spring, то получается совсем красота и минимальные трудо затраты. Но для определенного набора сценариев использования, модель gRPC начала играть небольшую, но важную роль. Давайте попробуем разобраться, когда же нам стоит использовать REST, а когда gRPC.

Read more gRPC vs REST

Вперед в будущее: Wayland против X11

Уровень сложностиСредний
Время на прочтение38 мин
Количество просмотров63K

Доброго времени суток, дорогие читатели! Сегодня я затрону одну интересную тему — графические дисплейные сервера и протоколы в Linux. В этой статье я расскажу вам о архитектуре X11 и Wayland, историю их создания и наконец-то сделаем вывод: Иксы на мороз, или вейланд на помойку?


Еще в далеком 2016 году вышла Fedora 25 с окружением GNOME 3.22 на базе дисплейного сервера Wayland. А в RHEL 10 выкинут X11 на мороз. Релиз RHEL 10 намечен на 2025 год, CentOS Stream 10 — на 2024 год. Для обеспечения работы приложений, требующих X11, будет использоваться XWayland. Таким образом, в 2029 году (к моменту окончания первого этапа поддержки RHEL 9) стоит ожидать появление первого аппаратного обеспечения, не поддерживающего X11.


И как я думаю — будущее за Wayland. Но пока X11 является стандартом. Давайте разберем это!


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

Исторический момент: ChatGPT обрёл «суперсилу Wolfram»

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров34K

Четвёртая версия ChatGPT одних заставила пищать от восторга, а других повергла в уныние. Кто-то уже нашёл этой системе множество творческих применений, а кто-то пророчит, что эта нейросеть лишит работы кучу людей. Теперь возможности ChatGPT стали ещё шире: систему интегрировали с Wolfram | Alpha, легендарным движком для вычисления ответов в самых разных областях знания. Мы перевели для вас огромную подробную статью об этом от одного из разработчиков Wolfram | Alpha.

Читать далее

Марвин Мински «The Emotion Machine»: Глава 1 «Настроения и Эмоции»

Время на прочтение7 мин
Количество просмотров4.8K
Отец искусственного интеллекта размышляет о том, как сделать машину, которая бы гордилась нами. Марвин Мински был довольно жестким ученым и то, что он своим «скальпелем познания» исследует тему чувств и эмоций, что же делает нас людьми, довольно интересно и полезно. Книга — отличный образец того, как «ИТишным подходом» попробовать осмыслить «человеческое»: ценности, идеалы, любовь, боль, здравый смысл.

image
Предыдущий параграф

§1-3 Настроения и Эмоции

«Если кто-либо попытается найти как называется каждая из них (эмоций), для которых человеческое сердце является местом нахождения, каждая раса людей нашла имена для некоторых оттенков чувств, в то время, как другие расы оставили некоторые оттенки без внимания… все виды группировок возможны, из-за выбора базисного чувства, на котором основываются все остальные. Вопрос в том, действительно ли эффект поиска оттенков эмоций является результатом случайной группировки, или этот процесс подходил конкретным целям лучше всего? „
— Уильям Джеймс в Принципах Психологии (Principles of Psychology ) (текст имеется лишь в оригинальном труде на стр. 485)
Иногда вы находитесь в состоянии, при котором окружающий мир кажется весёлым и ярким. В другое время (конечно, при условии, что ничего не изменилось) всё кажется скучным и мрачным, а ваши друзья говорят, что вы впали в депрессию. Почему у нас есть такие состояния разума – говоря иначе настроения, чувства, или диспозиции – и что вызывает этот странный эффект? Вот некоторые фразы, которые дают словари для определения слова «эмоция»:

  • Субъективный опыт сильного переживания.
  • Состояние психического возбуждения или беспокойства.
  • Психическая реакция, связанная с состоянием тела.
  • Более субъективное, чем сознательное влечение.
  • Часть сознания, которое включает в себя чувства.
  • Нерациональный аспект рассуждений.
Читать дальше →

Хуже потопа, страшнее пожара: как подготовить свои бэкапы к визиту вируса-шифровальщика

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

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

Вирусы-шифровальщики (Ransomware) — это кошмар практически для каждой первой компании. Все чаще злоумышленники шифруют данные, приводя бизнес крупных организаций к простоям, значительным финансовым убыткам и репутационным потерям. И как часто оказывается, только лишь наличие резервной копии не защищает бизнес от подобных угроз, если само по себе резервное копирование спроектировано неверно или без учета современных опасностей.

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

Читать далее

git bisect: путешествие по времени и багам

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

Добрый день, меня зовут Павел Поляков, я Principal Engineer в каршеринг компании SHARE NOW, в Гамбурге в ?? Германии. А еще я автор Telegram-канала Хороший разработчик знает, где рассказываю обо всем, что должен знать хороший разработчик.

Сегодня я хочу поговорить про git bisect , инструмент, который помогает найти момент, когда появился баг. Считаю, что Middle+ разработчики должны иметь его в своем арсенале. Это перевод оригинальной статьи.

Читать далее

О динамическом программировании на пальцах

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров57K

Как динамическое программирование может упростить нашу жизнь? Как можно оптимизировать решение задач?

Сегодня мы разберем динамическое программирование на пальцах с примерами на Python!

Усаживайтесь поудобнее, леди и джентльмены!

Вперед!

Ю. Шмидхубер: «Прекрасно быть частью будущего искусственного интеллекта»

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


В последние дни сентября в Амстердаме проходила конференция по графическим технологиям GTC EUROPE 2016. Профессор Юрген Шмибдхубер представлял свою презентацию, как научный директор IDSIA, швейцарской лаборатории, где он с коллегами занимается исследованиями в области искусственного интеллекта.

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

RAG (Retrieval Augmented Generation) — простое и понятное объяснение

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

Краткое и понятное описание подхода RAG (Retrieval Augmented Generation) при работе с большими языковыми моделями.

Читать далее

50 оттенков линейной регрессии, или почему всё, что вы знаете об A/B тестах, помещается в одно уравнение

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

Всем привет! A/B тестирование уже давно стало стандартом в проверке гипотез и улучшении продуктов в X5. Но, как ни странно, многие из «модных» техник, которые применяются в A/B тестировании, на самом деле, не что иное, как вариации старой доброй линейной регрессии. 

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

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

Читать далее

Интегральные резисторы или О чем молчат в спорах про проектные нормы

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров15K

Споры про проектные нормы, их необходимость или ненужность, их реалистичность и сравнение между собой нанометров разных фабрик всегда были частью микроэлектронного коммьюнити. В России эти споры еще острее, потому что в ход идут доводы про импортозамещение, технологическую независимость и много других очень важных и умных слов. В этих разговорах, правда, постоянно упускается, что размеры транзисторов действительно критичны только для современных цифровых микропроцессоров, а вот для других классов микросхем, “где тонкие нормы не нужны”, техпроцесс должен обладать рядом других полезных свойств, помимо факта своего наличия, чтобы быть нужным и успешным. В разработку и обновление “устаревших” техпроцессов фабриками вкладываются существенные деньги, и более навороченный "толстый" техпроцесс – серьезный довод для разработчика уговаривать начальство сменить фабрику для нового проекта.

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

Правильно, ничего! Но есть нюансы.

Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров35K

Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.

В этой статье мы изучим, как при помощи самого большого сборника свободных библиотек FFmpeg научиться кодировать видео самому именно под ваши задачи.
Читать дальше →

Git. Скачем между ветками как древесные лягушки

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

Статей на тему много, но, видимо, недостаточно. Последние 10 лет в 4-х разных компаниях время от времени слышу от коллег:

— Не могу пошарить экран с кодом, у меня другая ветка сейчас.

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

— Стаскивать ветку для просмотра ПР? Это же неудобно, надо "стэшить" изменения, ветку переключать.

Читать далее

Transformer в картинках

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

В прошлой статье мы рассматривали механизм внимания (attention) – чрезвычайно распространенный метод в современных моделях глубокого обучения, позволяющий улучшить показатели эффективности приложений нейронного машинного перевода. В данной статье мы рассмотрим Трансформер (Transformer) – модель, которая использует механизм внимания для повышения скорости обучения. Более того, для ряда задач Трансформеры превосходят модель нейронного машинного перевода от Google. Однако самое большое преимущество Трансформеров заключается в их высокой эффективности в условиях параллелизации (parallelization). Даже Google Cloud рекомендует использовать Трансформер в качестве модели при работе на Cloud TPU. Попробуем разобраться, из чего состоит модель и какие функции выполняет.


Впервые модель Трансформера была предложена в статье Attention is All You Need. Реализация на TensorFlow доступна как часть пакета Tensor2Tensor, кроме того, группа NLP-исследователей из Гарварда создали гид-аннотацию статьи с реализацией на PyTorch. В данном же руководстве мы попробуем максимально просто и последовательно изложить основные идеи и понятия, что, надеемся, поможет людям, не обладающим глубоким знанием предметной области, понять данную модель.

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

Архитектура PlayStation 3, часть 1: Cell

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

В 2006 году Sony выпустила долгожданную игровую консоль "следующего поколения". Это блестящая (хоть и тяжелая) машина, чья базовая аппаратная архитектура развивает идеи Emotion Engine из PS2, то есть фокусируется на векторных вычислениях для достижения высокой производительности, даже ценой сложности.

В то же время, их новый "суперпроцессор", Cell Broadband Engine, был разработан в эпоху кризиса инноваций. Он должен будет идти в ногу с развитием тенденций в области мультимедиа.

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность