Нейросети: основы, логика и принципы работы для чайников и лис. Часть 2.
Вступление.
Всем доброго времени суток, с вами на связи Lis-ST, и сегодня мы с вами более подробно ознакомимся с нейросетями, которые чаще всего и называют ИИ, а именно с языковыми моделями. Начнём от простого, к сложному.
Восприятие языковых нейронок.

Модели не понимают буквы и слова как люди. Их родной язык — числа. Решить эту проблему довольно просто, ведь правда? Просто присваиваем каждой букве и знаку число - проблема решена! Но практика показала обратное, на обработку текста в таком формате требовалось очень много вычислительных мощностей и времени, а при увеличении длины текста требования росли в квадратичной зависимости. Причина банальна, внутри скрытого слоя каждый символ должен "взаимодействовать" с каждым, и это не единственная проблема.
Первый шаг в решении данной проблемы, разбить текст на части - "токены". А раз уж решили прибегнуть к такому способу и так как нейросеть всё-равно работает с числами, почему бы их не сделать из наиболее часто встречающихся частей текста:
- Привет = 1 токен (целое слово)
- , как = 1 токен (часто идущие вместе символы)
- дела = 1 токен
- ? = 1 токен
- Редкое слово антидизель может разбиться на [анти, дизель].
- А - тоже токен.
С одно стороны, когда у нас были символы, наш словарь состоял из 256 значений, а токенов в той же GPT более 50000... Какая-то оптимизация наоборот, скажете вы и будете не правы. Всё дело в том, что если токеновая модель обрабатывает последовательность из 1000 токенов за условные 10 секунд, то символьной модели для обработки того же текста потребуется уже минимум 160 секунд, неплохая такая разница?
Вкратце затронем эмбеддинги - так называемый вектор. Зачем нам какой-то вектор, ведь токены у нас, числа им присвоены? Но нужно же как-то определять, в каком порядке токены размещены в тексте. Не забываем о контексте за который отвечает механизм внимания (Self-Attention), работающий так-же в скрытом слое, всё также путём присвоения дополнительных значений токенам.
Генерация - не сердце, но суть нейросетей.

Языковая модель — это очень умный писатель, он никогда не видит весь текст сразу, а пишет по кусочкам (токенам). И каждый раз, когда нужно выбрать следующий кусочек, в его голове происходит невидимое "голосование".
После того как модель прочитала всё, что вы написали, она составляет внутренний рейтинг всех возможных продолжений. У неё в голове есть огромная доска рейтинга на 50 000 мест (по числу токенов). У каждого варианта — своя оценка. Эти оценки — не про "правильность", а про типичность. Модель спрашивает себя: "Что в моей обучающей библиотеке чаще всего шло после такого начала?"
Пример: вы написали "Сегодня хорошая...". В голове модели:
- место №1: "погода" - (очень высокий балл)
- место №2: "." (точка) - средний балл
- место №3: "для" - небольшой балл
- место №1000: "крокодил" - почти ноль
Модель никогда не уверена на 100%, у неё есть только веса предпочтений.
Что происходит с этими весами дальше? Два Варианта:
Вариант №1: Точность.
Модель всегда берёт самый верхний вариант из рейтинга. Увидела "погода" - напечатала "погода". Потом снова смотрит рейтинг для "Сегодня хорошая погода", опять берёт самый верхний... В итоге получается очень предсказуемый, сухой, бездумно-правильный текст. Как говорят: "модель включила режим калькулятора". Плюс: не ошибается, минус: нет творчества, повторяет штампы.
Такой режим используется, когда нужен точный факт, код или перевод. Но общаться с таким собеседником скучно и бесполезно, но главное, абсолютно бесперспективно, если вы сунетесь к нейронке с тем, чему она не обучена (запомните главный принцип, касательно "проблем", если решения вашей проблемы нет в интернете, вероятность того, что поможет нейросеть, стремится к нулю, даже при варианте №2).
Вариант №2: Обычный человек.
Модель смотрит на рейтинг и подбрасывает волшебный кубик, где грани взвешены по весам. Вариант с весом 80% занимает 80% граней кубика, вариант с 15% - 15% граней и т.д.. Так она иногда может выбрать и "погоду", и неожиданно «.», и даже очень редко "крокодила", если кубик так выпадет.
Именно за счёт случайности текст становится живым, разнообразным, иногда остроумным. Но изредка - странным или глупым. Это плата за "человечность" и творчество.
Температура.

Температура - это ручка управления "креативностью" нейросети.
Холодная температура (низкая, например 0.2).
Модель как бы увеличивает контраст между первым местом и всеми остальными. Первое место становится гигантским, а все остальные - крошечными. Кубик почти всегда падает на топ-1 результат. Текст становится сухим, однообразным, как диктор новостей, читающий по бумажке.
Лучше всего для: фактов, инструкций, кода, перевода.
Комнатная температура (1.0 - стандарт).
Это естественное состояние модели, то, чему её обучили. Разница между первым и вторым местом естественная. Кубик отражает реальные статистические веса. Текст получается похожим на обычную человеческую речь - с предсказуемыми, но иногда слегка неожиданными поворотами.
Лучше всего для: обычного чата, деловых писем, новостей.
Горячая температура (высокая, например 1.5).
Модель сглаживает оценки: первое место уже ненамного выше второго, а сотый вариант получает заметный шанс. Кубик становится "расслабленным" - он может выбросить редкое слово, необычную конструкцию, даже неуклюжий, но свежий оборот. Текст получается творческим, иногда странным, иногда гениальным, иногда бредовым.
Лучше всего для: стихов, шуток, креативных идей.
Кипящая температура (очень высокая, например 2.5+).
Все варианты становятся почти равноправными. "Погода" и "крокодил" получают почти одинаковые шансы. Кубик выпадает практически случайно. Текст превращается в бессмысленный словесный шум - связные слова, но нелепые сочетания ("Сегодня хорошая крокодил на завтрак"). Полезно разве что для демонстрации того, как модель ломается.
Есть ещё более умные настройки, дополняющие температуру, но статья и так уже не маленькая, а это плохо.
Манипуляции нейросетью.

Чтобы задать нейросети нужный "настрой" или стиль, используют два главных инструмента: ручки температуры (о которых мы говорили) и волшебные слова в начале диалога (промпты).
1. Задаём "характер" словами.
Представьте, что вы нанимаете актёра. Вы не просто говорите "говори", а даёте вводную о роли:
"Ты - научный популяризатор, который объясняет сложные вещи на пальцах. Ты не используешь формулы и термины, если без них можно обойтись. Ты любишь метафоры, примеры из жизни и немного юмора. Твой стиль - как у хорошего учителя или ведущего научно-популярного шоу."
В GPT это называется system prompt (системное сообщение). В других моделях - просто первое сообщение, которое задаёт контекст.
Что ещё можно прописать в настройку:
- "отвечай кратко, не более трёх абзацев"
- "используй маркированные списки, но без markdown"
- "называй меня на "ты""
- "добавляй примеры из кулинарии/спорта/путешествий"
Это самый мощный способ изменить стиль, потому что модель начинает "вживаться" в роль.
Вот несколько самых интересных примеров того, на что способен системный промпт за пределами привычных сценариев:
Придумать "анти-совет" для вашей идеи (Адвокат Дьявола):
Нейронка по умолчанию старается быть вежливой и соглашаться. Но промпт может превратить её в беспристрастного критика, задача которого - найти слабые места в вашем бизнес-плане или проекте, чтобы вы могли его улучшить.
Подготовиться к сложному интервью:
Попросите нейросеть представить себя журналистом, который задаст вам каверзные вопросы. Это поможет вам заранее подготовиться к разговору с реальным экспертом.
Писать стихи в стиле числа "π":
В этом промпте каждое слово стихотворения должно строго соответствовать цифрам числа Пи (3,14,15…), где первое слово - из трёх букв, второе - из одной, третье - из четырёх и т.д.
Заключение? Итог? Выводы?

А теперь можно вернуться к вопросу, существует ли ИИ на сегодняшний день? Но чтоб разобраться в данном вопросе, нужно в первую очередь понять, что такое ИИ.
Исходя из словосочетания, ИИ, это интеллект, но искусственный, а интеллект - это качество психики, состоящее из способности осознавать новые ситуации, способности к обучению и запоминанию на основе опыта, пониманию и применению абстрактных концепций, и использованию своих знаний для управления средой обитания человека.
Да, это сухое, весьма размытое определение, которое не даёт чёткого представления о том, что-же это такое. Если же посмотреть на то, с помощью чего он реализуется, всё становится на свои места: способности познавать, обучаться, мыслить логически, систематизировать информацию путём её анализа, определять её применимость, находить в ней связи, закономерности и отличия, ассоциировать её с подобной информацией, оценивать её достоверность, актуальность и многое другое...
И опять вернёмся непосредственно к вопросу, являются ли нейросети - искусственным интеллектом? На все 100% нет, и даже близко ничего общего с ним не имеют. По своей сути нейронки - поисковик, работающий на глюках.
П.С.:
У Лисёнка голова бобо. Тут хотел написать в рифму к первому предложению, но видимо ещё не совсем.
Всем спасибо за внимание, с вами был Lis - Silver Tail. Ссылка на первый пост об основах нейросетей ниже.(блин, это же ещё всё вычитывать...(здесь был смайлик))























