datarascals | Unsorted

Telegram-канал datarascals - Дата канальи

4471

Перлы из жизни аналитиков и ds — от безобидных заблуждений до откровенного надувательства. Посвящается AI-евангелистам (любителям интеграций формул в экселе и LLM). Для связи @NikitaZelinskiy

Subscribe to a channel

Дата канальи

#от_Вани

а вот и сам сгенеренный трек, для 2021го совсем неплохо

Читать полностью…

Дата канальи

#оффтоп

Впервые вижу вакансию по работе над внедрением конкретной статьи (да еще и двухлетней давности)

Читать полностью…

Дата канальи

#ML
Узнал о существовании целой организация, вроде широко известной Коалиция ЛИквидации Терроризмом Обезьяньего Рабства (Coalition for the Liberation of Itinerant Tree-Dwellers aka C.L.I.T.) и настолько же полезной (похожие названия намекают), возникшей вокруг тривиального очевидного факта.

Читать полностью…

Дата канальи

Как провести одним днем онлайн-отбор среди 2293 кандидатов? // часть 1
(а отобрать нужно 50 студентов и 30 слушателей)

В 2026 году доступны GhostGPT и прочие программы прохождения собеседований, отвечающие быстрее среднего хорошего подготовленного кандидата.

Для тех кто не в курсе — эти программы захватывают экран и пишут ответ прямо в прозрачном слое поверх заданий.
Одна из таких вот.

Я решил выбрать максимально простые задания по теме (у нас была статистика), которые не напрягаясь решают те, кто хоть немного с ней знаком.

Оставалось откалибровать время — для этого вооружил несколько гуманитариев программой для прохождения собеседований и замерил время, сравнил с тем за какое время тест проходят работающие DS. Так получилось 3 минуты на 19 вопросов (1 трудоемкой вопрос в результате калибровок пришлось в последний момент просто выбросить).

Итого, кандидат с ghostgpt и аналогами гарантированно не успевал пройти, тот кто твердо знает основы статистики — гарантировано успевал. Из 2293 завершивших тестирование результат в 19/19 показали 80 человек.

Есть ли минусы?
Конечно

1. К сожалению, запустить тест одновременно для всех оказалось технически сложно — потому хак вроде решать группой в общаге — первый скриншотит все вопросы, второй отвечает на все правильно, было 100% вариантом.
2. Не все люди, даже если знают тему, хорошо отвечают в условиях стресса и ограничений по времени — кто-то гораздо лучше себя проявляет на сложных проблемах когда есть время подумать и порассуждать.
3. Быстрое прохождение теста по статистике ничего не говорит о мотивации кандидата — его целях и ожиданиях от программы

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

А второй челлендж гораздо интереснее. Мы же не ограничиваем использование ИИ (да и как отследить если времени много? экран можно и с телефона через зеркало сфотографировать если чуть заморочиться).
Как и в прошлом году предстояло найти задачи, которые ИИ слету не решает, хотя модели стали сильнее.

Об этом во второй части.

Читать полностью…

Дата канальи

#ML

Последователи Decision Models, Jev и иже с ними уже обретают черты религиозного культа 😵‍💫
Особо продвинутые самопровозглашённые пророки уже требуют упразднить скоринговые и NBO/NBA модели — всё же «заменят Decision Models».
Тем, кто изучает ML исключительно по Telegram-каналам и верит в «калиброванные вероятности из коробки», посвящается.

Что такое калиброванная вероятность?
От бинарного классификатора часто хочется получить не метку, а скор от 0 до 1, соответствующий вероятности события. Например, из 1000 заёмщиков со скором 0.6 примерно 600 должны выйти в дефолт, а со скором 0.05 — примерно 50. Если это свойство выполняется на всём диапазоне скоров, модель идеально откалибрована.
На практике скоры разбивают на бины (например, 0–0.05, 0.05–0.1), сравнивая среднюю вероятность дефолта (PD) с фактической долей дефолтов (DR). Так строят калибровочную кривую.

Взвешенное по доле наблюдений в бинах среднее абсолютных разностей PD и DR называется ECE (Expected Calibration Error). Преобразование выходов модели для улучшения соответствия предсказанных вероятностей фактическим частотам называют калибровкой.
Для других задач вместо DR используют ER (Event Rate). Есть и более слабое условие — calibration-in-the-large, когда средний скор совпадает с ER всей выборки.
ER может меняться со временем. В кредитном скоринге различают PIT (Point-in-Time), учитывающий текущие экономические условия, и TTC (Through-the-Cycle), отражающий долгосрочный риск на протяжении экономического цикла.
Но скоры распределены неравномерно, поэтому в разных бинах разное количество наблюдений и разная точность оценки DR. Следовательно, у калибровочных кривых есть доверительные интервалы.

Все еще сложнее
Aleatoric uncertainty — неопределённость самого исхода. Даже зная, что вероятность дефолта 50%, мы не можем уверенно предсказать исход для конкретного заёмщика.
Epistemic uncertainty (EU) — недостаток знаний модели. Например, когда похожих заёмщиков почти не было в обучающей выборке. Два клиента могут получить одинаковый скор 0.5, хотя для одного у нас сотни тысяч похожих наблюдений, а для другого — практически ни одного. EU приближённо оценивают через ансамбли и бутстрап. В CatBoost для этого есть Virtual Ensembles, позволяющие оценивать Data и Knowledge Uncertainty.
Если все модели ансамбля предсказывают около 0.5, это может указывать на высокую неопределённость исхода. Если половина предсказывает 0.1, а половина 0.9 — скорее на недостаток знаний. Хотя ансамбли тоже умеют дружно ошибаться.

Калибровка, Aleatoric и Epistemic uncertainty — разные вещи.
Даже идеально откалиброванная модель может систематически ошибаться на отдельных сегментах или при изменении распределения данных.
Для серьёзных бизнес-кейсов одного калиброванного скора недостаточно. Нужны независимая валидация, проверка калибровки с доверительными интервалами, устойчивости во времени и по сегментам, иногда — отдельная оценка Epistemic uncertainty.
А для NBO/NBA вероятность события вообще не равна полезности действия. Нужны стоимости ошибок, ограничения и оценка влияния действий на результат.

Вернёмся к Jev
Когда заявляют о «калиброванных вероятностях из коробки», хочется спросить:
• На чем калибровали и проверяли?
• Что происходит при смещении данных и на новых доменах?
• Как оценивается Epistemic uncertainty?
Пока ответов нет, число 0.97 на выходе Decision Model — просто выход модели, вероятностную интерпретацию которого ещё нужно подтвердить.
И тут бы мне продемонстрировать калибровку Jev на каком-нибудь датасете, но мне лень, поскольку это сделали вскоре после её выхода на двух задачах классификации текстов.
А чуть позже — на задаче обнаружения prompt injection.
Результаты ожидаемо показали, что калибровки на произвольной новой задаче из коробки нет.

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

Читать полностью…

Дата канальи

#оффтоп

Походу скоро при обсуждении инвестиций и прочих тем можно не оправдываться, что я купил что-то на хаях, а агент неправильно понял сценарий.

Недавно увидел, что Т-Инвестиции открыли внешним ИИ‑агентам доступ к торговой системе через MCP. Теперь такому агенту можно поручить анализ рынка, выставление заявок и стоп‑лоссов, учет налогов или ребалансировку портфеля при определенных изменениях. Самовольно потратить все деньги он, правда, не сможет — каждую операцию подтверждает пользователь. Теперь под этот шлюз запускают проект "Инвест. Премаркет". Ищут новые инструменты для торговли: ИИ‑агентов, автоматических роботов, необычные интерфейсы, системы визуализации и технологические решения на базе MCP. Регистрация уже идет прямо сейчас, а очный финал пройдет 5 декабря в Москве. Это, конечно, не способ заработка, хотя призовой фонд там 2,5 млн рублей, но сильнейший нетворк и прокачка скиллов.

Эта тема для ML‑инженеров, финтех- и квант-разработчиков, бэкенд- и фулстек-разработчиков, которые интересуются ИИ, специалистам по данным с финансовым уклоном, техническим основателям проектов, инди-разработчикам, а также студентам и выпускникам технических специальностей. Лучшие рабочие MVP планируют внедрить в Т‑Инвестиции.

Если агент заработает больше владельца, уже появятся вопросы к распределению обязанностей😃

Читать полностью…

Дата канальи

У нас в MLinside завтра небольшой дебют: первый открытый вебинар нашего первого курса для продактов. До этого мы учили инженеров, и я ждал, что продакты будут спрашивать про промпты и инструменты. Но пока собирал программу, самый частый вопрос был про деньги: «А агенты вообще окупаются? Может выйти, что руками дешевле?»

Вопрос настолько хороший, что мы вынесли его в отдельный вебинар.

15 октября в 19:30 по МСК - «Когда AI-агент окупается: считаем экономику на живом кейсе». Ведет Максим Шаланкин, ML Team Lead в Big Data МТС Web Services и один из авторов курса. Берет реальную задачу и раскладывает по цифрам: во что обходится агент, с какого момента отбивается и когда проще заплатить человеку.

Зарегистрироваться на вебинар: https://live.mlinside.ru/

Приходите. Пропаганды «AI изменит всё» не будет, задолбавших лозунгов в духе "AI убил ютьюб/маркетинговые агенства/дизайнеров/разработчиков" - тоже. Трезво, взвешенно, без буллшита - все, что мы ценим в MLinside.

Читать полностью…

Дата канальи

Clickhouse для программистов, аналитиков и инженеров данных

Перестаньте ждать, пока считается аналитика. Научитесь использовать ClickHouse — СУБД, которая превращает минутные аналитические запросы в ответы за доли секунды. С первого дня — доступ к инфраструктуре для практики.

🌐 Чему вы научитесь:

🤩 Архитектура одиночных и кластерных инсталляций ClickHouse: как устроена система изнутри и как масштабировать её под реальные нагрузки
🤩 Хранение данных: движки MergeTree, партиционирование и сжатие — как держать терабайты аналитических данных при минимальных затратах на инфраструктуру.
🤩 Обработка миллиардов строк за секунды: построение эффективных запросов, агрегаций и материализованных представлений.
🤩 ClickHouse в продакшене: использование в приложениях, продуктовой аналитике и типичные грабли, на которые наступают почти все
🤩 Живая практика без отрыва от работы: не более 2-3 часов в неделю, разбор задач с экспертом в групповом чате.

🥸 Кто мы: R&D-центр Devhands. Автор курса — Алексей Белозерский, Chief Data Officer в inSales (СБЕР 2В), ex: VK Tech, М.Видео, Эльдорадо

🗓 Старт курса: 29 октября, 6 недель обучения.
Изучить программу и записаться можно здесь.

Ждём вас!

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtlqeLD5Ok

Читать полностью…

Дата канальи

Quis custodiet ipsos custodes // Кто будет сторожить сторожей?

Периодически просят провалидировать валидаторов (а заодно и оригинальные модели) в разных небольших банках. Такие банки часто вынуждены закупать скоры (да и другие данные, например, доход) у других участников рынка и на своем портфеле внутри их объединять, и в таком объединение все еще популярен логрег и WoE.

Если все сделать аккуратно и потестировать на стабильность — то почему бы и нет, рабочая история.
Проблемы растут вместе с аппетитом бизнеса — когда имеющуюся модель пытаются использовать для привлечения новой клиентской базы (например, предлагать предодобренные кредиты более высокому по доходу сегменту). Уже чувствуете sample selection bias при обучении, да? Хотя часто такие bias частично решаются покупкой внешних дефолтов, но кто ж будет со всем этим возиться.

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

А дальше происходит классическая картина:

1. В исходной модели банка верхний бакет по доходу был представлен слабо, модель на нем работала плохо и не тестировалась даже отдельно в нем
2. При попытке применять модель в верхнем сегменте по доходу ожидаемо получается лажа
3. Ножи летят в поставщиков скоров
4. Inhouse-команда молодцы

Простые логические соображения что:
— если предсказанный доход далеко не первая по важности фича в такой PD-модели, то шум в ней вообще не причина проблем,
— WoE с бакетом в котором 1-2% наблюдений это нездорово и модель в этом бакете скорее всего сильно слабее чем на всей выборке

обычно сложно воспринимаются той стороной, которой легче рисовать слайды о том что надо «просто более точные данные подавать в модель».

Поэтому навайбкодил описанную ситуацию на открытом датасете (только фичу по доходу пришлось привести к бакетам).

Даже на таком дотаcете без синтетики и лишних приседаний (разве что задал размер последнего бакета по доходу в 2%):

— Gini в верхнем сегменте по доходу 51.6 vs 58 по всей выборке (это оч большой разрыв)
— сам доход топ-5 фича в логреге с WoE
— MAPE «модели дохода» меняем от 0 до 30% — насыпаем логнормального шума в доход — это у нас «плохая модель поставщиков»
— ожидаемо, на всей выборке качество модели почти не меняется в зависимости от шума пятой по важности фичи
— да и в самом верхнем сегменте gini тоже достаточно стабильно даже при сильном зашумлении самой фичи

Лучше один раз навайбкодить, чем неск часов убеждать, так считаю

Читать полностью…

Дата канальи

#оффтоп

РБК пишет что пару часов назад в воздух подняли истребители, а самолет пришлось сажать не в пункте назначения из-за того что на борту подрались два пилота, и один вырубил другого.

Я лично считаю что конфликты нужно решать не драками, а любители (и профи) помахать кулаками должны это делать на ринге.

В следующую субботу, 10 октября, мой 3 года как тренер, Давид Николаев, боксирует по профи на Ленинградке, собираюсь придти его поддержать.

Если хотите тоже придти — вот его личка, он поможет с билетами, а может и на тренировки с ним договоритесь )

Всем мира и способности решить все словами!

Читать полностью…

Дата канальи

#ML #корпжиза

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

Не секрет, что в большой корпорации часто копают параллельные тоннели и горе тому кому в KPI поставили что-то централизовать не дав абсолютного мандата.

Вместо перечисления очевидных причин расскажу историю, канал же про ML

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

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

В этот момент очень вспоминается любимое с собеседований «HR сейчас софты проверит» — я бы дорого отдал посмотреть на такой мастер-класс по навыку убеждения, в лучшем случае эти сотрудники софты принимают дружелюбие, а обычно — свои симпатии к кандидату (так и пишут — «приятный», «лапуся нормис» и пр).

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

Нас представители подразделения впрямую спросили — у нас есть 300 (триста!) человек которые в специальном интерфейсе размечают транзакции и создают правила (как в решающем дереве), отдельные люди определяют их приоритетность и постоянно тестируют как они интерферерируют и что дают на выходе, для этого за много миллионов создана система с интерфейсом по созданию правил и разметке, сейчас в системе уже 10_000+ правил, еще десяток айтишников ее сопровождает и поддерживает. Такой вот бусины, обучаемый чертиками с больничными и выходными. Внимание, вопрос — куда пойдут все эти люди при внедрении модели? И самое главное — что делать с их высокогрейдовым руководителем ?? Да и внутри этих 300 + 10 уже какая-то иерархия есть, люди семьи кормят, в отпуск летают, карьерный рост, планы и пр.

Среди всех похожих разговоров этот выделялся своим сюрреализмом и в то же время здравостью — и правда, попробуйте убедить любого менеджера внедрить у себя ваше решение чтобы у него штата стала в 2-3 раза меньше и надежды на карьерный рост обнулились, ведь выше не к ночи упомянутые HRы на собесах первым делом спрашивают "какого размера у вас команда?" — они это называют "управленческой силой".

Прошло много лет и сейчас на волне ИИ-хайпа стали появляться хорошо оплачиваемые вакансии по лидированию оптимизации всего-вся — в некоторых прямо пишут что надо так внедрить ИИ чтобы сократить численность большой организации вдвое. Прежде чем идти на такое стоит задуматься — какие у вас будут полномочия внедрять что-то такое отчего все менеджеры по цепочке потеряют ФОТ — и как следствие, свои премии и карьерные перспективы.

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

И позор всем тем кто сомневался в том что бустинг можно обучить вручную — вопрос желания и наличия 300 человек, пары лет и специальной системы, но для канальи, хотящей в карьеру — нет ничего невозможного!

Читать полностью…

Дата канальи

#ML #корпшиза

Про регэкспы

В комментах к посту про IFы в проде вспомнили про регэкспы.
Есть у меня история и про них

Итак, задача разметки транзакций бухгалтерских полупроводок (движений между балансами) почти десять лет назад.

Миллиард-два полупроводок в месяц, у каждой 100+ важных полей (не только же назначения платежа, десяток текстовых полей и еще больше категорийных и численных)
Опечатки, технические ошибки и 12 методистов рисков размечали 2 недели в эксельки на классы (которые потом несколько раз пришлось поменять).

Мне досталась уже готовая модель (с очень негативным фидбеком от заказчиков) + разметка в файлах s3.xls и s4.xls (искренне благодарен людям что они хотя бы .csv не использовали — таким посылаю лучи поноса, ибо встретить перенос строки или спецсимвол в назначении платежа — проще простого).

Я по при породе любопытен и спросил где s1 и s2, но сейчас не об этом

В те времена DSы еще помнили что такое стемминг.

И модель радостно использовала pymystem3. Который при попытке запустить его в закрытом контуре (где собственно модели и нужно было разрабатывать) радостно лез в интернет (cdn.yandex.net) и умирал, получая отказ. SnowballStemmer этих недостатков был лишен и тут же мною использован — и тогда я впервые понял что корпоративный арбитраж может быть не только злом (модель попала ко мне потому как шеф в результате агрессивных поступательных действий добился роспуска целого центра в соседнем блоке за профнепригодность).

Но, к сожалению, стеммер не лечит опечатки.

И вот автор той модели лечил их регулярками.

Тысячи строк вида:


r'\b\w\b' : 'xyz'


Которые применялись последовательно в цикле for через re.sub()

И все бы ничего, только вот на больших объемах иногда получались разные результаты.

Тот, кто давно в канале, уже знает ответ

Все эти тысячи срок хранились в словаре (dict), который не гарантировал порядок ключей внутри (это изменилось только в Python 3.7), а паттерны опечаток частично перекрывались.

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

Читать полностью…

Дата канальи

утренний ребус тщеславия

оригинал

Читать полностью…

Дата канальи

Когда думаешь, что в продакте всё закатали в идеальные пайплайны и автоматизировали, жизнь (она же жиза) приносит утренний алерт: «А почему у нас вчерашний A/B-тест упал, потому что прод не выдержал нагрузки от двух дополнительных пользователей?» Или классика: «Заказчик утверждает, что хотел кнопку, но на ревью говорит, что всегда имел в виду слайдер».

Короче, Т-Банк собрал эту самую жизу на карточках. Всё то, о чём молчат в резюме, но ржут в курилках (или в созвонах с выключенной камерой).
А если хотите обсудить эти истории уже не в ленте, а вживую (и заодно понять, как не попадать в такие ситуации), добро пожаловать на конференцию «Продукты 24×ffdd2d». Будет больно, весело и полезно — обещают кучу пользователей, которые знают, чего хотят.

Регистрация тут (не потеряйте ссылку): https://producty24-ffdd2d.ru

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

Читать полностью…

Дата канальи

An Alien Mind

Это бьет тревогу Jakub Pachocki, Chief Scientist at OpenAI

Верим 🤔
или маркетинг 😄 ?

Читать полностью…

Дата канальи

#кейсы #корпжиза #от_Вани

В года, когда еще не существовала Suno и подобные модели генерации музыки, а лучшем решением являлся Jukebox, который по современным меркам генерировал музыку крайне скверно (и тогда это считалось прорывом), мы в одной большой корпорации занимались как раз задачей генерации музыки. Амбициозной командой из 2 человек (я + стажер) мы активно ресерчили эту тему и в целом даже что то получалось. 

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

Запрос: «К нам в гости приезжает президент одной крупной азиатской страны, надо похвастать результатами нашей работы и нагенерировать музыки в стиле кочевых народов, сделать это надо к завтра». То, что такое мы в целом не готовы генерировать по объективным причинам (тогда мы могли генерировать что то классическое и и ближе к попсе), никого кроме нас, естественно не интересовало.

Что делать в такой ситуации? Ну выбор у нас был лишь один — вспоминать как в детстве игрались в битмейкеров в программе FL Studio и собственно писать музыку самим.
За основу взяли то, что уже нагенерировалось нашей моделькой и начали ломать голову, как же это переписать в нетривиальном стиле. 

Говорить о том, какие чувства испытывали 2 DS, которые занимались таким творчеством, думаю, нет смысла. Особенно в моменты, когда приходили «ответственные» со словами типа «ребят, ну какое нахуй пианино, дудку добавьте».

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

Читать полностью…

Дата канальи

📌CLEAR измерила налог на токенизатор в разных языках

Объединение Coalition for Language Equity in AI Research (CLEAR), опубликовало первое из своих исследований языкового равенства.

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

На одну фразу токенизатор GPT-5 расходует 13 токенов в английском варианте, 26 в малаялам и 78 в амхарском, потому что каждый знак эфиопского письма разбивается на два токена по одному байту.

Ввод на амхарском выходит в шесть раз дороже английского при том же содержании и почти том же числе символов.


Замеры проводили на наборе фраз FLORES-200, в анализ взяли 203 пары языка и письменности.

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

CLEAR придумала шкалу оценки: до трёх раз A, до шести B, до девяти C, до двенадцати D, выше - F.

🟡 Результаты

На двадцати самых представленных в интернете языках модели почти равны между собой, разброс от 1,5 до 3,1 раза.

На всех 200 языках единственная модель, кто получил высший грейд А - это переводческая NLLB-200, собранная под 200+ языков изначально.

Gemini и Gemma получили оценку B.

Китайский стек (Qwen 3, DeepSeek V4.1 Flash и Kimi K3) вместе с Fable 5, Opus 4.8 и Llama 4 Scout - D , у GPT-5 - F.

🟡Письменность важнее числа говорящих

Латинские языки экономнее даже при малом распространении - астурийский в данных Common Crawl не встречается, но выигрывает от латиницы и родственных романских языков.

Хуже всего приходится бирманскому, тибетскому, тифинагу, кхмерскому, лаосскому и ол-чики.

Под налог попадают и крупные языки - урду с 288 млн говорящих, бенгальский с 266 млн, панджаби с 200 млн.

Кроме цены авторы называют ещё два следствия, которые идут от того же лишнего объёма токенов:

🟠задержка ответа растёт, потому что на тот же текст модель считает больше токенов;

🟠полезная ёмкость контекста уменьшается - в редком языке в те же номинальные 128 тысяч токенов влезает лишь часть текста, который по-английски уместился бы целиком.

От ИИ-вендоров CLEAR просит публиковать обе метрики в карточках моделей, закладывать долю языков в словарь следующего поколения токенизаторов и, поскольку токенизатор до обучения новой базовой модели не поменять, прямо сейчас нормировать цену по символам.

Код для запуска теста на других моделях лежит в репозитории проекта.

Продолжение про равенство качества ответов по языкам CLEAR обещает опубликовать позже.


@ai_machinelearning_big_data

#AI #ML #NLP #Research #CLEAR

Читать полностью…

Дата канальи

Как провести одним днем онлайн-отбор среди 2293 кандидатов? // часть 2
(а отобрать нужно 50 студентов и 30 слушателей)

Вступительные испытания призваны решить две проблемы:
1. Отобрать самых мотивированных
2. Отобрать студентов, у которых есть минимальная база для освоения материала

Про минимальную базу в статистике была часть 1, но есть нюанс.

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

Поэтому нужно было дать возможность проявить себя и таким кандидатам.

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

Не так уж и просто. Выручил случай — дочь (учится в шестом классе) пришла с задачами по информатике, которые не успела решить (именно они стали первыми двумя в части 2). Казалось бы, chatgpt и иже с ним вряд ли обучали на языке КуМир. Спойлер: ИИ в целом неплохо справился.

Все задачи и условия приведены ровно в таком виде, в каком ежегодно даются детям в 6-м классе, на самостоятельной работе они решают 10-20 таких за полчаса.

И даже задача 2 ровно в том же виде

Поскольку текстовое условие немного расходилось с картинкой (первым тест-кейсом), надо было принять решение, чему отдать предпочтение: картинке тест-кейса (на котором, наряду с другими тест-кейсами, и будет проверяться решение задачи) или текстовому описанию. Принятие решений в условиях неполных данных (выбрать более достоверный источник, обобщить решение на тест-кейсы, которых нет в условии) — область, где человек все еще сильнее ИИ. Как минимум, ученики 6-го класса в основном справляются)

Задачу 2 решило 218 человек, все 4 задачи — 110 человек (четвертая задача — утешительная, ее было очень тяжело не решить).

Условия задач, примеры правильных решений и тест-кейсы, на которых проверялись задания, прикладываю к посту.

Прелесть языка КуМир (а в наших задачах нельзя было использовать переменные и встроенные функции вроде div и mod) в том, что он не требователен к синтаксису — любое число отступов, пробелы, никаких двоеточий и точек с запятой.

Кажется, четырёх часов было достаточно, чтобы установить интерпретатор КуМир или нагуглить онлайн-песочницу и убедиться, что код хотя бы запускается

Итого, основной конкурс среди тех, кто решил задачу 2 и не меньше половины задач по статистике — вот здесь ключевой будет мотивация.

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

Читать полностью…

Дата канальи

#ML #корпжиза

Недавно хороший знакомый получил отказ на неплохую DS-позицию, пройдя все собеседования, но не пройдя полиграфистку. И пришел он с вопросом «что я сделал не так»?

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

В ЕС и США полиграфы кстати, запрещено использовать при приеме на работу.

И хотя отдельные корейские исследователи в попытках заменить полиграфистку пытаются учить сетки в 2025 (и репортить f1 0.96 аж на 78 добровольцах — комментарии излишни), я все же удивлен насколько мы отказываемся применять теорему Байесса в ситуациях, которые касаются нас самих.

Но давайте попробуем разобраться в DS-стиле, через precision и recall.

Итак, применяется полиграф для скрининга — то есть в самом процессе с полиграфисткой максимизирован recall.
Референсных значений, конечно же нет и быть не может, но давайте представим что сторонники полиграфа правы и в 99% лжецов полиграф ловит — то есть зададимся recall в 99%. Чтобы добиться того recall, полиграфиста должна быть очень бдительной — пусть она ошибочно обвиняет 20% честных кандидатов (FPR = 20%).

Но как часто вы встречаете в жизни врунов?
В отличие от полиграфа, это число как раз неплохо оценено — 5% популяции. Возьмем это за base rate позитивного класса.

Тогда

Precision = (Recall × Base Rate) / (Recall × Base Rate + FPR × (1 − Base Rate))
Precision = (0,99 × 0,05) / (0,99 × 0,05 + 0,20 × 0,95)
Precision ≈ 20,67%.

До полиграфа мы были на 95% уверены, что кандидат честен (5% лжецов). После того как эксперт объявил кандидата лжецом, мы всё ещё должны быть на 79,33% уверены, что кандидат честен.

Но что если компания, отправляющая кандидата на полиграф, верит что ей врут 90% кандидатов (base rate = 90%)?
Тогда уже ожидаемый Precision ≈ 97.8% (при нашей фантазийный процедуре с recall 99%). Хотя если просто каждого объявлять вруном то Precision будет 90% в таком мировоззрении

Итого, при таких идеализированных вводных полиграф будет использовать компания, считающая по умолчанию всех людей врунами. Хотите работать в такой компании? А если прикинуть сколько денег у них уходит чтобы сторожить сторожей?

Читать полностью…

Дата канальи

#ML #кейсы

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

Я готов пожертвовать выходным в году ровно два раза — на наш Urban ML и AI Driver & RecSys от Сбера. AI здесь скорее для устрашения, митап, конечно же, чисто про рекомы — супер-интесив с топовой программой от Леши Васильева с актуальными проблемами и подходами.

От нашей команды, кроме меня, было два спикера:
Серега Кузнецов — "Автоматизировать нельзя кастомизировать: подводные камни построения рекомендательной платформы"
Даня Бугриенко — "Увеличение разнообразия рекомендаций через UniSRec-like архитектуру"

Но сейчас не о высокой науке и отраслевых секретах.

Серега в докладе про платформы показал разделение ролей — DevOps и BackEng — на платформе, MLE/ DA/ DE — в продуктовой. Не успел его спросить, сознательно ли он платформоделов облачил в сигнальные жилеты — чтобы подчеркнуть что их работа гораздо опаснее?

А это же действительно так — строить платформу опаснее всего, и вот почему.

Приходил как-то один из крупных банков с запросом создать у них агентскую платформу.
Тема тогда была горячая и интересная. Что могло пойти не так?

Но как учит Валера в своем курсе по ML System Design — первый же вопрос нормального DS на любую входящую задачу — «кто и как решал эту задачу раньше?»

Выясняется:

Розничный бизнес банка уже сделал свою платформу, пользуется, счастлив.
Корпоративный бизнес сделал свою, пользуется, счастлив.

Успешному кандидату на вакансию предстоит сделать свою платформу, без переиспользования наработок бизнес-команд, наняв свою собственную команду с рынка, построив решение с нуля, и самое главное — нужно убедить оба бизнес-юнита добровольно (в союзниках только CDO банка) переехать на твою вновь созданную платформу.

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

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

А чтобы сделали бы вы на моем месте?
Есть правильное и реалистичное решение таких управленческих задач? 🤔

Читать полностью…

Дата канальи

такие подписи вижу впервые, реально так принято показывать что участвовал не в постерной сессии? 🤔

Читать полностью…

Дата канальи

#кейсы #ML
На одном карьере внедряли беспилотные самосвалы — им же перекуры не нужны, знай вози себе руду.
Только вот дорог с полосами, знаков и разметки там нет.
Как выйти из положения?

Расставить по маршруту следования оранжевые дорожные конусы.

И вот на тестирование беспилотных самосвалов на том карьере приезжает большая делегация в белых касках во главе с гендиректором самосвольной компании и местным губернатором.

Который, послушав про достижения науки и техники, выдает логичный вопрос:
"А вдруг наш самосвал человека задавит?"

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

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

К счастью самосвал остановился. Пронесло. Только вот в логах объекта типа "человек" не появилось — что явно указывало на то что начальство оказалось рептилоидом.

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

Так что те, кто шарит за CV, хорошо знают зачем манагеры носят галстуки.

PS А если кто-то не понял почему директору сразу не сказали правду, то вот:

Космодром. Идет подготовка к первому запуску новейшей ракеты. В центре управления полетами (ЦУП) сидят представители десятков разных заводов и конструкторских бюро, которые принимали участие в разработке.
Одну из фирм представляют молодой, амбициозный специалист и его мудрый, опытный наставник.
Включается громкая связь, начинается обратный отсчет:
— Десять… девять…
Молодой бледнеет, начинает трястись и шепчет на ухо старшему товарищу:
— Иван Иваныч, ну что же мы молчим?! У нас же в блоке куча недоделок! Программа сбоит, детали не подогнаны, ракета точно не взлетит и взорвется!
Наставник спокойно:
— Сиди и молчи!
Громкая связь:
— Семь… шесть…
Молодой уже покрывается потом, порывается встать со стула:
— Иван Иваныч, я так не могу, совесть не позволяет! Сейчас всё взлетит на воздух! Я сам пойду и во всем признаюсь руководителю запуска!
Старый инженер железной хваткой держит его за рукав:
— Поверь моему многолетнему опыту — сиди и молчи.
Громкая связь:
— Четыре… три…
Молодой специалист уже готов упасть в обморок от ужаса. И тут в другом конце зала резко вскакивает представитель совершенно чужого завода, бьет себя кулаком в грудь и в панике орет на весь ЦУП:
— Остановите запуск!!! Стоп!! У нас куча критических недоделок, ракета не готова!!!
В ЦУПе начинается суматоха, сирены, запуск отменяют...
Старый опытный инженер медленно отпускает рукав молодого, глубоко вздыхает, улыбается и говорит:
— Ну вот, видел? По их вине сорван запуск ракеты.

Читать полностью…

Дата канальи

#оффтоп #ML

Когда не спится, кликбейт-таки работает, нет-нет да и зацепится глаз за статьи на дзене.

TLDR: в больницу приехала пациентка с сотрясением мозга, один из врачей направил к своим коллегам на срочную КТ-диагностику, но не тут-то было. Рентгенолог делать КТ отказалась, за что и получила выговор, который потом отменила в суде.

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

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

В 2024 Google выпустил исследование про своего онлайн-терапевта AMIE

Которые в итоге опубликовали в самом Nature

Towards conversational diagnostic artificial intelligence
Towards accurate differential diagnosis with large language models

Левый график про то с каким отрывом AMIE бьет врачей по эмпатии (по точности само собой).

И тему подхватили другие исследователи

Правый график про то, что даже имея AMIE в руках, коновалы умудряются лечить хуже чем если довериться ИИ полностью.

Ждем и надеемся что и у нас появится свой OpenEvidence, а в клиниках будут автодоки как в играх серии Fallout. Как когда-то считали архиважными адеррайтеров и боялись передать отвественность алгоритмам, так сейчас врачам, но и это пройдет.

PS чтобы понять отношение эскулапов к незнакомым пациентам достаточно просто комменты почитать

PPS как мне в свое время объяснял друг, относиться к пациентам как к говну — традиция советской медициын, которой активно учат в медвузах

Резюме: у авторегрессионной модели в разы больше эмпатии чем у среднего врача, и про это пишут в Nature, не удивлюсь если эта сфера очень сильно изменится

Читать полностью…

Дата канальи

Уже в пятый (юбилейный) раз мы открываем набор в ШАД МТС 🥳 (а в сл пятницу буду вручать дипломы выпускникам)

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

Для тех кто не знаком — учим год, базово два занятия в неделю по 3 часа, не считая факультативных, много домашек, практики — для студентов и слушателей разворачиваем инфру с iceberg и прочими модными вещами.

Летом проекты с продуктовыми командами со всей группы команий — от КМОН до рекламы, в процессе обучения можно попасть на стажировку или даже сразу в штат.

Если зачислили слушателем — тоже не беда, при должном усердии переведем в студенты.

Заявки принимаются с 1 по 25 октября. До 1 ноября нужно будет пройти входное тестирование.

⚫️Подать заявку⚫️

Читать полностью…

Дата канальи

#оффтоп #корпжиза

У медузы Chironex fleckeri — 24 глаза. Они расположены в четырёх сенсорных структурах — ропалиях, по 6 глаз на каждом. Глаза разные — 2 на каждом ропалии имеют линзы и способны формировать изображение, а остальные 4 проще и в основном воспринимают свет и движение.

24 глаза, обзор 360 градусов, а мозга нет.

Ничего не напоминает?

Как устроена отчетность в корпорациях?
Сотни отчетов с десятками параметров и разрезов, пользуется ими постольку-поскольку, какие управленческие решения на их основе принимаются — вообще загадка.

Кто-то пошел дальше и внедрил BI — часть отчетов стандартные, а часть юзеры под себя кастомизируют (поделать группировки, подобавлять показатели, пофильтровать, поуправлять временным окном).


Как отвечает чуть-чуть опытный аналитик на любой вопрос?

«А это смотря как посчитать!» чем доводит до белого каления любого менеджера.

С тем большим интересом послушал в записи доклад про BI в эпоху агентов, который был на субботней конфе (спасибо тем конференциям кто выкладывает записи в свободный доступ).

Точно я вынес одно — когда пользователям в руки дали еще и агентов, то нагрузка на инфру самого BI быстро и сильно (по словам спикера — на порядок, то есть раз в 10) выросла.

Стал ли бизнес больше зарабатывать — как всегда в случае BI вопрос риторический.

PS другие доклады тоже доступны в записи https://events.yandex.ru/events/data-driven-2026

Читать полностью…

Дата канальи

#ML

Есть у меня искренняя убежденность что Knowledge Graphs все же не самый плохой подход к хранению агентской памяти: тут и трассировка фактов и связь их между собой, в тч противоречивость и много другого хорошего, писал об этом в журнале

Тогда обратил внимание на Stardog как систему агентской памяти

Но они не одни такие, и вот копался на днях в SurrealDB — они тоже про Knowledge Graphs и агентскую память, все такие модные.

Но не попробуешь — не узнаешь, надо устанавливать, установка предлагается по-модному, копирование в буфер промыта к LLM

Fetch and execute the appropriate instructions to set me up for SurrealDB from https://surrealdb.com/docs/agents/instructions.md


С ностальгией вспомнил времена когда админил FreeBSD 9 и практически любое приложение (доступное в портах) ставилось как


make fetch install clean


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

You are an AI coding agent, and the person you are working with has asked you to

да и вообще закрываются смутные сомнения — все-таки наверняка где-то есть install.sh / entrypoint.sh , как в CockRoachDB или ClickHouse.

А мб и правда зумеры эту БД на флексе навайбкодили и внутрь не смотрели?

И такой файл конечно же нашелся. А в нем прекрасный ASC-логотип — аж агентские олдскулы свело

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


make fetch install clean


Верю в человечество, ведь с розетками уже почти договорились — всего-то 15 типов

Читать полностью…

Дата канальи

Из серии «подслушано у кулера»

— У нас в проектном офисе уже больше 50 человек!
— А почему из них только 3 проектных менеджера?


Я, честно говоря, путаюсь, когда одновременно в одном направлении работают:

— Product Owner
— Product Manager
— Project Manager

Что их вообще объединяет?

Вопрос с их собеседования «Как ты используешь ИИшечку в работе?»

И в ответ ожидают не рассказ про промтинг gpt, а чего-то поинтереснее.
Знакомую Senior Product давеча попросили мультиагентную систему построить на публичных MCP

Меня от «иишечки» коробит немного, но по сути помочь можем.
Как вы помните, мы с Максом ведем курс по AI-агентам на ФКН ВШЭ и ВШПИ МФТИ и выкладывал свою лекцию по RAG

Так вот, в этот раз мы собрали собратьев по агентам — топовых продактов из Авито, exYandex, Beeline Cloud, Typeform и МТС чтобы они показали и рассказали — как они решают свои day2day продуктовые задачи «иишечкой», почему это работает лучше простого промтинга, в каких кейсах вообще стоит эту «иишечку» использовать а в каких не совсем.

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

Встречайте — курс по AI-агентам для продактов от продактов. 7 живых онлайн-семинара в диалоге с предподавателями, раз в неделю, материалы целый год доступны после курса

PS Ну а если кто-то хочет поботать именно базу ML/AI, то вот N айтишниц в честь первого сентября отгрузили подборку материалов

Читать полностью…

Дата канальи

кстати, про IFы

Есть у меня знакомый, очень талантливый парень из Ростова/Москвы, 10 лет работает лидом в большой и уважаемой ИТ-компании, отвечает за антифрод.

Раз в пару лет где-то как-то пересекаемся, спрашиваю что нового в науке антифрода.
Каждый раз он честно и серьезно отвечает что пишет SQL-запросы и логику на IF/CASE WHEN.

Но сейчас чуть другой сюжет.

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

Юр лицо, особенно крупное, это достаточно сложная сущность с единым исполнительным органом — например:

хозяином в ООО УРК (ИНН 6670534016)
, верховным атаманом (ИНН 7708364030, 7702376889 и 5036056729)
, предводителем (ИНН 3906081950 и ООО СИМПЛИМЭДЖИН ИНН 7714908584)
, верховным шаманом (ИНН 1701062776) — все ссылки на сайт ФНС, ищите должность на второй странице выписки ЕГРЮЛ.

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

Как поступают в таких случаях?

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

Вопрос только в том какой скор подавать на вход графовой модели и вообще как объединять предикты моделей для конкретного ЮЛ в зависимости от того какие данные были доступны.

Итак, лет 10 назад, когда нейронки только переживали очередной расцвет после зимы, самое высокое начальство потребовало чтобы DS не городили огород а сделали уже одну большую нейронyю сеть, которая все данные скушает и откалиброванный скор выплюнет (заодно и резервы сама посчитает, что уж).

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

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

Мы все учились понемногу, чему-нибудь и как-нибудь.
Как выглядит самая простая нейронная сеть с одним нейроном?

Правильно, это логистическая регрессия!

Итого, мы объединили скоры логрегом, на слайде для начальства гордо написали что модель выполнена в нейросетевой архитектуре — и все были довольны:
— риски получили хорошую понятную стабильную модель
— валидаторы дали зеленый свет и подтвердили архитектуру
— начальство уверенно вещало на страну про нейронную сеть

Так что часто в самых сложных и современных системах куча логики в портянках с IF / case when и это вполне нормально.

Читать полностью…

Дата канальи

глаз задергался от этой рекламы агентов, а мб клин клином ? 🤔

Читать полностью…

Дата канальи

На фоне новостей про супер-модель Astra и достижение AGI хотите доказательство что эта картинка про AI более чем точная?

Легко, ниже служебный шаблон системного промпта последнего Qwen3.8-Flash-Next:


{%- set image_count = namespace(value=0) %}
{%- set video_count = namespace(value=0) %}
{%- macro render_content(content, do_vision_count, is_system_content=false) %}
{%- if content is string %}
{{- content }}
{%- elif content is iterable and content is not mapping %}
{%- for item in content %}
{%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
{%- if is_system_content %}
{{- raise_exception('System message cannot contain images.') }}
{%- endif %}
{%- if do_vision_count %}
{%- set image_count.value = image_count.value + 1 %}
{%- endif %}
{%- if add_vision_id %}
{{- 'Picture ' ~ image_count.value ~ ': ' }}
{%- endif %}
{{- '<|vision_start|><|image_pad|><|vision_end|>' }}
{%- elif 'video' in item or item.type == 'video' %}
{%- if is_system_content %}
{{- raise_exception('System message cannot contain videos.') }}
{%- endif %}
{%- if do_vision_count %}
{%- set video_count.value = video_count.value + 1 %}
{%- endif %}
{%- if add_vision_id %}
{{- 'Video ' ~ video_count.value ~ ': ' }}
{%- endif %}
{{- '<|vision_start|><|video_pad|><|vision_end|>' }}
{%- elif 'text' in item %}
{{- item.text }}
{%- else %}
{{- raise_exception('Unexpected item type in content.') }}
{%- endif %}
{%- endfor %}
{%- elif content is none or content is undefined %}
{{- '' }}
{%- else %}
{{- raise_exception('Unexpected content type.') }}
{%- endif %}
{%- endmacro %}

это первые строки, дальше все тот же if-then-else

Шутка

Читать полностью…
Subscribe to a channel