Козиев Илья (kelijah) wrote,
Козиев Илья
kelijah

Category:

Два вида знаний в боте: "опытное" и "трансцедентальное"

В этом проекте чатбота есть несколько мест, где хранятся "знания о мире".

1. База знаний. В текущей реализации это просто plain text файл, в котором знания записаны в максимально читабельном виде. Часть знаний задана априори для удобства эксплуатации, другие факты попадают туда по мере развития диалога, то есть в ходе *приобретения опыта*. Оба эти свойства БЗ позволяют, к слову, численно измерять качество диалогов - см. https://kelijah.livejournal.com/282407.html.

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

Думаю, не будет большой натяжкой назвать эту память СЕМАНТИЧЕСКОЙ, а знания - опытными.

2. Эмбеддинги слов (точнее BPE-юнитов). Несколько нейросетевых моделей в пайплане работают с представлением текста через byte pair encoding, например, модель вывода текста ответа из предпосылки и вопроса. В ходе обучения эти модели "утрясают" векторы эмбеддингов BPE юнитов, благодаря чему и обеспечивается некоторая обобщающая способность моделей. При словаре в 24000 bpe-юнитов и размере вектора 64 float32 получаем примерно 6 Мб информации. Это больше, чем данных в базе знаний!


Что хранится в этих эмбеддингах? Как обычно - некая онтология в той предметной области, где работает модель. Для модели генерации ответа, например, эти эмбеддинги позволяют модели видеть близость юнитов "_сегодня" и "_сейчас" и т.д.

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

Забавный момент, когда соприкасаются наша NLP'шная инженерия и максимально далекая от нее философия.
Tags: chatbot, база знаний, чатбот
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 3 comments