Приближаем сингулярность
963 subscribers
79 photos
2 videos
57 links
Про AI, стартапы, и не только

По всем вопросам писать @leshanbog
Download Telegram
Небольшая база по dataviz'у 📊📈📉

Классный репозиторий с наглядными примерами по тому, как правильно визуализировать данные, аналитику.

Впервые про dataviz я узнал в магистратуре на предмете с названием "Математические методы визуализации данных". До первой пары я думал, что это какая то бесполезная фигня и было бы классно забить на это дело 🏃‍♂️

Но в итоге узнал про интересные концепции и приоткрыл для себя целый новый мир dataviz'а. Например:

🔹 Про цвет полезней думать не в базисе RGB, а в базисе тон, насыщенность, яркость.

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

🔹 Человек сравнивает площади и объемы сильно хуже, чем линии. Поэтому Pie Chart стоит разворачивать в Stacked Bar Plot (скрин 3)

👁 И вообще, зрительный канал обладает самой большой пропускной способностью (пока brain-computer interface еще не сделали 🚬). Поэтому точно полезно почитать про dataviz и использовать его эффективно, чтобы донести максимум инсайтов для воспринимающего 💡 Как в научных статьях, так и на работе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍52
Пока Сэм Альтман собирает пару триллоинов долларов на революцию в области полупроводников, самое время разобраться в работе CPU, GPU и прочих железок.

Очень крутые и понятные блогпосты для широкой аудитории: CPU,
GPU, ASICs.

Помимо базы, которая очень кайфого изложена - с аналогиями и примерами, есть и про

- Power - Performance - Area трейдофф при дизайне чипов
- Мера энергоэффективности чипа (performance per watt) - главная метрика
- Power и Efficiency ядра в процессорах
- Фундаментальное отличие CPU и GPU
- ...

Если не до конца ясно, как основной ботлнек на практике в Deep Learning'е может быть не в вычислениях, а в доступе к памяти (для меня это было удивительно, когда узнал :D, про это я ещё упоминал здесь), то прочтение этих блогпостов поможет осознать)

🟢
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍53
Ну круто же!

OpenAI пост
🔥10😁5👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Groq - "overnight success", после 8 лет труда

На прошлой неделе произошел прорыв в скорости инференса LLM. На видео сравненивается 70B модель на Groq inference и ChatGPT. Просто вау 🤯

Нашел интересные факты про компанию:

🎩 Фаундер лидил разработку TPU в гугле, но ушел делать свой стартап чтобы такая мощная технология была общедоступной

⏱️ Стартап основан в 2016 году, даже до изобретения Трансформеров. И начинали они с ускорения сверток в Computer Vision

👑 Nvidia монополист с 99% долей рынка, потому что имеют hardware + оптимизированный software. Поэтому компании, которые просто пытаются сделать быстрый чип не взлетят - нужно делать весь стек. В Groq и чип, и компилятор, и софт для сервинга LLM

🔄 Groq делают чипы с 14нм техпроцессом - что считается уже сильно устаревшим. Nvidia H100 используют 4нм. В общем, перспективы у Groq хорошие

Мне кажется, что это реально важный прорыв и ощутимая угроза монополии Nvidia (на горизонте 5-10 лет).
❗️ Плюс скорость всегда можно обменивать на качество: Chain of Thought, K candidates + rank, etc

Можно послушать подкаст с их фаундером здесь.
👍19🔥113🤯1
Кофаундер OpenAI John Schulman, придумавший PPO и другие прорывные алгоритмы, написал как-то пост о том, как делать ML research. На него же ссылается Сэм Альтман в своем блоге, рассказывая про общее между топовыми учеными и предпринимателями.

Советы на самом деле полезны не только ученым, но и в контексте стартапов и прикладного ML/DL, поэтому выписал кое-что (но сам пост тоже рекомендую):

1️⃣ Выбор проблемы

Это самое важное. Какие бы крутые технические навыки ни были, если работать над тупиковой идеей / очень сложной задачей с небольшой потенциальной пользой / невыполнимой с текущими ресурсами / etc - прорывного результата не будет.

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

Или обучать 2 года модели по классификации чего-нибудь, а потом появляется ChatGPT и сразу решает эту задачу лучше. С темпами прогресса в AI надо хорошенько обдумывать, будет ли твоя работа актуальна хотя бы через месяца 2.

2️⃣ Прогресс в решении

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

Если про сделанное нельзя написать блогпост / статью с результатами, то проект не проработан достаточно.

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

3️⃣ Личное развитие

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

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

Вот такие мудрости от кофаундера OpenAI. Мотаю на ус 📝
👍15🔥3🤔1🎉1
Mixture-of-Depths: Dynamically allocating compute in transformer-based language models

DeepMind недавно выпустил статью про улучшение лосса у LLM при том же бюджете на компьют.

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

Роутер в Mixture-of-Experts определяет, в какой MLP подать токен. В этой же работе роутер Mixture-of-Depths определяет, прогонять ли токен через Self-Attention & MLP или оставить его как есть. Получается, что через слой MoD проходит только часть токенов (часть входной последовательности).

То есть на обучении (когда делаем forward pass сразу на всей последовательности)
(1) через каждый слой (= глубину LLM) проходит заранее заданное число токенов K, которое может быть сильно меньше общей длины (авторы 12.5% используют, правда слой MoD чередуется с обычным транcформером, где всё используется)
(2) Self-Attention вычисляется на этом же подмножестве из выбранных top-K токенов

Роутер обучаемый, для каждого токена выдает одно число: его важность для данного слоя.

Ещё одно преимущество подхода: константа K задается заранее, поэтому вычислительный граф при обучении не меняется (статичный). В Self-Attention & MLP всегда пойдет K токенов. Это дает доп выигрыш в скорости.

Таким образом, варьируя K можно делать трейдофф между качеством и скоростью, достигать лучшего лосса при заданном бюджете на компьют.

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

@building_singularity
👍10🔥52
ShortGPT: неоптмальность LLM’ок 📉

Ещё одна статья, демонстрирующая ту же идею (как и в Mixture-of-Depths): в LLM не все параметры одинаково ценны, их количество используется неоптмильно.

В работе ShortGPT: Layers in Large Language Models are More Redundant Than You Expect показали очень простой метод прунинга (удаления параметров модели), который приводит к пропорциональному ускорению модели и очень слабо просаживает качество (на MMLU бенчмарке).

Метод такой:
1️⃣ Прогоняем модель на калибровочном датасете и для каждого трансформер блока (self-attn + ffn) подсчитываем его важность (Block Influence)
2️⃣ Block Influence - косинусное расстояние между вектором токена на входе и им же на выходе, усредненное по всей входной последовательности (рисунок 3)
3️⃣ Сортируем блоки по их важности
4️⃣ Удаляем блоки целиком в порядке увеличения важности


Что получается:
🔹 выкинули 25% от Llama2-13B и просели в качестве на 2.7% на MMLU (рисунок 2)
🔹 прунинг просто выкидыванием блоков (а не хитрым выкидыванием параметров внутри блока) дает пропорциональное ускорение модели сразу
🔹слои в начале LLM важнее, чем более глубокие (рисунок 1)
🔹 сравнились с другими методами прунинга (без последующего дообучения - это на future work) и победили их; попробовали другую метрику важности блока, основанную на изменении магнитуды вектора, их Block Influence лучше
🔹написали, что пробовали ещё пару бенчмарков и там качество просаживалось сильно 😕; в общем, надо тестить

Интересно ещё
🔸если дообучить модель 10B (аналогичный размер, как у запруненной) с нуля, будет ли она хуже запруненной? а если запруненную дообучить?
🔸почему такие бесполезные слои присутствуют? надо дольше учить модели? или способ обучения проблемный?

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

@building_singularity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍3🎉2😁1
О чем канал?

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

Субъективный список полезных и интересных постов:
- Фидбек пользователей - конкурентное преимущество [раз] [два]
- Почему успешные AI-first стартапы появились только сейчас [тык]
- Топ блогпосты про Hardware [тык]
- Groq и важность быстрго инференса [тык]
- Как делать хорошо, блогпост OpenAI кофаундера [тык]
- Assisted Generation (идея как и в Speculative Decpding) [тык]
- Про уменьшенные модели: SparseGPT, Mixture-of-Depths, ShortGPT
- Обзор методов по исправлению ответов LLM: [тык]
- Generative AI стартапы [тык]
- Verifiable Instructions (честный замер instruction following для LLM) [тык]
- База по датавизу [тык]

Ещё у меня есть ютуб канал, где я объяснял разные ML штуки. Но пока нет времени туда ещё что то записывать. Но видосы годные!

Об авторе

Я NLP Team Lead в стартапе Ex-Human, где мы делаем цифровых людей 🤖 До этого обучал LLM’ки в Яндексе, закончил ШАД.

Интересуюсь темой longevity, 7 лет медитирую, люблю делать полезные образовательные материалы, способствую технологическому прогрессу 📈

За последний год пожили с супругой в 10 странах, от ЮАР до Тайланда, и стали экспертами в "Как наладить повседневную жизнь в новом месте за 2 дня” 😁 Иногда пишу о путешествиях в инсте

Темы постов будут меняться в будущем, но это всегда будет моё личное мнение / рекомендация / обзор чего то мне интересного. Спасибо, что читаете ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥178👍4
Приближаем сингулярность pinned «О чем канал? В канале пишу про движуху вокруг AI, стартапов, разборы статей, полезные материалы (включая мемы). Субъективный список полезных и интересных постов: - Фидбек пользователей - конкурентное преимущество [раз] [два] - Почему успешные AI-first стартапы…»
Hit Refresh 😵‍💫

Microsoft за последнее годы изменил восприятие своего бренда в лучшую сторону (у Гугла кстати, после релиза ChatGPT от OpenAI и серии их провальных демо, ситуация в другую сторону движется - но это уже другая история).

CEO Microsoft, Сатья Наделла, зашел на пост в 2014 году. С 2000 года акции компании были в районе 28$ (+- 5$), а с 2014 по текущее время выросли более чем в 10 раз 📈

Ниже мои заметки по книге "Hit Refresh", которую он написал в 2017 о том, как он смотрит на происходящие под его управлением изменения ⬇️

При вступлении в роль CEO он назвал культурную трансформацию - самой приоритетной вещью для компании.

Команды не чувствовали себя единым целым, не ощущали эмпатию к имеющимся и потенциальным клиентам.

Сатья вообще много пишет про эмпатию и понимает её как глубокое понимание ситуации и проблем людей, и искренне желание им помочь. Такое более мягкое обозначение немного пугающего амазоновского «customer obsession» 😃

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

Это кажется полезным советом для всех. Соединяя работу с чем то ценным лично для себя, работать становится приятнее и веселее. Появляется внутренняя мотивация. А это уже и для работодателя хорошо. Win win получается 🤝

Теперь, некотрые высказывания Сатьи про то, как он понимает лидерство:
- Преодолевать препятствия, make things happen
- Дать проявиться сильным сторонам в людях и дать им уверенность в этом
- Видеть потенциальные направления, соотносить с возможностями и ценностями компании, и действовать на опережение - до того, как очевидно станет всем
- Вносить ясность, образовывать общее понимание вопроса
- «Долой уныние» - излучать энергией 🌞

В общем, Сатья продвигал growth mindset и настрой на понимание собеседника и клиентов на уровне корпорации. И его усилия окупились.

Книга мне понравилась, и сам Сатья по интервью и делам производит приятное впечатление. Рекомендую 💯

@building_singularity
Please open Telegram to view this post
VIEW IN TELEGRAM
👍146🔥3
Список открытых датасетов и инструментов для работы с ними: https://github.com/mlabonne/llm-datasets

Датасеты на (1) общие темы (2) код (3) математику и логику (4) ролплей (5) Agent & Function calling

Все ссылки есть, размеры датасетов и короткие описания тоже. Выглядит полезно 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥42
🔍 Selection bias или как собрать плохой датасет 💸

Популярный способ собрать хороший датасет для обучения модели: (1) найти большой разнообразный датасет сомнительного качества и (2) отфильтровать его, оставив только “лучшие” данные.

Что же на деле остаётся? Примеры, которые удовлетворяют фильтру. Разнообразия конечно же становится меньше.

Например: хотим из миллиона диалогов отобрать только те, что интересные, релевантные, безопасные и ещё несколько критериев.

Прогоняем примеры через gpt4. И оказывается, что сразу всем критериям удовлетворяют не так то много ответов. Ещё хуже: ответы, которые удовлетворяют, часто встречаются в похожих контекстах и имеют похожую структуру! 😬

Такой вот рецепт получения примитивного датасета, где пары [контекст диалога, ответ] не разнообразны и только сделают модель тупее. 🤪

Эта проблема называется selection bias, когда после семплинга / фильтра остаются нерепрезентативные данные.

Как можно пробовать исправить?

Можно не выбрасывать все “тяжелые” (те, ответ на который не прошел все критерии) контексты. А для каждого генерировать K кандидатов и уже из них оставлять только один, наилучший. Даже если он не прошел все фильтры. Про этот поход (generate-rank) я упоминал здесь, и здесь он есть в бейзлайнах.

Такие вот дела с этими фильтрами. Аккуратней надо быть! 🕵️

@building_singularity
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥32🤔2
Amazon Leadership Principles 🏆

Плейлист на ютубе, с 2-3 минутными роликами от Амазона про их лидерские принципы. Ниже мой короткий перевод и пересказ 👇

1. Пользователи на первом месте. Как из данных, так и из единичных отзывов стараться понять, чего хотят пользователи

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

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

4. Быть правым, очень часто. Мы все принимаем решения в ситуациях неопределенности. Хорошо бы, чтобы эти решенияи были верными и вели к светлому будущему

5. Изучай новое и будь любознательным

6. Нанимай самых лучших и вкладывайся в них

7. Настаивай и поддерживай высокие стандарты

8. Мысли масштабно. Как пример: для оптимизации доставки Амазон создалю свою грузовую авиакомпанию

9. Байес к действию. Лучше один раз сделать, чем долго думать и не сделать

10. Экономность. Преодолевать ограничения и использовать ресурсы оптимально

11. Зарабатывай доверие коллег и пользователей. Слушай и относись с уважением

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

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

14. Достигай результатов. Фокусируйся на вещах, влияние на которые принесет наибольший профит. И доводи до успеха

15. Старайся быть лучшим работодателем

16. С успехом и масштабом ответственность шире

@building_singularity
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154🔥4👎2😁2
Best AI Copilot - не Github Copilot (а cursor.sh)

Люблю пробовать новые штуки и работать эффективней. Поэтому как только появился Github Copilot, начал его тестить. Было лучше tabnine - иногда даже функцию дописывал, но всё равно не то.

Особенно хорошо тупость и ограничения Github Copilot можно увидеть на этом примере.

Есть класс, в котором, исходя из тайпингов, баг в конструкторе. Спрашиваем у Github Copilot есть ли баг - "нет, нет бага" (скрин 1).

1️⃣ Это первая проблема Github Copilot - там не флагманская модель OpenAI под капотом, там что то заметно более тупое

2️⃣ Вторая проблема видна на моем втором вопросе (на скрине 1), где копайлот мне вкорячил импорт, который на самом деле имеется в 1ой строчке файла. То есть он при выделении текста и вопросе смотрит локально, а не по всему файлу / кодовой базе.

Это очень неудобно. Для максимальной эффективности AI копайлотов им нужен наибольший возможный контекст - вся кодовая база.

Модель OpenAI справляется с задачей без проблем, просто смотря на эти 5 строчек (скрин 2)

Так вот, на прошлой неделе попробовал новую IDE-шку - cursor.sh (vscode с AI наворотами)

И пока кажется, что это прям топ 🔥 Как минимум, там умная OpenAI модель (gpt-4 / gpt-4o на выбор) под капотом и это делает все остальные фичи типа вопросов по всей кодовой базе не бесполезными.

С задачкой она конечно справилась (скрин 3).

Ещё есть офигенная фича (в бете пока), которая предсказывает куда ты направишь курсор после текущей отредактированной строчки и предлагает правки. Несколько раз уже срабатывало так, что прям как магия какая-то 🤯 просто кликаешь Accept и IDE правит код последовательно по всему файлу

В общем cursor очень нравится, буду в нем теперь работать. А там может и полноценный AI программист появится и будет за меня кодить 🤖

Но! Никакая машина не догадалась написать в одну строчку, как истинный python мастер self._instruction_injection = instruction_injection.strip() if instruction_injection else None

@building_singularity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥53👎1