Темная лошадка
Как работает языковая модель
Играть на фортепиано очень просто: надо лишь нажимать на нужные клавиши в нужный момент. Так и с искусственным интеллектом: нужно всего-то выполнить нужные преобразования с нужными коэффициентами.
Нейросеть — это компьютерная программа, поведение которой определяется значениями ряда числовых параметров (их также называют коэффициентами). Коэффициентов в современных моделях ИИ невероятно много. Их число измеряется миллиардами, а в последней версии GPT-4 количество коэффициентов достигает 1,76 триллиона. Разработчик ИИ задает количество и параметры нейронных слоев, а компьютер подбирает нужные коэффициенты по алгоритму машинного обучения. Этот алгоритм построен на методе проб и ошибок: модель получает входные данные и оценивает полученный результат. Опираясь на величину ошибки, компьютер вносит коррективы в коэффициенты, после чего цикл повторяется заново. Если в процессе обучения удается достичь хороших результатов — коэффициенты фиксируются и модель передают в использование. На этом процесс обучения нейросети (собственно, подбора коэффициентов) считается завершенным.
Во время практического использования ИИ, например общения с ChatGPT или генерации изображений в Midjourney, коэффициенты уже не меняются, иначе гарантировать стабильность результатов было бы невозможно. Как в человеческом мозге нейроны с похожими функциями образуют целые слои нервной ткани, так и в компьютерных нейросетях численные преобразования собираются в последовательные слои. Для удобства слои разделяются на два вида. Первый вид — слои с многомерными матрицами чисел, или тензорами, выражающими линейные преобразования. Второй вид — слои с нелинейными преобразованиями, которые помогают модели выразить более сложные взаимосвязи, но сами по себе довольно просты и не содержат коэффициентов.
Тензоры — это не просто таблицы с числами. Сложение и умножение тензоров происходит по определенным математическим законам, которые позволяют разделять вычисления на множество независимых потоков. Чем эффективнее построен обсчет тензорных операций, тем быстрее работа нейросети. При этом наносекунды, выигранные на логистике данных или синхронизации потоков вычислений, складываются в секунды ожидания пользователем ответа чат-бота, в минуты одного цикла обучения, дни и недели полного обучения нейронки. Решающую роль в этом играют процессоры.
Чем отличаются CPU и GPU
Самые первые ЭВМ не были рассчитаны на интерактивное взаимодействие: программист подавал на вход пачку перфокарт, ждал какое-то время и получал результат расчета. Такие машины использовались для нахождения интегралов, расчета баллистических таблиц и решения других сложных вычислительных задач. Когда появились клавиатура, мышь и другие периферийные устройства для ввода информации, процессоры пришлось адаптировать под более гибкую работу.
Так внутри центральных процессоров (CPU) появились дополнительные модули, такие как кэш памяти нескольких уровней, высокопропускная шина данных, маршрутизаторы. Дирижирование этими компонентами и синхронизация процессов обеспечивается на уровне «железа». Это упрощает разработку обычных программ и обеспечивает для них быстродействие, но делает время выполнения любой операции непредсказуемым.
В течение многих лет CPU занимались всеми расчетами от положения курсора на экране до орбитальной траектории МКС, и небольшие проволочки с их стороны никого не смущали. Но когда появилась необходимость совершать огромное количество простых математических операций подряд, задержки стали накапливаться и мешать пользователям. Особенно заметно это стало в середине 1990-х в период бурного роста игровой индустрии. Возможностей CPU стало не хватать для рендеринга — отрисовки кадров для 3D-игр. Рендеринг строится на физических законах оптики и проективной геометрии: линейное движение света, проекция на плоскую пленку объемного изображения и так далее. И все эти расчеты описываются двумерными матрицами чисел.