Хочешь умный ИИ? Обучи.
А вы знаете, что каждый из нас постоянно обучает ChatGpt? И он ровно настолько умный, насколько умный учитель)
Расскажу, как я об этом узнал.
Делали мы систему управления знаниями для одной госкорпорации.
В корпорации 40 предприятий, накоплено огромное количество документов в электронном и бумажном виде.
Вот мы думаем, как все эти терабайты информации заставить работать, а не просто лежать мёртвым грузом.
А давайте создадим искусственный интеллект, который будет заниматься обработкой этой информации. Давайте!
Привлекли команду Data Science… И тут начались откровения)
Во-первых, искусственный интеллект - это обычное машинное обучение, а нейронная сеть – это компьютерная программа. Значит, как и для любой компьютерной программы, нужно чёткое техническое задание.
Ну что же, задание так задание. У нас - потребность обработать большой массив информации, около 400 000 документов .
Есть такая аббревиатура ETL (Extract, Transform, Load) . Данные нужно сначала извлечь, затем преобразовать в нужную нам форму, затем загрузить в базу данных.
На этом этапе обработки информации нам ИИ не нужен. Для этого существуют готовые решения типа Elastic Search
Дата-саентистам мы пока предлагаем подождать(
Теперь нам нужно сделать поисковую систему, которые находила бы нужные данные для пользователей.
Суть работы такого поисковика такая же как Яндекс или Google, но только поиск происходит в специализированном массиве информации по определённому профилю экономической деятельности. И снова … оказалось есть готовые решения для семантического поиска, например Bert.
И опять мы предлагаем ребятам из Data Science подождать((
Что же такое, когда мы начнём внедрять искусственный интеллект? Когда будет кто-то за нас думать?
Базу знаний обработали, настроили поиск по этой базе, начали тестировать на фокус группе… Тут то и начались вопросики. Поисковик ищет хорошо, если ему задаешь конкретное название документа, а если пишешь фразу типа "конфигурация колосниковой решетки», он выдает весь массив документов, содержащих эту фразу. И сотруднику приходится долго выбирать нужный документ.
Ну вот, пришло время для Data Science)
Мы поняли, что ИИ нам должен помочь адаптировать результаты поиска,
- во-первых, под конкретные подразделения. Например, завод по производству двигателей или завод по производству корпусов или завод по производству оснастки вкладывают разные смысл в понятие колосниковой решетки.
- во-вторых, под конкретную группу специалистов. Для конструкторского бюро, для службы эксплуатации, для дизайнера, нужны разные типы документов, описывающих колосниковую решетку. Кому-то нужны схемы, кому-то нужны спецификации, кому-то техническое задание.
Вот для чего нужен искусственный интеллект:
Понять потребность конкретного человека и предоставить ему информацию в соответствии с этой потребностью
Как же он это делает?
Простыми словами, нейронные сети работают с Векторным пространством.
Начинается все с того, что каждому элементу информации присваиваться вектор, который занимает свое место в бесконечно огромном векторном пространстве. Если мы сделаем запрос в такое векторное пространство, то система нам найдёт ближайший вектор, подходящий под наш запрос. Но это может быть не совсем то, что нам нужно.
Вот мы пришли к тому, что надо научить наш ИИ выбирать наиболее правильный вектор. Говоря простым языком, устанавливать нужные причинно-следственные связи.
Процесс обучения нейронной сети называется Разметка дата-сетов. Мы собираем группу экспертов по данному направлению и говорим, "Вот у нас набор запросов наиболее часто встречающихся, вот набор документов, которые под каждый запрос нашла нам необученная нейронка. Приступайте, отмечайте те документы, которые по вашему экспертному мнению наиболее подходят под этот запрос".
Так вот, оказывается, искусственный интеллект будет умный настолько, насколько качественно мы его обучаем.
Далее саентисты загружают размеченные дата-сеты в нейронку и запускается индексация, в результате которой наши данные получают обновлённые вектора. За 2-3 часа индексируется около 2 терабайт данных. Размеченные вектора уже располагаются ближе в векторном пространстве к векторам запросов, что приводит к более релевантным результатам при следующем поиске.
То, что я описал, называется Первичное обучение нейронной сети. Мы можем её периодически дообучать на основании добавленных/обновлённых данных. Это уже занимает 30-40 минут на 1 терабайт.
Далее нейронка уже продолжает обучаться сама, на основании результатов поиска. То есть, она смотрит на то, что выбирает пользователь для своего запроса и подстраивает векторное пространство. Это уже может происходить на лету, если позволяет железо. Но для бизнеса достаточно запускать дообучение в ручном режиме, например раз в неделю, потому что обучать ИИ на лету – дорогое удовольствие.
И вот, наконец, у нас есть ИИ! Пользователи довольны, вся информация релевантно ищется, красота! Но… как всегда, есть нюанс.
Если мы захотим использовать эту нейронку для другой области знаний, придётся заново проводить Первичное обучение. Для нефтянки одна, для судостроения другая, для атомной энергетики третья группа экспертов должна сидеть размечать дата-сеты, чтобы настроить ИИ под специфику бизнеса и предприятия. Для информации, на Первичное обучение нейронки, для дата-сета из 300-400 тысяч документов необходимо разметить 3-4 тысячи документов. Для этого потребуется группа экспертов 5-6 человек примерно на 1 месяц.
Примерно такой процесс постоянного обучения происходит, когда мы общаемся с ChatGPT. Попробуйте начать задавать специфические или сложные запросы. Мы увидим, что в начале получаем общие ответы, и начинаем делать уточнения. Говорим чату, возьми вот эту литературу, представь, что ты эксперт вот в этой области и так далее. Это не что иное, как разметка дата-сета.
То есть, мы размечаем дата-сеты для ИИ каждый раз, когда хотим получить адекватную и полезную информацию. А ИИ подстраивает векторное поле (ответы) под наши старания.
ХитрО, правда же)