Содержание статьи
Как создать собственную нейросеть: конструктор GPTs от OpenAI
Data Scientist или Python-разработчик? А может, третий неочевидный вариант? Узнайте, какая IT-специальность подходит вам идеально на бесплатной онлайн-профориентации «IT-рентген».
Например, на вход поступает картинка. Чтобы нейросеть могла понять, что на ней изображено, она должна выделить разные элементы из картинки, распознать их и подумать, что означает сочетание этих элементов. Примерно так работает зрительная кора в головном мозге. Это несколько задач, их не смогут решить одинаковые нейроны. Поэтому нужно несколько слоев, где каждый делает что-то свое. Для распознавания часто используют так называемые сверточные нейросети. Они состоят из комбинации сверточных и субдискретизирующих слоев, каждый из которых решает свою задачу.
Лучше обучение. Искусственные нейронные сети обучаются примерно по тому же принципу, что живые существа. Когда человек часто повторяет одни и те же действия, он учится: ездить на велосипеде, рисовать или набирать текст. Это происходит, потому что веса между нейронами в мозгу меняются: нервные клетки наращивают новые связи, по-новому начинают воспринимать сигналы и правильнее их передают. Нейронная сеть тоже изменяет веса при обучении — чем оно объемнее, тем сильнее она «запомнит» какую-то закономерность.
Давайте поймем почему формула имеет такой вид. Сначала нам нужно учесть то, что мы хотим скорректировать вес пропорционально размеру ошибки. Далее ошибка умножается на значение, поданное на вход нейрона, что, в нашем случае, 0 или 1. Если на вход был подан 0, то вес не корректируется. И в конце выражение умножается на градиент сигмоиды. Разберемся в последнем шаге по порядку:
GPTs — интуитивно понятная платформа, которая сама дает подсказки. Она может предложить название будущему боту и даже сгенерировать для него аватар при помощи DALLE·3. Все предложения конструктора можно принять, отклонить или улучшить. В любом случае, такие вещи как название и аватар легко меняются впоследствии.
Дальше конструктор предлагает уточнить критерии генерации. В случае с alt-текстами он просит рассказать, какие картинки обычно используются в статьях для блога. Это скриншоты, сгенерированные иллюстрации, фотографии, графики или схемы? Если пока непонятно, протестировать возможности бота можно в превью справа, а уже по результатам испытаний сделать его более точным.
Больше нейронов. В нашей тренировочной нейросети только один нейрон. Но если нейронов будет больше — каждый из них сможет по-своему реагировать на входные данные, соответственно, на следующие нейроны будут приходить данные с разных синапсов. Значит — больше вариативность, «подумать» и передать сигнал дальше может не один нейрон, а несколько. Можно менять и формулу передачи, и связи между нейронами — так получаются разные виды нейронных сетей.
Но нейронные сети — все же не человеческий мозг. Мозг сложнее, объемнее, в нем намного больше нейронов, чем в любой компьютерной нейросети. Поэтому чрезмерное обучение может сделать хуже. Например, переобученная нейросеть может начать распознавать предметы там, где их нет — так люди иногда видят лица в фарах машин и принимают пакеты за котов. А в случае с искусственной нейронной сетью такой эффект еще явнее и заметнее. Если же учить нейросеть на нескольких разнородных данных, скажем, сначала обучить считать числа, а потом — распознавать лица, она просто сломается и начнет работать непредсказуемо. Для таких задач нужны разные нейросети, разные структуры и связи.
Инструкции (Instructions) помогают сделать нейросеть точнее. Опишите то, что должен уметь чат-бот. Например: «Ты — нейросеть, которая создает alt-тексты для картинок блога. Ты хорошо понимаешь принципы SEO и делаешь так, чтобы тексты полностью им соответствовали. Также ты знаешь основные темы статей блога, хорошо разбирается в продукте и его особенностях». Если у блога есть специфика, бот должен ее понимать. Всю эту информацию нужно записать в это окошко — просто представьте, что вам нужно ввести в курс дела помощника-человека.
Несколько финальных замечаний
Человеческий мозг состоит из ста миллиардов клеток, которые называются нейронами. Они соединены между собой синапсами. Если через синапсы к нейрону придет достаточное количество нервных импульсов, этот нейрон сработает и передаст нервный импульс дальше. Этот процесс лежит в основе нашего мышления. Мы можем смоделировать это явление, создав нейронную сеть с помощью компьютера. Нам не нужно воссоздавать все сложные биологические процессы, которые происходят в человеческом мозге на молекулярном уровне, нам достаточно знать, что происходит на более высоких уровнях. Для этого мы используем математический инструмент — матрицы, которые представляют собой таблицы чисел. Чтобы сделать все как можно проще, мы смоделируем только один нейрон, к которому поступает входная информация из трех источников и есть только один выход. 3 входных и 1 выходной сигнал Наша задача — научить нейронную сеть решать задачу, которая изображена в ниже. Первые четыре примера будут нашим тренировочным набором. Получилось ли у вас увидеть закономерность? Что должно быть на месте вопросительного знака — 0 или 1?
Следующий этап работы — создание промта. Например, если у вас есть блог, вы можете создать бота для автоматической генерации подходящих под требования SEO alt-текстов для картинок. В таком случае промт будет выглядеть так: «Создай чат-бот, который будет генерировать подходящие под требования SEO alt-тексты для картинок в блоге».
Компания OpenAI порадовала поклонников нейросетей еще одним обновлением — и речь даже не о апдейте Visual, позволяющим загружать вместо промта картинки, и даже не о версии Turbo с обновленной базой данных. Речь о GPTs — конструкторе, позволяющем за минуты создать собственную кастомную нейросеть. Например, это может быть ассистент, который быстро и понятно объяснит правила любой настольной игры. Или преданный помощник в деле придумывания меню на неделю.
Так часто происходит в реальных задачах, например, при распознавании предметов. Не у всех из них есть жесткие критерии: скажем, гипертрофированного мультяшного персонажа мы по-прежнему различаем как человека, хотя у него совсем другие пропорции. Нейронную сеть сложно научить похожему — но современные системы могут справиться и с этим.
Больше мощностей. Нейронные сети работают с матрицами, так что если нейронов много, вычисления получаются очень ресурсоемкие. Известные нейросети вроде Midjourney или ChatGPT — это сложные и «тяжелые» системы, для их работы нужны сервера с мощным «железом». Так что написать собственный DALL-E на домашнем компьютере не получится. Но есть сервисы для аренды мощностей: ими как раз пользуются инженеры машинного обучения, чтобы создавать, обучать и тестировать модели.
Еще есть, например, метод обратного распространения ошибки — градиентный алгоритм для многослойных нейросетей. Сигналы ошибки, рассчитанные с помощью градиента, распространяются от выхода нейронной сети к входу, то есть идут не в прямом, а в обратном направлении.
Стоит отметить, что пока GPTs находятся в бета-тестировании, а еще, как и любые нейросети, они могут галлюцинировать. В остальном — ничего сложного. Такой бот станет хорошим личным ассистентом, отличным пэт-проектом, инструментом для генерации изображений и статей или даже помощником в бизнесе.
Другие методы и формулы. Чтобы нейроны обучались, нужно задать формулу корректировки весов — мы говорили про это выше. Если нейронов много, то формулу нужно как-то распространить на все из них. Для этого используется метод градиентного спуска: рассчитывается градиент по весам, а потом от него делается шаг в меньшую сторону. Звучит сложно, но на самом деле для этого есть специальные формулы и функции.