Интересное что-то
522 subscribers
2.72K photos
253 videos
140 files
4.53K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
😁 Как GPT помогает разобраться с нечетко описанными задачами, которые прилетают каждый день

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

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


Гении менеджмента давно придумали 5W1H и SMART для уточнения задачи, но при текущих скоростях работы уже на 5-й вопрос (а их там более 10) этих фреймворков заказчик часто отвечает «нет времени, подумай и догадайся сам» 🥳

🤖 Тут на помощь приходят GPT-сервисы. Их алгоритмы работы с запросами в промпте и включенный Reasoning реально помогают, когда есть хотя бы 4 вводные:

Три из мира машин
1️⃣Контекст [Что случилось? Какая роль у заказчика? Какая ваша роль?]
2️⃣Задача [Что делать? И какой конкретный результат получить?]
3️⃣Критерий качества [Что важно учесть и в каком приоритете?]
И одно из мира людей
4️⃣С кем работать [Какие люди должны быть вовлечены в решение и какие у них роли?]

👨‍💻Промпт для GPT, который помогает мне перестать фрустрировать и продумать любую непонятную задачу:
Ты являешься бизнес-консультантом из McKinsey с 20-летним опытом работы и помогаешь мне качественно выполнить поставленную передо мной задачу.

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

У меня есть только следующие вводные:

1. Контекст
[Напиши что случилось и почему задача возникла именно сейчас]
[Напиши кто является заказчиком задачи, какая его роль и заинтересованность]
[Напиши какая твоя роль в рамках этой задачи, полномочия и зона ответственности]

2. Задача
[Вставь текст запроса что конкретно необходимо сделать, прямо все сообщение что тебя попросили сделать]
[Напиши какой конкретный результат ожидается получить к какому сроку]

3. Критерий качества
[Напиши какие критерии качества выполнения задачи наиболее важны и должны быть соблюдены. Приоритет 1 - ,2 - ,3 - ]

4. С кем работать
[Напиши кого необходимо вовлечь в решение задачи и почему]

После того, как я предоставлю вышеуказанные вводные, сделай подробный и структурированный анализ задачи, включая обязательные разделы:

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

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

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

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

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

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

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

P.S. В промпте расписаны все логические цепочки рассуждений, которые необходимы и человеку для решения любой задачи😉

❤️ и 👍 - если пост полезен, сегодня закину в комменты несколько примеров работы GPT по постановке задачи выше
💬 - поделитесь как у вас в этом году с потоком задач и как вы с ним справляетесь, мне интересно 🙂

Мальцев: Карьера. Маркетинг. AI.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevFM
Value Stream Mapping

В рамках анализа затыков в процессе поставки релизов наткнулся на статью, рассказывающую о Value Stream Mapping (VSM).

Value Stream Mapping — метод визуализации процесса работы. Он помогает увидеть весь процесс от начала написания кода до деплоя в прод, выявить узкие места и наметить улучшения.

Но, прежде чем строить карту потока, важно понять, зачем мы это делаем. Здесь помогает Outcome Mapping:
1. Собираем ключевых участников.
2. Формулируем, какую стратегическую задачу мы хотим решить.
3. Записываем проблемы, вопросы, идеи.
4. Группируем их, выбираем главную область для улучшения.
5. Формулируем конкретный и измеримый результат.

В статье ещё приводится несколько конкретных примеров Outcome mapping.

Теперь можно перейти к построению VSM.
Что нужно отразить на карте:
— Ключевые шаги — от написания кода до деплоя, тут важно выбрать для себя достаточный уровень детализации процесса, но это можно сделать только эмпирическим путем.
— Задержки — проанализировать и отразить места, где работа простаивает.
— Хенд-оффы — уделить особое внимание на передачу задачи между командами, например, между анализом и разработкой.
— Время ожидания — время, когда кто-то на каком-то этапе кого-то ждет

В целом и раньше подобное делали, но не использовали какую-то конкретную практику. Теперь попробуем применить. Расскажите, применяете ли вы что-то подобное на практике? Как ищете узкие места?

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

#systemdesign
Forwarded from Knowledge Accumulator
Конкретный автоэнкодер [2019] и его улучшение [2024]

Итак, обычно в автоэнкодерах мы решаем задачу сжатия изначального вектора фичей в пространство маленькой размерности. Мы обучаем энкодер q(z|x) и декодер p(x|z) таким образом, чтобы у нас получалось восстановить изначальный вектор x из вектора скрытых переменных z.

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

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

Слово "конкретный" в названии - "concrete" - на самом деле сокращение от Continuous Discrete - это параллельное изобретение того самого Gumbel Softmax трюка, который я описывал в позапрошлом посте.

Единственным параметром энкодера является матрица KxN - размерность скрытого вектора на кол-во фичей. В каждой строке у нас находится обучаемый вектор "логитов" для каждой фичи, к которому мы применяем Gumbel Softmax и получаем soft one-hot вектор-маску для всех фичей, которую затем скалярно умножаем на исходный вектор фичей - получая таким образом дифференцируемую аппроксимацию выбора одной фичи из всего списка.

Делая это независимо K раз, мы выбираем K фичей, которые и становятся выходом энкодера. В базовой статье про конкретный автоэнкодер иллюстрация на MNIST демонстрируют способность такой схемы обучиться игнорировать пиксели по краям и при этом задействовать по 1 пикселю из всех остальных частей картинки, никогда не беря соседние. Эксперименты на других датасетах там тоже есть.

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

Один простой трюк очень сильно улучшает ситуацию. Вместо обучаемой матрицы KxN используется Indirect Parameterization - эта матрица вычисляется как функция от 3 обучаемых штук: умножения матрицы KxN на матрицу NxN и прибавления вектора размера N к каждой строке результата.

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

Главный вопрос - а нахрена вообще всё это нужно?

Внезапно эта идея имеет отличное практическое применение в нейросетях, а именно для проведения Feature Selection! В ситуации, когда обучать сеть супердорого и вы можете позволить это делать единичное число раз, а фичей у вас тысячи, использование Конкретного Энкодера в самом начале модели позволяет обучить Selection K фичей из N напрямую. При этом, если качество модели совпадает с качеством изначальной модели, можно смело выкидывать из прода целых N-K фичей.

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

@knowledge_accumulator
Forwarded from Data Blog
Привет, друзья! Сегодня кратко-пост
про небольшое удивительное чтение с множеством ссылок.

Рассмотрим обученную модель машинного или глубокого обучения. Как её отучить от чего-либо?

Что делать, если модель

1. гендерно или социально предвзята? [1, 2, 3]
2. отдаёт вредоносные ответы;
3. содержит данные, защищенные авторским правом или личные данные;
4. галлюцинирует

Можно ли заставить её забыть изученное? Можно и сложно.

Model (от истоков machine) unlearning (MU) — актуальная задача для больших моделей, восставшая от проблем машинного обучения. Восставшая — потому что, если рассматривать агрегаторы статей, проблема отучения редко упоминалась, чаще всего рядом с SVM, в 2000-2015 и сделала скачок с 2018 года рядом с глубокими моделями.

Что интересно, термин «механистическая интерпретируемость» тоже сперва был рядом с ML моделью SVM. Нестареющая классика!

Подходы в MU глобально разделены на 3 группы:

1. Model-Agnostic Methods (независимые от модели)
2. Model-Intrinsic Methods (встроенные в процесс обучения модели)
3. Data-Driven Methods (основанные на изменении данных)

Key Idea из методов: заставить модель забыть что-то — это больше чем про полное переобучение (потому что это чаще будет дорого). Если посмотреть на подходы «очень сверху», то мы можем:

1. Применять обучение с подкреплением (проводить хитрый файн-тюнинг);
2. Выполнять градиентный подъем по примерам под забывание (проводить хитрый файн-тюнинг);
3. Модифицировать пространство обучения (менять данные, чтобы проводить хитрый файн-тюнинг или обучение)
4. Использовать различные методы файн-тюнинга (LoRA, KL-divergence based etc) (снова проводить хитрый файн-тюнинг)
5. Накладывать условие на изменение параметров модели для конкретных примеров (проводить хитрое обучение/дообучение (снова файн-тюнинг));
6. Находить параметры, отвечающие за конкретное поведение и занулять их (не однозначный, но валидный к жизни метод, так как также важно показать, что зануление не вызвало других нежелательных поведенческих изменений)

Быть может, я не докопала до идей глубже (и если вы знаете что-то — welcome в комментарии!), но отучение преимущественно построено на генерации гипотез о том, как дообучить модель или же как устранить нежелательное поведение точечно (если говорить о "выключении" активаций).

Ещё интересно, что хотя статьи 1-3 также сосредоточены на устранении точечных признаков/паттернов поведения, термин "unlearning" в них явно не упоминается. Это может усложнять, как мне кажется, будущие обзоры и поиск литературы — необходимо генерировать и анализировать смежные ключи. Будьте всегда внимательны)

Пара полезных ссылок про Unlearning:

1. Глубокая детализация подходов для MU здесь.
2. Репозиторий, собирающий статьи по MU

Такой мини-обзор, друзья! Само наличие класса исследований про unlearning просто вдохновляет — чем больше модели, тем будто бы больше задач нам нужно решать.

Бесконечная область, выходит :)

Отличного вам вечера,
Ваш Дата автор!
Несогласие и кризис

В сегодняшнем посте объединены два тимлидских материала, к которому я приложил руку и голову.

1. Три тимлида заходят в бар и не соглашаются. В этом выпуске мы рассмотрели что делать, когда в команде кто-то с чем-то не согласен (например, постоянно не согласен с тобой). Когда это нормально, когда не очень, а когда это откровенный саботаж. Не обошлось без выходов раз на раз, рептилоидов и серийных хейтеров на работе!
https://t.me/teamleadsBar/75

2. Кризис — это проблема или возможность? Дебаты, на, казалось бы, однозначную, но на самом деле нет, тему. Там мы с Настей Абрашитовой постарались раскрыть все плюсы и минусы кризисных и спокойных времен для руководителя. А в конце еще и поучительное напутствие подвели, обязательно досматривайте до конца, рефлексируйте, прикидывайте на себя.
https://www.youtube.com/watch?v=tY2C5zRe-EM
Как улучшили ML-продукт, взглянув на данные по-новому

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

Первая версия снизила жалобы всего на 1% вместо необходимых 4,5%. После доработки — 3%, но этого всё ещё было недостаточно.

В итоге помог новый взгляд на данные. Выяснилось что 20% водителей создают 80% поездок и жалоб.

Фокус на этих водителях позволил снизить затраты и достичь цели.

Вывод: Иногда дело не в модели, а в том, на какие данные мы смотрим.

Заметка
Финальные результаты Enterprise RAG Challenge

- Team Leaderboard - оценивает команды (берется лучшее решение каждой команды)
- SotA Leaderboard - оценивает все эксперименты, которые прислали команды вместе с заполненным опросником.

Колонки:
- Hours - сколько часов прошло между публикацией вопросов и генерацией ответов командой
- R - Retrieval Score. Max: 100
- G - Generation Score. Max: 100
- Score - Final score (R/3+G). Max: 133
- AI - команды использовали наш AI Research (мой курс, работа в TimeToAct или комьюнити 🤗)
- Lcl - использовались модели, которые можно запустить локально

Картинки в оригинале лежат тут: https://abdullin.com/erc/. Позже я туда добавлю ссылки на все отчеты и посты участников, сделаю расширенные таблицы на основе опросников (с фильтрациями)

Спасибо всем за участие - было очень круто! У нас вместе уже получилось продвинуть вперед SotA по построению RAG систем с LLM под капотом. Первые инсайты я опубликовал раньше, но основной анализ еще впереди.

Ваш, @llm_under_hood 🤗
800+ SQL Server Interview Questions and Answers .pdf
1 MB
🖥 Полезнейший сборник из 800+ вопросов по SQL, которые часто задают на собеседованиях.

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

Сборник отлично подходит для тех, кто хочет прокачать свои навыки работы с SQL, освежить знания и проверить свои знания.

GitHub

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 GPU Puzzles

Набор интерактивных упражнений («паззлов») для обучения программированию под GPU с использованием CUDA.

Это целая серия задач, где требуется написать небольшие CUDA-ядра (ядра GPU), реализующие операции вроде сложения с константой (map), поэлементного суммирования (zip), работы с блоками и потоками, свёртки, матричного умножения и других параллельных алгоритмов.

Основная цель репозитория – дать начинающим возможность непосредственно попрактиковаться в программировании под GPU, без необходимости погружаться в сложную документацию.

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

Репозиторий лицензирован по MIT, имеет высокую популярность (более 10 тыс звёзд) и является частью серии обучающих проектов (наряду с Tensor Puzzles, Autodiff Puzzles, Triton Puzzles и другими).

А здесь реализация задач на C++

Github
Colab

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM