Обновить
512K+

Python *

Высокоуровневый язык программирования

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

Open-source персистентная память для LLM

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

Задача, которая казалась тривиальной: научить LLM помнить, с кем она разговаривает. Пользователь пишет «я вегетарианец», а через три сообщения модель предлагает стейк-хаус. Знакомо?
Стандартные решения — обрезка истории, суммаризация, внешние векторные базы — всё это костыли. Я пошёл другим путём и сделал NGT Memory — модуль персистентной памяти с открытым исходным кодом.
В статье подробно расскажу про архитектуру, эксперименты и все найденные решения. Если строили чат-ботов или AI-агентов — будет интересно

Читать далее

В каждом JPEG зашита модель вашей сетчатки. Буквально

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

После того как я написал статью про то, что ваш монитор не умеет показывать бирюзовый и 65% видимых цветов для него просто не существуют, один мой знакомый (далекий правда от технической отрасли) спросил: «Окей, монитор врёт, а что тогда делает JPEG с оставшимися 35%?» И это хороший вопрос. Я полез в спеку, а через полчаса забыл, зачем вообще полез. Потому меня уже интересовало другое: ребята, которые в 1992-м финализировали этот стандарт, по сути заревёрсили человеческое зрение и запихнули его в алгоритм сжатия.

И я хочу вам про это рассказать, потому что это самый красивый кусок инженерии, который я видел. В той статье я разбирал, как мало мы на самом деле видим. Здесь — как мало нам на самом деле нужно видеть, чтобы мозг поверил, что видит всё. А потом я решил это проверить руками.

Читать далее

Бот для отправки графиков из Redash в Mattermost

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

Расскажу, как я автоматизировала регулярную отправку графиков из BI в мессенджер.

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

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

Читать далее

GIL в Python для senior interview

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

GIL — самая известная «фича» Python, о которой большинство разработчиков знают ровно одну фразу: «мешает многопоточности». Этого хватает для джуна, но не для сеньора.

Статья построена так, чтобы после её прочтения вы могли не только ответить на вопросы по GIL на senior-интервью, но и объяснить коллеге-стажеру, что происходит внутри интерпретатора, когда два потока пытаются одновременно изменить один список.

Читать далее

Когда CUPED не хватает: где помогает VWE

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

Когда A/B-тест не показывает эффект, это не всегда значит, что эффекта нет. Иногда он просто теряется в шуме метрики.

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

Код, графики и все результаты симуляции — в открытом репозитории.

Ниже разобраны две простые идеи:

Читать далее

Оптимизация сборки Python Docker образа: размер меньше на -43% (-57%)

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

Всем привет. Я Backend разработчик, в основном на Python и немного Go. Хотел бы рассказать про свой опыт оптимизации docker образов и написать некий «туториал». Он скорее будет полезен для разработчиков или начинающим DevOps. Для опытных DevOps инженеров, возможно будет мало интересного и полезного.

Читать далее

Автоматический поиск торговых сигналов с отправкой в Telegram: полный разбор Python-системы

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

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

В этой статье разбирается полностью автоматизированная система, которая:

Читать далее

Идемпотентность в backend: как перестать дублировать операции

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

Вы когда-нибудь получали два списания с карты за одну покупку? Или видели дважды созданный заказ после одного клика? Это не баг платёжной системы - это баг вашего кода. Имя этому баг - отсутствие идемпотентности.

Читать далее

Поиск с возвратом

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

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

Читать далее

Гайд: Как работать с форматом PARQUET

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

В прошлом году мы начали публиковать данные в каталоге «Если быть точным» в формате Parquet. Его придумали инженеры Twitter и Cloudera в 2013 году, и сегодня он стал стандартом хранения аналитических данных — его используют Google, Amazon, Netflix и большинство современных data-платформ. В этом гайде мы расскажем, как эффективно работать с данными в формате Parquet с помощью Python.

Читать далее

Как применяют LLM с RAG в экосистеме ML-моделей поддержки Лемана Тех? Кейс

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

С ростом числа обращений в Service Desk классические ML-решения перестали покрывать все сценарии. Что же с этим делать?

Привет, Хабр! Я — Дмитрий Терентьев, ведущий специалист по науке о данных в Центре компетенций сопровождения IT-продуктов. Работаю с данными больше восьми лет, последние четыре — в Лемана Тех. В этой статье по мотивам доклада с AiConf я расскажу об эволюции моделей машинного обучения в поддержке и как удалось дополнить экосистему поддержки LLM с RAG для человекообразных ответов по Wiki и интеллектуальной эскалации к живым специалистам.

Читать далее

Базовый минимум. Часть 4:  ИИ-агенты

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

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

В четвертой, завершающей части серии «Базовый минимум» разбирается, что такое ИИ-агенты, чем они отличаются от RAG-систем, как работает ReAct и зачем нужны мультиагентные системы. В конце будет показан простой воспроизводимый пример минимального ИИ-агента-помощника в путешествиях в Google Colab.

Читать далее

Зачем Паустовскому облака? Узнал точно с помощью Python

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

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

Читать далее

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

Apache Superset — боремся с фильтрами по дате. Часть 1

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

В этой статье хотелось бы начать раскрытие больной для многих пользователей Apache Superset темы — фильтры по дате. Начнем с малого: как суперсет выбирает колонку даты; как выбрать желаемую колонку вместо той, которую он выбирает; каким образом это реализовано; какие баги породили этим решением; почему КОП не доведет до добра.

Читать далее

От Dependency Hell до изоляции: эволюция и внутреннее устройство виртуальных сред в Python

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

До 2007 года установка двух версий одной библиотеки на одном сервере была невозможной миссией. Появление virtualenv, а затем и нативного venv, изменило ландшафт Python-разработки навсегда. Но как именно работает этот механизм на уровне операционной системы и интерпретатора? Разбираем путь от копирования бинарников до современных симлинков, анализируем роль sys.path и реализуем собственный аналог venv.

Читать далее

Прогноз волатильности в 4 строки кода без знания ML

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

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

Читать далее

От слов к числам: как компьютер узнаёт, о чём текст

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

Как заставить компьютер понимать текст? Мы взяли 500 новостей и с помощью алгоритма автоматически разложили их по категориям: спорт, политика, развлечения. Результат: 99% совпадения с ручной разметкой!

В статье объясняю, как работают векторные представления слов и как работает кластеризация

Читать далее

Как я взвесил черную дыру и отменил Темную материю с помощью Python (Анализ данных LIGO и SPARC)

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

Привет, Хабр! Меня зовут Павел, я независимый исследователь. Последние пару недель я находился в состоянии непрерывного потока, в результате которого с нуля написал 100-страничную монографию, вывел математический аппарат и написал Python-скрипты, доказывающие одну безумную, на первый взгляд, гипотезу. Весь этот путь от чистого листа до готовой публикации с DOI занял у меня ровно 15 дней.

Суть гипотезы — Теории Вибрационно-Энергетического Резонансного Континуума (ТВЭРК) — состоит в том, чтобы отказаться от эйнштейновской абстрактной «искривленной пустоты» и описать Вселенную методами строгой механики сплошных сред и нелинейной гидродинамики.

Звучит амбициозно и попахивает «теорией всего», я знаю. Но любая теория — это просто слова, пока она не подтверждена цифрами. Поэтому я отложил философию, взял Python и пошел проверять свою математику на реальных, сырых данных из открытых астрофизических баз.

В этой статье я покажу, как мне удалось смоделировать кинематику 175 галактик одним набором параметров (без Темной материи) и «услышать» резонансный гул черной дыры Cygnus X-1 в данных интерферометров LIGO.

Смотреть расчеты и Python-код

Метрика на ключевое событие в MVP без тяжёлой аналитики

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

При запуске MVP считаем вначале не клики вообще, а деньги и время. Деньги потому, что до серьёзных вложений полезно быстро и по возможности бесплатно проверить, нужен ли проект рынку. Время потому, что его легко потратить не на сам MVP, а на подключение Яндекс.Метрики, Google Analytics, событий, воронок, отдельной базы и прочей обвязки. В итоге идея ещё не проверена, а вокруг неё уже начинает расти аналитическая система.

Рассмотрим простую схему с 1-2 быстрыми метрики, которые напрямую проверяют УТП или главный пользовательский сценарий. Пользователь нажал кнопку покупки. Начал создавать проект. Зарегистрировался. Перешёл в Telegram. Этого уже хватает, чтобы понять, работает ли сценарий и есть ли живой отклик.

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

Разберем именно такой вариант. Маленький Django-бэк один раз деплоится на простом хостинге, принимает события через пиксель, хранит их в SQLite и отдаёт статистику JSON-ответом. Дальше во всех новых фронтах меняются только названия event и src.

Особенно удобно это в тех случаях, когда фронт живёт на бесплатном или засыпающем хостинге. У free web services на Render сервис уходит в spin-down после 15 минут простоя, а файловая система там ephemeral, поэтому локальный SQLite для таких счётчиков работать не будет. В качестве простого примера отдельного маленького бэка можно использовать PythonAnywhere, где есть бесплатный аккаунт с одним web app. Но сама идея не привязана к этим площадкам и повторяется практически где угодно.

Читать далее

OpenAI Codex на двух устройствах: как синхронизировать сессии без боли

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

Я работаю с OpenAI Codex в двух режимах. Дома — за мощным ПК с двумя экранами и в поездках на дачу/отдых/по работе — с ноутбука

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

Ниже история о том, как я решил данную проблему.

Читать далее