Hallucination-Free? Assessing the Reliability of Leading AI Legal Research Tools
сборная солянка, где можно покритиковать и академиков, которые писали статью, и компании, которые оные прожаривали
идея RAG моделей звучит очень живо, поскольку совмещает достоверные факты (из базы документов) с возможностью ллмок обернуть это все в связный текст. но может ли такая комбинация работать удовлетворительно и без косяков в доменах, где нужна чрезвычайная точность и достоверность высказываний? например, в судебном деле и около того
вот авторы и решили протестировать AI Legal Research Tools - сервисы для профессионалов (адвокатов, судей и всего такого), который поможет, по рекламным заявлениям, получать полную и достоверную информацию по любому проф запросу
но (удивительно) это не так. ух-ты ах-ты, оказывается датабаза из эмбеддинг векторов не может заменить 4 года обучения на юридическом и опыт адвокатской практики (так то это и не могут сделать продвинутые search engines, которые развивались 50 лет, но у нас нейронки гоу бррррр)
можете почитать заявления компаний о продукте, как ловко писать заявления об универсальной аи тулзе
ну а в целом результаты очень насыщенные и авторы интересно определяют недосказанность/неправильность/необоснованность ответа и от этого приходят к выводу о галлюцинировании РАГ моделек (банальный пример - идет вопрос про несуществующего судью, а модель отвечает что-то внятное с реальными ссылками на источники)
но есть доеб к авторам - непонятно недовольство по поводу того, что им не предоставили доступа нормально проевалить их же продукты - а компании и не обязаны такое делать, как мне кажется, даже после того, как вышли первые результаты статьи с явной критикой (потому возможно они и евалили не ту систему - Practical Law больше заявляет о себе как поисковой механизм нежели полноценный ассистент, который преподносит все на блюдечке)
👀LINK
сборная солянка, где можно покритиковать и академиков, которые писали статью, и компании, которые оные прожаривали
идея RAG моделей звучит очень живо, поскольку совмещает достоверные факты (из базы документов) с возможностью ллмок обернуть это все в связный текст. но может ли такая комбинация работать удовлетворительно и без косяков в доменах, где нужна чрезвычайная точность и достоверность высказываний? например, в судебном деле и около того
вот авторы и решили протестировать AI Legal Research Tools - сервисы для профессионалов (адвокатов, судей и всего такого), который поможет, по рекламным заявлениям, получать полную и достоверную информацию по любому проф запросу
но (удивительно) это не так. ух-ты ах-ты, оказывается датабаза из эмбеддинг векторов не может заменить 4 года обучения на юридическом и опыт адвокатской практики (так то это и не могут сделать продвинутые search engines, которые развивались 50 лет, но у нас нейронки гоу бррррр)
можете почитать заявления компаний о продукте, как ловко писать заявления об универсальной аи тулзе
ну а в целом результаты очень насыщенные и авторы интересно определяют недосказанность/неправильность/необоснованность ответа и от этого приходят к выводу о галлюцинировании РАГ моделек (банальный пример - идет вопрос про несуществующего судью, а модель отвечает что-то внятное с реальными ссылками на источники)
но есть доеб к авторам - непонятно недовольство по поводу того, что им не предоставили доступа нормально проевалить их же продукты - а компании и не обязаны такое делать, как мне кажется, даже после того, как вышли первые результаты статьи с явной критикой (потому возможно они и евалили не ту систему - Practical Law больше заявляет о себе как поисковой механизм нежели полноценный ассистент, который преподносит все на блюдечке)
👀LINK
🔥3❤2 1 1 1
Be like a Goldfish, Don't Memorize! Mitigating Memorization in Generative LLMs
помимо проблем с галлюцинированием, у ллм есть противоположная проблема в меморизации длинных последовательностей, что может быть критично в плане копирайта или приватности тренировочных данных (не говоря о том что тренили огромную ллм а получили функцию которая копирует строчки из датабазы, yikes)
авторы смогли добавить лосс, который не влияет на основные способности к генерализации модели (обучали с нуля и сравнивали на валидации) + помогает довольно эффективно справиться с проблемой запоминания ⇒ получился голдфиш лосс
в чем суть? давайте накладывать рандомную маску на последовательность, которая будет с вероятностью 1/k убирать токен из основного лосса (в сетапе естественного языка k = 3, 4 очень даже норм). убирать в том плане, что для этих токенов не будет считаться log-likelihood для предикта следующего токена, но они будут участвовать в лоссе для других токенов, чтобы не нарушалась структура последовательностей и языка. и это работает! просто и со вкусом, так еще и просто интуитивно обосновано, подкрепляя это все эмпирикой
так же есть усложнение с хешированием - мол, порой попадаются в трейне одни и те же последовательности, которые слегка отличаются посимвольно. для этого и резонно применять хеш для h предыдущих токенов, и в зависимости от этого маскировать (h+1)-ый токен (также есть интересные рассуждения по поводу подбора h - не слишком маленьким, чтобы не повредить запоминанию модели н-грамм, но и не слишком большим, чтобы совсем не потерялся замысел → подобрали h = 13)
к тому же меморизация пропадает даже во время адверсариал атак, во время которых есть доступ к трейн семплам или бим серч вариантам декодинга, что вообще нетривиально и мощно
по скейлу моделек - 1В и 7В, неидеально но вполне приемлемо. статья вообще очень классная и руки так и чешутся заимплементить такое самому
еще у статьи очень классный лор - хорошо вписывают другие темы в метафору goldfish loss: sharks in the water (adversarial attack), fish oil vs snake oil (empiricism vs theory) + есть код но там надо черту ногу сломать чтобы разобраться или как в пословице говорится
👀LINK
помимо проблем с галлюцинированием, у ллм есть противоположная проблема в меморизации длинных последовательностей, что может быть критично в плане копирайта или приватности тренировочных данных (не говоря о том что тренили огромную ллм а получили функцию которая копирует строчки из датабазы, yikes)
авторы смогли добавить лосс, который не влияет на основные способности к генерализации модели (обучали с нуля и сравнивали на валидации) + помогает довольно эффективно справиться с проблемой запоминания ⇒ получился голдфиш лосс
в чем суть? давайте накладывать рандомную маску на последовательность, которая будет с вероятностью 1/k убирать токен из основного лосса (в сетапе естественного языка k = 3, 4 очень даже норм). убирать в том плане, что для этих токенов не будет считаться log-likelihood для предикта следующего токена, но они будут участвовать в лоссе для других токенов, чтобы не нарушалась структура последовательностей и языка. и это работает! просто и со вкусом, так еще и просто интуитивно обосновано, подкрепляя это все эмпирикой
так же есть усложнение с хешированием - мол, порой попадаются в трейне одни и те же последовательности, которые слегка отличаются посимвольно. для этого и резонно применять хеш для h предыдущих токенов, и в зависимости от этого маскировать (h+1)-ый токен (также есть интересные рассуждения по поводу подбора h - не слишком маленьким, чтобы не повредить запоминанию модели н-грамм, но и не слишком большим, чтобы совсем не потерялся замысел → подобрали h = 13)
к тому же меморизация пропадает даже во время адверсариал атак, во время которых есть доступ к трейн семплам или бим серч вариантам декодинга, что вообще нетривиально и мощно
по скейлу моделек - 1В и 7В, неидеально но вполне приемлемо. статья вообще очень классная и руки так и чешутся заимплементить такое самому
еще у статьи очень классный лор - хорошо вписывают другие темы в метафору goldfish loss: sharks in the water (adversarial attack), fish oil vs snake oil (empiricism vs theory) + есть код но там надо черту ногу сломать чтобы разобраться или как в пословице говорится
👀LINK
TransformerFAM: Feedback attention is working memory
еще одна попытка заново изобрести рнн в контексте трансформера
как сейчас принято обрабатывать длинные последовательности - через скользящее окно и по блокам (хардвейрный аспект), информация передается по предыдущим токенам для каузального аттна и по предыдущим слоям. однако авторы немножечко знают за нейробиологию, где есть концепция рабочей памяти (working memory)
на уровне биологического нейрона она описывается как что-то вроде импульса, который периодически возвращается к этому самому нейрону, отчего появляется связь, которая постоянно фигурирует в нашей голове по необходимости. как только необходимость уходит, этот сигнал тоже пропадает
авторы почерпнули эту идею и решили воспроизвести это через связь токенов на том же уровне глубины в сетке. сделали это через обучаемые токены, которые вбирают в себя поблочно информацию о предыдущих токенах ⇒ блок компрессится в токены и таким образом контекст предыдущих блоков подается в трансформер в счет нескольких токенов
однако, псевдокод как будто немного противоречит основной концепции воркинг мемори. эти самые токены представляют из себя память с предыдущих блоков, при том последующие воркинг мемори токены могут обращаться к таким же токенам с предыдущих блоков (напоминает рнн с хидден стейтами, не так ли? прям то же самое). отсюда возникает интуиция, что на вход операции внимания мы можем подавать эти мемори токены и токены с данного блока, но в алгоритме к этому добавляются обычные инпут токены с предыдущих блоков. то есть 2х истории подается аттеншну - появляется послевкусие костыльности, but if it works let it work
так же на ощущение костыльности намекает тот факт, что если увеличивать количество мемори токенов (64 → 256), то перформанс ухудшается. связывают с нейробиологией, но это забавно. неужели в 64 токенах может скрываться вся необходимая воркинг мемори, почему не 52, или скорее перформанс ухудшился из-за жесткой нестабильности?
и есть кстати подозрения, что воркинг мемори работает из-за обильного количества резидуал коннекшнов + так же авторы пишут, что не нужны дополнительные веса (кроме как новых обучаемых токенов) для операции аттеншна, что странно, тк по сути эти самые токены проходят дважды через один и тот же слой (хотя тут я могу ошибаться но судя по операциям так оно и есть) ⇒ при бекворде проекция из одного пространства в другое или вотевер ослабевает (что бы это ни значило)
имхо идея вряд ли в долгосрок работает. она лучше block-wise sliding window attention (и в принципе с ним авторы и сравниваются), но есть много других вопросов
кстати есть очень классные пункты в аппендиксе о том, что они пробовали и не сработало + вывод они начали с описания фильма Нолана Мементо. за это прям респект
👀LINK
еще одна попытка заново изобрести рнн в контексте трансформера
как сейчас принято обрабатывать длинные последовательности - через скользящее окно и по блокам (хардвейрный аспект), информация передается по предыдущим токенам для каузального аттна и по предыдущим слоям. однако авторы немножечко знают за нейробиологию, где есть концепция рабочей памяти (working memory)
на уровне биологического нейрона она описывается как что-то вроде импульса, который периодически возвращается к этому самому нейрону, отчего появляется связь, которая постоянно фигурирует в нашей голове по необходимости. как только необходимость уходит, этот сигнал тоже пропадает
авторы почерпнули эту идею и решили воспроизвести это через связь токенов на том же уровне глубины в сетке. сделали это через обучаемые токены, которые вбирают в себя поблочно информацию о предыдущих токенах ⇒ блок компрессится в токены и таким образом контекст предыдущих блоков подается в трансформер в счет нескольких токенов
однако, псевдокод как будто немного противоречит основной концепции воркинг мемори. эти самые токены представляют из себя память с предыдущих блоков, при том последующие воркинг мемори токены могут обращаться к таким же токенам с предыдущих блоков (напоминает рнн с хидден стейтами, не так ли? прям то же самое). отсюда возникает интуиция, что на вход операции внимания мы можем подавать эти мемори токены и токены с данного блока, но в алгоритме к этому добавляются обычные инпут токены с предыдущих блоков. то есть 2х истории подается аттеншну - появляется послевкусие костыльности, but if it works let it work
так же на ощущение костыльности намекает тот факт, что если увеличивать количество мемори токенов (64 → 256), то перформанс ухудшается. связывают с нейробиологией, но это забавно. неужели в 64 токенах может скрываться вся необходимая воркинг мемори, почему не 52, или скорее перформанс ухудшился из-за жесткой нестабильности?
и есть кстати подозрения, что воркинг мемори работает из-за обильного количества резидуал коннекшнов + так же авторы пишут, что не нужны дополнительные веса (кроме как новых обучаемых токенов) для операции аттеншна, что странно, тк по сути эти самые токены проходят дважды через один и тот же слой (хотя тут я могу ошибаться но судя по операциям так оно и есть) ⇒ при бекворде проекция из одного пространства в другое или вотевер ослабевает (что бы это ни значило)
имхо идея вряд ли в долгосрок работает. она лучше block-wise sliding window attention (и в принципе с ним авторы и сравниваются), но есть много других вопросов
кстати есть очень классные пункты в аппендиксе о том, что они пробовали и не сработало + вывод они начали с описания фильма Нолана Мементо. за это прям респект
👀LINK
Reinforced Self-Training (ReST) for Language Modeling
как устроен рлхф сейчас - есть ревард модель, которая выдает ревард под каждый аутпут ллм, а процесс улучшения выглядит через дообучение со связкой на эту награду. то есть цикл выглядит так ллм → ревард модель → ллм (условно). что тут может быть непрактичного? пожалуй, одни из больших таких пунктов - скорость и сложность сборки датасета, поскольку обновление модели идет в онлайн стиле
но можно ли обновлять модель в более оффлайновой манере? по аналогии с оффлайн рл и онлайн рл, авторы интересно реформулируют процесс рлхф на задаче перевода. есть изначальный “оффлайн” датасет с супервайзд разметкой, так и почему бы не использовать разметку совместно с генерацией модели?
и это работает! если фильтровать аутпуты модели в соответствии с функцией награды (которую авторы кстати так и не обозначили, просто показали, что она есть) ⇒ итеративно обновляем датасет, который лучше и лучше по награде, и сами аутпуты улучшаются
а как именно фильтровать? да просто авторы отсекают по трешхолду и уже это дает буста
основная идея понятна - проста и практична, но во время чтения появились вопросики
- есть ощущение, что подбирать ревард функцию надо оочень качественно - будь то эвристика или своя модель, а то интуитивно может случиться закон Гудхарта
- выглядят немного костыльно эмпирические выводы, что таких итераций надо делать не более 3 - потому что размер датасета остается фиксированным, а семплы в нем периодически фильтруются ⇒ в какой-то момент можем попасть в ситуацию, где вся изначальная разметка пропадет и обучение будет только на своих аутпутах (distributional shift, который в совокупности с неоптимальным ревардом будет ухудшать генерацию). то есть надо жестко подгонять ревард функцию под имеющийся датасет либо вставлять какие-то коллбеки для нивелирования такого
- в Fig. 3 & Table 1 есть интересный эксперимент под обозначением “G = 1, I = 0”, i.e. Grow step = 1, Improve step = 0. то есть 0 раз файнтюнили на отфильтрованных генерациях и 1 раз расширили датасет (добавили к супервайзд датасету свои генерации). и по графикам результат улучшился. еще раз повторю - авторы натренировали с нуля модель, какое-то время пообучали, часть супервайзд разметки заменили на аутпуты модели (которые скорее всего хуже) и получили прирост. ват? звучит супер неинтуитивно (но я могу ошибаться и возможно это супер открытие, на которое не делают акцент авторы, а могли бы)
помимо последнего пункта, где по сути ухудшили датасет и улучшился результат, в целом папира норм. я бы попробовал применить или дальше потыкаться в этом направлении
👀LINK
как устроен рлхф сейчас - есть ревард модель, которая выдает ревард под каждый аутпут ллм, а процесс улучшения выглядит через дообучение со связкой на эту награду. то есть цикл выглядит так ллм → ревард модель → ллм (условно). что тут может быть непрактичного? пожалуй, одни из больших таких пунктов - скорость и сложность сборки датасета, поскольку обновление модели идет в онлайн стиле
но можно ли обновлять модель в более оффлайновой манере? по аналогии с оффлайн рл и онлайн рл, авторы интересно реформулируют процесс рлхф на задаче перевода. есть изначальный “оффлайн” датасет с супервайзд разметкой, так и почему бы не использовать разметку совместно с генерацией модели?
и это работает! если фильтровать аутпуты модели в соответствии с функцией награды (которую авторы кстати так и не обозначили, просто показали, что она есть) ⇒ итеративно обновляем датасет, который лучше и лучше по награде, и сами аутпуты улучшаются
а как именно фильтровать? да просто авторы отсекают по трешхолду и уже это дает буста
основная идея понятна - проста и практична, но во время чтения появились вопросики
- есть ощущение, что подбирать ревард функцию надо оочень качественно - будь то эвристика или своя модель, а то интуитивно может случиться закон Гудхарта
- выглядят немного костыльно эмпирические выводы, что таких итераций надо делать не более 3 - потому что размер датасета остается фиксированным, а семплы в нем периодически фильтруются ⇒ в какой-то момент можем попасть в ситуацию, где вся изначальная разметка пропадет и обучение будет только на своих аутпутах (distributional shift, который в совокупности с неоптимальным ревардом будет ухудшать генерацию). то есть надо жестко подгонять ревард функцию под имеющийся датасет либо вставлять какие-то коллбеки для нивелирования такого
- в Fig. 3 & Table 1 есть интересный эксперимент под обозначением “G = 1, I = 0”, i.e. Grow step = 1, Improve step = 0. то есть 0 раз файнтюнили на отфильтрованных генерациях и 1 раз расширили датасет (добавили к супервайзд датасету свои генерации). и по графикам результат улучшился. еще раз повторю - авторы натренировали с нуля модель, какое-то время пообучали, часть супервайзд разметки заменили на аутпуты модели (которые скорее всего хуже) и получили прирост. ват? звучит супер неинтуитивно (но я могу ошибаться и возможно это супер открытие, на которое не делают акцент авторы, а могли бы)
помимо последнего пункта, где по сути ухудшили датасет и улучшился результат, в целом папира норм. я бы попробовал применить или дальше потыкаться в этом направлении
👀LINK
Beyond A*: Better Planning with Transformers via Search Dynamics Bootstrapping
yet another paper on испоьзование трансформеров в задаче планирования
только стоит уточнить, что здесь планирование имеется в виду в плане “создания последовательности действий в уме”, а не непосредственное действие в игре или где бы то ни было еще
авторы взяли в качестве алгоритма, с помощью которого собирали датасет, A*. он в принципе интуитивно понятный, поскольку в реализации своей опирается на underestimated расстояние до цели (как если бы до нее можно было дойти в лоб, без препятствий - admissible heuristic) + исследует сначала ближайшее пространство вокруг себя, потом передвигается к более дальним точкам → в совокупности эти пункты дают работающий бейзлайн, умеющий в нужное планирование
основная идея заключается в том, что мы можем подавать трансформеру в качестве промпта не просто изначальное состояние игры (например, где ты в лабиринте находишься и куда надо прийти + где расположены стены и все такое) и таргет в качестве последовательности действий, которая приводит к цели, а еще и процесс построения A* оптимального маршрута со всеми шагами алгоритма
и (уже скорее неудивительно) это улучшает результат! сходится намного быстрее к топ перформансу, да еще и намного меньше по размерам моделька нужна для этого
есть даже тейк от авторов, что трансформер начинает сходится к цели быстрее, чем A*. и он действительно сходится быстрее, чем семплы из датасета, которые принадлежат A*, но я не соглашусь с тем, что он сходится быстрее этого алгоритма, а скорее смог научиться действовать на оптимальном уровне A* (то есть природа планирования та же). такое может быть (as far as я понял из папиры), что A* может найти не полностью оптимальный маршрут, но близкий к нему (из-за порядка ветвления действий, метрики для расстояния до цели и такого остального, что вместе они называют non-deterministic A*, на чем и обучался трансформер)
имхо это важное уточнение - да, появляется оптимальный уровень, который превосходит тренировочные семплы, но природа остается та же, поскольку идет процесс имитации внутри слоев модели (и особенно важно это уточнение при разговоре об ин-контекст лернинге) + есть момент, что у трансформера больше информации на вход (координаты всех стен), чего на самом начале не распознает A*, но основного результата это не отменяет
👀LINK
yet another paper on испоьзование трансформеров в задаче планирования
только стоит уточнить, что здесь планирование имеется в виду в плане “создания последовательности действий в уме”, а не непосредственное действие в игре или где бы то ни было еще
авторы взяли в качестве алгоритма, с помощью которого собирали датасет, A*. он в принципе интуитивно понятный, поскольку в реализации своей опирается на underestimated расстояние до цели (как если бы до нее можно было дойти в лоб, без препятствий - admissible heuristic) + исследует сначала ближайшее пространство вокруг себя, потом передвигается к более дальним точкам → в совокупности эти пункты дают работающий бейзлайн, умеющий в нужное планирование
основная идея заключается в том, что мы можем подавать трансформеру в качестве промпта не просто изначальное состояние игры (например, где ты в лабиринте находишься и куда надо прийти + где расположены стены и все такое) и таргет в качестве последовательности действий, которая приводит к цели, а еще и процесс построения A* оптимального маршрута со всеми шагами алгоритма
и (уже скорее неудивительно) это улучшает результат! сходится намного быстрее к топ перформансу, да еще и намного меньше по размерам моделька нужна для этого
есть даже тейк от авторов, что трансформер начинает сходится к цели быстрее, чем A*. и он действительно сходится быстрее, чем семплы из датасета, которые принадлежат A*, но я не соглашусь с тем, что он сходится быстрее этого алгоритма, а скорее смог научиться действовать на оптимальном уровне A* (то есть природа планирования та же). такое может быть (as far as я понял из папиры), что A* может найти не полностью оптимальный маршрут, но близкий к нему (из-за порядка ветвления действий, метрики для расстояния до цели и такого остального, что вместе они называют non-deterministic A*, на чем и обучался трансформер)
имхо это важное уточнение - да, появляется оптимальный уровень, который превосходит тренировочные семплы, но природа остается та же, поскольку идет процесс имитации внутри слоев модели (и особенно важно это уточнение при разговоре об ин-контекст лернинге) + есть момент, что у трансформера больше информации на вход (координаты всех стен), чего на самом начале не распознает A*, но основного результата это не отменяет
👀LINK
👍4 4❤3
Mitigating Partial Observability in Sequential Decision Processes via the Lambda Discrepancy
одна из больших проблем, от которой страдают рл алгоритмы в усложненных и более реалистичных средах - partial observability (in POMDPs), которая обозначает, что инпута на конкретном таймстепе не хватает модели для совершения оптимального действия → надо использовать каким-то образом память (либо обрабатывать несколько таймстепов, либо создавать отдельный буффер с репрезентациями и тд и тп)
далее, в рл часто используют методы Temporal Difference learning (про которые мы подробно упоминали здесь и с которыми связана еще одна крутая папира). TD методы это база Бытия, ибо они очень тесно связаны с дофаминергической системой нашего мозга (всплеск дофамина коррелирует с ошибкой предсказания награды, что по сути и моделирует TD)
но в вопросе partial observability они в сыром виде начинают хромать. есть альтернатива - monte carlo returns (MC), где мы ниче не моделируем и напрямую считаем реварды до конца чего бы то ни было. не оч эффективно → придумали трейдофф в виде TD(lambda), где lambda контролирует степень между TD & MC
и как есть трейдофф к TD(lambda), так же есть разные степени частичной наблюдаемости данных (partial observability), и авторы смогли вывести дифференцируемую метрику, которая определяет степень частичной наблюдаемости (или non-Markovianity как хотите называйте) - по сути две функции ценности с разными lambda, и она отлично различает МДП от ПОМДП
а поскольку эта штука дифференцируема - ее можно использовать в качестве доп лосса на “привитие” нейронки мдп свойств (с учетом, что как-то реализована память для помдп сеттинга) в рамках задач, которые это не предусматривают. получаем лучшую интерпретируемость и результат. вкусно? - вкусно.
правда эксперименты пока на средах небольшого скейла, посмотрим, как это приживется в более емких задачах
👀LINK
одна из больших проблем, от которой страдают рл алгоритмы в усложненных и более реалистичных средах - partial observability (in POMDPs), которая обозначает, что инпута на конкретном таймстепе не хватает модели для совершения оптимального действия → надо использовать каким-то образом память (либо обрабатывать несколько таймстепов, либо создавать отдельный буффер с репрезентациями и тд и тп)
далее, в рл часто используют методы Temporal Difference learning (про которые мы подробно упоминали здесь и с которыми связана еще одна крутая папира). TD методы это база Бытия, ибо они очень тесно связаны с дофаминергической системой нашего мозга (всплеск дофамина коррелирует с ошибкой предсказания награды, что по сути и моделирует TD)
но в вопросе partial observability они в сыром виде начинают хромать. есть альтернатива - monte carlo returns (MC), где мы ниче не моделируем и напрямую считаем реварды до конца чего бы то ни было. не оч эффективно → придумали трейдофф в виде TD(lambda), где lambda контролирует степень между TD & MC
и как есть трейдофф к TD(lambda), так же есть разные степени частичной наблюдаемости данных (partial observability), и авторы смогли вывести дифференцируемую метрику, которая определяет степень частичной наблюдаемости (или non-Markovianity как хотите называйте) - по сути две функции ценности с разными lambda, и она отлично различает МДП от ПОМДП
а поскольку эта штука дифференцируема - ее можно использовать в качестве доп лосса на “привитие” нейронки мдп свойств (с учетом, что как-то реализована память для помдп сеттинга) в рамках задач, которые это не предусматривают. получаем лучшую интерпретируемость и результат. вкусно? - вкусно.
правда эксперименты пока на средах небольшого скейла, посмотрим, как это приживется в более емких задачах
👀LINK