tgindex
Записки MLEшника

Записки MLEшника

Статистика

Yet another machine learning engineer Автор @egshes, Yandex (ex. T-Bank, Celsus)

Последний пост
14 мая
Последнее чтение
12:21
Постов за неделю
0
Всего постов
20
Тип
открытый
Язык
русский
Категория
Блоги
В каталоге с
12 авг.
Подписчики
859
0 за 3 дн.
Сутки
+1
+0,12%
Неделя
 
Месяц
 
Просмотров на пост
1 732
20 постов
Вовлечённость
201,6%
к подписчикам
Постов в день
0,0
всего 20
Упоминаний
1
каналов
Охват размещения
оценка
1/24сутки в ленте
1/48двое суток
1/72трое суток

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • 14 мая7222719

    Кто пробовал Paperclip? Это такой оркестратор агентов, но в виде структуры организации. Вы ставите задачи. Их берет CEO и передает подчиненным — агентам, которых предварительно нанимает. Все это в красивом UI У кого-то был позитивный опыт? ))0) Я 2 часа промучился, пытаясь добиться создания агента с простейшим скиллом на проверку баланса в OpenRouter. По сути, это скил, описывающий один HTTP-запрос. Я поставил задачу CEO. Он нанял CTO. Поставил задачу CTO. У CTO нет прав. CTO отдал задачу CEO. Я попытался дать права CTO. Нельзя дать CTO. Дал CEO. Попросил CEO сделать задачу. Он не стал, а отдал CTO. CTO не может - прав нет. Отдал CEO. Я захотел создать скил сам - из UI можно создать, но не получается редактировать 🤡💀 Не понимаю: то ли лыжи не едут, то ли я... Идея-то здравая - подцепить своих агентов в уже готовый UI. Но первое знакомство, чет, не задалось Поделитесь, пожалуйста, если у кого-то был более удачный опыт с этим

  • 30 апр.1 3022035

    Полезный режим был в ChatGPT — Study Mode Пока собрался про него написать, его уже убрали 💀 Но сам подход мне прям зашёл. Отлично вскрывает иллюзии понимания. Я использую очень просто: “погоняй меня по X” И дальше модель начинает задавать вопросы, копать глубже, цепляться к формулировкам. Часто уже после 3–4 вопросов понимаешь, что на самом деле не понимаешь. Неплохо работает: — когда учишь новую тему — перед собесами Он пропал в ChatGPT, но я сделал проект с системным промптом отсюда и получил такое же поведение

  • 26 мар.1 2091910

    Неожиданно полезный сценарий для Claude Code — дебаг сложных LLM-пайплайнов Один промпт дебажить легко Два подряд — еще терпимо А вот пайплайн с классификатором, ветками выполнения, несколькими LLM и tools — уже боль Проблему понять еще можно, а вот локализовать конкретное место в промпте или коде, которое ее вызвало, уже тяжело Тут хорошо зашел Claude Code. Я просто даю ему ссылку на trace в Langfuse, и он разбирает выполнение. Причем читает не только сам trace и промпты, но и код вокруг На моем стеке (LangGraph + Langfuse + промпты в коде) это сработало отлично. За 5–10 таких разборов во время разработки стало заметно меньше хрупких мест в пайплайне. Очень помогает то, что Claude видит не только trace, но и код, который задает поведение Например, был такой кейс: агент очень слабо понимал выбор пользователя Агент: “вот вам 5 вариантов” Пользователь: “хочу 4–5” Агент: “выберите вариант” Claude раскопал, что проблема была не в этом шаге, а раньше — в промпте планера. Поправил его, и это действительно сняло проблему По тому же принципу сделал разбор логов из Sentry. Там тоже работает, но пока пользовался меньше Самое приятное — это оказалось очень легко собрать: просто попросил Claude Code сделать для этого скил В общем, для дебага таких пайплайнов — очень рабочая штука

  • 18 мар.1 081266

    Энжоеры langchain тут? Недавно задумался, а что происходит при llm.with_structured_output. Интересовали два вопроса: 1. Гарантируется ли формат? 2. А как это работает, если провайдер не умеет “вернуть JSON по схеме” Копнув глубже, оказалось: with_structured_output - это не одна функция, а 3 разных режима под капотом: ### 1. json_schema Провайдер применяет server-side ограничение на формат ответа (constrained decoding) • работает только если провайдер это реально поддерживает • через прокси (например OpenRouter) может деградировать ### 2. function_calling Хитрый трюк: • схема превращается в tool • модель возвращает не текст, а вызов функции (tool_call) • аргументы функции = ваш JSON ### 3. json_mode Просто добавляем в промпт: “верни JSON вот в таком формате, умоляю” ### Итого Гарантируется ли формат? • json_schema (нативный) - почти да (но вот gemini-2.5-flash-mini через openrouter у меня не всегда) • function_calling - почти да • json_mode - если хорошо попросишь LLM - это стохастический попугай. Все, что она умеет - вероятностно генерировать токены. Всегда есть шанс, что промпт проигнорируется, json будет битый или не тот. Поэтому помним - LLM нам ничего не должна. Она как работа с сетью - в случайный момент может отвалиться. Без retry не обойтись

  • 10 мар.1 0882824

    Довольно давно пользуюсь Obsidian, и недавно стал пользоваться Claude Code. Первый — это набор локальных md файлов, а второй, грубо, LLM, которая умеет читать и писать файлы. Так вот получается мощный дуэт Потестил связку на двух задачках: 1. Планирование путешествия Предстоит поездка, и оказалось удобнее планировать ее в Obsidian через Claude Code, чем в чате в браузере. Сначала попросил набрать интересных мест в городе, порасспрашивал про них и отсеял лишнее, потом выбрал дни и попросил раскидать по часам, отдельно — найти актуальные цены. Работало даже без модных MCP серверов для поиска, хватило дефолтного web search На выходе — готовый план в .md файлах, который можно открыть офлайн 2. Структурирование изучения темы Знакомая проблема: хочу что-то изучить, но через пару дней бросаю Написал Claude Code промпт, который строит учебный план и помогает по нему идти: — верхнеуровневый план: что изучаю, в какие сроки — декомпозиция на задачи по неделям — генерация тем и задачек на день Claude Code пишет всё в Obsidian, и каждый день открываешь заметку с планом, не заходя ни в какой сервис. Забуксовал — просишь скорректировать, он обновляет файлы 3. Причесал структуру в папках В некоторых местах был хаос. Попросил CC выявить текущие структурные проблемы и исправить. Сработало с первого раза, ахахха. Стало приятно смотреть, а также проще навигироваться 1 и 2 можно сделать и через Projects в веб-интерфейсе Claude (хотя путешествия — с оговорками), но: • данные локальные — работает без интернета • легко найти и посмотреть файлы • нет привязки к провайдеру — завтра можно переключиться на другую модель или вообще на локальную LLM. Вместо Claude Code есть например OpenCode В общем, сетап прикольный. Горячо рекомендую потыкать

  • 26 янв.1 3822139

    Полезный сайтик https://deepwiki.directory, с ИИ описанием репозиториев. Из прикольного - не только текстом описывает, но и строит схемы с архитектурой. Мне так, действительно, легче вникнуть, если нет хорошей документации от разработчиков Недавно, например, вникал в архитектуру библиотечки для рагов dsRAG. А вот ИИ дока для него.

  • 20 янв.1 585713

    Yet another сайт со сравнением ллмок, но еще и с метриками на бенчмарках https://llm-stats.com/

  • 27 нояб.1 8212026

    Крутой репозиторий, где люди взяли nanogpt (воспроизведение GPT-2) и ускоряли ее обучение. Такой спидран, но для llm-ки Тут записаны все изменения, и улучшения по времени. Можно почерпнуть идей для оптимизаций обучений На текущий момент для обучения на 8 h100: - Время: было 45 минут, стало 2 минуты - Данные: было 10 млрд токенов, стало 730 млн

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

  • Спустя долгое время отсутствия приношу пост 👀 Наверняка вы когда-нибудь сталкивались с тем, что питонячий код/скрипт зависал во время выполнения. В такие моменты очень хочется знать, собственно, в каком месте это происходит... Так вот это довольно легко сделать (по крайней мере на Linux) с помощью дебагера gdb Делается так: 0. Сохраняем локально файл libpython.py. Это нужно, чтобы в gdb стек и код вокруг отображался "по-питонячему" (иначе это будет малопонятный C++). - Для этого открываем CPython на гитхабе - Переключаемся с main ветки на tag с версией питона, которым запущен зависший код - Скачиваем файл libpython.py (например `wget https://raw.githubusercontent.com/python/cpython/refs/tags/v3.13.5/Tools/gdb/libpython.py`) 1. Подключаемся к зависшему питонячему процессу sudo gdb -p 68653 2. Подключаем файл source libpython.py 3. Выбираем нужный поток, если их несколько info threads - показать все thread 1 - выбрать первый 4. Смотрим стек py-bt 5. Смотрим код вокруг py-list 6. Смотрим переменные py-locals 7. Двигаемся по стеку выше/ниже py-up py-down Все команды можно посмотреть как раз в файле libpython.py, который мы скачивали на шаге 0 Один-два раз это упражнение делаешь - код болеть не будет! 💪

  • Полезная статейка о использовании блендера для синтетики вдогонку к посту о генерилке синтетических листков Если в первом случае все управлялось конфигами, то тут уже напрямую питоном Вообще там много интересных статей в блоге DeepSchool (не реклама 🙂)

  • у вас такое бывало, когда в очередной раз столкнувшись с чем-то неработающим в сети, ты обещаешь себе изучить их? Узнали? так вот после секции вайбдебагинга я честно покопал DNS: 1. Посмотрел легендарного курс по сетям Андрея Созыкина. Он теперь свежий - три месяца назад снят. 18-24 видео 2. Поболтал с Клодом 3. Проделал практику из видео (вот это прям мастхев. Итеративный режим звучит просто, а сам я его не с первого раза руками сделал) Теперь хоть понимаю выход команды dig 😅 А лекции по сетям от Андрея горячо советую

  • Нашел кайфовый генератор листов бумаги через блендер Пригодится, например, для ситетических OCR данных. Вроде может сохранить bbox-ы Чтобы было проще его понять, вот что я выяснил: 1. В примере текст - psd файл. Это не обязательно, работает и с png 2. Основные настройки: - config.camera.relative_camera_distance - приближает/отдаляет листок - config.camera.orbit=(a, b) - меняет позицию камеры относительно листка - a - угол наклона к нормали (а = 30, значит угол наклона камеры - 70 градусов к столу) - b - позиция камеры (0 смотрим на бумажку снизу, b = 90 - смотрм справа, b = 180 - смотрим сверху и тд) - sample.ground.visible - включить/выключить подложку - sample.ground.texture_path_base - путь до текстуры подложки. Можно скачать новых, например, тут Горячо рекомендую #tool@yet_another_mle

  • Сейчас много шума вокруг MCP (Model Context Protocol). Разберемся, что и зачем Если коротко, то это крепкий подход к унификации взаимодействия LLM с внешними инструментами Почему это хорошо: - Теперь можно не писать велосипеды, подключая, скажем, postgres или поиск в гугл, а взять готовую реализацию (например, тут) - Станет легче дружить между собой клиентов и сервера. Уже сейчас взрыв имплементации серверов и клиентов - Наверняка, это доедет в обучение моделей, и они уже из коробки будут знать, какая схема вызова и ответа у популярных инструментов Подробнее про Model Context Protocol - разработали Anthropic - определяет сервер (который предоставляет API к данным и инструментам) и клиента (который может обращаться к серверу, используя протокол MCP) - LLM видит описания схемы запроса к серверу, и может им пользоваться - сервер может предоставлять - tools (дает LLM выполнить какое-то действие) - resources (дает доступ к данным) - sampling (ответы от LLM) - prompts (переиспользуемые промпты) - не привязан к языку (также, как HTTP запрос можно сделать хоть с ассемблера) Немногие знают, но стандартизация сделала из обезьяны человека 🔧 Интересно, что же она сделает из LLM 🤔

  • Вот и до меня дошла очередь поиграться с text2sql Как человек ленивый и все еще не вайбокодящий, я решил поискать готовых библиотек Встречайте - 🛁. Буквально vanna Из прикольного: 1. Запустилось (с gpt4o-mini полет нормальный) 2. Есть красивый фронт из коробки 3. "Самообучаемый" - можно добавлять в память успешно выполненные SQL вместе с запросами пользователей Из грустного: 1. Без пачки рукописных примеров и таблички с описанием колонок в таблиц ничего не работало. Хоть и я добавлял описания таблиц по примеру. Постоянно падало из-за того, что sql игнорирует регистр, а названия таблиц не были заключены в скобки 2. Почему-то в функции ask, которая является точкой входа для запроса нет автоисправления запроса (когда показываешь ошику выполнения ллм, чтобы она исправила). В то же время во фронте это у них есть 3. Зачем-то захардкодили anonymized_telemetry=False (тут) в коннекторе к chromadb 🤔 А вообще мне понравилось. Для пет-проекта сойдет #tool

  • Слышали про прокси по ssh? А он есть - sshuttle Буквально, имеете удаленную тачку с доступом по ssh, ставите на свою тачку sshuttle и поднимаете прокси одной командой Также в качестве удаленной тачки можно юзать Pod в кубере (а что, а вдруг)

  • Извините! Я почему вредный был? Потому что у меня cloudpathlib не было! А теперь я сразу добреть начну. И какую-нибудь папку на s3 заведу. Чтоб жить веселее. Ты домой приходишь, и удобно файлы на s3 кладешь… Э-эх! Вечно спотыкался об интерфейс boto3. Как-то там не по-питоновски всё. А я pathlib.Path люблю. Вот и попробовал cloudpathlib, который дает интерфейс Path для s3 (а также gs и azure). Понравилось. Теперь и Вам советую Еще он хорошо комбинируется с тредингом, если надо много файликов загрузить или скачать. Сильно бодрее в моем случае грузил #tool

  • Ни для кого не секрет, что лекции Карпатого - это концентрат знаний Сегодня на обзоре Deep Dive into LLMs like ChatGPT (обзор на лекцию, реально?!) О чем? Из каких строительных блоков состоит LLM, и как ее учат, чтобы получит чат-асистента Что показалось мне интересным: 1. Андрей разбирает, почему есть "глупые ошибки" - "Сколько r в strawberry?" - потому что токенизация по токенам, а не по буквам - "Что больше 9.11 или 9.9?" - что модель путают библейские тексты, в которых 9.11 идет позже 9.9 - "Кто тебя создал?" - в модели этого нет (если не заложить), потому что она умеет только продолжать тексты 2. Откуда берутся галлюцинации, и как можно с ними бороться - Почему галлюцинации - потому что модели раньше не учили говорить "я не знаю". Тут на SFT этапе нужно найти вопросы, на которые модель не знает ответов, и сделать для них ответ - "я не знаю" - Можно научить модель гуглить в случаях, когда она не знает ответ 3. Объяснил идею DeepSeek R1 4. Поделился, как следит за прогрессом в LLM - lmarena - ainews рассылка - X(twitter) Определенно будет вам полезно, если не супер погружены в LLM движуху

  • TLDR доклада "Как в яндексе делают ранжирование нейросетками в RecSys?" 1. Категориальные фичи кодируют эмбедингами 2. Вещественные фичи нормализуют / делают улучшенную бинаризацию (называют кусочно-линейным кодированием) 3. Используют один слой DCN, чтобы моделировать комбинации признаков 4. Затем 5 MLP слоев и дропаут 5. Добавляют на вход фичи с других моделей по пользователю (например, у них есть трансформер, который делает вектор пользователя по его истории) 6. Делаю несколько голов на несколько действий пользователя (клик, просмотр и тд.) 7. Кормят много данных с большим бачсайзом 8. Лосс на попарное ранжирование (сигмоида от разности логитов двух айтемов)

  • Если вдруг еще не пользовались https://chat.deepseek.com/, то попробуйте! Качество ответов +- как у чатгпт, но не надо впн, и быстрее печатает. Также можно включить режим рассуждения. Я просил сеточку найти одинаковые элементы в массиве из 100 чисел. Получилось! (мне правда надо было найти, где у меня там закрались два одинаковых элемента, а питон было не охота открывать) Вообще у меня прижилось два сценария использования - кодинг и учеба. Для второго вообще мастхев. Спрашиваю тлдр всех технологий, с которыми сталкиваюсь Китайцы порадовали. Желаю каждому причастному - по 🍚 и 🐈👱‍♀️

Записки MLEшника — tgindex