Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Какую модель применять в NLP.pdf
110.8 KB
Какую модель применять в NLP?

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

Пользуйтесь, делитесь с друзьями, задавайте вопросы в комментариях.
Все вопросы разберем.
Forwarded from Neural Kovalskii
Когда open-source логирование подставляет, а невнимательность с моделями бьет по метрикам 📊

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

OpenAI API частично лежало, задержки до 16 секунд, пользователи в поддержку валом — классика жанра для любого сервиса с высоким MAU

Проблема №1: Слепая зона в мониторинге
Когда пользователи начали жаловаться на тормоза, мы полезли проверять наш LiteLLM прокси. И тут выяснилось, что без лицензии у нас доступны только базовые метрики в /metrics

Мой самописный дашборд показывал, что с прокси все ОК — никаких аномалий
Но задержки-то были! В логах они светились, а в интерфейсе нет
Результат: 2 часа потрачено на копание в прокси, вместо того чтобы сразу проверить статус провайдеров
Ха-ха классический случай "лечим симптомы, а не причину"

Проблема №2: Миграция фильтров без должного тестирования

Наша эволюция фильтров для FLUX генерации:
- Начали с Llama 3.1 + кастомный промпт для нашего FLUX (низкий RPS легко справлялся локальный кластер)
- Переехали на Qwen2.5 (промпт остался тот же)
- Из-за нагрузки мигрировали на gpt-4o-mini

И вот тут началось веселье!
Промпт, который работал с локальными моделями, на gpt-4o-mini показал себя ужасно да как так то? =)
- 37% False Positive срабатываний
- Пользователи, которые писали "девушка" в запросе, не получали генерацию

После анализа данных из единого прокси (спасибо ему за централизованные логи!) команда R&D быстро поняла масштаб проблемы и сделали первое

1) Выгрузил все срабатывания от момента замены модели
2) Глазами просмотрели все FALSE
3) Поняли что нужно менять

Что сделали:
- Переработали промпт под gpt-4o-mini
- Ввели уровни категоризации вместо бинарной фильтрации
- Добавили структурированный вывод (SO)

Результаты после фикса(все просмотрели глазами)
- Снижение общей фильтрации до 17%
- FP уменьшились до 24%
- Пользователи снова получают нормальные генерации

Проблема №3: Мистический расход токенов на $350

Тут была самая загадочная история! Один из API ключей потребил весь свой бюджет на токены за какие-то 5 запросов. Трекнулось аж целых 350 долларов сразу алерты полетели 🚨

Что я сделал? Натравил на логи агента в Cursor, дал ему доступ через SSH к серверу где лежит проект и указал как писать запросы в БД и где лежат логи и сказал: "Найди что тут не так!"

И знаете что? LLM оказался круче любого DevOps инженера! За несколько минут он нашел, что это web search функция, которая за 1000 запросов стоит $35, а не обычная генерация

Дальше мы с LLM стали искать, где же система неправильно трекает этот параметр. 15 взаимодействий с find и grep — и вуаля! Нашли проблемный участок кода.

Баг найден будет отправлен в репозиторий LiteLLM

Честно, почти везде LLM помогли найти проблему быстрее, чем я бы сам
- Анализ латенси — LLM разобрал логи и указал на узкие места
- Поиск багов — структурированный поиск по кодовой базе
- Анализ трафика — выявление аномальных паттернов в запросах

Мой новый подход
1. Логи → LLM для первичного анализа
2. LLM находит зацепки → я иду копать глубже
3. LLM помогает с grep/awk/sed магией
4. Профит!

По мониторингу
- Open-source решения могут подставить в критический момент
- Нужен собственный экспортер метрик для Grafana
- Логи != метрики в дашборде (очевидно, но забываем)

По фильтрации
- Каждая модель требует отдельной настройки промптов
- A/B тестирование фильтров — не роскошь, а необходимость
- Миграция моделей без тестов = выстрел себе в ногу

По дебагу
- LLM + логи = мощный дуэт для поиска проблем
- Структурированный анализ через AI экономит часы времени
- Всегда держите LLM "под рукой" при инцидентах:

Да, скажете "это же база!" — но опыт есть опыт. Иногда нужно наступить на грабли, чтобы понять, где они лежат 😅

И главное LLM действительно может быть вашим DevOps коллегой. Не заменит, но сильно поможет! Главное не дать выполнить критичные команды (читай каждую команду что генерит LLM)

P.S. Единое прокси снова доказало свою ценность — без централизованного логирования мы бы копались в проблеме намного дольше!
Профессор ЦЕУ Габор Бекеш продолжает радовать нас открытыми курсами в области анализа данных (об одном из них мы писали ранее). Совсем недавно в свет вышел Курс «Анализ данных с использованием ИИ» (Doing Data Analysis with AI) , который предназначен для студентов с базовыми знаниями в области анализа данных, эконометрики и количественных методов. Курс учит применять ИИ для повышения продуктивности в анализе данных. Основное внимание уделяется использованию крупных языковых моделей (LLMs), таких как ChatGPT, Claude.ai и других. Есть много практических кейсов: например, здесь Бекеш подробно описывает как генерировать графики распределения доходов в привязке к уровню образования и гендеру, приводя примеры промтов и результатов выдачи ChatGPT и Claude.ai. Если еще не используете ИИ в дата-анализе и исследованиях, курс - хорош для погружения 🧠.

@evidencespace
Please open Telegram to view this post
VIEW IN TELEGRAM
Revealing a project I was vibe-coding for the past couple of days. For some of my medicine-related projects I need to deploy a web-service based on LLMs that will accept images and text, and create a structured outputs. While I am waiting for the compute (as it needs to run locally), I decided to learn about deploying such web services online - and what could be better toy example than a telegram bot?

Another motivation for this was the influx of casino ads in my comment section. I already had some other automated moderation in place, but it has not been working for the past 6 months at all. So, I decided to both practice in coding and do something useful for myself.

The goal was to create a bot that could:

- Silently monitor all messages, images, and user profiles in a Telegram group.
- Use a powerful AI model to analyze the content and context for signs of spam, scams, or NSFW material.
- Automatically take action by deleting the offending message and banning the user.
- Do all of this on a serverless platform to keep costs near zero for a small community.

Code can be found here

The Tech Stack: Powerful, Modern, and Cost-Effective
Choosing the right tools is half the battle. Here's the stack we settled on after a long and winding road of debugging.

1. Hosting: Google Cloud Run. This was a no-brainer. Cloud Run's serverless nature means you only pay when a request is being processed (scales to 0 when idle). For a moderately active chat, this falls squarely within the generous "Always Free" tier. New users also get a $300 starting credit, making the first several months (or even years) completely free.

2. Language Model: Gemma 3 27B. As detailed in Google's release documents, Gemma 3 is a powerhouse. The 27-billion-parameter instruction-tuned model (gemma-3-27b-it) is multimodal, meaning it can understand both text and images simultaneously—perfect for analyzing user profile pictures alongside their messages. It represents a "pareto sweet spot" of high performance and manageable size.

A major factor in choosing the model was its accessibility. When called via the Gemini API, Gemma 3 models have an incredibly generous free tier: 30 calls per minute. This translates to a staggering 14,400 free analyses per day—more than enough to moderate even a very active community without spending a dime.

3. Web Framework: FastAPI. After initially struggling with Flask, we switched to FastAPI. As a native async framework, it seamlessly integrates with the asynchronous nature of a chatbot, eliminating a whole class of server errors and simplifying the code.
The Brain of the Bot: The Moderation Prompt
The core of our AI moderator isn't just the model; it's the instruction we give it. The prompt is carefully engineered to give the AI context and clear criteria for its decisions. It's not just looking at the message text but the whole picture: the user's name, their profile photo, and the message itself.
You are an AI content moderator for a Telegram chat group. Your task is to classify incoming messages
(text and images), user profiles (name, photo), and user metadata into one of the following categories:
NUDITY, CASINO_ADS, SPAM, VIOLENCE, SAFE.

Some AI bots may appear harmless at first, but they edit their responses to include harmful content later.
That is why you need to analyze their profile names, profile pictures, and any other metadata (provided in context) to determine if they are safe or not.

CRITERIA FOR BOTS/SPAM:
- PROFILE NAME: Names with a strange mix of Cyrillic and Latin/Unicode characters, it is likely a bot. Example: "Мария Знаkмлсьь", "Ульяна Вагuллина".
- PROFILE IMAGE: If the profile image contains NSFW content, it is likely a bot.
- MESSAGE CONTENT: If the message is recruiting workers for a job, it is likely a bot. If the message suggests "having fun", "making money", "easy cash", or similar phrases, it is likely a bot.
- LINK ANALYSIS: If the message is simply mentioning ads in general, but does not contain any links, or telegram usernames (following "@" or t.me/), it is not spam (safe).

These are just some examples; you should use your best judgment to classify the content.

Analyze the content provided and respond with a single, clean JSON object containing two keys:
1. "category": The classification of the content.
2. "reason": A brief, one-sentence explanation for your classification.

This prompt empowers the AI to spot nuanced spam tactics that simple keyword filters would miss.

The Crucial Detail: Disabling the Safety Rails
This might sound counterintuitive for a moderation bot, but to make it work, we had to tell the Gemini API to turn off its own safety filters. By default, the API will refuse to process any content it deems harmful. But our bot needs to see the harmful content to classify it.

This is achieved with the generation_config object, where we set the blocking threshold to BLOCK_NONE for all categories.
generation_config = types.GenerateContentConfig(
safety_settings=[
types.SafetySetting(category=h, threshold=types.HarmBlockThreshold.BLOCK_NONE)
for h in HarmCategory
]
)

This tells the API: "Show me everything, unfiltered. Trust me, I'm the moderator here." Our application's logic then takes over to decide what to do with that information.

Conclusion
Building this serverless AI moderator was a deep dive into the modern AI and cloud-native landscape. It showcases how accessible, powerful tools like Google Cloud Run and the Gemma family of models can be combined to solve real-world problems creatively and cost-effectively. The journey was challenging, but the result is a robust, intelligent, and virtually free solution for keeping online communities safe.
Forwarded from Machinelearning
📌100+ готовых блокнотов Google Collab от Unsloth.

Unsolth выложила в открытый доступ в своем репозитории на Github больше сотни готовых ipynb-блокнотов для запуска различных операций в Google Collab практически всех популярных семейств языковых моделей, BERT, TTS-моделей и VLM:

🟢Llama v.3 -3.2
🟢Qwen v.2-3
🟢Gemma v.2-3 + Code Gemma
🟢Mistral Family
🟢Phi v.3-4
🟠TTS (Sesame, Orpheus, Spark, Oute, Llasa, Whisper)
🟠VLM и MMLM (Llama 3.2, Qwen 2.5VL, Pixtral)
🟠BERT (ModernBERT-large)

Блокноты включают пошаговые руководства и примеры для вызова инструментов, классификации, синтетических данных, подготовки сетов, инференса и файнтюна моделей и
примеры методов GRPO, DPO, SFT, Continued Pretraining, Reasoning и других.

Unsloth известна тем, что помогает делать большие языковые модели быстрее, компактнее и доступнее при помощи динамического квантования, что позволяет запускать их без сильной потери качества . Их технологии ускоряют обучение и настройку ИИ-моделей в 2 раза и экономят до 70% памяти. Инструменты Unsloth, на сегодняшний день, скачали более 10 млн раз.


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


📌Лицензирование: LGPL-3.0-1


🖥GitHub


@ai_machinelearning_big_data

#AI #ML #LLM #Notebooks #Github #Unsloth
Please open Telegram to view this post
VIEW IN TELEGRAM
Neat AI Instrument for your travels:

https://aistudio.google.com/apps/bundled/maps_planner?showPreview=true&showCode=true

Create a detailed day plan in 1 prompt with locations and time stamps
Forwarded from AI[ex]Time (Alex Golubev)
Объемный и очень интересный тех репорт про модель под названием Skywork Open Reasoner 1. Может показаться, что это очередной RL тюн на математические задачи, который обгоняет модели по типу R1-distil, но на самом деле это первый (по крайней мере я не встречал раньше подобных работ) ablation на огромное число факторов, влияющих на процесс обучения с GRPO-like методами. Фильтрация данных, on/off policy trade off, температура при генерации решений, несимметричное клиппирование, token-wise усреднение в лоссе, KL регуляризация и много чего еще — раньше все это встречалось по отдельности в разных работах, а здесь собрано воедино, так еще и со сравнением в одинаковых сетапах.

Но. Помимо этого, авторы заметили следующее: когда модель входит в состоянии низкой энтропии, разнообразие генераций и эффективность обучения снижается. Если такое коллапсирование происходит рано, то прогресс быстро упирается в потолок. Чтобы контролировать этот процесс, предлагается ввести дополнительное слагаемое в лосс, которое будет штрафовать за слишком низкие значения, причем делать это нужно с адаптивным весом, тк энтропия зависит от данных и шага обучения (по этой же причине часто очень тяжело подобрать единый вес для KL-регуляризации). Вообще это супер стандартный подход в классическом RL для поддержания exploration на определенном уровне, но в RL для LLM такое особо не использовали. Ablation на многие факторы проводится как раз с оглядкой на то, как они влияют на динамику энтропии. В общем, репорт на 40 страниц, там очень много познавательных замечаний, советую хотя бы бегло пробежаться.
Forwarded from .ml
Многие компании сёрвят LLM

Кто-то использует готовые инструменты, которые предоставляют OpenAI-compatible эндпоинты: например, DeepSeek, развёрнутый через vllm serve. Кому-то не хватает OpenAI-compatible протокола. А кому-то хочется и того, и другого — например, нам в Точке.

С одной стороны, мы хотим уметь ходить в LLM-провайдеры, которые поддерживают общепринятый формат. А с другой стороны у нас есть внутренняя LLM, которую нельзя полностью совместить с OpenAI-протоколом, потому что она поддерживает дополнительные виды контента внутри сообщений и ещё много других плюшек (про них тоже как-нибудь расскажем 👀).


Это непростая инженерная задача, которую нам пришлось решать. Вот мы и написали статью о том, как поднимали свою LLM-инфраструктуру. Текст исключительно инженерный и больше про дизайн всей системы целиком, чем про, например, наши внутренние патчи в популярный фреймворк vllm.

Читайте, комментируйте и рассказывайте, как у вас дела с LLM!
Девятый (последний) месяц. Практика принятия решений

Вот я и закончил курс Стратоплана «Руководитель отдела».

Контент первого, второго, третьего, четвертого, пятого, шестого, седьмого и восьмого месяцев я описывал ранее.

В этот раз была тема внедрения изменений и менеджмента в кризис.

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

Множество из рассмотренных материалов я использовал и раньше, но только лишь потому, что интересовался этим и набирал информацию из разрозненных источников: статей, подкастов, докладов. А тут все модели разом структурно выдали, бери да используй как методичку или чек-лист.

Сегодня не хочу углубляться в детали материала, а хочу под конец курса сосредоточиться в целом на подобном длительном обучении и пользе от него. Неважно, Стратоплан это или еще кто-то другой. Тут я больше про долгие объемные многомесячные курсы, а не «стань менеджером за 3 дня» или «освой C++ за 21 день».

Не ходите уставшими
Ребята предупреждают об этом сами, но я тоже скажу. Кажется, что 15 часов в месяц (одна трехдневка) – это не так уж и много. Но всё это оборачивается в то, что у вас выпадает солидный кусок пятницы, который потом надо будет нагнать, и суббота с воскресеньем тоже, ибо после пяти часов обучения чувствуется приличная усталость. И после этого сюрприз-сюрприз уже начинается новая неделя, так что выходит пучок накопленных дел и 12 дней без отдыха в месяц. И так 9 месяцев. Это правда тяжело.

Не прогуливайте практику
К сожалению, я иногда пропускал онлайн занятия из-за разных жизненных событий. Те сессии, где я онлайн практиковался с ребятами в группе, были НАМНОГО понятнее и чаще приводили к применению на практике новых знаний и осваиваемых навыков.
Так что, если вы думаете всё пропускать, а потом посмотреть лекции на х2 и надеетесь на просветление – чуда не случится.

Я уже всё знаю
Хоть для меня и не было ни одной темы, в которой бы я не был более-менее подкован (кроме бюджетирования), но мне понравилось, что разрозненные знания укладываются в общую структурированную систему.

У меня такая история была с ПМной специализацией на Курсере https://www.coursera.org/specializations/product-management. Вроде кучу материалов читал, смотрел и знал, но после прохождения комплексной программы всё по полочкам разложил и перестал вовсе тратить время на потребление фрагментированной информации из разных источников, потому что они все в большинстве своем – лишь повторение и вольный пересказ части целого.

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

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

Итог
Учиться и развиваться лично я для себя считаю очень важным. Это и профессионально помогает (но не корочки и сертификаты, а знания и навыки), и в умственном тонусе держит.

Но если перегнуть, можно сильно угореть (когда только создали платформу Stepik, я записался на 5-6 курсов сразу, и жадность фраера сгубила😁)