TGViewer
Channel Public Channel
я обучала одну модель

я обучала одну модель

@def_model_train

Shitposting on various subjects

PS рекламы в канале нет
Subscribers
4.48K
Photos
458
Videos
29
Links
385

Showing posts older than #979 · Back to latest

Older Posts 20 shown
Post #978 2.53K
Representation Engineering: A Top-Down Approach to AI Transparency
https://arxiv.org/abs/2310.01405

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

Начать надо с того, что статья претендует в целом на новый подход в объяснении генерации текста (в духе explainable AI) и в ее контроле. Обычно когда мы хотим что-то понять про работу сети, мы идем «снизу вверх» – то есть анализируем по отдельности нейроны или активации на разных слоях, чтобы понять, на что модель обращает внимание. Тут конечно на ум приходит недавний блогпост от OpenAI, где они пытались найти, за что отвечает каждый конкретный нейрон в GPT2

Авторы же предлагают, как понятно из названия, идти «сверху вниз» – не разбирать нейроны по отдельности, а смотреть на паттерны и репрезентации, которые скрыты в латентном пространстве модели. То есть, в каком-то смысле, мы хотим изучить мозговую активность сети целиком, когда она «думает» о каком-то концепте, и из этого МРТ скана пытаться вытащить репрезентации этого понятия. Собственно поэтому основной метод в статье и называется Linear Artificial Tomography (LAT)

В чем этот метод состоит? В качестве примера возьмем их анализ концепта Truthfulness, то есть способности корректно и фактологично отвечать на вопросы
1. Семплируем сколько-то примеров из TruthfulQA. Оборачиваем их в такой промпт:

Consider the amount of truthfulness in the following answer:
Question: <question>
Answer: <answer>
The amount of truthfulness in the answer is


Для decoder-only модели мы смотрим на репрезентацию для последнего токена, так как там и будет зашита какая-то информация о том, как модель себе представляет truthfulnes. На практике на самом деле бралось по 2 таких QA примера, при чем не обязательно так, что один пример был лживым, а другой правдивым. Для каждого из них мы берем hidden state, считаем разницу между ними и нормализуем. После этого шага получаем набор таких вот нормализованных векторов

Внимательный читатель на этом моменте спросит – а с какого слоя мы этот hidden state берем? Авторы об этом пишут как раз только в аппендиксе, но слой они выбирают вручную после серии экспериментов)))) как правило тот, который дает максимальное качество на валидации

2. Строим линейную модель
В качестве модели они взяли не абы что, а метод главных компонент (кто помнит этого добряка с пар статистики?). Если очень кратко, то это метод позволяет сильно снизить размерность, сохранив наибольшее количество информации из исходных данных. На выходе мы получаем первую компоненту, которая и должна отражать интересующий нас концепт. Авторы это называют reading vector

3. На инференсе, когда нам прилетают новые промпты, мы так же берем hidden state последнего токена, нормализируем его, и берем dot product от него и reading vector. На выходе получаем скор truthfulness соответственно

По замерам авторов, это очень хорошо бустит качество на TruthfulQA, который вообще является сложным бенчмарком. Тем не менее, у меня к этому есть очень большие вопросы, так как в одном из экспериментов они берут ПЯТЬ тренировочных семплов и ПЯТЬ валидационных и на этом репортят качество (пруф на скрине, ряд посередине). И вообще это результаты одного из 15 прогонов их модели (!)

part 1/3
  • 👍 9
  • ❤ 3
  • 🔥 3
Post #977 3.4K
Выпускаем кракена в интернет 🐙
  • 😱 42
  • 🔥 10
  • 👍 2
  • ❤ 1
  • 🥰 1
  • 🎉 1
Post #976 3.5K
Как вы знаете, на этом скромном канале не бывает рекламы, но я оставляю за собой право вам чего-то рекомендовать, что мне самой кажется крутым. Вот сегодня несу вам пост про оверсемплинг из канала моего друга Димы. Дима пишет обычно про то, в чем я вообще не шарю и поэтому не затрагиваю тут – а именно про kaggle соревки, табличные данные, фичер инжиниринг и так далее. Так что если вам такого контента не хватает, ловите вот 💃
Telegram Запрети мне псевдолейблить, запрети мне FP16 включать #ICR #таблицы #аугментация Попробуем короткий формат? Первый из небанальных кандидатов для апсемплинга- Gaussian Noise Up-sampling. Идея простая: 0. Выбираем параметры нормального распределения для каждой фичи 1. Из класса, которого меньше, выбираем объект…
  • 🔥 8
  • ❤ 4
Post #975 4.99K
Месяц назад вышел крутой выпуск подкаста Latent Space: The Mathematics of Training LLMs — with Quentin Anthony of Eleuther AI
https://www.latent.space/p/transformers-math#details

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

🙃 Transformer Inference Arithmetic
Тут про то, как ручками посчитать перфоманс трансформера и как его разложить на составляющие операции. Например:
- сколько flops уходит на то, чтобы подсчитывать kv cache и сколько это занимает от одного форвард пасса (спойлер, 1/6 компьюта!)? сколько занимает кэш для одного токена и сколько времени кэш позволяет cэкономить?
- когда мы memory bound, то есть упираемся в то, чтобы считать и хранить этот кэш, и с какого количества токенов мы уже flops bound? забавно, что для этого есть точное число – 208 токенов
- сколько вычислений и времени уходит на коммуникацию между частями модели, особенно если мы делаем model parallelism?
- как на это все влияет батч сайз?

💚 Transformer Math 101 от Eleuther AI
Здесь уже ресерчеры делятся по их словам basic math, которую нужно знать, чтобы мочь тренировать и инференсить модели. В отличие от первого поста, где вычисления теоретические и периодически довольно сложные, тут ребята делятся скорее формулами, которыми они пользутся в своей парактике, зачастую выведенные эмпирически. Например:
- сколько вычислений потребуется, чтобы обучить заданную модель на заданном датасете? (спойлер, 6*размер датасета в токенах*размер модели)
- сколько места займет модель, если захотите тренировать в mixed precision?
- сколько памяти будет занимать optimizer state во время тренировки?
- сколько будут занимать градиенты и активации?
- как это все изменится, если мы решим шардить оптимизатор через ZeRO-1, 2 или 3?
- а если распараллелим как-нибудь?

В подкасте Квентин собственно отвечает на вопросы по мотивам этих двух постов и поясняет за всякие нюансы. Hate to admit it но кучу вещей отсюда я либо не знала, либо не помнила, так что может быть будет полезно кому-то еще ♥️
Latent The Mathematics of Training LLMs — with Quentin Anthony of Eleuther AI Listen now | Breaking down the viral Transformers Math 101 article and high performance distributed training for Transformers-based architectures (or "How I Learned to Stop Handwaving and Make the GPU go brrrrrr")
  • 🔥 27
  • ❤ 1
Post #974 2.86K
Хайпожорство или нет, но мне очень зашла эта статья Wired, особенно если за последний год вы еще не читали ничего про историю OpenAI и их свитч из нон-профита (хоть автор и очевидно очень комплиментарен по отношению к компании). Комментарии Суцкевера кстати было прикольно в материале увидеть

ps. maybe it’s just me, но мне бы лично очень интересно было прочитать хоть какой-то материал или интервью про Миру Мурати и как она там техническими делами заправляет. Такое ощущение, что ей особо никто не интересуется почему-то

https://t.me/ai_newz/2143
Telegram эйай ньюз А вот и обложка свежего выпуска журнала Wired. Цитата из выпуска: "The young company sent shock waves around the world when it released ChatGPT. But that was just the start. The ultimate goal: Change everything. Yes. Everything." Вот они рокзвезды ИИ по…
  • ❤ 6
  • 🤡 4
Post #973 2.6K
Очень красивая демка у CoDeF: Content Deformation Fields for Temporally Consistent Video Processing
https://qiuyu96.github.io/CoDeF/

Идея из основная в том, что из видео берется изначальный кадр и к нему применятся нужный style transfer по промпту. А дальше мы отслеживаем, куда двигаются пиксели с их исходных позиций, и можем «протащить» эти изменения во все последующие фреймы. Соответственно, их сетка неплохо работает также с pixel tracking и даже с сегменатцией

За счет того, что мы не стилизуем каждый фрейм по отдельности, а как бы модифицируем один исходный кадр, видео получается гораздо более консистентное и плавное. Ограничение тут понятное – если у вас длинный видос, где куча разных сцен, стилизуете вы эти сцены также по-отдельности, и не факт, что они будут хорошо стыковаться между собой
  • 🔥 12
  • 👍 2
  • 🤩 1
Post #972 3.39K
How is LLaMa.cpp possible?
https://finbarr.ca/how-is-llama-cpp-possible/

Прикольный пост от Finbarr Timbers (рекомендую его Substack). Возможно вам тоже было интересно, как LLaMA может генерировать токены так быстро (~16 tok/sec) на ГПУ внутри одного лептопа, помимо, разумеется, очевидного ответа в виде квантизации и реализации на плюсах

Основной вывод поста – если вам нужно генерировать локально только один стрим токенов для личных нужд, а не обрабатывать кучу параллельных запросов через какой-нибудь LLM Server, гораздо важнее окажется memory bandwith, а не FLOPS

Memory bandwith – это то, насколько быстро мы можем перекладывать веса из RAM на сами ГПУ-чипы. При одном стриме токенов именно это становится основным органичением по скорости: вам приходится постоянно перекладывать веса ради генерации одного токена за раз, в то время как вычислений (FLOPS) у вас не так много. В случае с LLM Server было бы наоброт – тогда можно использовать подгруженные веса для обработки сразу нескольких запросов, utilization был бы выше, но все бы уперлось в то, насколько быстро вы можете проводить вычисления

Собственно, LLaMA.cpp работает за счет того, что MackBook M2 чипы гораздо меньше отстают от обычных ГПУ по memory bandwith, чем они отстают по FLOPS. Например, автор приводит такую статистику:
- A100: 1935 GB/s memory bandwidth, 1248 TOPS
- MacBook M2: 100 GB/s memory bandwidth, 7 TFLOPS

Как видно, по компьюту оставание примерно в 200 раз, а по операциям с памятью только в 20!
  • 🔥 16
  • ❤ 3
  • 👍 2
Post #971 4.22K
Тем временем уважаемые подписчики запилили крутую тулу для работы со статьями с arxiv (и biorxiv, и medrxiv, и chemrxiv) 🐱
https://synthical.com/

Какие есть приколы:
1. Можно сгенерить упрощенную версию статьи или ее отрывка и попросить объяснить термины
2. Есть хороший поиск по статьям: можно искать внутри большой категории (типа Computer Science) и настроить конкретные интересующие области (типа Artificial Intelligence)
3. Я очень люблю папочьки, поэтому меня порадовало, что можно делать закладки или добавлять статьи в коллекции, вместо того, чтобы спамить ими себе в сохраненные сообщения. И коллекции можно пошерить
4. Есть рекомендации на основе того, что вы там уже натыкали!
  • 🔥 27
  • ❤ 5
Post #970 3.01K
Сразу несколько статей про faithfulness и sycophancy моделей 🙃

Что вообще эти термины означают?
- faithfulness обычно определяют как способность модели выдавать правильный ответ, независимо от того, как мы видоизменяем промпт, если не меняется суть задачи (или хотя бы как способность выдавать тот же самый ответ независимо от деталей промпта). В общем, оценка того, насколько модель конститентна
- sycophancy – феномен, когда модели подстраиваются под мнение пользователя, даже если оно ошибочное

В целом если вы промптили хоть раз модели сами, вы и так догадываетесь, что модели могут быть unfaithful и баес в их ответ внести достаточно легко. Anthropic же решил измерить этот эффект и выпустил на эту тему две последовательные статьи.

В первой (Language Models Don’t Always Say What They Think: Unfaithful Explanations in Chain-of-Thought Prompting) на примере ChatGPT и Claude v1.0 они показывают, что при внесении баеса в промпт точность на задачах из BigBench может просесть от 5 до 36%. Баес они вносят двумя способами:

1) в промпт приписывают “I think the answer is <random_label> but I’m curious to hear what you think.”
2) делают few-shot промпт, где во всех примерах правильным ответом оказывается вариант А

Что примечательно, в этой же статье они показывают, что в задачках на социальные стереотипы CoT конститентно предсказывает, что преступление было совершено, например, черным мужчиной, а не белой женщиной, независимо от того, какие детали проишествия мы укажем в промпте и против кого мы пропишем больше улик 😐

Во второй статье Measuring Faithfulness in Chain-of-Thought Reasoning они продолжают ковырять CoT на разных задачах, и из интересного находят то, что большие модели более восприимчивы к таким манипуляциям

Тему подхватил и DeepMind со статьей Simple synthetic data reduces sycophancy in large language models. Они подтверждают, что при скейлинге модели с большей вероятностью «подстраивается» под мнение юзера, и что instuction tuning это только усиливает. Например, Flan-PaLM-8B повторяет мнение юзера на 26.0% чаще, чем его базовая модель PaLM-8B, а скейлинг до 62B накидывает еще 20%. Больше этот эффект виден на задачах, где нет правильного ответа (i.e. вопросы касательно политики или философии), но даже в математических тестах, когда мнение в промпте объективно не верно, модели будут с ним все равно соглашаться

Предлагают они это лечить очень просто – намайнив немного синтетических данных, где к вопросу прилагается какое-либо мнение прользователя, которое однако не влияет на правильный ответ: то есть, есть примеры, где с юзером надо не согласиться
  • 👍 7
Post #969 2.83K
воскресное мемовое
  • 😁 31
  • 😢 13
Post #968 2.96K
ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs
https://arxiv.org/abs/2307.16789

Казалось бы, зачем такая статья в мире, где есть LangChain / LLaMAIndex / ToolFormer? Ответов тут несколько:
1. Toolformer не особенно может генеразироваться, так как полагается только на те апи, которые были в обучающей выборке (а их было мало). LangChain же полагается на большие модели от OpenAI, которые плюс минуc могут генерализоваться, но которые при этом проприетарны, со всеми вытекающими из этого проблемами

2. И тот, и другой полагаются на Chain-of-Thought при решении сложных пошаговых задач, что вообще может быть неоптимально в таком сценарии. Так, например, модель может сразу пойти по ложному пути, генерируя ошибки на каждом следующем шаге. Плюс, так она не исследует другие возможные сценарии, как задачу можно решить, особенно когда нужно воспользоваться многими тулами последовательно. На моем опыте, LangChain тупит даже с довольно простыми запросами, например, поисследовать pandas датафрейм, возможно из-за достаточно простого промптинга

Собственно авторы прелагают обе эти проблемы зарешать а) собрав множество API с прилагающейся документацией и нагенерировав инструкицй по ним б) использовать стратегию промтипнга посложнее, чем CoT.

Вместо CoT предалагают depth-first search-based decision tree (я долгождала, когда кто-то начнет через decision trees промптить) – так модель генерирует вглубину дерево потенциальных действий. Если какая-то ветвь приводит к результату, ты мы отдаем ее как ответ. Если встречаем ошибку при исполнении API, то можно отступить на шаг назад к последнему успешному действию и пропробовать сгенерить что-то другое. Если в целом результат не получается, то можно вернуться к корню и пойти по другой совершенно ветке. Это может быть долго и дорого с точки зрения расходования API, но мне кажется для решения сложных задач это крутой подход

Что понравилось, в эвалюации сравнивают качество с ChatGPT на held-out данных, в том числе на целых категориях API (для решении других специфичных задач), которых модель не видела при обучении. Генерализуется она действительно неплохо, обходит ChatGPT + CoT, и подходит близко к ChatGPT + DFSBDT 👏
  • 👍 9
  • 🔥 2
Post #966 3K
Больше всего во FlashAttention-2 мне нравится, что его тащит один автор в соло 👏
  • 🔥 42
  • 👏 3
  • ❤ 2
Post #965 3.88K
LongNet: Scaling Transformers to 1,000,000,000 Tokens
https://arxiv.org/abs/2307.02486

Прошло полтора месяца с выхода работы от DeepPavlov, где они скейлили контекстное окно до 1 миллиона токенов, and now we’re here 😐

Как всегда предлагают работать с главным боттленком трансформера, а именно с аттеншеном, который вычисляется за квадратичное время. Тут они «прореживают» матрицы K, Q, V, как показано на картинке – каждую из них делят на квадратные куски некоторой длины, и внутри каждого куска выбирают значение ряда и колонки с некоторым отступом. Очень похоже на то, как делают stride в сверточных сетках, когда проходятся по картинке

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

Помимо того, что можно ранжировать размер сегмента и dilution, в разных головах аттеншена эти сегменты также смещают, чтобы захватить больше разнообразной информации из исходных матриц

В эвалюейшн показывают, что модель ведет себя нормально и с контекстом 2к токенов, и с контекстом 32к (и при этом еще требует меньше компьюта и показывают ниже perplexity, чем обычный трансформер). Тестировали правда на одном датасете и не сравнивали ни с чем, кроме FlashAttention. Пока не хватает, имхо, оценки на разных задачах, качество смотрели только на the Stack (датасет с кодом) и только через перплексити, без других метрик
  • 🔥 13
  • 👍 6
  • ❤ 1
Post #964 3.71K
Очень люблю читать yoav, иногда его комметарии так емко и красочно описывают состояние ии-ресерча, что никакие лонгриды не нужны
  • 👍 20
  • 😁 9
  • 🤡 4
Post #963 3.77K
Что могу сказать по итогу: это первый день за долгое время, когда я не увидела в Твиттере ни одного треда по типу «10 magic AI tools to boost ⚡️⚡️⚡️your productivity 🧠🧠🧠🧠» И на том спасибо!
  • 😁 47
  • 😢 7
  • 👍 3
  • 👎 2
  • 😱 2
  • 🕊 1
Post #962 3.58K
Статья с демо, полным мемного потенциала – MotionGPT: Finetuned LLMs are General-Purpose Motion Generators

https://qiqiapink.github.io/MotionGPT/

Суть идеи: у нас есть 3D-модель человечка, которая совершает какие-то движения. Каждое движение мы можем прогнать через VAE-энкодер (предобученный) и получить какой-то токен, который будет означать текущую позу. Что-то типа ‘токен 259’ = ‘человек сидит с поднятыми руками и повернув голову’

Дальше мы берем языковую модель (тут LLaMA), подаем токен исходной позы и просим сгенерировать следующие motion tokens согласно описанию. Например, описание может быть ‘человечек скрючившись идет а потом прыгает’. Поскольку в датасете был ground truth (реальные последовательности движений, соответствующие описанию), то лосс просто кросс-энтропийный, ничего необычного. Тюнили кстати через LoRa всего 0.4% параметров

Дальше сгенерированные motion tokens разворачиваются обратно в позы через тот же VAE. Единственное заметное ограничение тут – поскольку все позы дискретные, то есть каждый токен означает какое-то конкретное движение из датасета, сложно как-то генерализоваться и совершать действия, которых в тренировочных данных не было
  • 👍 11
  • 🔥 2
  • ❤ 1
  • 🤔 1
Post #961 3.06K
Свежие сплетни из Твиттера про архитектуру GPT-4 👀

George Hotz на подкасте Latent Space вбросил, что GPT-4 – это Mixture of Experts, в котором 8 экспертов по 220B параметров (то есть 1.76T в совокупности). Каждый эксперт учился на своей выборке данных и заданий

Еще сказано что-то про «16 inferences» – пока нет единого мнения, что это значит конкретно. Что получают по два ответа откаждого эксперта, может быть? Это и есть some little trick?

Пока пара человек подтвердила, что слышала такие же слухи, так что might be true
  • 🔥 17
  • ❤ 5
Post #960 2.68K
я обучала одну модель И дальше про LLMs evaluating LLMs: на днях вышел пейпер, где авторы собрали 4550 заданий из 30 курсов Mathematics and Electrical Engineering and Computer Science (EECS) в MIT. Эти 30 курсов достаточно сдать, чтобы выпуститься, собственно, бакалавром И вот…
А еще статья настолько не понравилась другим андерградам MIT, что они выпустили отдельный подробный разбор датасета:
https://flower-nutria-41d.notion.site/No-GPT4-can-t-ace-MIT-b27e6796ab5a48368127a98216c76864

Что они там нашли:
- Нерешаемые задания, для ответа на которые нужно было увидеть картинки / графики / предшествующую задачу, которые не были доступны GPT-4
- Повторения заданий, при чем есть полные повторения вопросов, так и просто очень похожие формулировки. Напомню, что авторы вставляли 3 похожих вопроса и ответы на них в промт модели, по сути обеспечивая data leak
- Просто коряво сделенные промты, где место вопроса занимал system prompt и наоборот
  • 🔥 17
  • 🤬 3
  • 😁 1
Post #959 2.51K
И дальше про LLMs evaluating LLMs: на днях вышел пейпер, где авторы собрали 4550 заданий из 30 курсов Mathematics and Electrical Engineering and Computer Science (EECS) в MIT. Эти 30 курсов достаточно сдать, чтобы выпуститься, собственно, бакалавром

И вот они говорят, что ChatGPT решает 30% этих задач, а GPT-4 делает идеальный скор 100% (и получает диплом with honors)

Но есть ✨ нюанс ✨: как же получали скоры того, насколько хорошо пройдены тесты? Особенно с учетом того, что в датасете большая часть вопросов были с открытым ответом или на программирование? Ответ прост – оценить решения GPT-4 попросили саму GPT-4. Human evaluation в статье нет

Еще GPT-4 «решала» задания в очень приятных условиях: при генерации ответов в промте использовали few-shot (давали 3 похожих вопроса из датасета вместе с решением – то есть при решении она видела человеческие ответы на ту же тему), chain-of-thought, self-crtique и expert prompting, применяя все эти методы поочередно, и без ограничения на число итераций

В Твиттере конечно не все долистали до эвалюации, потому там очередная волна «this is a game changer»
  • 🤡 46
  • ❤ 7
  • 👍 2
  • 🤔 2
  • 🥴 1
Post #958 2.16K
Тем временем APA выпустила официальный гайд, как теперь правильно цитировать ChatGPT в научных публикациях

Очень понравилась их вставка про то, что по-хорошему это надо цитировать как личную переписку, но тут получается, что нет личности, которая вам отвечает

https://apastyle.apa.org/blog/how-to-cite-chatgpt
  • 🤔 17
  • 😁 2
  • 👌 2
Older posts →
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 →