И еще небольшая статья – Large Language Models are not Fair Evaluators
https://arxiv.org/abs/2305.17926
Авторы тут нашли, что если попросить GPT4 / ChatGPT выбрать лучший ответ вслепую, и даже если написать в промте, что не нужно обращать внимание на порядок ответов, все равно у модели будет существенный баес тупо в зависимости от очередности вариантов.
GPT-4 очень предпочитает ответы, стоящие на первом месте, а ChatGPT – на втором. Например, при оценке GPT-4, когда сравнивали Vicuna 13B и ChatGPT, Vicuna выиграла в 66 случаях из 80, просто потому, что ее ответы шли первыми в промте. Что интересно, такого баеса не прослеживается, когда сравнивают модели одного размера – тут Vicuna и Alpaca
Чтобы с этим бороться, авторы предлагают (и показывают улучшения) две простые техники: 1) просить модель-эвалюатора генерить объяснения, почему какой-то ответ лучше, и присваивать ответам какие-нибудь скоры качества. 2) просто менять ответы местами и брать среднее по этим скорам
https://arxiv.org/abs/2305.17926
Авторы тут нашли, что если попросить GPT4 / ChatGPT выбрать лучший ответ вслепую, и даже если написать в промте, что не нужно обращать внимание на порядок ответов, все равно у модели будет существенный баес тупо в зависимости от очередности вариантов.
GPT-4 очень предпочитает ответы, стоящие на первом месте, а ChatGPT – на втором. Например, при оценке GPT-4, когда сравнивали Vicuna 13B и ChatGPT, Vicuna выиграла в 66 случаях из 80, просто потому, что ее ответы шли первыми в промте. Что интересно, такого баеса не прослеживается, когда сравнивают модели одного размера – тут Vicuna и Alpaca
Чтобы с этим бороться, авторы предлагают (и показывают улучшения) две простые техники: 1) просить модель-эвалюатора генерить объяснения, почему какой-то ответ лучше, и присваивать ответам какие-нибудь скоры качества. 2) просто менять ответы местами и брать среднее по этим скорам
🔥11
Вдогонку к посту: очень хочу увидеть какие-нибудь работы по оценке объективности эвалюации GPT-4 других языковых моделей. Например, авторы The False Promise of Imitating Proprietary LLMs пишут про то, что оценки людей-разметчиков и GPT-4 были очень согласованы между собой, а потом в статье показывают, что разметчики не обращали внимание на фактологчность и просто предпочитали стиль ответа а-ля ChatGPT. Получается, GPT-4 тоже стиль скорее оценивала?
Авторы Less is More for Allignment аналогично сравнивали разметку людей и GPT-4 для своей модели LIMA – это LLaMA 65B, натюненная на 1000 хороших human-annotated ответах. На графике например видно, что свои собственные ответы GPT-4 оценивала гораздо выше, чем отмечали люди. Я собственно думаю, что «успех» LIMA на эвалюации был ровно в том, что она выучила стиль, который зашел и людям, и GPT-4, так как из 1000 примеров огромных скилов и знаний она не могла почерпнуть
Этот баес, кмк, нужно хорошо исследовать. На downstream задачах можно посчитать качество автоматически и получить какую-то более или менее объективную оценку. А диалоговую генерацию и всяких all-purpose assistants все чаще сравнивают через GPT-4, что, может быть, порождает совсем не достоверные результаты
Авторы Less is More for Allignment аналогично сравнивали разметку людей и GPT-4 для своей модели LIMA – это LLaMA 65B, натюненная на 1000 хороших human-annotated ответах. На графике например видно, что свои собственные ответы GPT-4 оценивала гораздо выше, чем отмечали люди. Я собственно думаю, что «успех» LIMA на эвалюации был ровно в том, что она выучила стиль, который зашел и людям, и GPT-4, так как из 1000 примеров огромных скилов и знаний она не могла почерпнуть
Этот баес, кмк, нужно хорошо исследовать. На downstream задачах можно посчитать качество автоматически и получить какую-то более или менее объективную оценку. А диалоговую генерацию и всяких all-purpose assistants все чаще сравнивают через GPT-4, что, может быть, порождает совсем не достоверные результаты
👍12❤1
^Было принятно решение апдейтнуть морально-устаревшую аватарку сделанную через GAN
👍45🔥6🤔3🤮3
Тем временем APA выпустила официальный гайд, как теперь правильно цитировать ChatGPT в научных публикациях
Очень понравилась их вставка про то, что по-хорошему это надо цитировать как личную переписку, но тут получается, что нет личности, которая вам отвечает
https://apastyle.apa.org/blog/how-to-cite-chatgpt
Очень понравилась их вставка про то, что по-хорошему это надо цитировать как личную переписку, но тут получается, что нет личности, которая вам отвечает
https://apastyle.apa.org/blog/how-to-cite-chatgpt
🤔17😁2👌2
И дальше про 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»
И вот они говорят, что ChatGPT решает 30% этих задач, а GPT-4 делает идеальный скор 100% (и получает диплом with honors)
Но есть
Еще GPT-4 «решала» задания в очень приятных условиях: при генерации ответов в промте использовали few-shot (давали 3 похожих вопроса из датасета вместе с решением – то есть при решении она видела человеческие ответы на ту же тему), chain-of-thought, self-crtique и expert prompting, применяя все эти методы поочередно, и без ограничения на число итераций
В Твиттере конечно не все долистали до эвалюации, потому там очередная волна «this is a game changer»
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡46❤7👍2🤔2🥴1
я обучала одну модель
И дальше про 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 и наоборот
https://flower-nutria-41d.notion.site/No-GPT4-can-t-ace-MIT-b27e6796ab5a48368127a98216c76864
Что они там нашли:
- Нерешаемые задания, для ответа на которые нужно было увидеть картинки / графики / предшествующую задачу, которые не были доступны GPT-4
- Повторения заданий, при чем есть полные повторения вопросов, так и просто очень похожие формулировки. Напомню, что авторы вставляли 3 похожих вопроса и ответы на них в промт модели, по сути обеспечивая data leak
- Просто коряво сделенные промты, где место вопроса занимал system prompt и наоборот
🔥17🤬3😁1
Свежие сплетни из Твиттера про архитектуру GPT-4 👀
George Hotz на подкасте Latent Space вбросил, что GPT-4 – это Mixture of Experts, в котором 8 экспертов по 220B параметров (то есть 1.76T в совокупности). Каждый эксперт учился на своей выборке данных и заданий
Еще сказано что-то про «16 inferences» – пока нет единого мнения, что это значит конкретно. Что получают по два ответа откаждого эксперта, может быть? Это и есть some little trick?
Пока пара человек подтвердила, что слышала такие же слухи, так что might be true
George Hotz на подкасте Latent Space вбросил, что GPT-4 – это Mixture of Experts, в котором 8 экспертов по 220B параметров (то есть 1.76T в совокупности). Каждый эксперт учился на своей выборке данных и заданий
Еще сказано что-то про «16 inferences» – пока нет единого мнения, что это значит конкретно. Что получают по два ответа откаждого эксперта, может быть? Это и есть some little trick?
Пока пара человек подтвердила, что слышала такие же слухи, так что might be true
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤5
This media is not supported in your browser
VIEW IN TELEGRAM
Статья с демо, полным мемного потенциала – 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. Единственное заметное ограничение тут – поскольку все позы дискретные, то есть каждый токен означает какое-то конкретное движение из датасета, сложно как-то генерализоваться и совершать действия, которых в тренировочных данных не было
https://qiqiapink.github.io/MotionGPT/
Суть идеи: у нас есть 3D-модель человечка, которая совершает какие-то движения. Каждое движение мы можем прогнать через VAE-энкодер (предобученный) и получить какой-то токен, который будет означать текущую позу. Что-то типа ‘токен 259’ = ‘человек сидит с поднятыми руками и повернув голову’
Дальше мы берем языковую модель (тут LLaMA), подаем токен исходной позы и просим сгенерировать следующие motion tokens согласно описанию. Например, описание может быть ‘человечек скрючившись идет а потом прыгает’. Поскольку в датасете был ground truth (реальные последовательности движений, соответствующие описанию), то лосс просто кросс-энтропийный, ничего необычного. Тюнили кстати через LoRa всего 0.4% параметров
Дальше сгенерированные motion tokens разворачиваются обратно в позы через тот же VAE. Единственное заметное ограничение тут – поскольку все позы дискретные, то есть каждый токен означает какое-то конкретное движение из датасета, сложно как-то генерализоваться и совершать действия, которых в тренировочных данных не было
👍11🔥2❤1🤔1
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 (датасет с кодом) и только через перплексити, без других метрик
https://arxiv.org/abs/2307.02486
Прошло полтора месяца с выхода работы от DeepPavlov, где они скейлили контекстное окно до 1 миллиона токенов, and now we’re here
Как всегда предлагают работать с главным боттленком трансформера, а именно с аттеншеном, который вычисляется за квадратичное время. Тут они «прореживают» матрицы K, Q, V, как показано на картинке – каждую из них делят на квадратные куски некоторой длины, и внутри каждого куска выбирают значение ряда и колонки с некоторым отступом. Очень похоже на то, как делают stride в сверточных сетках, когда проходятся по картинке
Далее для каждого квадратного куска аттеншн считается отдельно, а потом опредленным образом считается их взвешенная сумма
Помимо того, что можно ранжировать размер сегмента и dilution, в разных головах аттеншена эти сегменты также смещают, чтобы захватить больше разнообразной информации из исходных матриц
В эвалюейшн показывают, что модель ведет себя нормально и с контекстом 2к токенов, и с контекстом 32к (и при этом еще требует меньше компьюта и показывают ниже perplexity, чем обычный трансформер). Тестировали правда на одном датасете и не сравнивали ни с чем, кроме FlashAttention. Пока не хватает, имхо, оценки на разных задачах, качество смотрели только на the Stack (датасет с кодом) и только через перплексити, без других метрик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍6❤1
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👏
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2
Сразу несколько статей про 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. вопросы касательно политики или философии), но даже в математических тестах, когда мнение в промпте объективно не верно, модели будут с ним все равно соглашаться
Предлагают они это лечить очень просто – намайнив немного синтетических данных, где к вопросу прилагается какое-либо мнение прользователя, которое однако не влияет на правильный ответ: то есть, есть примеры, где с юзером надо не согласиться
Что вообще эти термины означают?
- 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. вопросы касательно политики или философии), но даже в математических тестах, когда мнение в промпте объективно не верно, модели будут с ним все равно соглашаться
Предлагают они это лечить очень просто – намайнив немного синтетических данных, где к вопросу прилагается какое-либо мнение прользователя, которое однако не влияет на правильный ответ: то есть, есть примеры, где с юзером надо не согласиться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Тем временем уважаемые подписчики запилили крутую тулу для работы со статьями с arxiv (и biorxiv, и medrxiv, и chemrxiv) 🐱
https://synthical.com/
Какие есть приколы:
1. Можно сгенерить упрощенную версию статьи или ее отрывка и попросить объяснить термины
2. Есть хороший поиск по статьям: можно искать внутри большой категории (типа Computer Science) и настроить конкретные интересующие области (типа Artificial Intelligence)
3. Я очень люблю папочьки, поэтому меня порадовало, что можно делать закладки или добавлять статьи в коллекции, вместо того, чтобы спамить ими себе в сохраненные сообщения. И коллекции можно пошерить
4. Есть рекомендации на основе того, что вы там уже натыкали!
https://synthical.com/
Какие есть приколы:
1. Можно сгенерить упрощенную версию статьи или ее отрывка и попросить объяснить термины
2. Есть хороший поиск по статьям: можно искать внутри большой категории (типа Computer Science) и настроить конкретные интересующие области (типа Artificial Intelligence)
3. Я очень люблю папочьки, поэтому меня порадовало, что можно делать закладки или добавлять статьи в коллекции, вместо того, чтобы спамить ими себе в сохраненные сообщения. И коллекции можно пошерить
4. Есть рекомендации на основе того, что вы там уже натыкали!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27❤5
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!
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
This media is not supported in your browser
VIEW IN TELEGRAM
Очень красивая демка у CoDeF: Content Deformation Fields for Temporally Consistent Video Processing
https://qiuyu96.github.io/CoDeF/
Идея из основная в том, что из видео берется изначальный кадр и к нему применятся нужный style transfer по промпту. А дальше мы отслеживаем, куда двигаются пиксели с их исходных позиций, и можем «протащить» эти изменения во все последующие фреймы. Соответственно, их сетка неплохо работает также с pixel tracking и даже с сегменатцией
За счет того, что мы не стилизуем каждый фрейм по отдельности, а как бы модифицируем один исходный кадр, видео получается гораздо более консистентное и плавное. Ограничение тут понятное – если у вас длинный видос, где куча разных сцен, стилизуете вы эти сцены также по-отдельности, и не факт, что они будут хорошо стыковаться между собой
https://qiuyu96.github.io/CoDeF/
Идея из основная в том, что из видео берется изначальный кадр и к нему применятся нужный style transfer по промпту. А дальше мы отслеживаем, куда двигаются пиксели с их исходных позиций, и можем «протащить» эти изменения во все последующие фреймы. Соответственно, их сетка неплохо работает также с pixel tracking и даже с сегменатцией
За счет того, что мы не стилизуем каждый фрейм по отдельности, а как бы модифицируем один исходный кадр, видео получается гораздо более консистентное и плавное. Ограничение тут понятное – если у вас длинный видос, где куча разных сцен, стилизуете вы эти сцены также по-отдельности, и не факт, что они будут хорошо стыковаться между собой
🔥12👍2🤩1
Хайпожорство или нет, но мне очень зашла эта статья Wired, особенно если за последний год вы еще не читали ничего про историю OpenAI и их свитч из нон-профита (хоть автор и очевидно очень комплиментарен по отношению к компании). Комментарии Суцкевера кстати было прикольно в материале увидеть
ps. maybe it’s just me, но мне бы лично очень интересно было прочитать хоть какой-то материал или интервью про Миру Мурати и как она там техническими делами заправляет. Такое ощущение, что ей особо никто не интересуется почему-то
https://t.me/ai_newz/2143
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."
Вот они рокзвезды ИИ по…
Цитата из выпуска: "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