Pull to refresh
32K+
7
Алексей@ideavi

Инженер, архитектор ИТ

71,6
Rating
10
Subscribers
Send message

Два действия вместо сотен и тысяч: лечим боль смены периода в финансовой модели

Level of difficultyEasy
Reading time11 min
Reach and readers6.9K

TL;DR. Финансовая модель в таблице разваливается при смене периода расчёта. Я честно старался, был аккуратен как мог, но период в модели хранится в геометрии листа: колонка — это месяц, а формулы адресуют ячейки по абсолютным координатам. На Хабре на эту боль есть два описанных ответа, оба уходят от таблиц: перенести логику в OLAP-куб с семантическим слоем или написать модель на Python. Здесь описан третий: оставить табличный интерфейс, но вынести диапазон и период в параметры модели, а адресацию перевести с координат ячеек на имена строк и колонок. Перевод модели из 10 листов с месяцев на кварталы стоит тогда 2 действия вместо 460–3060 — расчёт по шагам приведён в тексте.

Читать далее

130+ критериев: как холдинг искал замену Excel и чем это кончилось

Level of difficultyEasy
Reading time9 min
Reach and readers8.1K

Крупный промышленный холдинг разослал по рынку анкету: больше 130 критериев к «умной таблице», которая должна заменить у него Excel. Мы её заполнили, защитили перед архитектором и службой безопасности, подали коммерческое предложение — и не получили даже отказа. Просто тишина. Разбор этого случая — ниже, и он объясняет, почему так заканчивается почти всегда.

Разберем также других кандидатов — что с ними не так и почему они безнадежны.

Про убийц Excel

«Оценка 300 часов? ИИ мне сделает за вечер!». Считаем тремя методами, и 300 — ниже плинтуса в индустрии

Level of difficultyMedium
Reading time11 min
Reach and readers16K

Я оценил доработку учётной системы в 300 часов, заказчик ответил, что это очень много. Я для него посчитал тот же объём тремя независимыми способами: снизу вверх по пользовательским действиям, через функциональные точки с отраслевыми показателями производительности ISBSG и через COCOMO II. Результат оказался обратным ожидаемому.

Читать далее

Внешний бенчмарк причинного recall: проверяем память ИИ-ассистента на YDB Яндекса

Level of difficultyMedium
Reading time6 min
Reach and readers9.7K

Коротко, о чём речь, — для тех, кто пришёл по слову «Яндекс» и предыстории не знает. Когда ИИ-ассистент помогает чинить баг, самое ценное — не сочинить ответ с нуля, а вспомнить: похожий симптом уже разбирали, вот issue, вот причина, вот PR с фиксом. Вопрос ровно один — достаёт ли ассистент это прошлое решение из памяти. Мы это померили на своём корпусе тикетов и получили две цифры. Обычный семантический поиск (по смыслу слов) находит нужный прошлый фикс по симптому лишь в 38% случаев; обход явных причинных связей «issue → закрывший его PR» — в 87%. То есть сходство слов упирается в треть, а явные связи поднимают recall в разы.

Читать далее

Строили ANN руками — когда это того стоило, а когда нет

Level of difficultyMedium
Reading time12 min
Reach and readers6.9K

Сразу отвечаю на вопрос, который вы задали бы в первом же комментарии: а почему не pgvector?

Короткий ответ: ровно то, что pgvector делает хорошо — генерацию кандидатов (найти top‑k ближайших по косинусу) — мы и советуем отдавать pgvector, если он у вас есть. Свой ANN мы написали, потому что (1) pgvector есть не везде, где должна работать наша память, и (2) самое ценное в нашей задаче — вообще не генерация кандидатов. Про это вся статья, так что давайте по порядку.

Читать далее

Почему мы не написали ещё один Bad CaRMa

Level of difficultyMedium
Reading time7 min
Reach and readers7.5K

«Bad CaRMa» — глава из Dreaming in Code Скотта Розенберга (каламбур на CRM и «карму») про CRM-систему Vision в компании Upstart. Архитектор задумал предельно гибкую схему: одна-единственная таблица DATA, куда сложили все 150+ бизнес-сущностей — 240+ колонок с именами вроде string82 и numeric31, метаданные и данные вперемешку. Схему ведь больше «никогда не придётся менять».

Практики на грани

Не дали ИИ-агенту соврать — его же памятью

Level of difficultyMedium
Reading time9 min
Reach and readers13K

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

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

Хватай за цифровой хвост

Закрывается окно возможностей GEO, надо успеть

Level of difficultyEasy
Reading time3 min
Reach and readers13K

Про GEO (Generative Engine Optimization) на Хабре уже много писали: разметка schema.org, доступный HTML, таблицы вместо простыни текста, чек-листы «как попасть в нейровыдачу». Это тактика, а вопрос интереснее на уровне механики: чем ранжирование в рекламном аукционе в принципе похоже на то, как модель что процитирует, и как за счёт этого сходства писать один текст, который работает в обеих системах, а не гнаться за двумя разными зайцами.

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Reach and readers8.2K

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

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

Токенизируем и сопоставляем

Предельная унификация: программируем на языке бизнеса

Level of difficultyEasy
Reading time3 min
Reach and readers12K

Предельная унификация a.k.a. IDEAV — хранение вообще всего как список Entity — Attribute — Value с дополнительным полем ID. Звучит пугающе, но реализация скрыта под капотом, а снаружи нам доступен максимально родной и дружественный интерфейс.

Читать далее

Low-code без границ: 32 млрд квартетов и терабайты данных в конструкторе приложений

Level of difficultyEasy
Reading time19 min
Reach and readers17K

Бум No-code начался в 2022 году, и сейчас многие компании стараются так или иначе внедрить функционал «low-code» в свои продукты. У участников IT-индустрии пока нет согласия о границах применимости технологий «без кода», хотя адепты этих технологий обещают, что они позволят создавать практически любые приложения.

В этой заметке мы рассмотрим один из основных аспектов создания приложений – его масштабируемость в средней и дальней перспективе. Для этого сам продукт под капотом должен быть построен на чем-то более мощном, чем MS Excel, Airtable, Notion и Make, и такие продукты уже есть на рынке.

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

Читать про 32 млрд квартетов

Новая архитектура процессора — уже пора

Level of difficultyEasy
Reading time5 min
Reach and readers28K

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

Читать далее

Information

Rating
94-th
Registered
Activity

Specialization

Архитектор программного обеспечения, Разработчик баз данных
Ведущий
SQL
PostgreSQL
JavaScript
HTML
Английский язык
PHP
Высоконагруженные системы
Базы данных
Разработка программного обеспечения
Алгоритмы и структуры данных