TGViewer
Channel Public Channel
Записки MLEшника

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

@yet_another_mle

Yet another machine learning engineer

Автор @egshes, Yandex (ex. T-Bank, Celsus)
Subscribers
859
Photos
10
Videos
0
Links
114
Recent Posts 20 shown
Post #130 829
Кто пробовал Paperclip?

Это такой оркестратор агентов, но в виде структуры организации.

Вы ставите задачи. Их берет CEO и передает подчиненным — агентам, которых предварительно нанимает. Все это в красивом UI

У кого-то был позитивный опыт? ))0)

Я 2 часа промучился, пытаясь добиться создания агента с простейшим скиллом на проверку баланса в OpenRouter. По сути, это скил, описывающий один HTTP-запрос.

Я поставил задачу CEO. Он нанял CTO. Поставил задачу CTO. У CTO нет прав. CTO отдал задачу CEO. Я попытался дать права CTO. Нельзя дать CTO. Дал CEO. Попросил CEO сделать задачу. Он не стал, а отдал CTO. CTO не может - прав нет. Отдал CEO. Я захотел создать скил сам - из UI можно создать, но не получается редактировать 🤡💀

Не понимаю: то ли лыжи не едут, то ли я...

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

Поделитесь, пожалуйста, если у кого-то был более удачный опыт с этим
  • 😁 19
  • 🔥 4
  • 😢 2
  • 🍌 1
  • 👀 1
Post #129 1.4K
Полезный режим был в ChatGPT — Study Mode
Пока собрался про него написать, его уже убрали 💀

Но сам подход мне прям зашёл. Отлично вскрывает иллюзии понимания.

Я использую очень просто:
“погоняй меня по X”

И дальше модель начинает задавать вопросы, копать глубже, цепляться к формулировкам.
Часто уже после 3–4 вопросов понимаешь, что на самом деле не понимаешь.

Неплохо работает:
— когда учишь новую тему
— перед собесами

Он пропал в ChatGPT, но я сделал проект с системным промптом отсюда и получил такое же поведение
  • 👍 15
  • 🍌 5
  • 👀 1
Post #128 1.27K
Неожиданно полезный сценарий для Claude Code — дебаг сложных LLM-пайплайнов

Один промпт дебажить легко
Два подряд — еще терпимо
А вот пайплайн с классификатором, ветками выполнения, несколькими LLM и tools — уже боль

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

Тут хорошо зашел Claude Code. Я просто даю ему ссылку на trace в Langfuse, и он разбирает выполнение. Причем читает не только сам trace и промпты, но и код вокруг

На моем стеке (LangGraph + Langfuse + промпты в коде) это сработало отлично. За 5–10 таких разборов во время разработки стало заметно меньше хрупких мест в пайплайне. Очень помогает то, что Claude видит не только trace, но и код, который задает поведение

Например, был такой кейс: агент очень слабо понимал выбор пользователя
Агент: “вот вам 5 вариантов”
Пользователь: “хочу 4–5”
Агент: “выберите вариант”

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

По тому же принципу сделал разбор логов из Sentry. Там тоже работает, но пока пользовался меньше

Самое приятное — это оказалось очень легко собрать: просто попросил Claude Code сделать для этого скил

В общем, для дебага таких пайплайнов — очень рабочая штука
  • 🔥 14
  • 👍 5
Post #127 1.12K
Энжоеры 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 не обойтись
  • 👍 15
  • 🔥 6
  • 👀 4
  • 👎 1
Post #126 1.12K
Довольно давно пользуюсь 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

В общем, сетап прикольный. Горячо рекомендую потыкать
  • 🔥 23
  • 🍌 3
  • 👍 2
Post #125 1.42K
Полезный сайтик https://deepwiki.directory, с ИИ описанием репозиториев. Из прикольного - не только текстом описывает, но и строит схемы с архитектурой. Мне так, действительно, легче вникнуть, если нет хорошей документации от разработчиков

Недавно, например, вникал в архитектуру библиотечки для рагов dsRAG. А вот ИИ дока для него.
  • 🔥 12
  • 👍 5
  • 😢 2
  • 🍌 2
Post #124 1.61K
Yet another сайт со сравнением ллмок, но еще и с метриками на бенчмарках

https://llm-stats.com/
  • 🍌 4
  • 👍 3
Post #123 1.84K
Крутой репозиторий, где люди взяли nanogpt (воспроизведение GPT-2) и ускоряли ее обучение. Такой спидран, но для llm-ки

Тут записаны все изменения, и улучшения по времени. Можно почерпнуть идей для оптимизаций обучений

На текущий момент для обучения на 8 h100:
- Время: было 45 минут, стало 2 минуты
- Данные: было 10 млрд токенов, стало 730 млн
  • 👍 12
  • 🍌 5
  • 🤔 3
Post #122 2.83K
Всегда было интересно найти промпты, которые обходят отказы ллмок и заставляют их ответить на запрещенные вопросы.

Наткнулся на такой репозиторий. Кое-где работают 🙃
Из интересного у этого же автора - подборка ликнутых системных промптов от разных провайдеров
  • 👍 10
  • 🤔 1
  • 🍌 1
Post #121 2.66K
Спустя долгое время отсутствия приношу пост 👀

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

Так вот это довольно легко сделать (по крайней мере на 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

Один-два раз это упражнение делаешь - код болеть не будет! 💪
  • 🔥 22
  • 👍 3
  • 🤔 2
  • 🍌 1
Post #120 1.94K
Полезная статейка о использовании блендера для синтетики вдогонку к посту о генерилке синтетических листков

Если в первом случае все управлялось конфигами, то тут уже напрямую питоном

Вообще там много интересных статей в блоге DeepSchool (не реклама 🙂)
  • 🔥 11
  • 🍌 3
  • 👍 1
  • 🤔 1
Post #119 2.15K
у вас такое бывало, когда в очередной раз столкнувшись с чем-то неработающим в сети, ты обещаешь себе изучить их? Узнали?

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

Теперь хоть понимаю выход команды dig 😅

А лекции по сетям от Андрея горячо советую
  • 🔥 18
  • 👍 6
  • 🍌 3
Post #118 2.24K
Нашел кайфовый генератор листов бумаги через блендер

Пригодится, например, для ситетических 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
  • 👍 15
  • 🔥 2
  • 😁 2
  • 🤯 1
  • 🍌 1
Post #117 1.85K
Сейчас много шума вокруг MCP (Model Context Protocol). Разберемся, что и зачем

Если коротко, то это крепкий подход к унификации взаимодействия LLM с внешними инструментами

Почему это хорошо:
- Теперь можно не писать велосипеды, подключая, скажем, postgres или поиск в гугл, а взять готовую реализацию (например, тут)
- Станет легче дружить между собой клиентов и сервера. Уже сейчас взрыв имплементации серверов и клиентов
- Наверняка, это доедет в обучение моделей, и они уже из коробки будут знать, какая схема вызова и ответа у популярных инструментов

Подробнее про Model Context Protocol
- разработали Anthropic
- определяет сервер (который предоставляет API к данным и инструментам) и клиента (который может обращаться к серверу, используя протокол MCP)
- LLM видит описания схемы запроса к серверу, и может им пользоваться
- сервер может предоставлять
- tools (дает LLM выполнить какое-то действие)
- resources (дает доступ к данным)
- sampling (ответы от LLM)
- prompts (переиспользуемые промпты)
- не привязан к языку (также, как HTTP запрос можно сделать хоть с ассемблера)

Немногие знают, но стандартизация сделала из обезьяны человека 🔧
Интересно, что же она сделает из LLM 🤔
  • 👍 21
  • 🍌 5
Post #116 1.56K
Вот и до меня дошла очередь поиграться с text2sql

Как человек ленивый и все еще не вайбокодящий, я решил поискать готовых библиотек

Встречайте - 🛁. Буквально vanna

Из прикольного:
1. Запустилось (с gpt4o-mini полет нормальный)
2. Есть красивый фронт из коробки
3. "Самообучаемый" - можно добавлять в память успешно выполненные SQL вместе с запросами пользователей

Из грустного:
1. Без пачки рукописных примеров и таблички с описанием колонок в таблиц ничего не работало. Хоть и я добавлял описания таблиц по примеру. Постоянно падало из-за того, что sql игнорирует регистр, а названия таблиц не были заключены в скобки
2. Почему-то в функции ask, которая является точкой входа для запроса нет автоисправления запроса (когда показываешь ошику выполнения ллм, чтобы она исправила). В то же время во фронте это у них есть
3. Зачем-то захардкодили anonymized_telemetry=False (тут) в коннекторе к chromadb 🤔

А вообще мне понравилось. Для пет-проекта сойдет

#tool
  • 👍 10
  • 🍌 4
  • 😁 1
Post #115 1.69K
Слышали про прокси по ssh? А он есть - sshuttle

Буквально, имеете удаленную тачку с доступом по ssh, ставите на свою тачку sshuttle и поднимаете прокси одной командой

Также в качестве удаленной тачки можно юзать Pod в кубере (а что, а вдруг)
  • 👍 7
  • 👀 7
  • 🍌 4
Post #114 2.09K
Извините! Я почему вредный был? Потому что у меня cloudpathlib не было! А теперь я сразу добреть начну. И какую-нибудь папку на s3 заведу. Чтоб жить веселее. Ты домой приходишь, и удобно файлы на s3 кладешь… Э-эх!


Вечно спотыкался об интерфейс boto3. Как-то там не по-питоновски всё. А я pathlib.Path люблю.

Вот и попробовал cloudpathlib, который дает интерфейс Path для s3 (а также gs и azure). Понравилось. Теперь и Вам советую

Еще он хорошо комбинируется с тредингом, если надо много файликов загрузить или скачать. Сильно бодрее в моем случае грузил

#tool
  • 🔥 19
  • 👍 7
  • 🎉 1
  • 🍌 1
Post #113 1.93K
Ни для кого не секрет, что лекции Карпатого - это концентрат знаний

Сегодня на обзоре 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 движуху
  • 🔥 25
  • 🍌 3
  • 👍 2
Post #112 2.01K
TLDR доклада "Как в яндексе делают ранжирование нейросетками в RecSys?"

1. Категориальные фичи кодируют эмбедингами
2. Вещественные фичи нормализуют / делают улучшенную бинаризацию (называют кусочно-линейным кодированием)
3. Используют один слой DCN, чтобы моделировать комбинации признаков
4. Затем 5 MLP слоев и дропаут
5. Добавляют на вход фичи с других моделей по пользователю (например, у них есть трансформер, который делает вектор пользователя по его истории)
6. Делаю несколько голов на несколько действий пользователя (клик, просмотр и тд.)
7. Кормят много данных с большим бачсайзом
8. Лосс на попарное ранжирование (сигмоида от разности логитов двух айтемов)
  • 👍 11
  • 🍌 3
  • 🔥 2
  • 😢 1
  • 👀 1
Post #111 1.65K
Если вдруг еще не пользовались https://chat.deepseek.com/, то попробуйте!

Качество ответов +- как у чатгпт, но не надо впн, и быстрее печатает. Также можно включить режим рассуждения. Я просил сеточку найти одинаковые элементы в массиве из 100 чисел. Получилось! (мне правда надо было найти, где у меня там закрались два одинаковых элемента, а питон было не охота открывать)

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

Китайцы порадовали. Желаю каждому причастному - по 🍚 и 🐈👱‍♀️
  • 🔥 27
  • 😁 4
  • 🍌 4
Older posts →

About this channel

How can I read @yet_another_mle without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Записки MLEшника: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Записки MLEшника have?
Записки MLEшника (@yet_another_mle) has 859 subscribers on Telegram, refreshed roughly every 30 minutes.
Does Записки MLEшника know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →