<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Data Blog</title><subtitle>Blog about data science and explainable AI</subtitle><author><name>Data Blog</name></author><id>https://teletype.in/atom/jdata_blog</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/jdata_blog?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@jdata_blog?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jdata_blog"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/jdata_blog?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-10-25T01:38:23.698Z</updated><entry><id>jdata_blog:xai_and_chat_GPT</id><link rel="alternate" type="text/html" href="https://teletype.in/@jdata_blog/xai_and_chat_GPT?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jdata_blog"></link><title>ChatGPT и explainable AI</title><published>2024-10-13T18:16:33.871Z</published><updated>2024-10-17T17:37:15.728Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/94/24/9424d91a-cf39-496c-858e-50e15b8e98c4.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/63/f9/63f95632-d03e-4766-8140-1dc0add6e387.png&quot;&gt;“Unlike with most human creations, we don’t really understand the inner workings of neural networks”   (c)</summary><content type="html">
  &lt;p id=&quot;0t2S&quot;&gt;&lt;em&gt;“Unlike with most human creations, we don’t really understand the inner workings of neural networks”   &lt;a href=&quot;https://openai.com/index/extracting-concepts-from-gpt-4/&quot; target=&quot;_blank&quot;&gt;(c)&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;VhF0&quot;&gt;Привет, друзья! Работа над продуктом на базе chatGPT — увлекательное путешествие. Косяки в доработке — и можно натолкнуться на ситуацию, когда в скрытом смысле в качестве борьбы со страхом модель предложит спалить дом. &lt;/p&gt;
  &lt;p id=&quot;Z3Y4&quot;&gt;В последнюю неделю поставила себе задачу разобраться, как сделать модель прозрачнее, сильнее и лучше, потому что я делаю продукт для детей. И мне показалось важным и интересным, поделиться найденными тезисами. &lt;/p&gt;
  &lt;p id=&quot;fKmy&quot;&gt;&lt;em&gt;Welcome в пост!&lt;/em&gt;&lt;/p&gt;
  &lt;h4 id=&quot;iTjh&quot;&gt;1. Можно ли назвать ChatGPT объяснимой моделью?&lt;/h4&gt;
  &lt;p id=&quot;Jqkb&quot;&gt;&lt;strong&gt;ChatGPT не является объяснимой моделью&lt;/strong&gt; в фундаментальном понимании области XAI. &lt;/p&gt;
  &lt;p id=&quot;Bmdp&quot;&gt;&lt;strong&gt;Почему это так:&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Во-первых,&lt;/strong&gt; обучение на большом наборе данных. Здесь работает фундаментальный принцип — мусор на входе, мусор на выходе. Увеличивая объем данных модели удается захватывать сложные зависимости, но при этом чем больше данных, тем сложнее оценить их чистоту. &lt;br /&gt;&lt;em&gt;&lt;br /&gt;Для некоторых областей Википедия тоже может быть &amp;quot;мусоркой&amp;quot;, а для некоторых — это необходимое и достаточное описание материала. Обучаясь в общем смысле, такое деление не может быть учтено. &lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;hFIl&quot;&gt;&lt;strong&gt;Во-вторых,&lt;/strong&gt; невозможность рассмотреть несколько результатов процесса объяснения в разрезе. &lt;br /&gt;&lt;br /&gt;Методы атрибуции (выделения признаков, если попроще) могут давать разные результаты на одной и той же модели. Оценить какое объяснение лучше сложно, без формулировки задачи к объяснению. &lt;/p&gt;
  &lt;figure id=&quot;DZk1&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/63/f9/63f95632-d03e-4766-8140-1dc0add6e387.png&quot; width=&quot;612&quot; /&gt;
    &lt;figcaption&gt;&lt;em&gt;Как видит две грани GPT YandexART &lt;/em&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Ngsh&quot;&gt;&lt;strong&gt;В-третьих, &lt;/strong&gt;вычислительная сложность получения объяснений. &lt;/p&gt;
  &lt;p id=&quot;5X2F&quot;&gt;В силу закрытости модели, при проведении процедуры объяснения, необходимо планировать эксперимент четче, чем для открытых моделей. В статьях из методов иногда применяется LIME, градиентные методы (достаточно широкий класс), анализ карт внимания и применение техник механистической интерпретируемости отпадают. &lt;/p&gt;
  &lt;h3 id=&quot;fw9t&quot;&gt;2. Самообъяснения и извлекаемые объяснения&lt;/h3&gt;
  &lt;p id=&quot;qaFY&quot;&gt;Трендом (не только для GPT, а в целом для LLM) является применение самообъяснений и проведение эмпирических экспериментов, для прививания оценок важности входным токенам. &lt;/p&gt;
  &lt;p id=&quot;7LxM&quot;&gt;Извлекаемые объяснения — представляют наиболее простой способ, требующий, однако, множественных запросов в рамках одного и того же промта. Примером является метод окклюзии. Окклюзия включает в себя многократное повторное выполнение одного и того же запроса, с удалением определенных слов, чтобы наблюдать их влияние на выходные данные модели. &lt;/p&gt;
  &lt;p id=&quot;Cx50&quot;&gt;Самообъяснения — способ, не требующий подготовки плана к проведению процесса объяснения. Всё, что необходимо — запросить объяснение у модели.  Это может быть как просьба текстового пояснения, так и просьба присваивания коэффициентов входным признакам. Плюсы — действительно просто. Минусы — возникновение &amp;quot;компромисса между точностью и интерпретируемостью&amp;quot;. &lt;/p&gt;
  &lt;p id=&quot;bt4P&quot;&gt;Например, в одном эксперименте &lt;a href=&quot;https://arxiv.org/pdf/2310.11207&quot; target=&quot;_blank&quot;&gt;исследователи&lt;/a&gt; наблюдали падение общей точности модели, когда ее просили объяснить ее прогноз. Там же, кстати, было обнаружено, что объяснения могут иметь высокие разногласия. Это связано с нестабильностью объяснений (разные в зависимости от запроса) и с чувствительныостью объяснений к выбору гиперпараметров модели. И в этом же исследовании для GPT было обнаружено, что объяснения, признанные &amp;quot;одинаково точными&amp;quot;, также имеют высокие степени разногласия. &lt;/p&gt;
  &lt;figure id=&quot;YIwX&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/0c/ac0cb8e3-81b4-4b4f-ae0c-89424d359afe.png&quot; width=&quot;614&quot; /&gt;
    &lt;figcaption&gt;&lt;em&gt;Explainable AI by YandexART&lt;/em&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;soN6&quot;&gt;Вместо вывода —  вопреки тому, что при помощи LLM можно автоматизировать &lt;a href=&quot;https://openai.com/index/extracting-concepts-from-gpt-4/&quot; target=&quot;_blank&quot;&gt;даже машинное обучение, &lt;/a&gt;роль разработчиков ML, DL и не только в традиционном смысле, кажется, ещё долго будут важны. Продолжайте становиться лучше и делать системы, модели и исследования надежными, понятными и аккуратными. &lt;br /&gt;&lt;br /&gt;Отличного вам вечера, друзья и спасибо за уделенное время! &lt;br /&gt;Как всегда ваш,&lt;br /&gt;Дата автор! :) &lt;/p&gt;

</content></entry><entry><id>jdata_blog:4Fq9ajcoFz0</id><link rel="alternate" type="text/html" href="https://teletype.in/@jdata_blog/4Fq9ajcoFz0?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jdata_blog"></link><title>SHAPley values </title><published>2024-09-29T15:14:32.610Z</published><updated>2024-09-30T07:23:58.195Z</updated><category term="topic80036" label="attention"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a4/09/a409e212-fe79-441a-9295-e2c379550d2d.png&quot;&gt;Значение Шепли (Shapley values) — концепция из теории кооперативных игр. Задача, решаемая этими значениями связана с распределением выигрыша между игроками в кооперативной (говоря проще — совместной) игре. С 2017 года идея значений Шепли активно применяется в машинном и глубинном обучении, в частности — в области explainable AI. В этой статье предлагаю узнать о них больше! :)</summary><content type="html">
  &lt;p id=&quot;8mla&quot;&gt;&lt;strong&gt;Значение Шепли (Shapley values) &lt;/strong&gt;— это концепция из теории кооперативных игр. Задача, решаемая этими значениями связана с распределением выигрыша между игроками в кооперативной (говоря проще — совместной) игре. С 2017 года идея значений Шепли активно применяется в машинном и глубинном обучении, в частности — в области explainable AI. В этой статье предлагаю узнать о них больше! :) &lt;/p&gt;
  &lt;blockquote id=&quot;SKuC&quot;&gt;&lt;em&gt;Меня зовут Сабрина и я автор канала &lt;a href=&quot;https://t.me/jdata_blog&quot; target=&quot;_blank&quot;&gt;Data Blog&lt;/a&gt;, где нередко рассказываю об области explainable AI. Помимо этого, я автор курса &lt;a href=&quot;https://stepik.org/a/198640&quot; target=&quot;_blank&quot;&gt;Explanable AI&lt;/a&gt;, начинающий researcher (и иногда даже читаю семинары в магистратуре ИИ в ВШЭ). &lt;br /&gt;&lt;br /&gt;В общем, исследую я много и буду рада, если мне удастся открыть любимую мною область и вам! &lt;br /&gt;&lt;br /&gt;Присоединяйтесь! :)  &lt;/em&gt;&lt;/blockquote&gt;
  &lt;p id=&quot;Wr3y&quot;&gt;&lt;strong&gt;Интуитивное определение значений Шелли. &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;2ANJ&quot;&gt;Представьте себе компанию, в которой трое сотрудников — Мария, Иван и кот Борис — их назовем &lt;em&gt;игроками&lt;/em&gt;. Их задача — разработать новую рекламную кампанию — это и будет нашей &lt;em&gt;игрой&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;При работе над решением задачи Мария предложила концепцию, Иван разработал стратегию, а Борис, как настоящий сэр-кот,  сидел рядом и мурлыкал. Когда кампания принесла компании 1 миллион долларов прибыли — это наш &lt;em&gt;выигрыш —&lt;/em&gt; возникла необходимость справедливо разделить этот успех между членами команды.&lt;/p&gt;
  &lt;figure id=&quot;QM7C&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a4/09/a409e212-fe79-441a-9295-e2c379550d2d.png&quot; width=&quot;370&quot; /&gt;
    &lt;figcaption&gt;&lt;em&gt;Не Борис, но тоже кот. &lt;/em&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;1iiP&quot; data-align=&quot;center&quot;&gt;&lt;s&gt;Все деньги Борису!&lt;/s&gt; &lt;br /&gt;&lt;/p&gt;
  &lt;p id=&quot;VXRy&quot;&gt;Конечно, направить инвестиции в сторону Бориса — прекрасная стратегия. Но чтобы у сотрудников не возникло эмоционального выгорания из-за бесплатной работы релевантно применить для этой задачи значения Шепли.&lt;/p&gt;
  &lt;p id=&quot;Kg2i&quot;&gt;&lt;strong&gt;Немного истории. &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;XohF&quot;&gt;Значения Шепли ввёл американский математик и экономист, Ллойд Шепли в 1951-53 году. Позднее, в 2012 за них он был удостоен Нобелевской премии. &lt;/p&gt;
  &lt;p id=&quot;aWkT&quot;&gt;В машине и глубинное обучение Shapley Values пришли позже — в 2017. Их предложени Scott M. Lundberg и Su-In Lee в статье &amp;quot;&lt;a href=&quot;https://arxiv.org/pdf/1705.07874&quot; target=&quot;_blank&quot;&gt;A Unified Approach to Interpreting Model Predictions&lt;/a&gt;&amp;quot;. &lt;/p&gt;
  &lt;p id=&quot;50j3&quot;&gt;В контексте области объяснимого искусственного интеллекта заявление об универсальности звучит громко, однако метод действительно является таковым. Универсальность обеспечивают применение к любым модальностям данных — картинки, текст, аудио (&lt;a href=&quot;https://blog.aiensured.com/shap-feature-importance-in-audio-classification/&quot; target=&quot;_blank&quot;&gt;в табличном представлении)&lt;/a&gt; и, безусловно, таблички, и к любым моделям — DNN и ML. &lt;/p&gt;
  &lt;p id=&quot;ujGs&quot;&gt;&lt;strong&gt;Формальное определение. &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;kzjD&quot;&gt;Дабы избежать некрасивого вводы формул, формальное определение представлено на слайде ниже. &lt;/p&gt;
  &lt;figure id=&quot;VPUm&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/36/3e/363ef127-9f04-43ee-96f3-6bd8c042ac2f.png&quot; width=&quot;761&quot; /&gt;
    &lt;figcaption&gt;Формальное определение shapley values&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;sndZ&quot;&gt;Глубокая математическая теория, стоящая за данными значениями и ряд аксиом, также обеспечивает свойство &lt;em&gt;единственности атрибуции&lt;/em&gt; (важности) признаков. &lt;/p&gt;
  &lt;p id=&quot;Emtg&quot;&gt;И если мы пересмотрим все составляющие игры и переведем их на язык ML, то получится следующее соответствие:&lt;/p&gt;
  &lt;figure id=&quot;5ony&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4c/2a/4c2ad0dc-235b-42f2-a01f-a7044e5d2860.png&quot; width=&quot;363&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;cgpH&quot;&gt;&lt;strong&gt;Как это работает на практике. &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Uf2t&quot;&gt;Конечно, если у нас много признаков (в контексте изображений — пикселей, а в контексте текстов — токенов), то необходимо иозбретать некоторые ухищрения, ведь согласно теории каждый раз нам необходимо проводить процесс игры — прогнозирования или обучения — целых 2^N раз! Об ухищрениях позаботились ещё в начале создания библиотеки &lt;a href=&quot;https://shap.readthedocs.io/en/latest/&quot; target=&quot;_blank&quot;&gt;shap&lt;/a&gt;, реализующей вычисление Shapley Values. &lt;/p&gt;
  &lt;p id=&quot;WUnm&quot;&gt;Достаточно большой вычислительный недостаток решается разносторонними оптимизациями, поэтому изучая библиотеку, вы увидите достаточно широкий арсенал shap explainers. Так, среди оптимизаций реализованы:&lt;/p&gt;
  &lt;ul id=&quot;KziS&quot;&gt;
    &lt;li id=&quot;jxhM&quot;&gt;Использование локальной линейной регрессии (Kernel Explainer)&lt;/li&gt;
    &lt;li id=&quot;dJEA&quot;&gt;Для линейных моделей – Linear Explainer (плюсы — возможен учет корреляций между признаками)&lt;/li&gt;
    &lt;li id=&quot;rvUW&quot;&gt;Перестановка входных данных (Permutation explainer)&lt;/li&gt;
    &lt;li id=&quot;SrFt&quot;&gt;Построение иерархии признаков (Partition Explainer)&lt;/li&gt;
    &lt;li id=&quot;52Jm&quot;&gt;Предположение о независимости признаков (SamplingExplainer)&lt;/li&gt;
    &lt;li id=&quot;Nm59&quot;&gt;Комбинация с градиентными методами (Deep Explainer, Gradient Explainer)&lt;/li&gt;
    &lt;li id=&quot;3vSQ&quot;&gt;Оптимизация для древесных моделей (Tree Explainer и др.)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ZKMT&quot;&gt;Поэтому не пугайтесь, изучая библиотеку. Там, как в математике — всё зачем-то нужно! &lt;/p&gt;
  &lt;p id=&quot;Wq9b&quot;&gt;&lt;strong&gt;Внешний вид важностей.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;rLBN&quot;&gt;Визуализация важности признаков с использованием значений Шепли обычно представляет собой график, показывающий, как каждый признак вносит вклад в предсказания модели. В случае токенов и табачных данных признаками будут отдельные сущности (токен, признак), а в случае изображений — участки изображения. &lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;bvEW&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/51/b4/51b46cd5-28b7-40e4-b1b1-b2b4650d2c61.jpeg&quot; width=&quot;600&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SRA6&quot;&gt;Ключевые моменты графика:&lt;/p&gt;
  &lt;ul id=&quot;7OoZ&quot;&gt;
    &lt;li id=&quot;FrUg&quot;&gt;Положительные значения указывают на признаки, которые способствуют увеличению предсказанного значения (например, вероятности или цены), в то время как отрицательные — на признаки, уменьшающие его.&lt;/li&gt;
    &lt;li id=&quot;xBtd&quot;&gt;Для указания направления изменения прогноза используются цвета синие полосы для негативного влияния, а красные — для позитивного.&lt;/li&gt;
    &lt;li id=&quot;0Cvc&quot;&gt;base value (или E[f(X)]) — математическое ожидание прогноза, вычисляемое по всей выборке. &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;O2sD&quot;&gt;&lt;strong&gt;Выводы по статье. &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;3r1r&quot;&gt;Значения Шепли —  мощный, базовый и универсальный инструмент для объяснения предсказаний моделей машинного и глубинного обучения, который нашел широкое применение благодаря своей универсальности и математической строгости. &lt;/p&gt;
  &lt;p id=&quot;4VUF&quot;&gt;В некоторых случаях вычислительная сложность данных значений может препятствовать их применению. Однако, несмотря на это, существующие методы и оптимизации позволяющие эффективно применять метод во многих задачах. &lt;/p&gt;
  &lt;p id=&quot;fFRI&quot;&gt;Изучение и понимание значений Шепли является некоторой базой в джентельментском наборе для осуществления процесса объяснения модели. Надеюсь, статья была для вас полезной! :) &lt;br /&gt;&lt;br /&gt;Как всегда со всем самым добрым, &lt;br /&gt;Ваш Дата автор! &lt;/p&gt;

</content></entry><entry><id>jdata_blog:B0T5Mn4DjF9</id><link rel="alternate" type="text/html" href="https://teletype.in/@jdata_blog/B0T5Mn4DjF9?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jdata_blog"></link><title>Attention: Attention!</title><published>2024-09-07T08:44:22.932Z</published><updated>2024-09-07T17:45:29.634Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/16/ec/16ecda16-3885-4ce0-95bd-ee8a366e210c.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/d3/af/d3af9ec3-fcba-43dd-9c00-571d9b21cafd.png&quot;&gt;Привет, друзья! На связи ваш Дата-автор! =)</summary><content type="html">
  &lt;p id=&quot;CZsl&quot;&gt;Привет, друзья! На связи ваш&lt;a href=&quot;https://t.me/jdata_blog&quot; target=&quot;_blank&quot;&gt; Дата-автор!&lt;/a&gt; =)&lt;/p&gt;
  &lt;p id=&quot;caye&quot;&gt;&lt;em&gt;Я очень часто экспериментирую — просто стесняюсь делиться. Кажется, что мысли и идеи — тривиальны, а ещё я всегда боюсь дать что-то недостоверное (ну знаете там с ошибкой в коде, например). &lt;/em&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;RNrf&quot;&gt;Но решила попробовать. &lt;strong&gt;Поэтому, в этой статье я даю небольшую вводную  про Attention, показываю, как внимание влияет на качество модели и делюсь ролью механизма внимания в области explainable AI. &lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;KohX&quot;&gt;&lt;strong&gt;Что ты такое?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;NiRD&quot;&gt;В DNN Attention — механизм, который позволяет модели фокусироваться на наиболее &amp;quot;релевантных&amp;quot; частях входных данных, игнорируя части менее важные. Своей популярностью attention во многом обязан архитектуре моделей Transformer, ведь она &lt;em&gt;основана на механизмах attention полностью&lt;/em&gt;. Однако, до 2023 года (тогда был опубликован Transformer), attentions также применялись, но в основном вместе с реккуретными нейронными сетями (RNN) в задаче машинного перевода.&lt;/p&gt;
  &lt;figure id=&quot;9C8b&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d3/af/d3af9ec3-fcba-43dd-9c00-571d9b21cafd.png&quot; width=&quot;549&quot; /&gt;
    &lt;figcaption&gt;Рис. 1 Feeding Hidden State as Input to Decoder&lt;br /&gt;Taken from “Effective Approaches to Attention-based Neural Machine Translation”, 2015.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;jwEI&quot;&gt;&lt;strong&gt;Насколько attention усложняет Seq2Seq модель и улучшает ли это её качество? И вообще, какой attention лучше использовать для задачи машинного перевода?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;lBrV&quot;&gt;На эти вопросы, конечно, ответили до меня. Но я — исследователь, поэтому убедиться в ответе &amp;quot;Bahdanau attention&amp;quot;  хотелось самостоятельно. И так, была собрана домашняя лабаратория:&lt;/p&gt;
  &lt;p id=&quot;IYye&quot;&gt;&lt;strong&gt;Набор данных:&lt;/strong&gt; предложения на двух языках — русском и английском. Данные взяты с ресурса &lt;a href=&quot;https://tatoeba.org/&quot; target=&quot;_blank&quot;&gt;tatoeba.org&lt;/a&gt;. Количество наблюдений 730519, для ускорения обучения взяты только 100 тыс.. Из этих 100 тыс. наблюдения отфильтрованы и взяты только такие, что они короче, чем 10 токенов или их длина равна 10 токенам.&lt;/p&gt;
  &lt;p id=&quot;Yg0V&quot;&gt;&lt;strong&gt;Итого,  подопытные&lt;/strong&gt; 89851 пар, среди которых 31868 уникальных значений на русском языке и 13078 на английском.&lt;/p&gt;
  &lt;p id=&quot;CZWF&quot;&gt;&lt;strong&gt;Модель:  &lt;/strong&gt;простенькаяSequence to Sequence,  архитектуры изображенной на рис. 2. &lt;/p&gt;
  &lt;figure id=&quot;KSDN&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d8/1c/d81c2033-35da-4bd2-8a49-ddead511246b.jpeg&quot; width=&quot;286.99999999999994&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;CjYT&quot;&gt;&lt;strong&gt;Attentions: &lt;/strong&gt;дляэксперимента были взяты Bahdanau и Luong attention. Формулы и описание привожу на изображении ниже. &lt;/p&gt;
  &lt;figure id=&quot;gLHG&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2d/0f/2d0f78f9-049d-400b-8e96-479c65303652.png&quot; width=&quot;603&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;CcGF&quot;&gt;Реализованные подходы к вниманию вы можете найти в файле &lt;code&gt;attentions.py&lt;/code&gt;, а сами модели в файле &lt;code&gt;models.py&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;yu5O&quot;&gt;Было обучено 5 моделей — с каждым из вниманий и вовсе без внимания. Обучение состояло из 50 эпох, размер батча — 200. &lt;/p&gt;
  &lt;figure id=&quot;zUU3&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/87/a4/87a49cdc-2dc6-47b7-9a13-b5460309c176.png&quot; width=&quot;332&quot; /&gt;
    &lt;figcaption&gt;Результаты обучения 5-ти RNN&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Zfic&quot;&gt;Лучшим подходом к вниманию действительно оказался Bahdanau attention. Время обучения увеличилось примерно на 20% и функция потерь оказалась ниже более чем в два раза. &lt;/p&gt;
  &lt;figure id=&quot;QEkH&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ef/29/ef29568b-daf0-46a3-8efe-d540e8629bdb.png&quot; width=&quot;600&quot; /&gt;
    &lt;figcaption&gt;Изменение функции потерь от эпохи к эпохе. &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;uzOY&quot;&gt;Внимание в explainable AI.&lt;/h2&gt;
  &lt;p id=&quot;Lndy&quot;&gt;С момента популяризации, механизм attention также стал распространяться в области XAI. Действительно, ведь согласно интуитивному определению — веса внимания — прямое отражение того, на что &amp;quot;смотрит&amp;quot; модель. И в эксперименте это абсолютно видно!&lt;/p&gt;
  &lt;figure id=&quot;OtXb&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e6/4f/e64f5f8c-87ae-46e6-9e83-41f67ee846e4.jpeg&quot; width=&quot;500&quot; /&gt;
    &lt;figcaption&gt;Визуализация карт внимания. &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;1L1r&quot;&gt;Но позволяет ли внимание сделать &amp;quot;прозрачную&amp;quot; модель? И да, и нет. &lt;br /&gt; В настоящее время показано, что:&lt;br /&gt;&lt;/p&gt;
  &lt;ul id=&quot;dQLC&quot;&gt;
    &lt;li id=&quot;TQkE&quot;&gt;&lt;em&gt;возможно полностью изменить веса внимания и добиться того же прогноза (также веса внимания допускают и другие состязательные вмешательства);&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;pygh&quot;&gt;&lt;em&gt;веса внимания не обязательно коррелируют (часто — вообще не коррелируют) с другими методами объяснения;&lt;/em&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;FV5V&quot;&gt;Кроме того, опровергая attention в качестве объяснения, исследователи отмечают, что внимание строится не на основе самих слов, а на основе их эмбеддингов, что тоже умаляет точность построенных карт. Данный факт можно оспорить, сформулировав гипотезу о том, что модель имитирует пространство слов корпуса в векторном пространстве. Но насколько эта гипотеза является правдой, в силу больших размерностей, открытый вопрос. &lt;/p&gt;
  &lt;h2 id=&quot;SjHr&quot;&gt;Общий вывод о внимании&lt;/h2&gt;
  &lt;p id=&quot;TuGw&quot;&gt;Attention — сильный инструмент, улучшающий &lt;em&gt;качество&lt;/em&gt; модели. На свойство объяснимости attention также влияет, однако является не более и не менее чем ещё одной попыткой глубже понять скрытые зависимости, изучаемые моделью.&lt;/p&gt;
  &lt;p id=&quot;vkew&quot;&gt;&lt;br /&gt;&lt;strong&gt;Спасибо за ваше внимание, друзья!&lt;/strong&gt;&lt;br /&gt;Всегда рада видеть вашу обратную связь в &lt;a href=&quot;https://t.me/jdata_blog&quot; target=&quot;_blank&quot;&gt;Data Blog&lt;/a&gt;&amp;#x27;е, где я пишу про объяснимость моделей и свой опыт в области Data Science. &lt;/p&gt;
  &lt;p id=&quot;7DV9&quot;&gt;А также на &lt;a href=&quot;https://stepik.org/a/198640&quot; target=&quot;_blank&quot;&gt;курсе&lt;/a&gt; про Explainable AI в ML и DL (и в благодарность за чтение скидка по промо ATTENTION до 30 сентября)!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;До новых встреч и доброго вам времени,&lt;/em&gt;&lt;br /&gt;Ваш Дата-автор!  &lt;/p&gt;

</content></entry><entry><id>jdata_blog:NQ1V4Dj-Yco</id><link rel="alternate" type="text/html" href="https://teletype.in/@jdata_blog/NQ1V4Dj-Yco?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jdata_blog"></link><title>Методы интерпретации Large Language Models</title><published>2023-08-23T18:53:27.174Z</published><updated>2023-08-27T15:43:29.076Z</updated><summary type="html">&lt;img src=&quot;https://lh6.googleusercontent.com/8LrvN2qk1yvl-xLJwxHQgIMvgH0gEfFHEo3MjN6Vtrc1nDwhUm1BBPTPABR_Mjpvw4Rv88xmlbywfVsClbe8RUi5jiVVMwpcnOn6rEFdlxQBcSODR37iGv1DE-XU3aSl4L5R65OxsKdwiP-gs_Dp00k&quot;&gt;Вторая часть кооперации двух лучистых пирогов: @data blog  x @awesome_dl. В первой части у нас получилось не кратко, но интересно. Во второй — тоже.</summary><content type="html">
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;nGKD&quot;&gt;&lt;strong&gt;Вторая часть кооперации двух лучистых пирогов: &lt;em&gt;@&lt;a href=&quot;https://t.me/jdata_blog&quot; target=&quot;_blank&quot;&gt;data blog &lt;/a&gt;&lt;/em&gt; x &lt;em&gt;@&lt;a href=&quot;https://t.me/awesome_dl&quot; target=&quot;_blank&quot;&gt;awesome_dl.&lt;/a&gt; &lt;/em&gt;В первой части у нас получилось не кратко, но интересно. Во второй — тоже. &lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;peeq&quot;&gt;И так,  мы увидели, что на основе Large Language моделей в настоящее время решается много задач — саммаризация, генерация, машинный перевод, анализ сущностей и далее по списку. Разных —много, но все из них все из них так или иначе можно назвать автоматическим анализом текста.&lt;/p&gt;
  &lt;p id=&quot;GHgq&quot;&gt;Когда я анализирую текст, мой мозг выглядит как дерево решений с ноткой случайности — есть последовательность если есть “London”: - то добавляю “is the capital of Great Britain”, есть случайные идеи из памяти и вдохновения. Если вы спросите — я смогу step by step объяснить, как пришла к какому-либо своему “output”у. Я — почти white box модель. Языковые же модели имеют внутри себя огромную последовательность преобразований, в том числе “скрытых”, в скрытых слоях. Это делает их моделями типа black-box и их интерпретация уже не обходится визуализацией дерева.&lt;/p&gt;
  &lt;p id=&quot;Z7RW&quot;&gt;&lt;strong&gt;Андрей:&lt;/strong&gt; Зачем интерпретировать LLM?&lt;/p&gt;
  &lt;figure id=&quot;Fu6u&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8d/1f/8d1f6b44-2d1e-4c6c-95f8-d0b2b378711f.png&quot; width=&quot;653&quot; /&gt;
    &lt;figcaption&gt;Слайд с презентации выступления &amp;quot;Explainable AI: что, зачем и как?&amp;quot; на DataFest2023 (https://www.youtube.com/watch?v=hly1C-eDu7I)&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Tgck&quot;&gt;&lt;strong&gt;Сабрина:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;Wrab&quot;&gt;
    &lt;li id=&quot;3Jex&quot;&gt;Обоснование решений и обеспечения доверия к модели — опуская критические области (хотя краеугольно это важно в них), интерпретация LLM нужна даже для проектирования умного дома. Вот скажет модель пальцы в розетку сунуть, и сиди думай — зачем, почему, а окажется, что это не розетка вовсе, а, я не знаю … система для снятия отпечатков пальцев. Разработчики или пользователи должны понимать причину ответов, чтобы безопасно пользоваться ими.&lt;/li&gt;
    &lt;li id=&quot;agNd&quot;&gt;Отладка модели, избежание непонимания — обоснованием этого пункта является основная идея интерпретации — связать влияние входа на выход. Понимание, какие слова или фразы модель считает важными, может помочь идентифицировать случаи, когда модель допускает некорректные выводы, игнорирует важные детали текста или позволяет себе то, что мы называем “предвзятость”.&lt;/li&gt;
    &lt;li id=&quot;QF8E&quot;&gt;Улучшение управляемости — здесь тоже просто — лучше понимаем природу ответов, лучше составляем промпты для модели. Если помечтать (или просто логически прикинуть?), в будущем можно делать полноценные устройства с инструкцией не о том, какую жать кнопку, а о том, какую говорить фразу.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;twei&quot;&gt;&lt;strong&gt;Андрей: В чем сложность с интерпретацией LLM?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;9P4v&quot;&gt;&lt;strong&gt;Сабрина:&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Основная — размер, на который далее накладываются абстрактность внутренних представлений, большая последовательность внутренних преобразований, учет контекста и скрытые взаимосвязи. &lt;/p&gt;
  &lt;p id=&quot;ZR9W&quot;&gt;Но “есть вход” и “есть выход” — этой информации необходимо и достаточно только при входе в лабиринт, так что вопреки этому всему интерпретировать надо.&lt;/p&gt;
  &lt;p id=&quot;KrUs&quot;&gt;&lt;strong&gt;Андрей:&lt;/strong&gt; Как с этим справляются в области?&lt;/p&gt;
  &lt;p id=&quot;jo8F&quot;&gt;&lt;strong&gt;Сабрина: &lt;/strong&gt;Очень интересно!&lt;br /&gt;&lt;/p&gt;
  &lt;ul id=&quot;xW53&quot;&gt;
    &lt;li id=&quot;PCfV&quot;&gt;Адаптируют стандартные методы, такие как Counterfactual explanations, LIME и SHAP для LLM. И хотя здесь существует проблема производительности методов, это работает [&lt;a href=&quot;https://arxiv.org/pdf/2301.13820.pdf&quot; target=&quot;_blank&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://arxiv.org/pdf/1912.01819.pdf&quot; target=&quot;_blank&quot;&gt;2&lt;/a&gt;].&lt;/li&gt;
    &lt;li id=&quot;9Q9I&quot;&gt;Для моделей, основанных на внимании рассматривают механизмы внимания модели, смотря на слова/токены, которые модель считает наиболее важными при создании вывода. Один из чудных примеров практически пощупать и применить это — библиотеки &lt;a href=&quot;https://github.com/jessevig/bertviz&quot; target=&quot;_blank&quot;&gt;bertviz&lt;/a&gt; и &lt;a href=&quot;https://github.com/cdpierse/transformers-interpret&quot; target=&quot;_blank&quot;&gt;transformers-intrpret&lt;/a&gt;. Также есть библиотека &lt;a href=&quot;https://pair-code.github.io/lit/&quot; target=&quot;_blank&quot;&gt;LIT&lt;/a&gt;.&lt;/li&gt;
    &lt;li id=&quot;zJJ1&quot;&gt;Что важно, методов, связанных с вниманием в разном ключе существует несколько. Их отличия связаны с отличиями в архитектурах моделей. Здесь мне очень нравится картинка:&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;s925&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://lh6.googleusercontent.com/8LrvN2qk1yvl-xLJwxHQgIMvgH0gEfFHEo3MjN6Vtrc1nDwhUm1BBPTPABR_Mjpvw4Rv88xmlbywfVsClbe8RUi5jiVVMwpcnOn6rEFdlxQBcSODR37iGv1DE-XU3aSl4L5R65OxsKdwiP-gs_Dp00k&quot; width=&quot;544.0169999999999&quot; /&gt;
    &lt;figcaption&gt;Развитие методов интерпретации, https://arxiv.org/pdf/2112.12705.pdf&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;ul id=&quot;aSeD&quot;&gt;
    &lt;li id=&quot;npd6&quot;&gt;Заимствуют методы из компьютерного зрения, частным примером этого является Grad-CAM (gradient-weighted class activation mapping). [&lt;a href=&quot;https://ceur-ws.org/Vol-2891/XAILA-2020_paper_1.pdf&quot; target=&quot;_blank&quot;&gt;3&lt;/a&gt;, &lt;a href=&quot;https://github.com/HaebinShin/grad-cam-text&quot; target=&quot;_blank&quot;&gt;гитхаб&lt;/a&gt;]&lt;/li&gt;
    &lt;li id=&quot;eXb8&quot;&gt;Развивают направление детального анализа пространств внутри модели — скрытых пространств. Такие исследования сосредотачиваются на связи ответов модели с векторными представлениям эмбеддингов внутри. Поскольку с пространствами можно делать многое, сюда я бы отнесла работы по преобразованию пространств, анализ изменений пространств при изменении входных данных, анализ близких векторов. Пример — [&lt;a href=&quot;https://arxiv.org/pdf/2209.00445.pdf&quot; target=&quot;_blank&quot;&gt;4&lt;/a&gt;]&lt;/li&gt;
    &lt;li id=&quot;dRQP&quot;&gt;Создают модели, способные объяснить сами себя (self-explainable models в литературе). Под самообъяснением для LLM может считаться как возможность проследить логическую цепочку рассуждений (что мы можем наблюдать, например, в GPT), так и изменения в архитектуре модели, обеспечивающие объяснение. Пример изменений в архитектуре — [&lt;a href=&quot;https://arxiv.org/pdf/2012.01786.pdf&quot; target=&quot;_blank&quot;&gt;5&lt;/a&gt;].&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;G7OP&quot;&gt;Также придумывают новые методы. Например, меня изумила идея с маскированием выборки для повышения процента нахождения информативных текстовых блоков [&lt;a href=&quot;https://arxiv.org/pdf/2209.01174.pdf&quot; target=&quot;_blank&quot;&gt;6&lt;/a&gt;]. &lt;/p&gt;
  &lt;p id=&quot;pXIW&quot;&gt;&lt;strong&gt;Андрей:&lt;/strong&gt; Что ещё интересного?&lt;/p&gt;
  &lt;figure id=&quot;KLEP&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9a/73/9a73ca70-9863-4c3f-9050-4ca8cac747ae.png&quot; width=&quot;382&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TYfv&quot;&gt;&lt;strong&gt;Сабрина:&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;Хм. Интерпретация LLM моделей сама по себе ветка, в которой можно закопаться также хорошо, как в самом NLP. Но относительно возможностей LLM моделей есть тренд на создание экспертных диалоговых систем (на основе LLM), позволяющих объяснить процесс решения той или иной задачи. &lt;/p&gt;
  &lt;p id=&quot;xOY0&quot;&gt;Примеры:&lt;/p&gt;
  &lt;ul id=&quot;tXNM&quot;&gt;
    &lt;li id=&quot;TaBE&quot;&gt;Augmenting Interpretable Models with LLMs during Training [&lt;a href=&quot;https://arxiv.org/pdf/2209.11799.pdf&quot; target=&quot;_blank&quot;&gt;7&lt;/a&gt;]&lt;/li&gt;
    &lt;li id=&quot;yH8h&quot;&gt;NLX-GPT: A Model for Natural Language Explanations in Vision and Vision-Language Tasks [&lt;a href=&quot;https://arxiv.org/pdf/2203.05081.pdf&quot; target=&quot;_blank&quot;&gt;8&lt;/a&gt;]&lt;/li&gt;
    &lt;li id=&quot;z8BW&quot;&gt;Rethinking Explainability as a Dialogue: A Practitioner’s Perspective [&lt;a href=&quot;https://arxiv.org/pdf/2202.01875.pdf&quot; target=&quot;_blank&quot;&gt;9&lt;/a&gt;]&lt;br /&gt;Explaining Machine Learning Models with Interactive Natural Language Conversations Using TalkToModel [&lt;a href=&quot;https://arxiv.org/pdf/2207.04154.pdf&quot; target=&quot;_blank&quot;&gt;10&lt;/a&gt;]&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;x4wY&quot;&gt;В работах 9, 10, авторы также проводят опрос, на основе которого выводят, что интерактивные (диалоговые) объяснения — более предпочитаемы для специалистов, использующих машинное/глубокое обучение как инструмент в работе. Так что стакание искусственных интеллектов для создания более понятного искусственного интеллекта тоже работает! Хотя звучит забавно.&lt;/p&gt;
  &lt;p id=&quot;XiWH&quot;&gt;На этом, вроде бы, получилась простыня текста, так что, думаю, можно ставить точку. Надеюсь, было интересно!&lt;/p&gt;
  &lt;p id=&quot;lq9I&quot;&gt;&lt;strong&gt;Андрей:&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;Да, это было отличное путешествие в мир интерпретации языковых моделей. Для меня остается лишь открытым вопрос: можно ли этим техникам научить людей и что из этого выйдет)&lt;/p&gt;
  &lt;h2 id=&quot;jpri&quot;&gt;Вывод:&lt;/h2&gt;
  &lt;p id=&quot;Na8O&quot;&gt;&lt;br /&gt;В итоге нашего разговора в двух частях получился небольшой обзор области LLM, где по ключевым ссылкам вы можете дальше закопаться в теме. Область воистину с трудом обозрима одним человеком, поэтому постарайтесь найти одну тему и сфокусироваться на ней. &lt;br /&gt;&lt;br /&gt;А завершить бы хотелось цитатой про языковые модели, о том, что они способны передать человеку знания целого интернета.&lt;/p&gt;
  &lt;p id=&quot;yGqU&quot;&gt;&lt;strong&gt;&lt;em&gt;&lt;code&gt;“…there are lots of books I’d like to read and websites I’d like to go to, and I find my bandwidth limiting. So instead of having a mere hundred trillion connections, we’ll have a hundred trillion times a million. We’ll be able to enhance our cognitive pattern recognition capabilities greatly, think faster, and download knowledge.”&lt;/code&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;hVay&quot;&gt;&lt;strong&gt;&lt;em&gt;&lt;code&gt;— Dr Ray Kurzweil (&lt;a href=&quot;https://www.kurzweilai.net/essays-celebrating-15-year-anniversary-of-the-book-the-singularity-is-near&quot; target=&quot;_blank&quot;&gt;January 2020&lt;/a&gt;)&lt;/code&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;o8k9&quot;&gt;&lt;br /&gt;&lt;strong&gt;До скорой связи &lt;/strong&gt;на каналах &lt;a href=&quot;https://t.me/jdata_blog&quot; target=&quot;_blank&quot;&gt;@jdata_blog&lt;/a&gt; и &lt;a href=&quot;https://t.me/awesome_dl&quot; target=&quot;_blank&quot;&gt;@awesome_dl!&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>jdata_blog:UQ0ocLce6Mm</id><link rel="alternate" type="text/html" href="https://teletype.in/@jdata_blog/UQ0ocLce6Mm?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jdata_blog"></link><title>Языковые модели (Large Language models)</title><published>2023-08-23T15:23:08.529Z</published><updated>2023-08-23T15:33:41.612Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/f9/8e/f98ecdeb-3fad-4a5a-b2df-8735e1284619.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/21/66/216629d9-99ca-4347-90b8-34388b388e53.jpeg&quot;&gt;Они очень старались сделать кратко и интересно, но вышло просто интересно. Серия статей про LLM и интерпретацию LLM.</summary><content type="html">
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;sJo8&quot;&gt;&lt;strong&gt;Они очень старались сделать кратко и интересно, но вышло просто интересно. &lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;wBHA&quot;&gt;&lt;em&gt;В кооперации  @&lt;a href=&quot;https://t.me/awesome_dl&quot; target=&quot;_blank&quot;&gt;awesome_dl&lt;/a&gt; x @&lt;a href=&quot;https://t.me/jdata_blog&quot; target=&quot;_blank&quot;&gt;data blog&lt;/a&gt;мы решили позадавать друг другу вопросы на тему языковых моделей. Мне было интересно узнать как и почему LLM стали отдельной веткой исследования в мире Deep Learning моделей, а Андрею — про интерпретацию LLM. &lt;br /&gt;&lt;br /&gt;Результат нашей QA сессии перед вами. Прошу к прочтению и если у вас самих есть вопрос про LLMs, то мы с радостью ответим на них в комментариях :)&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;w6u4&quot;&gt;&lt;strong&gt;P.S.&lt;/strong&gt; Далее в статье не раз упоминаются трансформеры. Если вы не знакомы с этой архитектурой, то рекомендую прочитать &lt;a href=&quot;http://jalammar.github.io/illustrated-transformer/&quot; target=&quot;_blank&quot;&gt;блог&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;kz7z&quot;&gt;&lt;strong&gt;P.P.S.&lt;/strong&gt; Читайте этот и следующий (будет через пару дней пост) как разговор двух почти LLM моделей. Мы специально подписали наши имена, чтобы было ясно где-кто вещает.&lt;/p&gt;
  &lt;p id=&quot;cbAV&quot;&gt;&lt;strong&gt;&lt;em&gt;Прошу к прочтению!)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Zgwl&quot;&gt;&lt;strong&gt;Сабрина: &lt;/strong&gt;Какие выделяются виды LLM моделей и откуда различия между ними?&lt;/p&gt;
  &lt;figure id=&quot;rC4g&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/21/66/216629d9-99ca-4347-90b8-34388b388e53.jpeg&quot; width=&quot;326&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vCkP&quot;&gt;&lt;strong&gt;Андрей: &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;O9gF&quot;&gt;Здесь ответ стоит начать от постановки задачи. Глобально цель языковых моделей научится хорошо “понимать” язык, потому что именно “понимание” даёт возможность решать огромное число задач. И вот научить модель “понимать” можно следующими способами:&lt;/p&gt;
  &lt;p id=&quot;gvWG&quot;&gt;- Предсказание следующего слова. Модель, которая хорошо понимает язык должна уметь предсказывать следующее слово. Мотивация к этому — то как мы разговариваем — слово за словом мы передаем информацию друг другу. Для решения этой задачи используется класс авторегрессионных моделей, основанных на Transformer Decoder архитектуре. Основные представители - &lt;a href=&quot;https://arxiv.org/abs/2005.14165&quot; target=&quot;_blank&quot;&gt;GPT&lt;/a&gt;, &lt;a href=&quot;https://ai.meta.com/llama/&quot; target=&quot;_blank&quot;&gt;LLaMA&lt;/a&gt;, &lt;a href=&quot;https://bigscience.huggingface.co/blog/bloom&quot; target=&quot;_blank&quot;&gt;BLOOM&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;q2O6&quot;&gt;- Восстановление пропущенных слов. Чтобы оценить ключ понимания здесь, предлагаю провести аналогию с тем как мы изучаем иностранные языки. Большинство упражнений строится на том, что нужно заполнить пропуск правильным словом или набором слов — по контексту предложения мы должны понять, что нужно добавить в предложение. Эту логику понимания реализуют те языковые модели, что обучены для решения Masked Language Modelling. Основные примеры таких моделей это &lt;a href=&quot;https://arxiv.org/abs/1810.04805&quot; target=&quot;_blank&quot;&gt;BERT&lt;/a&gt;, &lt;a href=&quot;https://arxiv.org/abs/1909.11942&quot; target=&quot;_blank&quot;&gt;ALBERT&lt;/a&gt;, &lt;a href=&quot;https://arxiv.org/abs/1907.11692&quot; target=&quot;_blank&quot;&gt;RoBERTa&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;lcYO&quot;&gt;- Отвечать на вопросы. И здесь тоже аналогия с нами. Что нужно, чтобы правильно ответить на вопрос: хорошо понимать вопрос + уметь составлять ответ. Для этого хорошо подходит соединение двух типов моделей: Transformer Encoder и Transformer Decoder. Вопрос подается в модель Encoder, где хорошо выделяется контекст, а дальше контекст передаётся в генеративную часть (Decoder), где создается ответ.&lt;/p&gt;
  &lt;p id=&quot;GGXT&quot;&gt;Примерами таких моделей являются - &lt;a href=&quot;https://arxiv.org/abs/1910.10683&quot; target=&quot;_blank&quot;&gt;T5&lt;/a&gt;, &lt;a href=&quot;https://arxiv.org/abs/1910.13461&quot; target=&quot;_blank&quot;&gt;Bart,&lt;/a&gt; &lt;a href=&quot;https://arxiv.org/abs/2210.11416&quot; target=&quot;_blank&quot;&gt;FlanT5&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;ETIu&quot;&gt;&lt;strong&gt;Сабрина:&lt;/strong&gt; Чем LLM с одинаковой идеей обучения отличаются друг от друга?&lt;/p&gt;
  &lt;p id=&quot;hFi0&quot;&gt;&lt;strong&gt;Андрей: &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Ecnr&quot;&gt;На самом деле огромное множество отличий между моделями. Вот основные из них:&lt;/p&gt;
  &lt;p id=&quot;5156&quot;&gt;- На каких данных обучались модели? Это самое важное я бы отметил, чем больше качественных (“чистых”) данных тем лучшего качества достигнет модель. Основные датасеты для обучения: &lt;a href=&quot;https://huggingface.co/datasets/c4&quot; target=&quot;_blank&quot;&gt;C4&lt;/a&gt;, &lt;a href=&quot;https://huggingface.co/datasets/wikipedia&quot; target=&quot;_blank&quot;&gt;Wikipedia&lt;/a&gt;. Причем здесь справедлив такой пайплайн – после того как модель была предобучена, она дообучается на инструктивных датасетах, чтобы её качество было улучшено в сторону более человекоподобных ответов. Например, &lt;a href=&quot;https://github.com/google-research/FLAN/tree/main/flan/v2&quot; target=&quot;_blank&quot;&gt;FLAN&lt;/a&gt; или &lt;a href=&quot;https://github.com/tatsu-lab/stanford_alpaca&quot; target=&quot;_blank&quot;&gt;Alpaca&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;8lQS&quot;&gt;- Используемый механизм внимания. Например, архитектура Transformer базируется на модуле MultiHead Attention, но у него есть различные вариации. Например, есть механизм &lt;a href=&quot;https://linear-transformers.com/&quot; target=&quot;_blank&quot;&gt;Linear Attention&lt;/a&gt;, который позволяет обрабатывать длинные последовательности, а есть механизм &lt;a href=&quot;https://medium.com/m/global-identity-2?redirectUrl=https%3A%2F%2Fblog.fireworks.ai%2Fmulti-query-attention-is-all-you-need-db072e758055&quot; target=&quot;_blank&quot;&gt;Multi-query attention&lt;/a&gt;, который позволяет ускорить инференс моделей. Разные Attentions — уже разные модели.&lt;/p&gt;
  &lt;p id=&quot;bfzf&quot;&gt;- Как кодируется позиционная информация? Архитектура трансформера, как комбинации MLP (Multi-layer perceptron) и Attention блоков инвариантна относительно порядка подаваемых слов. То есть предложения: “I like ice cream и “cream I ice like” представляет одно и тоже. Поэтому хотелось информацию о порядке слов в предложении передавать модели. Поэтому придумали positional encoding. Каждой позиции соответствует некоторый обучаемый вектор, который добавляется внутри трансформера. Далее, исследователи поняли, что более важен не абсолютный порядок слов, а относительный – поэтому появились механизмы &lt;a href=&quot;https://jaketae.github.io/study/relative-positional-encoding/&quot; target=&quot;_blank&quot;&gt;relative positional encoding&lt;/a&gt; и новые отличия между моделями. &lt;/p&gt;
  &lt;p id=&quot;4dnS&quot;&gt;- Механизм токенизации. Токенизация это процедура разбиение исходного текста на набор подслов - токенов. Например, текст &amp;quot;I have a new GPU!&amp;quot; преобразуется в набор токенов [&amp;quot;i&amp;quot;, &amp;quot;have&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;new&amp;quot;, &amp;quot;gp&amp;quot;, &amp;quot;##u&amp;quot;, &amp;quot;!&amp;quot;]. Существует несколько видов токенизации – SentencePiece, Byte-Pair encoding и другие. Подробнее про них можно почитать &lt;a href=&quot;https://huggingface.co/docs/transformers/tokenizer_summary&quot; target=&quot;_blank&quot;&gt;тут.&lt;/a&gt; На токенизацию мало обращают внимания, но можно получить буст в качестве применяя технику &lt;a href=&quot;https://arxiv.org/pdf/1910.13267.pdf&quot; target=&quot;_blank&quot;&gt;BPE-dropout&lt;/a&gt; (некоторые токены выкидываются из словаря – из-за этого один и тот же текст может токенизироваться по-разному). Или еще один пример – модель &lt;a href=&quot;https://arxiv.org/pdf/2305.14201.pdf&quot; target=&quot;_blank&quot;&gt;LLaMA&lt;/a&gt;, в который каждой цифре поставлен в соответствие один токен лучше всего может решать арифметические задачи, по сравнению с другими моделями, где токенизация может группировать несколько цифр в один токен.&lt;/p&gt;
  &lt;p id=&quot;yJMT&quot;&gt;&lt;strong&gt;Сабрина:&lt;/strong&gt; Почему мне полезно знать про LLM и где они могут пригодиться?&lt;/p&gt;
  &lt;figure id=&quot;btJA&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2b/36/2b366f6f-9cb6-4907-adee-f03fa12d2d7c.jpeg&quot; width=&quot;283.6396866840731&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;CXmG&quot;&gt;&lt;strong&gt;Андрей:&lt;/strong&gt; &lt;/p&gt;
  &lt;p id=&quot;eac9&quot;&gt;Почти везде, где есть текстовые данные. Большинство решений начинается с того, что вы берёте предобученную языковую модель и дообучаете на вашу задачу.&lt;/p&gt;
  &lt;p id=&quot;FGfu&quot;&gt;Кроме того, с развитием мультимодальности набирает популярность применения &lt;a href=&quot;https://www.youtube.com/watch?v=GmYYa3-TRRo&quot; target=&quot;_blank&quot;&gt;LLM в задачах компьютерного зрения&lt;/a&gt;, в &lt;a href=&quot;https://palm-e.github.io/&quot; target=&quot;_blank&quot;&gt;робототехнике&lt;/a&gt; (по теме применения LLM в robotics скоро будет пост у меня в канале) и в &lt;a href=&quot;https://neo4j.com/developer-blog/knowledge-graphs-llms-multi-hop-question-answering/&quot; target=&quot;_blank&quot;&gt;работе с графами.&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;eBBF&quot;&gt;И в довесок, в повседневной жизни LLM в будущем станут (уже отчасти стали) ассистентами, которые будут закрывать многие ваши потребности в коммуникации, написании текстов и решении простых проблем (найти рецепт, вспомнить где-что лежит). Например, через LLM можно сказать роботу убраться в квартире и он выполнит. И чем раньше начнете учиться работать с этим инструментом тем больше выгоды вы извлечете из его развития.&lt;/p&gt;
  &lt;p id=&quot;ng0T&quot;&gt;&lt;strong&gt;Сабрина:&lt;/strong&gt; Какой тренд в развитии LLM на базе последних исследований?&lt;/p&gt;
  &lt;p id=&quot;sdn4&quot;&gt;&lt;strong&gt;Андрей:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;IuGl&quot;&gt; Основной — достаточно забавный: больше данных, больше модель, лучше результат. Это глобальный тренд, который часто перекрывает любые более умные попытки улучшить модель. Даже обнаружены &lt;a href=&quot;https://arxiv.org/pdf/2001.08361.pdf&quot; target=&quot;_blank&quot;&gt;формулы&lt;/a&gt;, которые позволяют в самом начале обучения предсказать качество модели.&lt;/p&gt;
  &lt;p id=&quot;vBV6&quot;&gt;Как челленджи, можно выделить решение следующих задач:&lt;/p&gt;
  &lt;p id=&quot;cR2S&quot;&gt;- &lt;a href=&quot;https://en.wikipedia.org/wiki/Hallucination_(artificial_intelligence)&quot; target=&quot;_blank&quot;&gt;Галлюцинации&lt;/a&gt; (модель строит грамматически и семантически правильные предложения, но в них смысла никакого смысла). Например, придумывает факты или документы, которых не было.&lt;/p&gt;
  &lt;p id=&quot;J5tG&quot;&gt;- Преодоления ограничения модели на размер контекста, с которым можно работать. Чтобы воистину раскрыть мощь языковых моделей, неплохо бы научить её читать большие тексты. Например, работы &lt;a href=&quot;https://arxiv.org/abs/2307.02486&quot; target=&quot;_blank&quot;&gt;LongNet&lt;/a&gt;, где удалось засунуть 1 миллиард токенов (в “Война и мир” всего лишь 478 458 слов). Например, в модель можно добавить все книги про Гарри Поттера, дать затравку в виде новой идей продолжения и вуаля – новая часть готова. &lt;/p&gt;
  &lt;p id=&quot;q09w&quot;&gt;- Прикладное применение в чат-ботах. Тут можно отметить различные виды дообучения на решения прикладных задач, например, &lt;a href=&quot;https://arxiv.org/abs/2210.11416&quot; target=&quot;_blank&quot;&gt;FlanT5&lt;/a&gt; или, во многом ставший известный благодаря ChatGPT подход &lt;a href=&quot;https://huyenchip.com/2023/05/02/rlhf.html&quot; target=&quot;_blank&quot;&gt;RLHF&lt;/a&gt; (Reinforcement Learning Human Feedback), который позволяет научить модель давать ответы, которые больше нравятся человеку.&lt;/p&gt;
  &lt;p id=&quot;ZME7&quot;&gt;- Добавление текста в новые модальности. Тут тренд в том, чтобы использовать языковую модель как некоторого дирижера, который выбирает какой инструмент должен использоваться. К примеру, работа &lt;a href=&quot;https://multimodal-react.github.io/&quot; target=&quot;_blank&quot;&gt;MM-REAct&lt;/a&gt;, где модель научили использовать большое число инструментов по работе с изображением, при этом взаимодействие происходит только через текст. Также можно отметить работу &lt;a href=&quot;https://arxiv.org/abs/2302.14045?utm_source=ixbtcom&quot; target=&quot;_blank&quot;&gt;Kosmos&lt;/a&gt;, где авторы научились добавлять несколько модальностей в языковую модель и можно спокойно вести диалог с моделью, перемешивая текст, картинки и аудио.&lt;/p&gt;
  &lt;p id=&quot;CB8y&quot;&gt;- Более доступные языковые модели. Сейчас много усилий вкладывается в то, что сделать обучение и инференс более доступными, чтобы их можно было запускать на любом компьютере без ограничений. Думаю, так будет и в будущем. Например, библиотека &lt;a href=&quot;https://github.com/TimDettmers/bitsandbytes&quot; target=&quot;_blank&quot;&gt;bitsandbytes&lt;/a&gt;, которая позволяет обучать модели в 8-bit. Или библиотека &lt;a href=&quot;https://github.com/huggingface/peft&quot; target=&quot;_blank&quot;&gt;PEFT&lt;/a&gt;, которая позволяет не учить модель целиком под всю задачу, а добавлять обучаемые блоки адаптеры, стоимость обучения, которых намного меньше. И также большинство моделей доступны в open-source, поэтому их можно свободно использовать под свои цели (только не нарушайте лицензию, под которой выпускается модель)&lt;/p&gt;
  &lt;p id=&quot;Z4IJ&quot;&gt;&lt;strong&gt;Сабрина:&lt;/strong&gt; Какие библиотеки будут полезны для работы с LLM, и какие используют наиболее?&lt;/p&gt;
  &lt;p id=&quot;Yyg7&quot;&gt;&lt;strong&gt;Андрей: &lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;- &lt;a href=&quot;https://huggingface.co/&quot; target=&quot;_blank&quot;&gt;HuggingFace&lt;/a&gt;. В библиотеке реализовано огромное число моделей не только по текстам, но и другим модальностям, есть огромное число датасетов. Фреймворк, с которым точно стоит познакомится.&lt;/p&gt;
  &lt;p id=&quot;4BW6&quot;&gt;- &lt;a href=&quot;https://github.com/lucidrains/x-transformers&quot; target=&quot;_blank&quot;&gt;x_transformers. &lt;/a&gt;В библиотеке реализованы различные модификации трансформеров, которые вы можете брать себе на вооружение.&lt;br /&gt;- &lt;a href=&quot;https://github.com/huggingface/peft&quot; target=&quot;_blank&quot;&gt;Peft&lt;/a&gt; - библиотека по работе с адаптерами, которые позволяют быстро и качественное дообучить предобученную языковую модель&lt;/p&gt;
  &lt;p id=&quot;zMcu&quot;&gt;- &lt;a href=&quot;https://github.com/TimDettmers/bitsandbytes&quot; target=&quot;_blank&quot;&gt;bitsandbytes&lt;/a&gt; / &lt;a href=&quot;https://github.com/microsoft/DeepSpeed&quot; target=&quot;_blank&quot;&gt;deepspeed&lt;/a&gt; /&lt;a href=&quot;https://github.com/NVIDIA/Megatron-LM&quot; target=&quot;_blank&quot;&gt;Megatron LM&lt;/a&gt; - библиотеки по работе с большими языковыми моделями, где реализованы различные трюки, которые позволяют уменьшать объем используемой памяти. Например, &lt;a href=&quot;https://aman.ai/primers/ai/grad-accum-checkpoint/&quot; target=&quot;_blank&quot;&gt;gradient checkpointing&lt;/a&gt; или &lt;a href=&quot;https://www.deepspeed.ai/tutorials/zero/&quot; target=&quot;_blank&quot;&gt;off-loading&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;rBmO&quot;&gt;- &lt;a href=&quot;https://www.nltk.org/&quot; target=&quot;_blank&quot;&gt;NLTK&lt;/a&gt; / &lt;a href=&quot;https://docs.python.org/3/library/re.html&quot; target=&quot;_blank&quot;&gt;re&lt;/a&gt;. Не забываем о классических библиотеках, которые можно использовать для предобработки текста. Часто в бизнес-задачах решение, основанное на регулярках, дает высокое качество.&lt;/p&gt;
  &lt;p id=&quot;DRZE&quot;&gt;&lt;strong&gt;Сабрина:&lt;/strong&gt; Окей, а можно ли обойтись базовыми моделями типа W2V или BoW?&lt;/p&gt;
  &lt;p id=&quot;eMxn&quot;&gt;&lt;strong&gt;Андрей: &lt;/strong&gt;Да, можно всегда использовать классические методы. Это как обучить линейную модель, всегда можно это сделать. Если возникают ограничения малого объема данных или отсутствия вычислительных ресурсов или требований скорости работать, то первое, что вы должны вспоминать классические подходы.&lt;/p&gt;
  &lt;p id=&quot;qTeV&quot;&gt;&lt;strong&gt;Сабрина: &lt;/strong&gt;Принято, понято и очень интересно! И больше ссылок богу ссылок, за это отдельная благодарность. А в следующем посте мы поменяемся ролями и перейдем на вторую часть вопросов, вопросов о методах интерпретации языковых моделей.&lt;/p&gt;
  &lt;p id=&quot;Uaob&quot;&gt;До скорой связи на каналах &lt;em&gt;@&lt;a href=&quot;https://t.me/awesome_dl&quot; target=&quot;_blank&quot;&gt;awesome_dl&lt;/a&gt; x @&lt;a href=&quot;https://t.me/jdata_blog&quot; target=&quot;_blank&quot;&gt;data blog!&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</content></entry></feed>