Search
Write a publication
Pull to refresh

Comments 19

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

Галлюцинации здесь смешиваются с тональностью ответа. Это явления разного порядка.

У LLM есть латентные оценки собственной уверенности в ответе - прям внутри модели, ещё с претрейна. И есть методы тренировки "против галлюцинаций", которыми можно эти оценки причесать и вытащить наружу - сделать так, чтобы модель при низкой уверенности в ответе об этом пользователю сообщала при ответе, а при критически низкой уверенности и вовсе шла "в отказ".

Это не покрывает всё, но ощутимо на самом деле снижает галлюцинации, особенно на типовых запросах.

Проблема в том, что этот функционал часто хрупкий. Ломается легко. Причём как из-за агрессивного RL (передаю привет o3), так и из-за вариаций в промптах пользователя или рассуждениях самого ИИ.

Выглядит это примерно так: внутри модели два волка - один чует неуверенность и хочет сказать "я не знаю", а другой очень хочет уверенно выдать пользователю ну хоть что-то отдалённо похожее на ответ. Какой из них победит? Зависит от обстоятельств.

Собственно они привели пример, который следовал и так из трактования прогнозирования маршрутов предсказания токенов.

Это можно обойти иначе https://t.me/greenruff/2232

если направить LLM по нужному нам маршруту предсказания в "реальном времени" (промпт тут малополезен). Там уже можно хоть психолога делать. который ни когда не грубит или маньяка для игровой ситуации. Я использовал данный подход для создания характеров разных персонажей.

В приведенном вами случае - по сути это просто промпт с примерами?

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

Можете, пожалуйста, пояснить: «перед каждым запросом будем вставлять микродиалог».

Здесь «запрос» - это же промпт?

И каким образом «вставляется микродиалог», если не как промпт/часть промпта?

Там же приведена ссылка https://t.me/greenruff/2232, на которой показана схема и больше описания. В комментариях там специально все разжёвано. Чтобы не дублировать сюда в комментарии все схемы и не захламлять их.

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

Кратко: миркодиалоги вставляются (добавляются к основному диалогу) каждый раз перед новым сообщением пользователя. Чтобы направить ответ генерации токенов модели по нужному нам маршруту.

Был я там, но ок, ок, я так и понял, микродиалоги, как примеры, вставляются в каждый промпт.

Промпт вставляется в начале текста, за ним идут все диалоги. Поэтому это и называется промпт.
Микро-диалоги это не промпт. Это именно "фиктивные диалоги", которые вставляются между старым сообщениями и новым сообщением. Так как промпт быстро перестает оказывать влияние на диалог, когда диалог (текст) начинает расти.

Как же не промт, когда кроме промта на вход ллм ничего другого не подать.

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

Я так в LLM студио сначала добивался положительного ответа на вопрос с помощью легкой и тупой модели, а затем подключал нормальную. Но, как оказалось, такой подход не идеален.
100% решением оказалось просто дождаться любого ответа нейронки, отредактировать его, полностью удалив содержание и написав необходимое начало ответа. Тогда даже самая зацензуренная версия будет отвечать как нужно.

Исследователи взяли "нормальные" ответы и ответы, в которых ИИ проявлял одну из перечисленных выше особенностей, а затем вычли активации нейронов, получив так называемый persona vector. Чем сильнее активации "смотрят" в направлении вектора — тем больше проявляется черта, с которой он связан.

abliterated-модели сделаны ровно по тому же принципу: ищем разницу между нежелательными вариантами ответов и вычитаем полученные вектора (упрощённо). Или control vectors из llama.cpp , который даже в примере делает ровно то же: заставляет модель вести себя более "радостно"/"грустно".

Такое "исследование" и я проводил. Самое полезное, что из этого можно вынести: действительно наблюдать, что активируется в разных ситуациях. Но предварительно нужно отчистить активации от постоянно горящих элементов, либо наблюдать только за относительными значениями. Например, я нашёл несколько цепей гиперактивированных нейронов, вся цель существования которых -- прокачка максимально возможного значения дальше вглубь сети (условный источник единиц для модели).

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

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

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

Ох уж эти сказочники. Люди ищут человеческие черты там где их нет.

Потому-что ЛЛМки - это бизнес и популизм. Начиная с того что это вообще никакой не ИИ. Но людям нравится думать что будущее уже наступило и кидать деньги, а корпорациям нравится на этом зарабатывать.

Сетка в 4 слоя по 64 нейрона - это тоже ИИ. Учи матчасть, мешок мясной.

Осталось обучить ИИ проходить терапию и переживать развод

Sign up to leave a comment.

Other news