- BrainTools - https://www.braintools.ru -

VIVI: что если знания не загрузить в ИИ, а попробовать сделать так что бы они родились из опыта?

Можно ли построить систему, которая не получает готовый «мозг» с заложенными знаниями, а постепенно формирует собственную память [1], связи между знаниями и способы работы с ними?

            Как и многие, я пытался сделать что-то своё, и для повседневных задач использую LLM — но меня это не устраивает.

Сейчас будут скажем так мои размышления. Моя теория.

            Что такое:

  • «ЗНАНИЯ» — это совокупность данных и опыта [2].

  • «ИНТЕЛЕКТ» — это совокупность знаний, понимания знаний, умении применять эти знания и опыта от применения знаний как неудачный, так и удачный.

            Какие бывают знания:

  •                         «САМОСТОЯТЕЛЬНЫЕ» — полученные в процессе размышлений, наблюдений и т.д.

  •                         «НЕ САМОСТОЯТЕЛЬНЫЕ» — это основной источник знаний, которые мы получаем от кого-либо.

Представим, что мы учимся считать. Сначала учитель знакомит нас с цифрами от 0 до 9 и объясняет значение знаков + и =. На этом этапе мы получаем данные: узнаём о цифрах и узнаём о знаках и то, что они означают. Затем учитель показывает пример: 1 + 1 = 2 Теперь мы знаем не только значение цифр и знаков, но и получаем конкретное знание о том, как использовать их вместе. Позже учитель объясняет, что означает знак −, но не показывает пример 1 − 1 = 0. Мы уже знаем цифры, понимаем значение равенства, умеем складывать и получили объяснение вычитания. Используя эти знания, мы самостоятельно приходим к выводу: 1 − 1 = 0 Этот конкретный результат мы не получили от учителя в готовом виде. Мы вывели его самостоятельно, опираясь на ранее полученные сведения. Затем мы начинаем применять сложение и вычитание в разных ситуациях. Постепенно учимся выбирать нужную операцию, понимать условия задачи, замечать ошибки [3] и корректировать свои действия. Повторюсь еще раз это сугубо мое мнение.

Нужны ли нейросети для ИИ?

Моё мнение, и оно сугубо личное. Для когнитивных способностей (память, логика [4], обучение [5] с одного раза) — нет, не нужны, но в то же время для восприятия [6] мира нейросети нужны по крайне мере сейчас, но они идут как отдельные модули, которые можно подключить по желанию.

Что такое VIVI и что она уже умеет.

VIVI — это система, которая сейчас пока только превращает текст в события и сохраняет в графовую память, предсказывает следующее событие и может потом объяснить, почему она так предсказала. Я не использовал ни какие языковой модели (LLM). Внутри нет ни одного чужого веса. Система рождается с базовым набором данных (цифры, буквы, слога и немного слов) и в дальнейшем получает знания только из чтения или диалога.

1. Основная гипотеза и что уже умеет VIVI.

В основе VIVI лежит моя теория:

  • данные сами по себе ещё не являются полноценным знанием;

  • знания приобретают практический смысл через опыт применения;

  • накопленный опыт может менять связи между знаниями;

  • изменившаяся структура памяти может приводить к новым выводам и другому поведению [7].

Что VIVI сейчас уже умеет:

  • Почти стабильное когнитивное ядро с измеримыми критериями качества.

  • Почти стабильное когнитивное ядро с измеримыми критериями качества.

  • Почти стабильное когнитивное ядро с измеримыми критериями качества.

    • когнитивное ядро с измеримыми критериями качества;

    • граф знаний, который различает знания «от учителя» и знания, полученные самостоятельно;

    • механизм опыта применения: когда система использует знание и получает подтверждение или опровержение, сила связи в графе меняется;

    • сон [8] (консолидация памяти): во время «сна» VIVI усиливает полезные связи, ослабляет слабые и формирует новые концепты;

    • рабочую память и механизмы внимания [9];

    • базовое понимание событий: фразу она раскладывает не в цепочку слов, а в структуру «кто — что сделал — с чем — где — когда»;

    • объяснимость: любой вывод можно проследить по пути активации в графе.

      Отмечу что почти всё, что работает, измеряется. Результаты тестов пока не буду писать, хочу сначала доделать. Но в проекте есть батарея проверок с числовыми критериями. Каждая способность — это замер, который система либо проходит, либо честно не проходит: «полезные связи усиливаются» — не метафора, а конкретное число в отчёте. И ещё одна вещь, которой я особенно дорожу: воспроизводимость. Память сохраняется и восстанавливается так, что повторный прогон даёт идентичный результат на любой машине. После того как доделаю процесс обучения, напишу еще статью с отчетами.

    Приведу простой пример, это VIVI уже умеет.

    1) Противоречие и самостоятельный вывод.

    Я написал VIVI что «собака — это животное», «собака — это растение» и «собака — имеет лапы, хвост». Она сохранила соответствующую связь в памяти. И если сразу у VIVI спросить кто такая собака, она ответит, что собака — это и животное, и растение. Затем я написал VIVI про кошку и хомяка, что у них есть лапы и хвосты и они животный. Теперь после обработки данных VIVI обнаружили закономерность между объектами и их свойствами, и общим понятием. И теперь на вопрос кто такая собака, она ответит, что собака — это животное и сможет объяснить почему. Впоследствии если VIVI встретит неизвестный объект, у которого есть лапы и хвост, она предполагает, что перед ней животное, так как она самостоятельно вывела правила животное ≠ растение. Проверилось на льве.

    2) Формирование своих понятия.

    После загрузки в VIVI русских народных сказок и нескольких книг «Я познаю Мир». VIVI смогла создать свои понятия.

    • собака — домашний_животное;

    • собака — уличный_животное;

    • лиса — лесной_животное.

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

    3) Структура события.

    Предложение: «Пастух завтра пойдёт пасти овец». Для VIVI — это предложение становится структурой, с которой она должна работать. Предложение разбивает на:

    • АГЕНТ: ПАСТУХ

    • ДЕЙСТВИЕ: ПОЙТИ

    • ЦЕЛЬ: ПАСТИ

    • ОБЪЕКТ: ОВЦЫ

    • ВРЕМЯ: ЗАВТРА

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

    Чего VIVI сейчас пока не умеет, но к этому идет.

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

    • самостоятельно замечать пробелы в знаниях и задавать точный вопрос («я знаю, что король похож на принца, но не знаю, кто такой принц, — расскажи»);

    • строить планы и проверять их результат;

    • иметь полноценную самомодель: что я умею, чего не умею, чему научилась вчера, где ошиблась;

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

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

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

    2. Что из себя сейчас представляет VIVI.

    Изначально проект был проще: первые версии хранили объекты и связи в структурах Python. По мере роста стало понятно что память должна быть отдельная архитектура. Она должна обеспечивать сохранность данных и операции над большим количеством узлов и связей. В результате VIVI стала строиться на Python и на Rust. Упрощённо её можно представить так.

    Что

    За что отвечает

    Python

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

    Rust

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

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

    3. Почему я пошел именно этим путем.

    Потому что большинство проектов, которые я вижу, идут по пути «взять LLM и обернуть». Возможно, есть другие проекты — но я не нашёл, возможно плохо искал. Конечно LLM даёт быстрый и красивый результат, но не даёт настоящего понимания. Это пока чёрный ящик, который умеет говорить, но он не умеет помнить, сомневаться и учиться по настоящему. Я для VIVI выбирал более медленный и более трудный путь: строить архитектуру снизу-вверх. Где каждое её решение имеет объяснение, где память самоорганизуется, где новые понятия появляются из опыта, где она может сказать «я этого пока не знаю — научи меня».

    4. Что было, что есть и что должно быть.

    1) Уйти от жестких правил в коде, но только для языка. Изначально логика строилась на прямых жестких правилах типа:

    if text.lower().startswith("кто такой"):
        return handle_define()
    
    if " это " in text:
        return handle_learn_isa()
    

    Сейчас частично я уже ушел от этого, так как с жесткими правилами есть много проблем из-за постоянного роста правил. Пример: «Кто такой король?», «Расскажи про короля», «Что известно о короле?», «Дай определение короля» — для человека это почти одно и то же, но для кода это четыре разных варианта, и под каждый писать правило — ну его…

    Сейчас сделано так, что в графе есть отдельный слой языковых правил. Переход пока ещё не закончен, но направление именно такое: понимание языка — ни код, а сама памяти.

    2) Уйти от pymorphy. Сейчас VIVI использует pymorphy3 для лемматизации: библиотека хорошо знает русскую морфологию и быстро приводит слово к начальной форме. Но для моего проекта у такого подхода есть фундаментальная проблема. pymorphy — это внешний источник знания: он знает, что «королём» — это форма слова «король», ещё до того, как VIVI вообще увидела это слово. То есть часть понимания языка VIVI получает не из опыта, а из чужой предобученной модели. Меня это не устраивает. Моя цель — чтобы VIVI постепенно училась сама: какие формы относятся к одному понятию, какие слова связаны между собой, как меняется значение в зависимости от контекста.

    3) Прийти к тому, чтобы VIVI понимала. И вот тут я пока даже не понимаю, как это сделать. В первых двух пунктах я примерно знаю, как можно прийти к тому результату который я хочу, но здесь — пока вообще нет ни каких мыслей. Но есть понимание. Скажем так у меня есть граф с тысячами фактов, и VIVI умеет отвечать по ним на вопросы. Но это ещё не значит, что она понимает причины событий, строит причинно-следственные связи или переносит опыт на новые задачи.

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

Автор: Merehim

Источник [10]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/37019

URLs in this post:

[1] память: http://www.braintools.ru/article/4140

[2] опыта: http://www.braintools.ru/article/6952

[3] ошибки: http://www.braintools.ru/article/4192

[4] логика: http://www.braintools.ru/article/7640

[5] обучение: http://www.braintools.ru/article/5125

[6] восприятия: http://www.braintools.ru/article/7534

[7] поведению: http://www.braintools.ru/article/9372

[8] сон: http://www.braintools.ru/article/9809

[9] внимания: http://www.braintools.ru/article/7595

[10] Источник: https://habr.com/ru/articles/1094822/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1094822

www.BrainTools.ru

Rambler's Top100