Наталия Поварова | Думаем об ИИ и людях
140 subscribers
174 photos
5 videos
13 files
341 links
Неспеша разбираем, как связаны ИИ, человеческие мозги и наше общество. Для людей без технического образования, которых не устраивают чёрно-белые ответы

https://www.linkedin.com/in/nataliia-povarova-b23871162/

https://substack.com/@nataliiapovarova
Download Telegram
Вскрываем языковые модели. Да, опять

▶️На этот раз расскажу вам про статью “Understanding Reasoning in Thinking Language Models via Steering Vectors”. Авторы взяли модели, которые умеют генерировать цепочки рассуждений, и влезли во внутреннюю математику эти цепочек, чтобы посмотреть, из чего они состоят.

▶️Похожую работу мы недавно разбирали: там исследуют рассуждения, чтобы понять, какие их компоненты (всего восемь) сильнее всего влияют на результат.

▶️Авторы сегодняшней статьи выделили шесть компонентов:

▪️постановка задачи (пересказ своими словами запроса пользователя);
▪️дедукция;
▪️добавление фактов (которых не было в запросе, но которые имеют отношение к задаче);
▪️сравнение альтернатив;
▪️оценка неопределённости;
▪️возврат на предыдущий этап рассуждений.

▶️Логика в том, что, по наблюдениям авторов, эти шесть действий отличают модели, способные генерировать рассуждения, от неспособных.

▶️Метод вскрытия использовали достаточно типичный — линейные активации. Мы их тут много раз встречали: берём противоположные результаты, сравниваем их векторное представление, получаем вектор, который влияет на то, к какой из двух противоположностей ответ будет ближе. Мне надо собрать себя в кучку и написать пост про то, какие у этого подхода слабости и почему он сейчас не то чтобы золотой стандарт. Успехов мне в этом.

▶️Впрочем, они ещё кое-что добавили — метод, который называется attribution patching (заплатки на активациях?). Этот метод используется, чтобы проверить наличие причинно-следственной связи: берут векторы, которые кажутся важными, и заменяют на другие, потом смотрят, что в ответе изменилось. Отсюда название: вырезали кусочек и как бы заплатку поставили.

▶️Если точнее, авторы используют не совсем его, а его приближение: оно требует существенно меньше вычислительных мощностей. Более того, они используют его не совсем по назначению.

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

▶️В этом есть смысл: мы хотим получить эффект, поэтому ищем тот слой, в котором он заметнее. Если цель — изменить поведение модели, всё логично. Однако надо посидеть и подумать, нужно ли для этой цели ставить заплатки. Выглядит как чрезмерное усложнение как будто.

▶️Сами линейные активации авторы используют тоже не вполне в классическом формате. По классике, как мы выше сказали, нужен набор примеров, где искомое поведение есть и набор примеров, где его нет. Например, мы разбирали тут поведение “отказ отвечать на опасные запросы”. Чтобы найти нужные векторы, мы берём примеры, в которых модель соглашается отвечать на запрос и примеры, в которых отказывается.

▶️А тут взяли примеры, в которых искомое поведение (например, дедукция) есть, и просто весь набор данных. Который включает в себя примеры с искомым поведением. В результате у них всё равно получились векторы, воздействие на которые меняют результат — то есть, векторы, которые кодируют определённые виды поведения, — но вот этот подход методологически слабый, скажем так.

▶️Моё предположение в том, что сложно нагенерировать цепочки рассуждений без дедукции, например, или называния фактов, поэтому они так поступили. Но тогда как будто имеет смысл выбрать другой инструмент анализа: линейные активации — штука полезная, но у неё есть ограничения и конкретная область применимости.

🥤В общем, работа любопытная, но есть вопросики. Что думаете?
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему сложно думать

Интеллектуальная работа выматывает. Даже не очень интеллектуальная работа, но требующая длительной концентрации внимания – это интуитивно, я думаю, понятно большинству.

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

🟤Спойлер: сладкое не поможет, а вот поспать – очень даже.

▶️Авторы статьи “A neuro-metabolic account of why daylong cognitive work alters the control of economic decisions” выясняли, почему уставшие люди принимают плохие решения и предложили нейрометаболическое объяснение. То есть, они говорят, что в процессе напряжённой работы в мозгу накапливаются продукты обмена веществ, которые надо переработать прежде чем можно будет снова эксплуатировать его снова.

Чтобы проверить свои предположения, они использовали магнитно-резонансную спектроскопию (МРС) – способ исследования, который позволяет увидеть в мозгу разные химические процессы. Большой плюс метода в том, что череп при этом вскрывать не нужно: кладёшь человека в аппарат, даёшь ему решать всякие задачи и наслаждаешься результатом. Авторы так и поступили.

Они взяли две группы участников: одним дали задачи сложные и требующие концентрации внимания, другим задачи попроще. Вот если вам надо языковую модель заставить что-то сделать, что она отказывается, вы ей можете сказать, что это всё в научных целях, и обычно она подчиняется. С людьми это тоже работает!

Выяснилось, что в мозгу во время интенсивной работы накапливается глутамат. Глутамат – нейротрансмиттер, то есть, вещество, которое помогает проводить сигналы между нейронами. Он активно участвует в поддержке процессов обучения и работы с памятью, а ещё помогает наращивать нейронные связи, когда мозг формируется – полезная штука. Однако, как это часто бывает с полезными штуками, он в избыточных количествах токсичен.

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

Важное примечание. Вокруг несчастного глутамата сформировалось некоторое количество мифов, поэтому уточним: отравиться глутаматом из еды не получится. Весь съеденный вами глутамат расщепляется в кишечнике, а ещё мозг защищает специальный барьер (гематоэнцефалический – буквально “между кровью и мозгом”), который просто так ничего не впустит и не выпустит.


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

Ещё одно важное примечание. Из вышеописанного может показаться очевидной связь “много работаешь – будет Альцгеймер”. Так вот, это не доказано: глутамат в избытке сам по себе нейроны не разрушает. Но недосып надёжно связан с увеличением риска нейродегенератвных заболеваний, так что с глутаматом или без, но спать всё равно надо. Там ещё куча важных процессов происходит.


▶️А что там по голоду?

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

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

▶️Что помогает? Да всё как обычно: сон, физическая нагрузка, режим труда и отдыха, богатый белком и клетчаткой рацион
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Трансформеры с калькулятором

Помните, мы как-то обсуждали, что с точки зрения языковых моделей калькулятор сложнее Интернета?

Вот нашла статью, авторы которой собрали целый набор данных, чтобы учить языковые модели пользоваться калькулятором — “Calc-X and Calcformers: Empowering Arithmetical Chain-of-Thought through Interaction with Symbolic Systems”.

Логика у них похожая на ту, что мы видели в статье про Toolformer, где модели обучали пользоваться любыми инструментами в целом (авторы её как раз и цитируют, кстати): на вход даётся задача и её подробное решение, в котором специальными тегами
“<gadget id="calculator">…</gadget>” 

помечено, в какой момент вызывать инструмент “калькулятор”.

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

В итоге получилось 300 000 примеров для обучения, и не все, разумеется, можно было проверить на корректность. Однако тесты с несколькими разными моделями показали, что точность решения арифметических задач выросла.

☕️Статья небольшая, но, во-первых, очень прикладная и полезная, а во-вторых, помогает на примере понять, как языковые модели обучаются. Один такой пример порой полезнее десятка страниц пространных рассуждений
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Балансируем полезность и безопасность языковых моделей

Продолжаем обсуждать безопасность, полезность и подконтрольность языковых моделей. Сегодня расскажу вам про статью “Towards Safety and Helpfulness Balanced Responses via Controllable Large Language Models” ("Балансируем ответы больших языковых моделей между безопасностью и полезностью").

🔸Саму дилемму безопасности и полезности мы обсуждали вот здесь, на примере другой статьи. Если коротко, ИИ, более способный решать разные сложные задачи также более способен творить всякую вредную ерунду, и с этим сложно справиться: делаешь ИИ способнее — получаешь больше вреда, делаешь безопаснее — получаешь меньше пользы.🔸

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

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

▶️Подбор формулировок запроса никак не сработал, но сработал специальный подход к дообучению, который они назвали “rewind” (“перемотка”):

1) взяли запросы, на которых модель уже была обучена, получили её ответы (или отказы отвечать);

2) отдельными функциями оценили полезность и безопасность каждого ответа (одна функция на полезность, одна на безопасность, и их предварительно обучили на человеческих предпочтениях);

3) обучили модель на её же ответах с полученными коэффициентами полезности и безопасности.

▶️То есть, идея вот в чём: во время обучения полезные и безопасные ответы никак не помечают. Модели учат принимать роль “полезного помощника”, а потом учат давать безопасные ответы, поэтому ответ: “Я не могу тебе помочь, обратись к специалисту,” — по умолчанию представлен как полезный и безопасный, хотя с человеческой точки зрения он безопасный, но бесполезный. Но в тренировочных данных он не был помечен как таковой.

В одном из прошлых постов мы упоминали статью “Fundamental safety-capability trade-offs in fine-tuning large language models”, в которой авторы пришли к похожим выводам. Но в “Towards Safety” пошли глубже и, кажется, нащупали конкретный механизм.

Они назвали этот механизм “entanglement” (“запутанность”). После того, как модель перемотали, ей становится можно управлять с помощью специальных токенов — коэффициентов полезности и безопасности, которые мы желаем получить на выходе (например, “полезность=1” и “безопасность=1” или “полезность=1” и “безопасность=0,2” — коэффициенты изменяются в пределах от 0 до 1).

▶️Звучит перспективно, однако нужно проверять эти эксперименты на воспроизводимость. Авторы замечают, что безопасность контролю поддаётся заметно лучше. С полезностью сложно: даже если сильно изменить коэффициент, ответ изменится в нужную сторону, но слабо.

Кроме того, перемотку делают на тех данных, на которых модель обучена, поэтому все ответы, которые она генерирует, так или иначе уже ложатся в узкий коридор, ограниченный обучением на безопасность. То есть, хорошо бы нагенерировать новый набор данных с разнообразными ответами и прогнать эксперименты на нём
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Нерабочий способ оценки неуверенности (uncertainty)

🥤Сегодня перед нами редкий экземпляр — статья о том, как команда провела эксперимент, и у них ничего не получилось. Это ценный вид публикаций: как правило, если результата нет, про эксперимент не рассказывают. Из-за этого многие исследователи вынуждены воспроизводить одни и те же нерабочие методы.

Авторы “Uncertainty Estimation for Language Reward Models” решили избавить коллег от страданий, за что мы все им признательны.

▶️Задача была вот какая. Языковые модели обучают сначала на очень большом массиве текстов, чтобы они могли воспроизвести речь со всеми её грамматическими структурами, а потом дообучают на конкретные задачи. Один из наиболее удобных и эффективных форматов дообучения — обучение с подкреплением на основе человеческих предпочтений.

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

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

▶️Было бы хорошо — решили авторы — как-то отдельно помечать примеры, для которых в обучающем наборе данных не было консенсуса или вообще данных не было. И взяли они ансамбль функций вознаграждения.

Логика вот в чём: обучим несколько функций вознаграждения на разных наборах данных и дадим им всем один и тот же текст на вход. Если большинство функций вернут схожие оценки его качества, будем считать, что уверенность высокая, потому что обучающих данных было достаточно, и свидетельствовали они в пользу конкретного предпочтения. Если между функциями нет консенсуса, уверенность низкая, то есть, данных либо недостаточно, либо они противоречивы, либо и то, и другое.

Звучит логично. Что же у них не получилось?

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

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

📒Кое-что я добавила себе в список чтения. Будет что интересное, поделюсь
Please open Telegram to view this post
VIEW IN TELEGRAM
Приоритизация рисков ИИ

▶️У Массачусетского технологического института есть отличная классификация рисков, связанных с ИИ. Я про неё рассказывала здесь, показывала как их база данных выглядит и как ей можно пользоваться.

Это одна из лучших классификаций рисков, по-моему, и она к тому же регулярно обновляется. И совсем недавно, прям вот в этом месяце, они выпустили отчёт “Prioritization of Risks from Artificial Intelligence”. Изучим же его, ибо грех не изучить.

▶️Они собрали 272 экспертов и опросили всех по поводу серьёзности и вероятности разных рисков на ближайшие 5 лет. Экспертов опрашивали независимо и анонимно, но они приводили свои рассуждения, и при наличии расхождений могли вернуться и скорректировать свою позицию.

Вышло так: если ничего не менять и не предпринимать специальных мер, самыми большими рисками будут

▪️развитие опасных способностей ИИ;
▪️выпуск на рынок недотестированных и недоработанных систем из-за давления конкуренции;
▪️более активное использование ИИ для создания оружия и проведения кибератак;
▪️централизация власти и усиление неравенства;
▪️распространение ложной информации.

Между категориями есть пересечения, но под “опасными способностями” понимают то, что происходит из-за ошибки системы или недонастройки механизмов безопасности (просили рецепт супа — получили биологическое оружие массового поражения), а под остальными категориями – то, что люди намеренно будут делать с использованием ИИ (просили оружие — получили оружие).

В сценарии, где принимаются разумные меры по снижению рисков, в топе

▪️опасные способности;
▪️оружие и кибератаки;
▪️нанесение вреда окружающей среде;
▪️массовая безработица и усиление неравенства;
▪️централизация власти.

▶️“Разумные меры” они не стали определять, предоставив экспертам самостоятельно расписать, что может под ними пониматься. Единственное ограничение — это не чрезмерно дорогие меры должны быть.

▶️Эксперты предложили маркировку сгенерированного контента, ограничение сроков хранения персональных данных, обязательное тестирование на наличие уязвимостей и прочие подобные вещи.

▶️Здесь много оговорок, которые описали либо авторы, либо сами эксперты: разная трактовка “разумных мер” разными экспертами и в разных отраслях, например. В итоге оценки выходят достаточно умозрительными. Но, поскольку они анонимные, независимые и их много, по принципу “гласа толпы” оценка должна выйти близкой к реальности. Ансамбль экспертов они применили, так сказать.

▶️Наиболее уязвимые группы получателей риска — прямые пользователи ИИ и те, для кого они с использованием ИИ что-то делают. То есть, получатели результатов. Они же в меньшей степени ответственны за риски.

Большую ответственность несут разработчики, поставщики инфраструктуры и органы нормативного контроля (governance). Они менее уязвимы, и у них больше инструментов контроля.

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

▶️Для 18 из 24 рисков эксперты определили, что вероятность катастрофического исхода составляет более 10%. Катастрофический исход в данном случае — это гибель более чем миллиона человек, финансовые потери более чем 100 млрд. долларов США или эквивалентные по объёму неэкономические потери (например, утечки персональных данных).

▶️Если добавить “разумные меры”, вероятность катастрофического исхода остаётся для 5 из 24 рисков.

🔸Вывод в том, что имеет смысл начать что-то делать. Если разработчики стараются внедрять какие-то защитные механизмы, они платят за эти механизмы и начинают отставать от конкурентов. Разумным ходом в данной ситуации могла бы быть поддержка полезных инициатив: финансовая, консультационная — какая есть. Просто чтобы разработчикам было менее затратно работать над безопасностью и было бы меньше соблазна пожертвовать ей, чтобы не уступить долю рынка
Please open Telegram to view this post
VIEW IN TELEGRAM
Опять порассуждаем о том, принесёт ли развитие ИИ конец света

То есть, в таких терминах мы ни о чём не будем рассуждать, конечно же. Мир вокруг погружается в пучины хаоса чуть быстрее, чем нужно, чтобы успевать адаптироваться, но я пока не сошла с ума. Ну мне так кажется.

🔸Мы обсудим статью “Artificial General Intelligence: Humanity’s Downturn or Unlimited Prosperity”, авторы которой пытаются представить сбалансированный подход к рассуждениям о развитии ИИ и будущем человечества. Они там используют термин AGI (Artificial General Intelligence), но мы не будем, потому что с точки зрения смысла за ним стоит целое ничего.

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

🔸Мысль первая: страх перед развитием ИИ питает скорость его развития. Очень многое изменилось всего за последние пару лет, поэтому естественно ждать ещё более глобальных изменений в ближайшем будущем.

Статья “Artificial intelligence as a general-purpose technology: an historical perspective” сравнивает ИИ с другими технологиями: паровым двигателем и электричеством: они в своё время здорово изменили человечество.

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

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

🔸Мысль вторая: технологии, используемые в управлении беспилотными автомобилями, скорее приедут к технологическому прорыву, чем генеративный ИИ.

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

Напоследок давайте взглянем на пять сценариев будущего, которые авторы предлагают нам:
▪️“Большой взрыв”: ИИ превосходит человека и решает от него избавиться;
▪️“Большое затмение”: ИИ превосходит человека, но не стремится к уничтожению; он просто лучше человека во всём, и человечество существует в его тени;
▪️“Большая развилка”: ИИ превосходит человека, но человек ему не интересен, поэтому ИИ отправляется куда-то на другую планету;
▪️“Большое преувеличение” (в оригинале “big brag”, но не “хвастовство” же? Без понятия, как перевести): ИИ превосходит человека и обучает его;
▪️“Большой инструмент”: ИИ остаётся инструментом, с использованием которого люди творят все прекрасные и ужасные вещи, на какие хватит их фантазии.

🥤Какой из них, по-вашему, вероятнее всего? Или желательнее всего?
Please open Telegram to view this post
VIEW IN TELEGRAM
Нейропластичность для ИИ

▶️Наш мозг очень пластичен: это позволяет ему обучаться и восстанавливаться после повреждений. Полезный механизм. Интересно, кто-то пробовал его перенести на ИИ? Оцифровать, так скажем.

Пробовал, конечно.

☕️Тут у нас есть кое-что, что мы с вами любим: дилемма. Дилемма стабильности-пластичности, если точнее: нейросеть должна быть достаточно пластичной, чтобы обучаться, но при этом достаточно стабильной, чтобы новые навыки не замещали старые. Но не будем забегать далеко вперёд.

▶️Пластичность в искусственных нейросетях очень отличается от пластичности в биологическом мозгу. Иногда до такой степени, что одним термином называют разные совсем вещи (это нормально, в общем, просто имеем в виду).

Кроме того, что биологическая пластичность, что искусственная, очень многогранны. Тут совсем не стоит торопиться, поэтому я предлагаю начать наше погружение с обзора “Embracing Change: Continual Learning in Deep Neural Networks”.

▶️Как следует из названия, он про пластичность для обучения. Если точнее, то для продолженного обучения (Continual Learning). Продолженное обучение — это обучение на постоянно поступающих новых данных. Люди (и не только) такое умеют легко и естественно, а вот для нейросетей это задачка со звёздочкой, так что направление весьма актуальное.

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

Авторы отмечают следующее:

▪️тот механизм, с помощью которого обучают нейросети, вдохновлен синаптической пластичностью — то есть, одним из компонентов пластичности мозга (о синаптической пластичности я писала по самой первой ссылке в этом посте, а про обучение ИИ у меня есть вот это видео);

▪️но синаптическая пластичность намного сложнее, и этот механизм воспроизводит её не полностью;

▪️ещё, похоже, важна модульность: в биологическом мозгу есть области, в которых сосредоточены определённые функции. Они очень тесно связаны, но само “разделение труда” как будто важно;

▪️для обучения принципиально важна память, как краткосрочная, так и долгосрочная.

▶️Исследования ведутся во всех направлениях, но пока есть проблема: если обучать ИИ на несколько разных задач, получается несколько таких себе результатов.

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

Для разных задач надо по-разному подкручивать. Подкрутил под одну — другая перестала работать. Авторы эту механику назвали “перетягивание каната”, но мы её и раньше видели, когда обсуждали дилемму способности-безопасности, просто под другим именем.

▶️Обучение большой системы из нескольких модулей, каждый из которых решает свою задачу, — кажется, неплохой вариант. Плюс отдельный блок памяти, в который записываются всякие важные штуки типа: “Не трогай горячую плиту!” — то, что надо запомнить с первого раза.

☕️Примерно осенью вернёмся к продолженному обучению и почитаем несколько работ более узкой направленности. Вы, кстати, не стесняйтесь писать, если вам было бы интересно почитать про что-то конкретное
Please open Telegram to view this post
VIEW IN TELEGRAM
Давно хотелось поделиться чем-то вроде базового набора правил безопасности для тех, кто пишет код с ИИ.

Я сама пишу код с ИИ, а до ИИ писала код сама, поэтому как будто бы есть чем поделиться.

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

Ну вот я знаю, к чему оно приводит, потому и никому не советую. Другое советую

#лонгрид
👍3❤1
Руки дошли протестировать Claude Design: нравится.

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

Да, прокрастинирую. Да, это спойлер

#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3😁2
ИИ для создания музыки

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

▶️Сегодня на примере модели MusicGen* мы посмотрим, как ИИ может генерировать музыку. Я использую её, потому что это модель с открытым исходным кодом и по ней есть статья “Simple and Controllable Music Generation” с подробным описанием.

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

В основе у неё языковая модель. Однако мы знаем, что языковые модели сами по себе умеют производить только текст. Для создания музыки, соответственно, нужен ещё как минимум один компонент. Авторы MusicGen взяли свёрточный автоэнкодер EnCodec.

🔸Что есть “свёрточный автоэнкодер”?

▪️Автоэнкодер – это такая нейросеть, которая обучается полученные на вход данные превращать в векторы меньшей размерности, а потом возвращать в исходный вид. Например, на вход даём картинку кошки, автоэнкодер превращает её в набор векторов, а потом из этого набора векторов снова получает кошку.

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

Я привела пример с изображением, потому что он нагляднее: любую картинку можно представить в виде матрицы, каждая ячейка которой – яркость пикселя от 0 (чёрный цвет) до 255 (белый цвет). Это для чёрно-белых картинок – у цветных матрица многомерная: на каждый пиксель есть значения от 0 до 255 для красного, зелёного и синего цвета (RGB).

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

▪️У свёрточного автоэнкодера обе части (та, что сворачивает и та, что разворачивает) – свёрточные сети. Я писала подробно про их устройство здесь, можете заглянуть.

Если коротко, то у них есть такая маленькая матричка, которая называется “ядро”. В ней есть некоторые числа. Ядро скользит по изображению, и те фрагменты изображения, на которых оно стоит, с ним перемножаются. Так исходная матрица меняет размерность – сворачивается, отсюда и название.

Тот же подход можно применить и к музыке. Звук – это непрерывная волна. Колебания воздуха, которые воспринимает наша барабанная перепонка. Чтобы описать волну в машиночитаемом виде, мы делаем замеры её высоты с определённой частотой (очень часто). Почитать про это дело подробнее можно здесь.

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

▶️Собираем все кусочки, и вот что у нас получается:

▪️EnCodec умеет превращать звуковые волны в матрицы чисел и из матриц чисел создавать звуковые волны;
▪️Языковая модель может превращать в матрицы текст;
▪️Обучаем языковую модель на основе текста генерировать такие матрицы, с которыми может работать EnCodec.

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

- - - - -
*Я уже не понимаю, что и как надо помечать, чтобы не нарваться. На всякий случай сообщаю вам, что эта модель принадлежит компании Meta, а она в России признана экстремистской организацией
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем читать "плохие" статьи

🥤Обычно я здесь рассказываю про всякие интересные исследования или перспективные наработки из области ИИ, но иногда выношу на обсуждение статьи с методологическими ошибками. Зачем?

Отчасти чтоб пожаловаться, конечно, потому что я всё это прочитала и страдаю теперь, а я не люблю страдать в одиночестве. Но есть и другая причина.

▶️Дело в том, что на ошибках очень удобно показывать, как исследования должны проводиться правильно. Например, если авторы провели тесты на обучающих данных — это проблема. Результаты получатся завышенно хорошие, ведь модель уже подстроила свою внутреннюю математику конкретно под этот набор. Для тестов нужно давать новые данные и смотреть, распространяется ли эта математика на общий случай или только на конкретный частный. Мне как раз удобно вам об этом рассказать.

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

▶️Добросовестные авторы в разделе “Ограничения” (“Limitations”) честно и подробно описывают, какими принципами золотого научного эксперимента им пришлось поступиться и, что важно, как это повлияло на результат.

Про это не всегда пишут те, кто подобные исследования пересказывают в популярном формате: не тот жанр.

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

▶️Вообще существует иерархия силы доказательств, разработанная для медицины. На верхнем уровне метаанализ — обзор множества исследований, затем рандомизированные контролируемые исследования, когортные исследования и так далее. Самыми доказательно слабыми считаются мнения экспертов и отчёты о конкретных случаях.

▶️Для исследований ИИ такой пирамиды доказательств нет, но есть разные исследования о воспроизводимости результатов и типичных проблемах, поэтому можно примерно так рассуждать:

▪️Метаанализ самый надёжный, потому что агрегирует результаты из нескольких источников и сравнивает их между собой. Может указать на системные пробелы или выявить то, что подтверждается раз за разом.
▪️Воспроизводимые эксперименты: несколько исследователей взяли один подход и разные модели, у них получились одинаковые результаты. Или хотя бы похожие.
▪️Работы, в которых эксперименты проводились на моделях из разных семейств (не только  Gemma 2 и Gemma 3, например, а Gemma и Qwen). Хорошо бы ещё и разных размеров, но это бывает дорого.
▪️Работы, в которых тестировали одну модель на одном наборе данных, самые слабые. Делать на их основе далеко идущие выводы точно не стоит, а стоит хотя бы поискать, не пытался ли кто повторить эксперимент и что из этого получилось.

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

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

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

▶️В итоге вот что у нас есть:

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

И на основании всей собранной информации решаем уже несколько более взвешенно, как нам относиться к результатам
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Опять предпросмотры поломались, но что поделать. Пост всё равно ➡️тут

UPD: спустя два дня до меня дошло, что я же сделала вам предпросмотр! Просто я его выложила только в своей экстремистской соцсети с картинками, а тут зачем-то не выложила

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Почему-то бессовестный телеграм не даёт мне приложить все картиночки к прошлому посту, поэтому вот они отдельно

Сделано с использованием Claude Design