- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Как устроен ChatGPT? Полное погружение в принципы работы и спектр возможностей самой известной нейросети в мире - Стивен Вольфрам
Шрифт:
Интервал:
Закладка:
Можно предположить, что для каждого вида задач требуется разная архитектура нейронной сети. Но ученые обнаружили, что одна и та же архитектура, по-видимому, подходит даже для совершенно разных, казалось бы, задач. На каком-то уровне это напоминает идею универсальных вычислений (и мой принцип вычислительной эквивалентности), но, как расскажу позже, я думаю, это скорее отражение того факта, что задачи, которые мы обычно даем нейронным сетям, являются «человекоподобными», и нейронные сети могут улавливать довольно общие «человекоподобные процессы».
Когда нейронные сети только появились, существовала точка зрения, что нужно заставлять их делать как можно меньше. Например, при преобразовании речи в текст считалось, что сначала следует проанализировать аудиозапись речи, разбить ее на фонемы и так далее. Но было обнаружено, что – по крайней мере для «человекоподобных» задач – обычно лучше просто попытаться обучить нейронную сеть «сквозной» задаче, позволяя сети обнаружить необходимые промежуточные характеристики, кодировки и прочее самостоятельно.
Была также идея, что в нейронную сеть следует вводить отдельные сложные компоненты, чтобы она могла фактически реализовывать определенные алгоритмические идеи. Но опять же, по большей части это оказалось бесполезным. Вместо этого лучше просто взять очень простые компоненты и позволить им «самоорганизоваться» (способами, которых мы не можем понять), чтобы достичь (предположительно) эквивалента этих алгоритмических идей.
Это не значит, что не существует идей структурирования, которые могли бы помочь при использовании нейронных сетей. Так, например, наличие двумерных массивов нейронов с локальными связями кажется очень полезным на ранних стадиях обработки изображений. И структуры связи, которые концентрируются на последовательном обращении к прошлым данным, как мы увидим позже, тоже выглядят полезными при работе с чем-то вроде языка, как в ChatGPT.
Но важной особенностью нейронных сетей является то, что они, как и компьютеры в целом, в конечном счете просто работают с данными. А современные нейронные сети – с современными подходами к обучению нейросетей – работают с массивами чисел. В процессе обработки эти массивы могут быть полностью изменены или реорганизованы. Например, сеть, которую выше мы использовали для идентификации цифр, начинается с двумерного массива, представляющего изображение и быстро сгущающегося до множества каналов, но затем концентрирующегося в одномерный массив, который в итоге и будет содержать элементы, представляющие возможные цифры:
Хорошо, но как можно определить, насколько большая нейронная сеть понадобится для выполнения конкретной задачи? Это целое искусство. В каком-то смысле главное здесь – самим понимать, насколько сложна поставленная задача. Но задачи, которые обычно решает человек, очень трудно оценить. Да, может существовать систематический способ выполнения их механически с помощью компьютера. Но трудно сказать, есть ли кратчайший путь, который позволит выполнять задачу, по крайней мере на человеческом уровне, значительно легче. Возможно, потребуется пройти много уровней, чтобы механически сыграть в определенную игру. Но, возможно, существует гораздо более простой (эвристический) способ добиться «игры на человеческом уровне».
Когда мы имеем дело с крошечными нейронными сетями и простыми задачами, иногда можно отчетливо увидеть, что добраться из одной точки в другую просто невозможно. Например, вот как может выглядеть выполнение задачи из предыдущего раздела с помощью нескольких небольших нейронных сетей:
Мы видим, что если сеть слишком мала, то она просто не сможет воспроизвести нужную нам функцию. Но если сеть больше определенного размера, то проблем быть не должно – по крайней мере если тренировать ее довольно долго и на достаточном количестве примеров. Кстати говоря, эти картинки иллюстрируют часть наших знаний о нейронных сетях: нередко можно обойтись сетью меньшего размера, если в середине есть определенное «сжатие», которое заставляет информацию проходить через меньшее промежуточное число нейронов. (Также стоит упомянуть, что сети без промежуточного уровня – так называемые перцептронные – могут изучать только линейные функции. Но как только появляется хотя бы один промежуточный уровень, всегда можно произвольно выстроить любую функцию, по крайней мере если у сети достаточно нейронов. Однако для того, чтобы сделать их реально обучаемыми, обычно требуется своего рода регуляризация или нормализация.)
Итак, давайте предположим, что вы остановились на определенной архитектуре нейронной сети. Теперь возникает проблема получения данных для обучения сети. И многие практические задачи, связанные с нейронными сетями и машинным обучением в целом, сосредоточены на получении или подготовке необходимых обучающих данных. Во многих случаях требуется получить примеры входных данных и ожидаемых результатов (так называемое контролируемое обучение). Например, изображения можно переименовывать в зависимости от того, что на них, или снабжать каким-то атрибутом. Возможно, кому-то придется этим заняться, для чего понадобится много усилий. Однако нередко можно брать что-то готовое, применяя это как своего рода прокси-элемент. Например, можно использовать Alt-теги, которыми уже были помечены изображения в интернете. Также можно задействовать субтитры, которые были созданы для видео. Для обучения языковому переводу применимы уже переведенные на разные языки версии веб-страниц или других документов.
Сколько данных нужно дать нейронной сети, чтобы обучить ее выполнению конкретной задачи? Это трудно определить. Конечно, количество данных можно значительно снизить, если использовать так называемое трансферное обучение – перенос данных, которые уже были изучены в другой сети. Но, как правило, нейронным сетям нужно много примеров, чтобы обучение проходило успешно. И для некоторых задач также важно, чтобы примеры были повторяющимися. Действительно, это стандартная стратегия – просто снова и снова показывать нейронной сети все имеющиеся примеры. В каждой из этих эпох обучения нейронная сеть будет находиться в разном состоянии и каким-то образом напоминать самой себе о конкретном примере, чтобы запомнить его. (Возможно, это аналогично тому, как повторение материала помогает человеку запомнить информацию.)
Но нередко просто повторения одного и того же примера недостаточно: нейронной сети необходимо показать вариации. И, как уже было выяснено, для того, чтобы быть полезными, эти вариации не обязательно должны быть сложными. Простое незначительное изменение изображений может создать эффект новизны. Или, например, если заканчиваются реальные видео, скажем, по обучению вождению беспилотных автомобилей, можно просто взять данные из симуляций в модельной среде, подобной видеоиграм, без деталей, свойственных реальным видеозаписям.
А что же ChatGPT? У него есть приятная особенность, которая заключается в способности выполнять обучение без присмотра, а это значительно облегчает поиск примеров. Напомним, основная задача ChatGPT состоит в том, чтобы выяснить, как продолжить фрагмент текста, который ему был предоставлен. Итак, чтобы получить обучающие примеры, все, что нужно сделать, – это взять фрагмент текста и замаскировать его конец, а затем использовать этот фрагмент в качестве входных данных для обучения; при этом выходными данными будет полный фрагмент текста. Позже мы обсудим это подробнее, но главное, что нам нужно знать, – это то, что, скажем, в отличие от распознавания изображений здесь нам не нужны явные теги. ChatGPT может учиться на любых примерах текста, которые ему даны.
А что насчет самого процесса обучения в нейронной сети? В конце концов, все дело сводится к определению того, какие веса наилучшим образом будут соответствовать приведенным примерам. Существуют всевозможные подробно описанные варианты выбора и настройки гиперпараметров (веса допустимо рассматривать как параметры), которые можно использовать. Имеются различные варианты функции потерь (сумма квадратов, сумма абсолютных значений и так далее). Есть различные способы минимизации потерь (как далеко можно перемещаться с каждым шагом и так далее). И тогда возникают вопросы вроде того, сколько примеров нужно показать, чтобы получить каждую последующую оценку потерь, которые человек пытается минимизировать. И кстати, можно применить машинное