Диаграмма процесса обучения ИИ: создание набора данных, обновление весов, проверка.

Понимание подтверждения атмосферы

Как научить студентов магистратуры рассуждать с помощью проверяемой, пошаговой логики (Часть 1)

Делиться

c8bf5b3e275d3403d75b3c9f8e82d8d2

Обзор

«То, чего я не могу создать, я не понимаю».
— приписывается Р. Фейнману

После Vibe Coding мы, похоже, вступили в (очень нишевую, но гораздо более крутую) эру Vibe Proving: DeepMind выигрывает золото на Международной математической олимпиаде, Harmonic решает нетривиальную задачу в теории чисел, и впервые в истории системы искусственного интеллекта, похоже, занимаются серьезными математическими вычислениями.

В то же время нам постоянно напоминают, что модели LLM порождают галлюцинации: похоже, перед нами парадокс. Если модели LLM могут создавать как бессмысленный текст (включая математические доказательства), так и правильные рассуждения (включая математические рассуждения), как нам определить, какие из моделей являются правильными, а какие — галлюцинациями?

13bbecd28d7c174cb89714acb9159655

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

  1. Как работает это «специальное программное обеспечение»?
  2. Почему мы этому доверяем?
  3. Как обучить магистра права использовать этот метод для доказательств?

Заманчиво писать статьи о масштабных идеях, таких как «магистратура и математика», предлагая интуитивные, нестрогие ответы в максимально общем контексте. Например, вот как новая книга пытается убедить вас в перспективности концепции «математики и компьютеров»:

«Оракул истины», который мыслители искали веками, инструмент для окончательной проверки или опровержения любого математического или логического утверждения. (…) [Книга] предлагает глубокий ответ на давнюю загадку: могут ли компьютеры раскрыть универсальные истины?

Здесь мы поступим совершенно наоборот. Вместо чудесных слов и аналогий мы с нуля создадим систему LLM для доказательств, с целью получения точных ответов для простых сценариев: мы выиграем в точности, пожертвовав некоторой общностью. Вместо аргументов, охватывающих общую картину, мы стремимся к созданию проверяемых скриптов, работающих с простыми «доказательствами». Мы разделим наше руководство на две части, которые также можно читать независимо друг от друга:

  • Часть 1 (эта): понимание верификаторов и построение прочной мысленной модели того, что делает математику такой особенной (почему мы не доверяем магистрам права, пишущим законы, так же, как и доказательствам?). Это ответит на вопросы 1 и 2, указанные выше;
  • Часть 2 (скоро): обучение модели LLM с открытым исходным кодом для создания доказательств с использованием нашего верификатора для предоставления сигнала вознаграждения во время обучения с подкреплением. Это ответит на вопрос 3.

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

Создание учебного пособия по доказательствам позволяет нам напрямую ознакомиться с основными идеями, что упрощает дальнейшие исследования: поскольку мы не можем ответить на все вопросы сразу, более сложные вопросы рассматриваются в разделе часто задаваемых вопросов в конце.

Итак, пристегнитесь, клонируйте репозиторий и приступайте к написанию кода.

Что означает правильность доказательства?

«Архимеда будут помнить, когда Эсхила забудут, потому что языки умирают, а математические идеи — нет».

— Г. Х. Харди

Программы проверки доказательств — это программное обеспечение, которое принимает на вход математические рассуждения, сгенерированные магистром права, и проверяет их правильность. Это обманчиво просто: понимание того, что означает «правильность» и как можно установить правильность, является ключом к построению точной ментальной модели того, как магистрам права удается быть настолько успешными в математике.

То, что компьютеры могут проверять математические вычисления в общем случае, может показаться удивительным, но все мы знакомы с механическим применением конкретных математических правил. В старшей школе мы изучаем правило проверки того, что 2x является производной от x² + 3 — что важно, мы можем не знать, что такое производная или что означают эти символы, но пока мы применяем правило, мы можем проверить утверждение. Вкратце, сегодня мы обнаружим, что это явление гораздо более общее, чем мы могли предположить: само математическое рассуждение может быть закодировано в символах и обработано алгоритмически.

Всем известен силлогизм как парадигматический пример правильного рассуждения: «Все люди смертны; Сократ — человек; следовательно, Сократ смертен». Критерием правильности является логическое следствие: утверждение C является логическим следствием (неизбежно следует из) посылок S₁, S₂ … Sₖ, если невозможно, чтобы S₁, S₂ … Sₖ были истинными, а C — ложным. Другими словами, всякий раз, когда посылки истинны, заключение необходимо истинно.

В простых случаях легко убедиться в том, что вывод следует из посылок, но как быть с более сложными? Можете ли вы сразу «увидеть», что бесконечное количество простых чисел является логическим следствием простых умножения и деления?

Доказательства представляют собой последовательность утверждений, начинающихся с одной или нескольких посылок и заканчивающихся заключением, причем каждое утверждение обязательно следует из посылок и/или предыдущих утверждений: цель доказательства — показать нам, как именно утверждение C следует из посылок, шаг за шагом. Например, мы действительно можем показать, что существует бесконечно много простых чисел:

  • Предположим, от противного, что существует лишь конечное число простых чисел. Перечислим их все: p₁, p₂, …, pₖ.
  • Рассмотрим новое число N = (p₁ × p₂ × … × pₖ) + 1. Таким образом, N является либо простым, либо составным числом;
  • Если N — простое число, то мы нашли простое число, которого нет в исходном списке, что противоречит предположению о том, что p₁, …, pₖ — все простые числа.
  • Если N — составное число, оно должно иметь простой делитель q. Но q не может быть среди p₁, …, pₖ, потому что деление N на любое p дает остаток 1. Таким образом, мы снова нашли простое число, отсутствующее в исходном списке, q.
  • В обоих случаях мы опровергаем предположение о том, что существует лишь конечное число простых чисел. Следовательно, простых чисел должно быть бесконечное число.

Если вы хорошо знакомы с основами арифметики и имеете хотя бы общее представление об «отрицании» и «противоречивости», вы сможете проследить эту цепочку выводов. Ключевой момент заключается в том, что для создания доказательства может потребоваться немало (за неимением лучшего слова) креативности, но его проверка — это чисто механическая процедура: вам не нужно верить мне на слово, вы можете сами убедиться в правильности моего доказательства. Действительно, доказательство, которое вы не можете проверить, не является доказательством: как сказал Алонзо Чёрч, если аудитор не может проверить «определёнными средствами» последовательность формул, представленных в качестве доказательства, он может потребовать другого доказательства, и «пока не будет предоставлено дополнительное доказательство, он может отказаться быть убеждённым» (и так далее, потенциально навсегда).

Подводя итог: доказательство — это пошаговый, проверяемый способ показать, что вывод следует из набора посылок. Поскольку доказательства по своей природе проверяемы, мы можем создать программное обеспечение, которое выполняет механические проверки в больших масштабах, и использовать его для различения некорректных доказательств от корректных, сгенерированных с помощью LLM.

Как показывает история программного обеспечения, алгоритмы хорошо работают на формально определенных языках, таких как Python или Rust. На пути к созданию собственного небольшого верификатора нам затем необходимо выбрать способ представления доказательств, чтобы компьютер мог легко их проверить.

Язык программирования для рассуждений

«Преимущество формальных текстов заключается в том, что для того, чтобы их манипуляции были легитимными, достаточно соблюдать лишь несколько простых правил; если задуматься, это удивительно эффективный инструмент для исключения всякой чепухи, которой практически невозможно избежать, когда мы используем родной язык».
— Э. В. Дейкстра

Возможно, Vibe Coding создает иллюзию того, что мы теперь «программируем на английском языке», но в конечном итоге компьютеры всегда выполняют инструкции на языке программирования. Если мы хотим, чтобы компьютер проверял доказательства, нам нужно выразить их на точном языке: однозначном для анализа и легкого для обработки.

После многовековых мечтаний математики наконец-то придумали, как использовать математику для моделирования самого процесса рассуждения — своего рода специальный язык программирования для проведения доказательств строгим образом. Рассмотрим это тривиальное доказательство, которое, как утверждается, доказывает, что 12 — четное число и делится на 3, исходя из двух самоочевидных посылок:

  1. S₁: 12 больше 10, и 12 — четное число.
  2. S2: 12 делится на 3
  3. Из строки 1 видно, что 12 — четное число.
  4. Из строки 2 видно, что 12 делится на 3.
  5. C, согласно строкам 3 и 4: следовательно, 12 — четное число и делится на 3.

Для представления предложений в символах мы можем использовать переменные и булевы операции, аналогично преобразованию строк в константы в Python: Q = “12 больше 10”; R = “12 четное”; Z = “12 делится на 3”

  1. В И Р
  2. З
  3. Р (1)
  4. Z (2)
  5. Р И З (3,4)

Благодаря зависимостям между строками, выраженным в скобках, легко понять, какие механические правила здесь можно использовать: одно правило («исключение И») гласит, что из альфа И бета (где альфа и бета — заполнители) мы можем исключить И и получить один из двух вариантов; другое правило («введение И») гласит, что нужно ввести альфа И бета при условии, что альфа и бета присутствуют на каком-либо предыдущем шаге. В отличие от английского доказательства, этот перевод допускает механические манипуляции: если вам нужна аналогия с программированием, правильное доказательство подобно скрипту, который «компилируется правильно», что автоматически устанавливается алгоритмом (компилятором/верификатором).

В математическом анализе при введении тригонометрических функций нам требуются новые правила дифференцирования. Аналогичным образом, при введении новых булевых операторов (НЕ, ИЛИ) нам также требуются новые правила. Читатель может ознакомиться с подробностями в интернете (или непосредственно в репозитории), но общая суть остается неизменной: правило переставляет одну или несколько строк в новую строку, либо удаляя существующие операторы, либо вводя их.

Подводя итог: мы можем преобразовать доказательство на английском языке в символы, которыми легко манипулировать, подобно тому, как если бы мы рассматривали параболу как уравнение, чтобы получить производную путем некоторой «перестановки» членов. Проверка символического доказательства показывает, верны ли рассуждения и можно ли доверять математическому выводу.

Однако существует бесконечно много вещей, которые мы можем захотеть доказать: как мы можем быть уверены, что в особенно сложном доказательстве правила не дадут сбой и не пройдут проверку на корректность результата? Другими словами, разве мы не переложили бремя с логических моделей, которые выдают себя за истину, на правила, изобретенные (вероятно, ошибочными) математиками?

Вот где происходит настоящее волшебство: поскольку само рассуждение теперь точно сформулировано, мы переходим к мета-анализу и доказываем утверждения о наших правилах самих доказательств!

Проверка на надежность

«Я не верю в эмпирическую науку. Я верю только в априорную истину».
— приписывается К. Гёделю

Даже если алгоритм проверяет правильность применения правил в доказательстве, мы всё равно не знаем, подтверждено ли доказательство; в конце концов, в программах постоянно встречаются ошибки! Другими словами, как мы можем быть уверены в правильности самих правил манипулирования?

Внимательный читатель, возможно, уже заметил наш трюк. Как люди, мы заботимся об истинности наших утверждений: мы хотим делать верные выводы из того, что нам уже известно. Однако машины заботятся о последовательности символов на линии доказательства и о том, как создается новая линия путем механической перестановки этих символов (помните: вы можете получить производную x² + 3, переставив символы, даже не зная, что такое наклон!). Какова же тогда связь между символами и истиной? В идеале эти две точки зрения должны совпадать: используя правила на основе истинных посылок, я должен получить новые линии, которые сами по себе истинны. Другими словами, правила сохраняют истинность: независимо от сложности доказательств, ни одно применение правила не приведет к ложному утверждению, исходя из истинного.

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

В приведенном выше доказательстве в качестве нового шага добавлены альфа И бета, начиная с альфа, причем бета появляется отдельно. Пока все хорошо. Для моделирования истинности мы определяем интерпретацию, которая представляет собой присвоение I значений истинности (1 = Истина, 0 = Ложь) нашим переменным, используя стандартное рекурсивное определение для сложных предложений:

  • I(p И q) = 1 тогда и только тогда, когда I(p) = 1 и I(q) = 1
  • I(НЕ q) = 1 тогда и только тогда, когда I(q) = 0

Это определение вызовет у любого программиста, когда-либо работавшего с чем-то вроде if boolean_var и boolean_other_var, ощущение дежавю, и это потому, что операторы AND, OR, NOT в Python смоделированы по образцу стандартной семантики логических связок (одной из многих связей между программированием и логикой!).

Функция интерпретации определяет возможное состояние мира, сопоставляя переменные с логическими значениями: например, в одном мире p истинно, а q ложно, в другом мире оба значения ложны и так далее (в случае программирования интерпретация выполняется в скрипте при инициализации переменных boolean_var и boolean_other_var). Для завершения проверки корректности необходимо показать сохранение истинности во всех возможных состояниях мира. Мы используем таблицу истинности, чтобы выяснить, что всякий раз, когда p и q истинны, p И q также истинны:

п q п И q
1 1 1
1 0 0
0 1 0
0 0 0

Как и ожидалось, правило действительно соответствует нашему определению логического следствия: всякий раз, когда посылки истинны, заключение обязательно таково (строка 1). Верно ли обратное утверждение? То есть, если заключение следует из некоторых посылок, всегда ли существует доказательство этого? Только в некоторых «языках программирования» (например, в нашем) ответ — да: это называется полнотой, и это двойственное к корректности (к тому же, это более интересно, но гораздо сложнее доказать!).

Если мы сможем (а мы можем!) гарантировать, что каждое используемое нами правило сохраняет истинность, мы получим уверенность в том, что независимо от сложности доказательства, независимо от того, насколько далеко в будущее оно находится, независимо от того, рассуждают ли над ним специалисты с магистерской степенью или люди, программное обеспечение для проверки доказательств никогда не примет некорректное доказательство за правильное рассуждение.

Таким образом, за исключением ошибок реализации (которые, конечно, неизбежны) и точного перевода с английского на символы, проверенное доказательство является высшим стандартом достоверности: точная, недвусмысленная форма рассуждения, математически обоснованная и проверенная алгоритмически. Это важно не только как руководящий принцип при доверии LLM к математическим открытиям, но и подчеркивает, насколько математика отличается от всего остального: хотя мы можем однажды проснуться и обнаружить, что Ньютон ошибался (так и случилось!), мы никогда не проснемся и не обнаружим, что простые числа не бесконечны. После проверки доказательство становится вечным знанием, на основе которого мы можем безопасно строить новые знания:

[Древнегреческие математики] — это не умные школьники, а члены другого колледжа.

Г. Х. Харди

До встречи, математические ковбои!

«Слова ничего не стоят. Покажите мне код.»
— Л. Торвальдс

В первой части мы создали ментальную модель, чтобы понять, почему вообще следует ожидать, что математические рассуждения могут быть надежно проверены компьютером. Отвечая на наши первоначальные вопросы, мы узнали об отличительной, механической природе доказательств и представили минимальный набор компонентов, необходимых для представления доказательств в виде программы: язык и правила манипулирования (по сути, предметно-ориентированный язык!).

В сопутствующем репозитории файл proof_checker_playground.py отображает примеры допустимых и недопустимых доказательств, использующих небольшой класс Python, реализующий нашу логику проверки. Сначала средство проверки доказательств проверяет синтаксическую корректность заданной последовательности шагов: как и в любом языке программирования, символы должны быть правильно отформатированы! Затем оно шаг за шагом выполняет проверку, имитируя работу математика, проверяющего, действительно ли каждая новая строка в доказательстве следует из предыдущих. Наш код достигает этого несколько нетрадиционным способом по сравнению с продвинутыми средствами проверки, жертвуя производительностью (домашнее задание: можете ли вы догадаться, почему это вычислительно неэффективно? Насколько увеличится размер таблицы по мере увеличения количества переменных?) в педагогических целях. При проверке шага 4 в этом примере доказательства:

  1. С₁: …
  2. S2: ..
  3. S3: A И B
  4. А (3)

Программа проверки получит обоснование (предпосылку в строке 3), затем построит таблицу истинности с необходимыми переменными (A, B), где строка 3 будет предпосылкой, а целевой шаг (строка 4) — заключением:

А Б А И В (строка 3) А (4)
1 1 1 1
1 0 0 1
0 1 0 0
0 0 0 0

Внимательный читатель, возможно, уже догадывается, к чему это ведет: этап доказательства считается правильным, если всякий раз, когда посылки истинны, заключение также истинно – это определение логического следствия, с которого мы начали!

В следующей части мы обучим модель LLM генерировать доказательства и используем созданную сегодня структуру для их проверки. Мы будем использовать модели LLM с закрытым исходным кодом и средство проверки, чтобы создать набор данных проверенных доказательств, а затем использовать Tinker для настройки цикла обучения с подкреплением. Мы предложим небольшой модели с открытым исходным кодом доказать вывод из некоторых предпосылок, затем передадим сгенерированное доказательство средству проверки и вознаградим модель, если оно верно.

Хотя неясно, насколько RL «просто» проверяет существующие возможности или изучает что-то новое, в любом случае мы надеемся, что даже небольшая модель сможет доказать простые факты на нашем «языке программирования»: до встречи, математические ковбои!

Часто задаваемые вопросы

Если вы хотите углубиться в тему, вот несколько распространенных вариантов дальнейших действий:

  1. Правила сохраняют истинность, но как я могу знать, что посылки истинны? С логической точки зрения, следствие может вытекать из неверных посылок, но доказательство, начинающееся с 2+2=5, вряд ли будет интересным. В большинстве случаев в реальном мире наши посылки являются результатами других теорем, поэтому мы знаем, что они являются следствием других, более фундаментальных фактов; плохая новость заключается в том, что в какой-то момент наступает предел, и больше нельзя ссылаться на посылки. Оказывается, подавляющее большинство математических утверждений можно подкрепить несколькими утверждениями, аксиомами теории множеств: поскольку аксиомы — это посылки, которые нельзя доказать, интересно задаться вопросом, что вообще оправдывает веру в них. Однако математические аксиомы менее спорны, чем, скажем, мораль, поэтому гораздо проще верить в формализацию математики (где все согласны с посылками, поэтому мы «просто» проверяем рассуждения), чем делать то же самое для юридических аргументов (где часто обе стороны исходят из разных посылок). Однако хорошая новость заключается в том, что доказательство во многом напоминает компьютерную программу: зная теорему, мы можем «импортировать» её в более крупное доказательство аналогично тому, как мы импортируем pandas в наш код.
  2. Если проверка доказательств полностью алгоритмична, можем ли мы также написать алгоритм для доказательства всех истин? В общем случае, нет. Существование истин, которые мы не можем доказать, вероятно, является одним из самых глубоких математических фактов прошлого века: это основной вывод теоремы Гёделя о неполноте. Более того, мы не знаем, истинны ли некоторые утверждения или ложны, поскольку наша лучшая система аксиом иногда не может принять решение (аксиома выбора — известный пример чего-то независимого от теории множеств).
  3. Можно ли доказать интересные вещи о самом понятии доказательства? Да! Хотя довод Чёрча, безусловно, является убедительным аргументом, на пути к доказательству своей знаменитой теоремы Гёдель доказал, что предикат IsProofOf(proof, statement) является алгоритмическим. Более того, существует целая логика доказуемости!
  4. Где я могу почитать больше? Мой любимый учебник для начинающих и среднего уровня — «Язык, доказательство и логика», который особенно ориентирован на студентов, не изучающих математику; «Вычислимость и логика» — это учебник среднего уровня, посвященный взаимосвязи между логикой, доказательством и вычислениями.

Благодарности

Благодарим Патрика Джона Чиа, Федерико Бьянки, Итана Розенталя, Райана Вилима и Дэвиса Трейбига за ценные отзывы по предыдущим версиям этого черновика. Если вас интересует пересечение генно-ориентированного искусственного интеллекта, рассуждений о распределенных системах и верификации, вы также можете ознакомиться с нашими исследованиями в Bauplan.

Для создания сопутствующего репозитория использовались помощники по программированию на основе искусственного интеллекта, но для написания текста помощник не использовался (за исключением проверки орфографии и исправления опечаток).

Источник: towardsdatascience.com

✅ Найденные теги: Атмосфера, новости, Подтверждение, Понимание

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых