\documentclass[japanese]{jnlp_3.8}
\usepackage{jnlpbbl_2.2}
\usepackage[dvipdfmx]{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{url}
\usepackage{array}
\usepackage{hangcaption_jnlp}
\usepackage{udline}
\setulminsep{1.2ex}{0.2ex}
\makeatletter
\let\MYcaption\@makecaption
\makeatother
\usepackage{subcaption}
\captionsetup{compatibility=false}
\makeatletter
\let\@makecaption\MYcaption
\makeatother
\setlength{\captionwidth}{\textwidth} %%%% subcaption かつ hangcaption の時
\allowdisplaybreaks

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% author's definition
%%%%\usepackage[dvipdfmx]{graphicx}
%%%%\usepackage{amsmath,amssymb,amsthm}% 数式関連のパッケージ
\usepackage{tcolorbox}
%%%%\usepackage{mathtools}
\usepackage{cleveref}
%%%%\usepackage{cite}
% \crefname{equation}{式}{式}% {環境名}{単数形}{複数形} \crefで引くときの表示
\crefname{equation}{}{}% {環境名}{単数形}{複数形} \crefで引くときの表示
\crefname{figure}{図}{図}% {環境名}{単数形}{複数形} \crefで引くときの表示
\crefname{table}{表}{表}% {環境名}{単数形}{複数形} \crefで引くときの表示
\crefname{algorithm}{Algorithm}{Algorithm}
\crefname{section}{}{}
\creflabelformat{section}{#2#1節#3}
\crefname{subsection}{}{}
\creflabelformat{subsection}{#2#1節#3}
\crefname{appendix}{付録}{付録}
%%%%\theoremstyle{definition}% 日本語用．定理とか斜体にならないようにする
%%%%\newtheorem{theorem}{定理}
%%%%\crefname{theorem}{定理}{定理}
%%%%\newtheorem{lemma}{補題}
%%%%\crefname{lemma}{補題}{補題}
%%%%\newtheorem{corollary}{系}
%%%%\crefname{corollary}{系}{系}
%%%%\newtheorem*{proof*}{証明}
%%%%\crefname{proof*}{証明}{証明}
%%%%\newtheorem{assumption}{仮定}
%%%%\crefname{assumption}{仮定}{仮定}
%%%%\newtheorem{definition}{定義}
%%%%\crefname{definition}{定義}{定義}
%%%%\newtheorem{remark}{注意}
%%%%\crefname{remark}{注意}{注意}
%%%%\newtheorem{proposition}{命題}
%%%%\crefname{proposition}{命題}{命題}
\newcommand{\crefpairconjunction}{と}
\newcommand{\crefrangeconjunction}{から}
\newcommand{\crefmiddleconjunction}{，}
\newcommand{\creflastconjunction}{，および}
%%%%\usepackage[T1]{fontenc}
%%%%\usepackage[utf8]{inputenc}
%%%%\usepackage{here}
%%%%\usepackage{caption}
%%%%\usepackage{subcaption}
%%%%\usepackage{placeins}
%%%%\usepackage{float}
%%%%\usepackage{mathrsfs}
%%%%\usepackage{mathtools}
%%%%\usepackage{ctable}
%%%%\usepackage{footnote}
%%%%\usepackage{footnote}
%%%%\usepackage{threeparttable}
\usepackage{colortbl}
\usepackage{environ}
\usepackage{booktabs}
%%%%\usepackage{diagbox} 
%%%%\usepackage{wrapfig} 
%%%%\usepackage{bbding}
%%%%\usepackage{pifont}
%%%%\usepackage{wasysym}
%%%%\usepackage{amssymb}
%%%%\usepackage{times}
%%%%\usepackage{soul}
%%%%\usepackage{url}
%%%%\usepackage{caption}
%%%%\usepackage{amsmath}
%%%%\usepackage{amsthm}
%%%%\usepackage{tabularx}
\usepackage{multirow}
\usepackage{fancybox}
%%%%\usepackage{mathtools}
%%%%\usepackage{bold-extra}
%%%%\usepackage{lipsum}
%%%%\usepackage{siunitx}
%%%%\usepackage[export]{adjustbox}
%%%%\usepackage{comment}
% ----- ICML colored -----
\newcommand*{\red}[1]{{\textcolor{red}{#1}}}
%%%%\newcommand*{\orange}[1]{{\textcolor{orange}{#1}}}
%%%%\newcommand*{\blue}[1]{{\textcolor{blue}{#1}}}
%%%%\newcommand*{\colorBaseline}[1]{{\color[HTML]{c3c0fc}{#1}}}
%%%%\newcommand*{\colorOurs}[1]{{\color[HTML]{4f42ff}{#1}}}
% -- ICML (brighter is better) --
%%%%\newcommand*{\cFirst}[0]{\cellcolor[HTML]{f5ffea}}
%%%%\newcommand*{\cSecond}[0]{\cellcolor[HTML]{d5efca}}
%%%%\newcommand*{\cThird}[0]{\cellcolor[HTML]{b5dfaa}}
%%%%\newcommand*{\cFourth}[0]{\cellcolor[HTML]{94c288}}
%%%%\newcommand*{\cFifth}[0]{\cellcolor[HTML]{4a6144}}
%%%%\newcommand*{\cBase}[0]{\cellcolor[HTML]{f5f5f5}}
\NewEnviron{alignSmall}{%
    \begin{align}
    \BODY
    \end{align}
}
%%%%\NewEnviron{gatherSmall}{%
%%%%    \BODY
%%%%    \end{gather}
%%%%}
% taken from https://tex.stackexchange.com/questions/544240/notation-for-arguments-by-means-of-ifthen-package
%%%%\newcommand*{\argument}[3][t]{%
%%%%   \centering
%%%%   \begingroup
%%%%   \def\and{\\}%
%%%%   \begin{tabular}[#1]{@{\enspace}c@{\enspace}}
%%%%   #2 \\
%%%%   \hline
%%%%   #3
%%%%   \end{tabular}%
%%%%   \endgroup
%%%%}
% --------------------------------- ICML 2023 fomral logic --------------------------
\usepackage{bussproofs}
\usepackage{stackengine}
\usepackage{varwidth}
% https://tex.stackexchange.com/questions/58033/numbering-sequent-proofs-like-equations
\newenvironment{mathprooftree}
  {\varwidth{.9\textwidth}\centering\leavevmode}
  {\DisplayProof\endvarwidth}
% ----------------------------------- 2024 NeurIPS ---------------------------------------
\newcommand*{\colorGreenDeductionRule}[1]{{\textcolor[HTML]{3e9288}{#1}}}
%%%%\newcommand*{\colorOrangeSyllogism}[1]{{\textcolor[HTML]{ee7e2d}{#1}}}
\newcommand*{\colorBlueFacts}[1]{{\textcolor[HTML]{00b1f0}{#1}}}
\newcommand*{\colorRedLogicalSteps}[1]{{\textcolor[HTML]{f52727}{#1}}}
\newcommand*{\colorVioletHypothesis}[1]{{\textcolor[HTML]{4545c2}{#1}}}
%%%%\newcommand*{\coolFont}[1]{{\bfseries\scshape{#1}}}
\usepackage{bbm}
%%%%\usepackage{setspace}
\newcommand*{\numBenchmarks}{31}
\newcommand*{\PLD}[0]{Formal Logic Deduction Diverse}
\newcommand*{\PLDItalic}[0]{Formal Logic \textit{D}eduction \textit{D}iverse}
\newcommand*{\PLDAbbr}[0]{FLD$_{\times \mathbbm{2}}$}
\newcommand*{\ALT}[0]{ALT}
\newcommand*{\ALTJP}[0]{追加論理学習}
%%%%\newcommand*{\AGGBenchName}[0]{BenchSet}
%%%%\newcommand*{\llamaTwoBaseline}[0]{LLaMA2-7B}
%%%%\newcommand*{\llamaTwoRTSingle}[0]{{$\oplus$ {ALT}-RT} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaTwoRTALT}[0]{{$\oplus$ \ALT-RT}}
%%%%\newcommand*{\llamaTwoPRSingle}[0]{{$\oplus$ \ALT-PRP} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaTwoPRALT}[0]{{$\oplus$ \ALT-PRP}}
%%%%\newcommand*{\llamaTwoFLDSingle}[0]{{$\oplus$ {ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaTwoFLDALT}[0]{{$\oplus$ \ALT-FLD}}
%%%%\newcommand*{\llamaTwoPLDSingle}[0]{{$\oplus$ {ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaTwoPLDALT}[0]{{$\oplus$ \textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\llamaTwoPLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\llamaTwoLargeBaseline}[0]{LLaMA2-70B}
%%%%\newcommand*{\llamaTwoLargeRTSingle}[0]{{$\oplus${ALT}-RT} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaTwoLargeRTALT}[0]{{$\oplus$\ALT-RT}}
%%%%\newcommand*{\llamaTwoLargePRSingle}[0]{{$\oplus$ PRP} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaTwoLargePRALT}[0]{{$\oplus$\ALT-PRP}}
%%%%\newcommand*{\llamaTwoLargeFLDSingle}[0]{{$\oplus${ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaTwoLargeFLDALT}[0]{{$\oplus$\ALT-FLD}}
%%%%\newcommand*{\llamaTwoLargePLDSingle}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaTwoLargePLDALT}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\llamaTwoLargePLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\llamaThreeBaselineWoSize}[0]{LLaMA-3.1}
%%%%\newcommand*{\llamaThreePLDSingleWoSize}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaThreePLDALTWoSize}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\llamaThreePLDALTWoSizeBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
\newcommand*{\llamaThreeBaseline}[0]{LLaMA-3.1-8B}
%%%%\newcommand*{\llamaThreeRTSingle}[0]{{$\oplus${ALT}-RT} $_{\text{w/o RecAdam}}$}
\newcommand*{\llamaThreeRTALT}[0]{{$\oplus$\ALT-RT}}
\newcommand*{\llamaThreePRSingle}[0]{{$\oplus$\ALT-PRP} $_{\text{w/o RecAdam}}$}
\newcommand*{\llamaThreePRALT}[0]{{$\oplus$\ALT-PRP}}
%%%%\newcommand*{\llamaThreeFLDSingle}[0]{{$\oplus${ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaThreeFLDALT}[0]{{$\oplus$\ALT-FLD}}
%%%%\newcommand*{\llamaThreePLDSingle}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaThreePLDALT}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
\newcommand*{\llamaThreePLDALTWoBold}[0]{{$\oplus$ALT-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\llamaThreePLDALTAblation}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
\newcommand*{\llamaThreePLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
\newcommand*{\llamaThreePLDALTWODOne}[0]{{ w/o  指針1}}
\newcommand*{\llamaThreePLDALTWODTwo}[0]{{ w/o  指針2}}
\newcommand*{\llamaThreePLDALTWODThreeRules}[0]{{ w/o  指針3(規則)}}
\newcommand*{\llamaThreePLDALTWODThreeSteps}[0]{{ w/o  指針3(ステップ数)}}
%%%%\newcommand*{\llamaThreePLDALTWODThreeRulesSteps}[0]{{ w/o  指針3(規則).steps}}
\newcommand*{\llamaThreePLDALTWODFour}[0]{{ w/o  指針4}}
%%%%\newcommand*{\llamaThreePLDALTWODFourTrnslOld}[0]{{ w/o  指針4.trnsl-old}}
%%%%\newcommand*{\llamaThreePLDALTOrg}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}} 100k}
%%%%\newcommand*{\llamaThreePLDALTWODOneOrg}[0]{{ w/o  指針1 100k}}
%%%%\newcommand*{\llamaThreePLDALTWODOneHalf}[0]{{ w/o  指針1 50k}}
%%%%\newcommand*{\llamaThreePLDALTWODOneQuarter}[0]{{ w/o  指針1 25k}}
\newcommand*{\llamaThreeLargeBaseline}[0]{LLaMA-3.1-70B}
%%%%\newcommand*{\llamaThreeLargeRTSingle}[0]{{$\oplus${ALT}-RT} $_{\text{w/o RecAdam}}$}
\newcommand*{\llamaThreeLargeRTALT}[0]{{$\oplus$\ALT-RT}}
\newcommand*{\llamaThreeLargePRSingle}[0]{{$\oplus$\ALT-PRP}$_{\text{w/o RecAdam}}$}
\newcommand*{\llamaThreeLargePRALT}[0]{{$\oplus$\ALT-PRP}}
%%%%\newcommand*{\llamaThreeLargeFLDSingle}[0]{{$\oplus${ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaThreeLargeFLDALT}[0]{{$\oplus$\ALT-FLD}}
%%%%\newcommand*{\llamaThreeLargePLDSingle}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\llamaThreeLargePLDALT}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
\newcommand*{\llamaThreeLargePLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\mistralBaselineWoSize}[0]{Mistral}
%%%%\newcommand*{\mistralPLDSingleWoSize}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\mistralPLDALTWoSize}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\mistralPLDALTWoSizeBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\mistralBaseline}[0]{Mistral-7B}
%%%%\newcommand*{\mistralRTSingle}[0]{{$\oplus${ALT}-RT} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\mistralRTALT}[0]{{$\oplus$\ALT-RT}}
%%%%\newcommand*{\mistralPRSingle}[0]{{$\oplus$ PRP} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\mistralPRALT}[0]{{$\oplus$\ALT-PRP}}
%%%%\newcommand*{\mistralFLDSingle}[0]{{$\oplus${ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\mistralFLDALT}[0]{{$\oplus$\ALT-FLD}}
%%%%\newcommand*{\mistralPLDSingle}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\mistralPLDALT}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\mistralPLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\mistralPLDALTWODOne}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}} w/o D1}
%%%%\newcommand*{\mistralPLDALTWODTwo}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}} w/o D2}
%%%%\newcommand*{\mistralPLDALTWODThreeRules}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}} w/o D3.rules}
%%%%\newcommand*{\mistralPLDALTWODThreeSteps}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}} w/o D3.steps}
%%%%\newcommand*{\mistralPLDALTWODThreeRulesSteps}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}} w/o D3.rules.steps}
%%%%\newcommand*{\mistralPLDALTWODFour}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}} w/o D4}
%%%%\newcommand*{\mistralPLDALTWODFourTrnslOld}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}} w/o D4.trnsl-old}
%%%%\newcommand*{\mistralLargeBaseline}[0]{Mixtral-8x7B}
%%%%\newcommand*{\mistralLargeRTSingle}[0]{{$\oplus${ALT}-RT} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\mistralLargeRTALT}[0]{{$\oplus$\ALT-RT}}
%%%%\newcommand*{\mistralLargePRSingle}[0]{{$\oplus$ PRP} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\mistralLargePRALT}[0]{{$\oplus$\ALT-PRP}}
%%%%\newcommand*{\mistralLargeFLDSingle}[0]{{$\oplus${ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\mistralLargeFLDALT}[0]{{$\oplus$\ALT-FLD}}
%%%%\newcommand*{\mistralLargePLDSingle}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\mistralLargePLDALT}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\mistralLargePLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\qwenBaselineWoSize}[0]{Qwen1.5}
%%%%\newcommand*{\qwenPLDSingleWoSize}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenPLDALTWoSize}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenPLDALTWoSizeBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\qwenBaseline}[0]{Qwen1.5-7B}
%%%%\newcommand*{\qwenRTSingle}[0]{{$\oplus${ALT}-RT} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenRTALT}[0]{{$\oplus$\ALT-RT}}
%%%%\newcommand*{\qwenPRSingle}[0]{{$\oplus$ PRP} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenPRALT}[0]{{$\oplus$\ALT-PRP}}
%%%%\newcommand*{\qwenFLDSingle}[0]{{$\oplus${ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenFLDALT}[0]{{$\oplus$\ALT-FLD}}
%%%%\newcommand*{\qwenPLDSingle}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenPLDALT}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenPLDALTWoBold}[0]{{$\oplus$ALT-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenPLDALTAblation}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenPLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\qwenPLDALTWODOne}[0]{{ w/o  設計指針1}}
%%%%\newcommand*{\qwenPLDALTWODTwo}[0]{{ w/o  設計指針2}}
%%%%\newcommand*{\qwenPLDALTWODThreeRules}[0]{{ w/o  設計指針3(規則)}}
%%%%\newcommand*{\qwenPLDALTWODThreeSteps}[0]{{ w/o  設計指針3(ステップ数)}}
%%%%\newcommand*{\qwenPLDALTWODThreeRulesSteps}[0]{{ w/o  設計指針3(規則).steps}}
%%%%\newcommand*{\qwenPLDALTWODFour}[0]{{ w/o  設計指針4}}
%%%%\newcommand*{\qwenPLDALTWODFourTrnslOld}[0]{{ w/o  設計指針4.trnsl-old}}
%%%%\newcommand*{\qwenLargeBaseline}[0]{Qwen1.5-72B}
%%%%\newcommand*{\qwenLargeRTSingle}[0]{{$\oplus${ALT}-RT} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenLargeRTALT}[0]{{$\oplus$\ALT-RT}}
%%%%\newcommand*{\qwenLargePRSingle}[0]{{$\oplus$ PRP} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenLargePRALT}[0]{{$\oplus$\ALT-PRP}}
%%%%\newcommand*{\qwenLargeFLDSingle}[0]{{$\oplus${ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenLargeFLDALT}[0]{{$\oplus$\ALT-FLD}}
%%%%\newcommand*{\qwenLargePLDSingle}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenLargePLDALT}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenLargePLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\qwenTwoBaselineWoSize}[0]{Qwen2}
%%%%\newcommand*{\qwenTwoPLDSingleWoSize}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenTwoPLDALTWoSize}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenTwoPLDALTWoSizeBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\qwenTwoBaseline}[0]{Qwen2-7B}
%%%%\newcommand*{\qwenTwoRTSingle}[0]{{$\oplus${ALT}-RT} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenTwoRTALT}[0]{{$\oplus$\ALT-RT}}
%%%%\newcommand*{\qwenTwoPRSingle}[0]{{$\oplus$ PRP} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenTwoPRALT}[0]{{$\oplus$\ALT-PRP}}
%%%%\newcommand*{\qwenTwoFLDSingle}[0]{{$\oplus${ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenTwoFLDALT}[0]{{$\oplus$\ALT-FLD}}
%%%%\newcommand*{\qwenTwoPLDSingle}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenTwoPLDALT}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenTwoPLDALTWoBold}[0]{{$\oplus$ALT-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenTwoPLDALTAblation}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenTwoPLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%\newcommand*{\qwenTwoPLDALTWODOne}[0]{{ w/o  設計指針1}}
%%%%\newcommand*{\qwenTwoPLDALTWODTwo}[0]{{ w/o  設計指針2}}
%%%%\newcommand*{\qwenTwoPLDALTWODThreeRules}[0]{{ w/o  設計指針3(規則)}}
%%%%\newcommand*{\qwenTwoPLDALTWODThreeSteps}[0]{{ w/o  設計指針3(ステップ数)}}
%%%%\newcommand*{\qwenTwoPLDALTWODThreeRulesSteps}[0]{{ w/o  設計指針3(規則).steps}}
%%%%\newcommand*{\qwenTwoPLDALTWODFour}[0]{{ w/o  設計指針4}}
%%%%\newcommand*{\qwenTwoPLDALTWODFourTrnslOld}[0]{{ w/o  設計指針4.trnsl-old}}
%%%%\newcommand*{\qwenTwoLargeBaseline}[0]{Qwen2-72B}
%%%%\newcommand*{\qwenTwoLargeRTSingle}[0]{{$\oplus${ALT}-RT} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenTwoLargeRTALT}[0]{{$\oplus$\ALT-RT}}
%%%%\newcommand*{\qwenTwoLargePRSingle}[0]{{$\oplus$ PRP} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenTwoLargePRALT}[0]{{$\oplus$\ALT-PRP}}
%%%%\newcommand*{\qwenTwoLargeFLDSingle}[0]{{$\oplus${ALT}-FLD} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenTwoLargeFLDALT}[0]{{$\oplus$\ALT-FLD}}
%%%%\newcommand*{\qwenTwoLargePLDSingle}[0]{{$\oplus${ALT}-{{FLD}$_{\times \mathbbm{2}}$}} $_{\text{w/o RecAdam}}$}
%%%%\newcommand*{\qwenTwoLargePLDALT}[0]{{$\oplus$\textbf{ALT}-{{FLD}$_{\times \mathbbm{2}}$}}}
%%%%\newcommand*{\qwenTwoLargePLDALTBold}[0]{$\oplus$\textbf{ALT}-\textbf{{FLD}$_{\times \mathbbm{2}}$}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\Volume{32}
\Number{2}
\Month{June}
\Year{2025}
%%%%\Issuetitle{「　　　　」特集号}

\received{2025}{1}{6}
\accepted{2025}{2}{17}

\setcounter{page}{520}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\jsubject{一般論文（査読有）}
\jtitle{大規模言語モデルに推論を教えるための人工論理推論コーパスを用いたアプローチ}
\jauthor{森下　皓文\affiref{Author_1} \and 森尾　　学$^{*}$\affiref{Author_1} \and 山口　篤季$^{*\dagger}$\affiref{Author_2} \and 十河　泰弘\affiref{Author_1}}
\jabstract{%
大規模言語モデル (LLM) はその豊富な知識により，様々な既知の課題を解決した．しかしながら LLM は，推論を用いて新規な課題を解くことを苦手とする．我々はこの問題に対して，「ルールベースで生成した人工論理推論サンプルの学習によって，LLM の推論能力を向上させる」というアプローチを提案する．まず，「どのようなサンプルを設計すれば良いか？」という議論から始める．記号論理学や過去の哲学的論考，また近年の先行研究や我々の予備実験から得られている知見を参照しつつ，設計の指針を打ち立てていく．次に，この設計指針に基づき，多様な推論規則からなる深い推論サンプルを大量に自動生成し，人工論理推論コーパス \textbf{\PLDItalic} (\PLDAbbr) を構築する．最後に，\PLDAbbr での追加学習が LLM の推論能力を向上させられることを確認する．その結果，LLaMA-3.1 (8B/70B)に対して，論理推論で最大 30 ポイント，数学で最大 7 ポイント，コーディングで最大 10 ポイント，BBH ベンチマーク群で 5 ポイント，の精度向上を達成した．
\renewcommand{\thefootnote}{}
\footnote[0]{$^*$ Equal Contribution}
\footnote[0]{$^\dagger$ Work done at Hitachi}
\footnote[0]{本稿は以下の発表を基に構成した：\cite{morishita2023NLP-FLD,morishita2023JSAI-FLD,morishita_2024_NLP_JFLD,morishita_2024_JSAI_FLD_diverse,pmlr-v202-morishita23a,morishita_2024_NeurIPS_FLD_diverse,morishita-etal-2024-jfld}}
\renewcommand{\thefootnote}{\arabic{footnote}}
}

\jkeywords{巨大言語モデル，推論，コーパス，データセット}

\etitle{Toward Enhancing Reasoning Capabilities of LLMs: \\ An Approach via Synthetic Logic Corpus}
\eauthor{Terufumi Morishita\affiref{Author_1} \and Gaku Morio$^{*}$\affiref{Author_1} \and Atsuki Yamaguchi$^{*\dagger}$\affiref{Author_2} \and Yasuhiro Sogawa\affiref{Author_1}} 
\eabstract{%
Large language models (LLMs) are capable of solving a wide range of tasks, yet they have struggled with reasoning. To address this, we propose \textbf{Additional Logic Training (\ALT)}, which aims to enhance LLMs' reasoning capabilities by program-generated logical reasoning samples. We first establish principles for designing high-quality samples by integrating symbolic logic theory and previous empirical insights. Then, based on these principles, we construct a synthetic corpus named \textbf{\PLDItalic} (\PLDAbbr). Finally, we empirically show that \ALT on \PLDAbbr \ substantially enhances the reasoning capabilities of state-of-the-art LLMs, including \llamaThreeLargeBaseline. Improvements include gains of up to 30 points on logical reasoning benchmarks, up to 10 points on math and coding benchmarks, and 5 points on the benchmark suite BBH.
}
\ekeywords{Large Language Model, Reasoning, Corpus, Dataset}

\headauthor{森下, 森尾, 山口, 十河}
\headtitle{大規模言語モデルに推論を教えるための人工論理推論コーパスを用いたアプローチ}

\affilabel{Author_1}{日立製作所先端 AI イノベーションセンタ}{Advanced AI Innovatoin Center, Hitachi}
\affilabel{Author_2}{シェフィールド大学}{The University of Sheffield \ \ \ \ }


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\maketitle



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{はじめに} \label{sec:introduction}

人工知能の実現に向けて古くから，知識と推論という要素が不可欠だと考えられてきた 
\linebreak
\cite{Mccarthy1959ProgramsWC,weizenbaum1966eliza,winograd1971procedures,colmerauer1973prolog,shortliffe1976computer,elkan1993building}．
知識とは例えば「質量を持つ物体は重力場を発生させる」「地球は質量を持つ」といった，この世界に関する事実を指す．
一方で推論とは，複数の事実を組み合わせることで新たな知識を得る思考形態である．
例えば上述の 2 つの事実から「地球は重力場を発生させる」という新たな知識を得る．

最近の観察によると，巨大言語モデル(Large Language Model, LLM)は，事前学習時に得た知識により類似の課題を解くことはできる一方で，推論を用いて新規の課題は解くことを苦手とする\cite{hodel2023response,dasgupta2023language,zhang2024careful}．
例えば，「有名な算数の問題をそのままの形で出題すれば解けるが，数字や人名を変更すると解けなくなる」\cite{razeghi2022impact,mirzadeh2024gsmsymbolicunderstandinglimitationsmathematical}，「（知識カットオフ以前の）過去年度のコーディング試験は解けるが，最新年度の試験は解けない」\cite{melanie2023blog}等である．
このような「LLMが推論を苦手とする」という観察結果が，近年多く得られている（\Cref{sec:LLM_does_not_reason}）．

LLMの推論能力が低い理由として「事前学習コーパス中に高品質な推論サンプルが不足している」ということが疑われる\cite{betz-etal-2021-critical}．
事前学習コーパスは主に人間が書いたテキストで構成されている．
その中でも，例えばオンライン討論等が推論のサンプルとしての役割を果たす可能性がある.
%%%%しかしながら，これら討論には，誤謬やバイアスが散見される\cite{hansson2004fallacies,Cheng:2017ud,guiacsu2018logical}．
    しかしながら，これら討論には，誤謬やバイアスが散見される (Hansson 2004; Cheng et al. 2017; Guiasu and Tindale 2018)．\nocite{hansson2004fallacies,Cheng:2017ud,guiacsu2018logical}
これは，人間が通常，厳密な推論をするのではなく，反射的に物事を考える\cite{kahneman2011thinking,SunsteinHastie2015,Paglieri2017}からである．

以上を考えると，LLMの推論能力を向上させる最も直截的な戦略は，「高品質な推論サンプルを用意して，LLMに学習させること」だと考えられる．
そこで本研究では，推論の中でも最も基本的な「論理推論」の高品質サンプルを用いた追加学習，すなわち，\textbf{\ALTJP }(\textbf{Additional Logic Training, \ALT}) を提案する（\Cref{fig:ALT_overview}）．
論理推論サンプルは，与えられた事実群を推論規則に従って組み合わせることで，与えられた仮説を証明（あるいは反証）する過程を示すものである．
このようなサンプルを用意するために，ルールベースによる自動生成のアプローチ\cite{clark2020transformers,betz-etal-2021-critical,tafjord-etal-2021-proofwriter}を採用する．
ルールベース自動生成は，推論規則に厳密に従ったサンプルを大量に用意できる，というメリットがある．
また，一定のランダム性を持たせることで，サンプルに多様性を持たせることも可能である．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 1
\begin{figure}[t]
\begin{center}
\includegraphics{32-2ia5f01.eps}
\end{center}
\hangcaption{\textbf{\ALTJP }(\textbf{Additional Logic Training, \ALT}) は，論理推論サンプルでの学習を通して，LLMの推論能力の向上を目指す．サンプル生成器がまず多段階演繹推論のサンプルを生成し（左），それを英語で書かれたサンプルに変換する（右）．LLMは，与えられた\textbf{\colorBlueFacts{事実}}から，与えられた\textbf{\colorVioletHypothesis{仮説}}を導出するために，\textbf{\colorRedLogicalSteps{論理ステップ}}を生成する．サンプル生成器は，\Cref{sec:design_principles}で確立される設計指針に従う．実際に生成されたサンプルを\Cref{appendix:fig:deduction_example,appendix:fig:deduction_example_JFLD}に示す．}
\label{fig:ALT_overview}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

ルールベース自動生成では，『事前に定義された設計』に従ってサンプルが生成される．
よって，このサンプル設計が必然的に，サンプルの品質を大きく決定づける．
そこで我々はまず，\textbf{「論理推論サンプルの理想的な設計とは何か」}を議論することから始める（\Cref{sec:design_principles}）．
まず，論理推論は，「事実の内容」ではなく「事実間の論理的な関係性」のみに着目する思考形態であるため，既知の事実も未知の事実も等しく取り扱うことができる．
このことは，既知の事実のみを取り扱う知識とは大きく異なる，論理推論の核心である．
そこで，LLMに対してこの論理推論の核心を教えるため，論理推論サンプルも未知の事実での推論を例示すべきである（\Cref{sec:principle_unseen}）．
次に，LLMに対して，「事実が不十分な場合は，新たな事実を導くことは\underline{できない}」ということを例示するためのサンプルも含めるべきである（\Cref{sec:principle_negatives}）．
更に，「推論規則」や「論理式を示す同義の言語表現」などはそれぞれ様々なパターンがありうるため，これらを網羅的に含めるべきである（\Cref{sec:principle_deduction_rules,sec:principle_linguistic_diversity}）．
我々は，これらのポイントを，論理推論サンプルの\textbf{設計指針}としてまとめる．
そして，この設計指針に従った論理推論サンプルを自動生成するための手法（プログラム）を開発し，論理推論サンプル10万件から構成される人工論理推論コーパス\textbf{\PLDItalic} (\PLDAbbr) を構築する（\Cref{sec:PLD}）．

次に，\ALTJP によってLLMの推論能力が向上することを実験により確認する（\Cref{sec:experiments,sec:results_and_discussions_method}）．
最先端のLLMすなわちLLaMA-3.1 (8B/70B) \ に対して，\PLDAbbr \ での\ALTJP を施すことにより，\numBenchmarks \ 種類の多様なベンチマークにおいて性能向上を確認した（\Cref{fig:performance_comparison}）．
また，既存の人工論理推論コーパスに比べて，\PLDAbbr はより大きな性能向上をもたらした．
これは，我々が提案する設計指針がLLMの推論を向上させる上で効果的であることを示している．
加えて，\ALTJP では「破滅的忘却を防止する手段を採ること」が極めて重要であることが分かった．
これは，「人工論理推論コーパスに含まれる未知の事実を覚えることによって，既存の事実を忘れていってしまう」という事態を防げるからだと考えている．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 2
\begin{figure}[t]
\begin{center}
\includegraphics{32-2ia5f02.eps}
\end{center}
\hangcaption{\llamaThreeLargeBaseline \ と，それに対して\PLDAbbr 上での\ALTJP を施したモデル(+\ALT) の精度．「Benchmark sets」中の「論理推論」「数学」「\dots」はそれぞれが，そのドメインの様々なベンチマークから構成されており（\Cref{appendix:tb:benchmarks}），ここでは平均精度を示す．結果の詳細は\Cref{tb:performance_aggregated,tb:performance_details} に示す．}
\label{fig:performance_comparison}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

最後に，\ALTJP により「どのようなタスクが」「なぜ」解けるようになるかを分析する（\Cref{sec:results_and_discussions_tasks}）．
論理推論タスクでは最大30ポイントという大幅な性能向上が得られた（\Cref{tb:which_task_logical_reasoning}）．
事例ごとの分析（\Cref{tb:case_study}）により，これらの性能向上は，設計指針で意図した「論理の基礎」をLLMが獲得したことによると示唆される．
また，驚くべきことに，人工論理推論コーパスのサンプルとは真逆の「結論から事実を予測する」仮説推論タスクでも性能が向上した．
数学では最大7ポイントの性能向上が得られた（\Cref{tb:which_task_math}）．
論理推論は数学の問題を解くための前提知識なので自然である．
コーディングでは最大10ポイントの性能向上が得られ，コーディング能力と論理推論能力の関係が示唆される（\Cref{tb:which_task_coding}）．
自然言語推論(NLI)タスクの性能向上（\Cref{tb:which_task_NLI}）は，
LLMが事前学習で元々獲得していた常識知識と，\ALTJP から新たに獲得した推論能力を，統合できた可能性を示唆する．
その他の様々なタスクでも性能向上が見られた一方で，向上幅は最大2ポイント程度と小さかった（\Cref{tb:which_task_others}）．
これは，\ALTJP により得られる推論能力をより効果的に「使いこなし」て多様な問題を解くために，今後の研究が必要であることを示唆する．

本研究の貢献を以下にまとめる．
\begin{itemize}
    \item 人工論理推論コーパスを用いた\textbf{\ALTJP }(\textbf{Additional Logic Training, \ALT}) を提案し，最先端のLLMの推論能力を向上させられることを確認した．
    \item 論理推論サンプルの確固たる設計指針を確立し，それに基づく人工論理推論コーパス\textbf{\PLDItalic} (\PLDAbbr) を構築した．\PLDAbbr \ による性能向上が既存コーパスよりも大きいことを確認し，設計指針の正しさを示した．
    \item 分析により，\ALTJP により強化されたLLMが，論理推論はもとより，数学やコーディング，NLI等の様々なタスクで性能が向上することを示した．
\end{itemize}
なお，コーパス・コード・学習済みモデルを公開する\footnote{\url{https://github.com/hitachi-nlp/FLD}}．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{論理推論サンプルをどう設計すべきか} \label{sec:design_principles}

ルールベース自動生成では，『事前に定義された設計』に従ってサンプルが生成される．
よって，このサンプル設計が必然的に，サンプルの品質を大きく決定づける．
しかしながら，先行研究\cite{clark2020transformers,betz-etal-2021-critical,tafjord-etal-2021-proofwriter}では，良い設計，すなわち，論理推論能力を獲得するために最適な設計とは何かについて，体系的な議論がなされてきていない．

そこで我々は，論理推論サンプルの設計を探求する．
このために，記号論理学や過去の哲学的論考，また近年の先行研究や我々の予備実験から得られている知見を参照しつつ議論しながら，設計の指針を打ち立てていく．
まず，論理推論は，事実間の論理的な関係性のみに着目する思考形態であるため，既存事実のみならず，未知の事実も取り扱うことができる．
このことは，既存の事実のみを取り扱う知識と大きく異なる，論理推論の核心である．
そこで，LLMに対してこの論理推論の核心を教えるため，論理推論サンプルも未知の事実での推論を例示すべきである（\Cref{sec:principle_unseen}）．
次に，LLMに対して，「前提事実が不十分な場合は結論を導いてはいけない」ということを教えるために，前提事実が不十分なサンプルも含めるべきである（\Cref{sec:principle_negatives}）．
更に，「推論規則」や「論理式を示す同義の言語表現」などはそれぞれ様々なパターンがありうるため，これらを網羅的に含めるべきである（\Cref{sec:principle_deduction_rules,sec:principle_linguistic_diversity}）.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{未知なる事実での推論を教える}   \label{sec:principle_unseen}

まず，以下の一段論理ステップを考えてみる：
{\small
\begin{equation}
    \begin{mathprooftree}
       \AxiomC{\stackanchor{ 1.地球は太陽を}{ 周回している}}
        \AxiomC{\stackanchor{ 2.もし地球が太陽を周回すれば，}{ 地球には四季がある．}}
        \BinaryInfC{ 地球には四季がある．}
    \end{mathprooftree}
    \label{eq:argument:first}
\end{equation}
}
2 つの前提事実から結論を論理的に導いており，妥当である．
次に，別の論理ステップを考える：
{\small
\begin{equation}
    \begin{mathprooftree}
       \AxiomC{\stackanchor{ 1.地球は太陽を}{ 周回している}}
        \AxiomC{\stackanchor{ 2.もし地球が太陽を周回すれば，}{ 地球には四季が\red{ない．}}}
        \BinaryInfC{ 地球には四季が\red{ない．}}
    \end{mathprooftree}
    \label{eq:argument:second}
\end{equation}
\par}
\noindent
前提事実 2 は誤りなので結論も誤りである．
しかしながら，\ul{もし仮に前提事実が正しかったとしたら}結論は論理的に出てくる．
よって\Cref{eq:argument:second}も依然として\underline{論理的には}妥当である．
最後に：
{\small
\begin{equation}
    \begin{mathprooftree}
       \AxiomC{\stackanchor{ 1.ぴよぴよがある}{ }}
        \AxiomC{\stackanchor{ 2.もしぴよぴよがあれば，}{ ぽよぽよもある．}}
        \BinaryInfC{ ぽよぽよがある．}
    \end{mathprooftree}
    \label{eq:argument:third}
\end{equation}
}
「ぴよぴよ」や「ぽよぽよ」は未知の何かであるが，それでもなお，\Cref{eq:argument:third}が論理的に妥当であることだけは分かる．

\crefrange{eq:argument:first}{eq:argument:third}は記号を用いて\textbf{演繹規則}に抽象化できる：
\begin{equation}
    \begin{mathprooftree}
        \AxiomC{$\mathcal{F}$}
        \AxiomC{$\mathcal{F} \rightarrow \mathcal{G}$}
        \RightLabel{\stackanchor{ modus ponens}{\tiny（モーダス・ポネンス）}}
        \BinaryInfC{$\mathcal{G}$}
    \end{mathprooftree}
    \label{eq:argument:modus_ponens}
\end{equation}
これまで見てきたように，演繹規則の論理的な妥当性はあくまで，前提事実から結論が「論理的に導かれるか」のみに依存しており，$\mathcal{F}$や$\mathcal{G}$の内容の「事実としての正しさ」（$\fallingdotseq$知識的な正しさ）には依存しない．
\textbf{すなわち，$\mathcal{F}$や$\mathcal{G}$の内容は任意のものが許される．}
$\mathcal{F}$や$\mathcal{G}$は任意であるので，特に未知のものでもよかった：例えば，「ぴよぴよ」とか「ぽよぽよ」といったような「今までに一度も遭遇したことがない未知のもの」に対しても，論理を辿ることで思考を進めることができる．
論理推論のこの性質は，既存事実のみを取り扱う知識とは対象的であり，未知なる問題を解く上で極めて重要となる．

さて，演繹規則\Cref{eq:argument:modus_ponens}を教えるために，どのようなサンプルが必要となるかを考える．
さしあたり，前提事実をプロンプトとして入力し，結論を生成させるタスクを想定する．

サンプル\Cref{eq:argument:first,eq:argument:second}から，一見，背後に潜む演繹規則\Cref{eq:argument:modus_ponens}を推察できるように思われる．
なぜならば，演繹規則\Cref{eq:argument:modus_ponens}は，サンプル\Cref{eq:argument:first,eq:argument:second}の両方ともを，説明することができるからである．

しかしながら，サンプル\Cref{eq:argument:first,eq:argument:second}の背後に潜む演繹規則として，例えば以下のようなものを考えることもできる：「$\mathcal{F}$と$\mathcal{F} \rightarrow \mathcal{G}$が前提事実として与えられ，\underline{かつ$\mathcal{F}$と$\mathcal{G}$に``地球''という単語が}\linebreak
\underline{含まれている場合に限り}，
結論$\mathcal{G}$を導いてよい」あるいは「\dots \ul{かつ天文学に関係する単語が含まれている場合に限り}\dots」というような演繹規則である．
これら演繹規則であっても，サンプル\Cref{eq:argument:first,eq:argument:second}の両方ともを説明することができる．
このように，与えられたサンプルから帰納的に一般化可能な演繹規則は，無数に存在する．
言い換えれば，\textbf{帰納には恣意性がある} \cite{hume1748enquiry,goodman1954fact,quine1969epistemology}．
従って，サンプル\Cref{eq:argument:first,eq:argument:second}を演繹規則\Cref{eq:argument:modus_ponens}のみに一般化させることはできない．

人間は，仮にサンプル\Cref{eq:argument:first,eq:argument:second}のみが与えられた場合であっても，無数の演繹規則の中から演繹規則\Cref{eq:argument:modus_ponens}のみを選び取ることができたかもしれない．
これがなぜかは諸説あるが，例えば「人間は単純な規則を求める」\cite{russel1946,wittgenstein1922tractatus} という説などがある．
理由がどうあれ，人間は，正しい演繹規則を選択するための選好を\underline{事前に}持ち合わせている．

一方，LLMはこのような選好を持たないため，サンプル\Cref{eq:argument:first,eq:argument:second}からどの演繹規則を選択するかは未知数（不定）である．
例えば$\mathcal{F},\mathcal{G}$に，「地球は\dots」のような特定の内容が入ったサンプルのみを学習すると，$\mathcal{F},\mathcal{G}$が「地球」を含む場合にのみ結論$\mathcal{G}$を導出する演繹規則を，選びかねない．
それでは，LLMに対して$\mathcal{F}$や$\mathcal{G}$が任意であると理解させるために必要なサンプルはどのようなものかというと：

\begin{tcolorbox}[left=3.0mm,right=3.0mm top=3.0mm,bottom=3.0mm,right=3.0mm]
\noindent \underline{\textbf{設計指針1}（未知なる事実での推論）}\ \ 
$\mathcal{F}$や$\mathcal{G}$に任意の内容を割り当てた大量のサンプルを用意する．これにより，LLMに対して，$\mathcal{F}$や$\mathcal{G}$がまさしく任意であることを正確に帰納せしめ，結果として，未知の事実に対しても推論ができるように育てる．
\end{tcolorbox}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{「前提事実が不十分な場合は結論を導けないこと」を教える}      \label{sec:principle_negatives}

LLMに対して，設計指針1に基づき，以下のようなサンプルを大量に学習させたとする：
\begin{equation}
    \begin{mathprooftree}
        \AxiomC{$\mathcal{F} \land \mathcal{G}$}
        \AxiomC{$(\mathcal{F} \land \mathcal{G}) \rightarrow \mathcal{H}$}
        \BinaryInfC{$\mathcal{H}$}
    \end{mathprooftree}
    \label{eq:argument:and_modus_ponens}
\end{equation}
ここで$\land$は論理積を表し，$\mathcal{F},\mathcal{G},\mathcal{H}$には任意の内容が割り当てられているとする．
この演繹規則も論理的に妥当であることに注意されたい．
さて，このLLMに対して，以下のような問題を与えたとする：
\begin{equation}
    \begin{mathprooftree}
        \AxiomC{$\mathcal{F}$}
        \AxiomC{$(\mathcal{F} \land \mathcal{G}) \rightarrow \mathcal{H}$}
        \BinaryInfC{$??$}
    \end{mathprooftree}
    \label{eq:argument:and_modus_ponens_collapsed}
\end{equation}
\Cref{eq:argument:and_modus_ponens}と比べると 1 つ目の前提事実の形が少し変わっており，
前提事実が不十分である（$\mathcal{G}$が足りない）ため，結論を論理的に導くことができない．
よって「何も出力しない」ことが正解である．

残念ながら，LLMは$\mathcal{H}$を出力してしまう場合が多い．
理由は以下である．
サンプル\Cref{eq:argument:and_modus_ponens}は，「\Cref{eq:argument:and_modus_ponens}の前提事実 2 つが入ってきたときに結論$\mathcal{H}$を生成してよいこと」を帰納せしめることはできる．
しかしながら，「\Cref{eq:argument:and_modus_ponens_collapsed}の前提事実が入ってきたときに結論$\mathcal{H}$を生成しては\underline{いけない}」ということは，\Cref{eq:argument:and_modus_ponens}からは帰納できない．
そのような情報はサンプル\Cref{eq:argument:and_modus_ponens}自体には含まれていなからである．

もちろん人間なら，サンプル\Cref{eq:argument:and_modus_ponens}のみを見せられた場合であっても，「問題\Cref{eq:argument:and_modus_ponens_collapsed}はサンプル\Cref{eq:argument:and_modus_ponens}には該当しない．よって，論理的に何も言えないのではないだろうか」というような推測をすることができるかもしれない．
しかしながら，LLMは，「該当するものが無いから論理的に何も言えないのではないだろうか」と推測するような機構を\underline{事前に}備えていない．
結果として，問題\Cref{eq:argument:and_modus_ponens_collapsed}が出されたときに，形が似ているサンプル\Cref{eq:argument:and_modus_ponens}と同じ回答を生成してしまう，ということが起こり得る．

LLMに対して，このような「論理的に何も言えない」ということを教えるためには，そのようなサンプル例を直接含める必要がある：

\begin{tcolorbox}[left=3.0mm,right=3.0mm top=3.0mm,bottom=3.0mm,right=3.0mm]
\noindent \underline{\textbf{設計指針2}（不十分な前提）}

\Cref{eq:argument:and_modus_ponens_collapsed}のような，前提事実が不十分なサンプルを含める．これらのサンプルにより，LLMに対して，「不十分な前提からは結論を導き出せないこと」を教える．
\end{tcolorbox}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{多様な演繹規則を教える}       \label{sec:principle_deduction_rules}

Modus ponens \Cref{eq:argument:modus_ponens}以外にも，様々な演繹規則が存在する：
\begin{align}
    \begin{mathprooftree}
    \Axiom $(\mathcal{F} \fCenter \land \mathcal{G})$
    \UnaryInf $\fCenter \mathcal{F}$
    \end{mathprooftree}
    \ 
    \begin{mathprooftree}
    \Axiom $(\mathcal{F} \fCenter \land \mathcal{G})$
    \RightLabel{\stackanchor{$\land$除去}{}}
    \UnaryInf $\fCenter \mathcal{G}$
    \end{mathprooftree}
    &
    \ \  \ \ \
    \begin{mathprooftree}
    \Axiom $(\mathcal{F} \rightarrow \mathcal{G}) \fCenter \land (\mathcal{G} \rightarrow \mathcal{H})$
    \RightLabel{\stackanchor{ 三段論法}{}}
    \UnaryInf $\mathcal{F} \fCenter \rightarrow \mathcal{H}$
    \end{mathprooftree}
    \nonumber
    \\
    \begin{mathprooftree}
    \Axiom $\mathcal{F} \fCenter \rightarrow \mathcal{G}$
    \RightLabel{\stackanchor{ 対偶}{}}
    \UnaryInf $\neg \mathcal{G} \fCenter \rightarrow \neg \mathcal{F}$
    \end{mathprooftree}
    &
    \ \  \ \ \
    \begin{mathprooftree}
    \Axiom $\neg(\mathcal{F} \fCenter \lor \mathcal{G})$
    \UnaryInf $\neg \mathcal{F} \fCenter \land \neg \mathcal{G}$
    \end{mathprooftree}
    \
    \begin{mathprooftree}
    \Axiom $\neg(\mathcal{F} \fCenter \land \mathcal{G})$
    \RightLabel{\stackanchor{ ド・モルガンの法則}{}}
    \UnaryInf $\neg \mathcal{F} \fCenter \lor \neg \mathcal{G}$
    \end{mathprooftree}
    \label{eq:argument:others}   
\end{align}
ここで$\lor$は論理和を，$\neg$は否定を表す．
実際のところ，前提と結論に現れうる論理式は無限にあるため，演繹規則も無限に存在する．
しかしながら，LLMに対して，無限個の演繹規則を\underline{直接}覚えさせることは，明らかに不可能である．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 3
\begin{figure}[b]
\begin{center}
\includegraphics{32-2ia5f03.eps}
\end{center}
\hangcaption{公理系による多段演繹推論（左）は，その他の任意の演繹規則（右）を表現できる．他の演繹規則を公理系によって表現した例は，\Cref{appendix:argument:proofs}を参照のこと．}
\label{fig:proof_syllogism}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

無限個の演繹規則を直接教える代わりに，別のアプローチを取ることができる．
いま，多段演繹推論（\Cref{fig:proof_syllogism}左）を考えてみる．
多段演繹推論では，与えられた前提事実群をスタート地点として，演繹規則を複数ステップ積み重ねることにより，結論を導く.
図では，$(\mathcal{F}\rightarrow\mathcal{G})\land(\mathcal{G}\rightarrow\mathcal{H})$という与えられた事実からスタートして，最終的に結論$\mathcal{F}\rightarrow\mathcal{H}$を導いている．
ここで，前提と結論がちょうど，\Cref{eq:argument:others}で見た三段論法の形になっていることに気がつく．
実は，三段論法のような「複雑な」演繹規則は，より「原子的な」演繹規則による多段演繹推論によって表現できることが知られている：

\begin{tcolorbox}[left=3.0mm,right=3.0mm top=3.0mm,bottom=3.0mm,right=3.0mm]
\noindent \underline{\textbf{定理1}（一階述語論理の完全性, G{\"{o}}del, 1929）}

任意の妥当な演繹規則は，公理系から構成された多段演繹推論によって表現できる．
\end{tcolorbox}

%%%%ここで公理系とは，「原始的な」演繹規則の集合（\Cref{appendix:fig:argument:axioms}）のことである
    ここで公理系とは，「原始的な」演繹規則の集合（\Cref{appendix:arguments:all}a）のことである
\footnote{本研究は，古典論理の自然演繹法による定式化に話を限る．}．
他の演繹規則を公理系によって表現した例は，\Cref{appendix:argument:proofs}を参照のこと．
なお，公理系の多段演繹推論で表現される，より「複雑な」演繹規則は，「定理」と呼ばれる．

完全性定理によると，公理系に含まれる演繹規則さえうまく扱えるようになれば，他の演繹規則も（その都度，公理系による適切な多段演繹推論を構築することにより）実効的に扱えることになる．
そこで，

\begin{tcolorbox}[left=3.0mm,right=3.0mm top=3.0mm,bottom=3.0mm,right=3.0mm]
\noindent \underline{\textbf{設計指針3}（公理系）}

サンプルは，公理系から構成される多段演繹推論とする．これにより，LLMに対して，公理系による多段演繹推論をうまく構築することを学習させる．
\end{tcolorbox}

多段演繹推論において，前提から結論に至る論理ステップ数$s$は，問題によって大きく異なる．
ここでもLLMは，学習サンプルに含まれる最大ステップ数$s_{\mathrm{max}}$を大きく超えた推論を実行できない事が多い\cite{zhou2024transformers,NEURIPS2022_fb7451e4}．
なぜならば，$s\leq s_{\mathrm{max}}$の推論は果たして$s\leq s_{\mathrm{max}}$だから許されていたのか，あるいは$s>s_{\mathrm{max}}$でも適用可能なのかどうかは，$s \leq s_{\mathrm{max}}$のサンプルそれら自体からは帰納できないからである．
そこで：

\begin{tcolorbox}[left=3.0mm,right=3.0mm top=3.0mm,bottom=3.0mm,right=3.0mm]
\noindent \underline{\textbf{設計指針3$'$}（多様な論理ステップ）}
\ \ 多様な論理ステップ数$s$を含める．
\end{tcolorbox}

理想的にはこれで十分であるが，LLMはそもそも，ステップ数$s$が大きい多段演繹推論の構築を苦手とする \cite{gontier2020measuring}．
結果としてLLMは，公理系の多段演繹推論で表現した場合のステップ数$s$が大きくなるような定理を，扱えなくなってしまう可能性がある．
よって，重要な定理に関しては，それら自体を直接教えてしまう方が安全である．

\begin{tcolorbox}[left=3.0mm,right=3.0mm top=3.0mm,bottom=3.0mm,right=3.0mm]
\noindent \underline{\textbf{設計指針3$''$}（代表的な定理）}

代表的な定理（三段論法・対偶・ドモルガンの法則等）を含めておく．
\end{tcolorbox}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{論理式を表現する多様な同義表現を教える}        \label{sec:principle_linguistic_diversity}

論理式$\mathcal{F} \rightarrow \mathcal{G}$を表現する自然言語は，``If $\mathcal{F}$ then $\mathcal{G}$'', ``$\mathcal{F}$ leads to $\mathcal{G}$'', and ``$\mathcal{F}$ results in $\mathcal{G}$''等，多様な同義表現があり得る．
事前学習直後のLLMならば，このような同義表現を認識することは容易である．
しかし，特定の言語表現のみを含んだ論理推論サンプルを大量に学習すると，それら言語表現に過学習して，結果として，これら言語表現のみに反応する機械に育ってしまうことがあり得る\cite{zhang2022paradox,yuan2023can}．
これを防ぐために：

\begin{tcolorbox}[left=3.0mm,right=3.0mm top=3.0mm,bottom=3.0mm,right=3.0mm]
\noindent \underline{\textbf{設計指針4}（多様な同義表現）}
 \ \ 論理式を表す多様な同義表現を含める．
\end{tcolorbox}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{設計指針に基づく人工論理推論コーパスの構築} \label{sec:PLD}

前章で確立した設計指針に基づく論理推論サンプルを作成する．
このために，ルールベース自動生成のアプローチ\cite{clark2020transformers,betz-etal-2021-critical,tafjord-etal-2021-proofwriter}を採用する．
自動生成は，演繹規則に厳密に従ったサンプルを大量に用意できる，というメリットがある．
また，一定のランダム性を持たせることで，サンプルに多様性を持たせることも可能である．

\Cref{sec:FLD_generator}で自動生成手法を簡単に述べる（詳細は\Cref{appendix:sec:FLD_generator}）．
既存手法では設計指針に従ったサンプルを生成することはできないため，完全に新規の手法を提案する．
なお，実際に生成されたサンプルの例を\Cref{appendix:fig:deduction_example}に示す．
\Cref{sec:corpora_comparison}では，生成されたサンプル群，すなわち\textbf{人工論理推論コーパス\PLDAbbr(\PLD)}と，既存コーパスとを比較する（簡単には\Cref{tb:corpora}）．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{自動生成手法}   \label{sec:FLD_generator}

まず，\Cref{fig:ALT_overview}左に示すような，論理式で書かれた多段演繹推論を生成する．
多段演繹推論とは，前提事実群に対して\textbf{\colorGreenDeductionRule{演繹規則}}を複数ステップ適用することにより，結論を導くものであった．
各ステップで使われる演繹規則は，公理系または代表的な定理から，ランダムに選択する．
これにより，\textbf{公理系や代表的な定理から構築される，多様な多段演繹推論が生成される（設計指針3, 3$''$）}．
また，ステップ数は指定された範囲からランダムに選ぶので，\textbf{多様なステップ数の多段演繹推論が生成される（設計指針3$'$）}．

次に，各論理式を英語の表現に変換する．
このために，各論理式に対応する英語表現のテンプレートを複数，人手で用意しておく．
例えば，「$\mathcal{F} \rightarrow \mathcal{G}$」に対して「If $\mathcal{F}$, then $\mathcal{G}$」「$\mathcal{F}$ leads to $\mathcal{G}$」「$\mathcal{F}$ results in $\mathcal{G}$」などである．
このテンプレートを豊富にすることで，\textbf{「論理式を表現する多様な同義表現」（設計指針4）}が実現できる．
各論理式に対して，これらテンプレート群からランダムに 1 つを選択する．
そして，$\mathcal{F}$や$\mathcal{G}$などの各記号に対して，「フィリピンバナナが激しく踊る」「ヒマラヤ山脈が気怠げに読書する」といった，語彙から（一定の文法制約下で）\textbf{ランダムに構築された任意の事実（設計指針1）}を割り当てる．
なお，テンプレートと語彙を日本語にすることで，日本語のサンプルを作成することも可能である（\Cref{appendix:fig:deduction_example_JFLD}）．

最後に，以上から作られた英語の多段演繹推論を基に，論理推論サンプル（\Cref{fig:ALT_overview}右）を生成する：
\begin{itemize}
    \item 多段演繹推論の前提事実群を，論理推論サンプルの\textbf{\colorBlueFacts{「事実」}}として用いる．
    \item 多段演繹推論の結論を，論理推論サンプルの\textbf{\colorVioletHypothesis{「仮説」}}として用いる．
    \item 多段演繹推論の中間的な論理ステップを，論理推論サンプルの\textbf{\colorRedLogicalSteps{「論理ステップ」}}として用いる．
\end{itemize}
この論理推論サンプルでは事実から仮説を証明できるが，「事実から仮説を反証できるサンプル」や\textbf{「事実が不十分で証明も反証もできない場合のサンプル（設計指針2）」}も作成する．

なお，設計指針2に関連して，以下の工夫もしている．
多段演繹推論の前提事実群に加えて，不十分な事実を模擬した「ノイズ事実群」もサンプルに含めておく．
LLMは，各論理ステップにおいて，「ノイズ事実群の存在下であっても，結論を導くのに十分な前提事実のみを選び取る」ことが求められる．
よって，間接的に，「前提事実が不十分な場合は結論を導けないこと」を教えることに繋がる．
ノイズ事実としては，「前提事実とよく似ているが，情報が欠落した論理式」を，ルールベースで生成する．
例えば，前提事実$\mathcal{F} \land \mathcal{G}$に対して情報が欠落した$\mathcal{F}$などである．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 1
\begin{table}[b]
\input{05table01.tex}%
\hangcaption{\PLDAbbr \ と既存コーパスの比較．設計指針の観点からまとめなおしている．最後の行にはablationコーパス，すなわち，\PLDAbbr \ から，ある設計指針を取り除いたものを示す．}
\label{tb:corpora}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{既存コーパスとの比較}   \label{sec:corpora_comparison}

\Cref{tb:corpora}にて，設計指針の観点からまとめ直した，\PLDAbbr \ と既存コーパス\cite{clark2020transformers,bao2022multi}の比較を示す．
より詳細には以下の通りである：
{\setlength{\leftmargini}{1\Cwd}\setlength{\labelsep}{0pt}\renewcommand{\labelitemi}{\textbullet{\kern0.25\Cwd}}
\begin{itemize}
    \item 設計指針1：$\mathcal{F}$や$\mathcal{G}$に対して割り当てる事実を構築するために用いる語彙として，既存コーパスでは100語程度の小規模な語彙を用いたのに対し，\PLDAbbr \ では約10万語の大規模語彙 WordNet \cite{miller1995wordnet} を用いる．これにより，より多様な任意事実を割り当てる事ができる．
    \item 設計指針2：既存のコーパスはランダムに生成された論理式をノイズ事実として用いていたが，我々は，前節で述べたような，より「敵対的な」ノイズ事実を用いる．これによりLLMは，前提事実が十分な場合とそうでない場合の境界をより正確に学習できる．なお，ノイズ事実の数は，既存コーパスと同様に，各サンプル毎に，0から20の範囲からランダムに選択する．
%%%%    \item 設計指針3-3$''$：既存のコーパスは2個程度の少数の演繹規則（\Cref{appendix:fig:argument:implication}）しか使用しなかったのに対し，
        \item 設計指針3--3$''$：既存のコーパスは2個程度の少数の演繹規則（\Cref{appendix:arguments:all}b）しか使用しなかったのに対し，
我々は一階述語論理の公理系と代表的な定理を含めた，
%%%%約50個の演繹規則（\Cref{appendix:fig:argument:axioms}）を含める．
    約50個の演繹規則（\Cref{appendix:arguments:all}a）を含める．
論理ステップ数は，サンプル毎に，1から8の範囲からランダムに選択する．
    \item 設計指針4：既存コーパスは論理式あたり10件未満の言語表現を用いたが，我々は数十件程度\footnote{テンプレートは入れ子構造を持つため，組み合わせ的に多様な同義表現が生成される（\Cref{appendix:sec:FLD_generator_linguistic_diversity}）．言語表現の正確な数を数えることは困難であるが，単純な変種も含めると少なくとも数十件程度の表現が確認されている．}の言語表現を用いる．
\end{itemize}
}%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験設定} \label{sec:experiments}

\ALTJP による効果を確認するための実験を行った．
すなわち，LLMを人工論理推論コーパスで追加学習し，ベンチマーク性能が向上するかを確認した．

\noindent  \textbf{\underline{LLM:}} \ \ \ 
LLaMA-3.1-8BとLLaMA-3.1-70B\cite{llama3modelcard}を使用した．

\noindent  \textbf{\underline{人工論理推論コーパス}：}\ \ \   
\PLDAbbr \ と既存コーパスを比較する（\Cref{tb:corpora}）．
既存コーパスは，設計指針1から4のいずれかの点で，\PLDAbbr \ よりも不十分である．
それぞれのコーパスから10万サンプル（およそ0.1Bトークン前後）を学習データとして用いる．

\noindent  \textbf{\underline{学習方法：}}\ \ \   
\Cref{fig:ALT_overview}（右）に示すように，\textbf{\colorBlueFacts{事実}}と\textbf{\colorVioletHypothesis{仮説}}をプロンプト（=入力）として，\textbf{\colorRedLogicalSteps{論理ステップ}}と回答ラベル（\Cref{appendix:sec:answer_label}）を出力とする．
すなわちLLMは，与えられた事実に基づいて，与えられた仮説を示すための\footnote{もしくは「仮説を反証するため」「事実が足り無いので証明も反証もできないと述べる」ための，論理ステップ．}，論理ステップを生成することを学ぶ．
プロンプトはマスクした（損失関数の計算からは除外した）．
エポック数は1，バッチサイズは256，学習ステップ数は390（最初の200ステップは線形ウォームアップ）である．
学習率は，8Bモデルで2e-05，70Bモデルで3e-06である．
実装にはHuggingface Transformers \cite{wolf-et-al-2019-huggingface}を使用した．

\noindent \textbf{\underline{未知の事実を覚えさせない工夫：}} \ \ \  
事前学習はLLMに対して，知識，すなわち，既存の事実を学習させた．
一方で，\ALTJP で用いる人工論理推論コーパスには未知の事実が大量に含まれているため，LLMに未知の事実を学習させ，その代わりに既存事実を忘却させてしまう可能性がある．

これを防ぐため，まず，学習は1エポックとした．
2エポック以上学習すると，未知の事実を覚え始める恐れがあるからである．
次に，オプティマイザーとして，破滅的忘却の防止を目的とした「Recall Adam」 \cite{recadam}を採用した．
Recall Adamは，モデルのパラメータが事前学習時から大きく逸脱しないようにパラメータ更新に正則化をかけることで，破滅的忘却を防ぐ．
Recall Adamは，他にも幾つかの点において，LLMの追加学習に適している\footnote{破滅的忘却の防止策として一般的に用いられる「事前学習コーパスとターゲットコーパスのマルチタスク学習」は，事前学習コーパスが必要となる．
しかしながら，各研究機関が公開している事前学習済みLLMに関しては，その事前コーパスまでは公開されていないことが多い．
また，仮に公開されていたとしても，巨大で扱いづらい．
あるいは，別の破滅的忘却防止策として，モデルのアーキテクチャに変更を加えて，そこだけを学習する，という手法も有名である．
しかしこの手法は，アーキテクチャの変更が必要となるので実装が複雑になる．
一方でRecall Adamは，事前学習コーパスは不要である．
また，かつアーキテクチャの変更も不要であり，実装の変更も「Adamを使っている部分のコードを変更し，Recall Adamを呼び出すだけ」である．}．
実装には，我々の再実装版を用いた\footnote{deepspeedに対応するため．\url{https://github.com/hitachi-nlp/rec-adam}}．
ハイパーパラメータは，$\beta_1=0.9, \beta_2=0.999, \epsilon=10^{-6}$，fisher係数は8Bモデルで4000，70Bモデルで2000とした．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 2
\begin{table}[p]
\input{05table02.tex}%
\hangcaption{LLMの評価に用いた \numBenchmarks \ 個のベンチマーク．問題を解くために必要となる「推論の形態」と「世界知識」も併記する．}
\label{appendix:tb:benchmarks}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\textbf{\underline{ベンチマーク：}} \ \ \  
\Cref{appendix:tb:benchmarks}に示す\numBenchmarks \ 個のベンチマークでLLMを評価した．
BBHとAbuductionRulesは3-shotそれ以外は5-shotの文脈内学習を使用した．
なお，論理推論タスクのベンチマークとしては，\ALTJP に用いた人工論理推論コーパス（\Cref{tb:corpora}）は含めなかった．
人工論理推論コーパスで学習をすると，単にそのコーパスの表層的な統計特徴量を学習することで，高精度を達成してしまう\cite{zhang2022paradox,yuan2023can}．
よって，論理推論能力が正しく身についているかどうか確認するためには，分布外のベンチマークを用いる必要がある．
実装にはlm-evaluation-harness \cite{eval-harness}とbigcode-evaluation-harness \cite{bigcode-evaluation-harness}を使用した．

\textbf{\underline{その他：}} \ \ \  
LLMは疑似乱数シード5つ分を学習した．
予備実験を含む実験全体で，第一著者の組織が所有するNVIDIA H100 GPU 256基をおよそ数週間程度使った．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\ALTJP はLLMの能力を向上させられるか？} \label{sec:results_and_discussions_method}

\Cref{tb:performance_aggregated}に\ALTJP 前後のLLMの性能を示す．
様々なベンチマークにおいて，\ALTJP 後のLLM（「\llamaThreePRALT」「\llamaThreeRTALT」「\llamaThreePLDALTWoBold」）は，\ALTJP 前のLLMを上回る性能を示した．
性能向上は，論理推論タスクだけでなく，数学・コーディング・NLI・その他（常識推論や文章読解）等の様々なベンチマークで得られている．
これは，論理推論は思考の基礎をなすものであり，様々なタスクで汎用的に役に立つからだと考えている．
特筆すべきは，\llamaThreeLargeBaseline \ ，すなわち，15兆トークン以上で事前学習された最大規模のLLMであっても，\ALTJP により大幅な性能向上が得られたことである．
以上の結果から，\textbf{\ALTJP がLLMの総合能力を向上させられること}が分かる．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 3
\begin{table}[t]
\input{05table03.tex}%
\addtocounter{table}{-1}
\hangcaption{\ALTJP 前後のLLMの精度．5-shot文脈内学習により評価した．$\oplus$\textbf{\ALT}-$x$は\Cref{tb:corpora}中に記載の人工論理推論コーパス$x$を用いて\ALTJP を施したことを示す．色は各列での順位を示す（濃いほど良い）．「平均」は全てのベンチマークのミクロ平均である．「論理推論」「数学」「コード」「NLI」「その他」は，その領域の様々なベンチマークで構成され（\Cref{appendix:tb:benchmarks}），ここでは平均精度を示す．}
\label{tb:performance_aggregated}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\ALTJP で用いた人工論理推論コーパスの中では，\PLDAbbr \ の効果が，最も多くのベンチマークに汎化し，かつ性能向上幅も大きかった．
既存コーパスは\PLDAbbr \ に対して設計指針の観点で劣っており，\PLDAbbr \ 程の効果は得られなかった．
更に，\PLDAbbr \ から設計指針を除去したコーパスで学習した場合に，多くの場合に性能劣化が見られた（\Cref{tb:performance_aggregated_llama_three_ablation}）．
これらの結果は，\textbf{人工論理推論コーパスから最大限の効果を得るためには，我々が提案した設計指針が重要である}ことを示している．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 4
\begin{table}[t]
\input{05table04.tex}%
\caption{ablationコーパス（\Cref{tb:corpora}最終行）で学習された\llamaThreeBaseline \ の性能．}
\label{tb:performance_aggregated_llama_three_ablation}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\Cref{appendix:tb:performance_aggregated}に示すように，Recall Adam を使わずにLLMを学習すると，多くの場合に性能が劣化した．
LLMが，人工論理推論コーパスに含まれる未知の事実を学習し，その代わりに既存事実を忘却してしまったからだと考える．
\textbf{知識の忘却を防止することは\ALTJP の成功にとって極めて重要である．}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\ALTJP は「どのような」能力を「なぜ」向上させるのか？} \label{sec:results_and_discussions_tasks}

各ベンチマーク毎のより詳細な分析により，掲題に答える．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 5
\begin{table}[b]
\input{05table05.tex}%
\addtocounter{table}{-1}
\hangcaption{\ALTJP 前後の\llamaThreeLargeBaseline \ の性能．5-shot文脈内学習により評価した．\llamaThreeBaseline \ の結果は \Cref{appendix:tb:performance_details_8B}を参照のこと．}
\label{tb:performance_details}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{論理推論} \label{sec:which_task_logical_reasoning}

\Cref{tb:which_task_logical_reasoning}が示すように，\PLDAbbr \ での\ALTJP は，論理推論タスクを取り扱う様々なベンチマークにおいて，\llamaThreeLargeBaseline \ の性能を最大30ポイントと大幅に向上させた．
驚くべきことに，人工論理推論コーパスに含まれている演繹推論だけでなく，仮説推論タスク（「AbductionRules」と「ART」）でも性能向上が得られた．
仮説推論タスクでは，前提事実から結論を導くのではなく，観察された結論から，それを引き起こした「尤もらしい」前提事実を推測する：例えば「家に帰ったら，窓ガラスが割れ，部屋が荒らされていた」という結論から，「泥棒が侵入した」という前提事実を推測する．
演繹推論とは丁度「逆向き」のようなタスクである．

以下，\ALTJP で強化されたLLMが，実際に設計指針で意図した能力を身につけていることを，事例の分析を通して確認する．
\Cref{tb:case_study}に\llamaThreeLargeBaseline \ の誤りが\ALTJP によって治った問題例を示す．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 6
\begin{table}[b]
\input{05table06.tex}%
\hangcaption{\PLDAbbr を用いた\ALTJP によって，\llamaThreeLargeBaseline \ の誤りが治った問題（\ALTJP 前に間違え，\ALTJP 後に正解できるようになった問題）．\red{赤}は，結論に関係のある前提事実を示す．}
\label{tb:case_study}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

最初の問題は非常に簡単であるので，\llamaThreeLargeBaseline \ がこの問題を解けなかったことは驚くべきであり，事前学習のみから論理推論能力を獲得することの難しさを物語っている．
実際，事前学習からこの問題を解けるようになることは，難しいかもしれない：前提として与えられた事実「Jessica is a cat」「Cats are afraid of sheeps.」は，内容としては不自然（未知）である．
よって，前提事実の，「内容としての正しさ」すなわち知識としての正しさを考慮してしまうと，この問題を解くことはできない．
しかしながら，「もし仮に前提事実が正しかったとしたら，\underline{論理的には}何が導けますか？」と問われると，確かに結論「Jessica is afraid of sheep」を導ける．

\PLDAbbr \ で\ALTJP 後の\llamaThreeLargeBaseline \ はこの問題に正解できた．
即ち，\PLDAbbr \ での\ALTJP によって，論理的に考える能力，特に\textbf{「未知なる事実を扱う能力」が獲得されたことを示唆している（設計指針1）．}

2番目の問題では，\ALTJP \ 後の\llamaThreePLDALTWoBold \ は，正しく「neutral」と回答し，\textbf{「前提事実が不十分な場合は結論を導けない」ことを理解できている（設計指針2）}ことを示した．

3番目の問題はFOLIOベンチマークからのものである．
この問題を解くには，最初のステップで，三段論法を使用する必要がある：「All eels are fish, and no fish are plants. Therefore, all eels are not plants.」．
このように，\ALTJP 後の\llamaThreeLargeBaseline \ は\textbf{「多様な演繹規則」を獲得できている（設計指針3）}．

4番目の問題のように，FOLIOベンチマークの問題は，Wikipediaのページに基づいて作成されているので，他のベンチマークよりも自然で豊かな言語表現で記述されている．
この問題が解けることは，\textbf{「論理式を表す多様な同義表現」を理解できている（設計指針4）}ことを示す．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{数学とコーディング} \label{sec:which_task_math_coding}

\Cref{tb:which_task_math,tb:which_task_coding}が示すように，\ALTJP により，数学タスクにおいて最大7ポイントの性能向上が得られた．
\PLDAbbr から学べる述語論理は数学の問題を解くための必須知識である．
よって，数学での性能向上は妥当である．

コーディングタスクにおいては，最大10ポイントの性能向上が得られた．
最近の研究によると，「逆方向の効果」すなわち，「コーディングデータでの学習が推論能力を向上させること」が確認されている\cite{jiang2024logicproimprovingcomplexlogical,ma2024at,uchiyama2024programminglanguagefeaturespretraining}．
本研究と併せて，コーディングと推論能力の関係性を示唆する．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{自然言語推論(NLI)} \label{sec:which_task_NLI}

\Cref{tb:which_task_NLI}が示すように，\ALTJP は自然言語推論(Natural language Inference, NLI)タスクでの性能を最大6ポイント向上させた．
NLIは，前提事実が仮説を支持するか矛盾するかを判断するという点で，演繹推論タスクに似ている．
しかし，演繹推論タスクとの大きな違いは，この判断は与えられた前提事実だけでは下せず，別途，豊富な常識知識を必要とすることである．

\Cref{tb:case_study}の5番目の問題を考える：与えられた前提事実「An Indian woman is dancing with her partner」に対して，追加の常識知識「If someone is dancing, then he/she is moving.」を補完することで，結論「A woman is moving.」を導く．
人工論理推論コーパスは未知の事実のみを含むため，LLMは\ALTJP から常識知識を獲得することは\underline{一切}できない．
したがって，上記の問題を解くために用いられた常識知識は，LLMが事前学習から元々獲得していたものであるはずだ．
よって，NLIでの性能向上は，LLMは，元々得ていた知識と\ALTJP から新たに獲得した論理推論能力を統合しつつ問題を解ける可能性を示唆する．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{その他} \label{sec:which_task_others}

その他の様々なタスクでも性能が向上しており（\Cref{tb:which_task_others}）は，獲得された推論能力の汎用性を示している．
しかしながら，性能向上幅は最大2ポイント程度と控えめであった．
これには，以下のような理由が考えられる．

まず，これらのベンチマークには，\Cref{tb:case_study_negatives}の一番目の問題のような「純粋に既存知識を問う問題」が含まれる．
人工論理推論コーパスに含まれるのは未知の事実のみなので，既存知識は一切教えない．
よって，知識を問う問題の解決能力は一切向上しない．
次に，一部の問題が要求する高度な知識は，LLMが持っていなかった可能性がある．
例えば，2番目の問題では，量子力学の知識を前提とした上で，推論能力が試される．
このような場合は，知識不足がボトルネックとなり，\ALTJP から得られる推論能力の向上が活かしきれなかった可能性がある．
知識不足の問題は事前学習の量を改善することで解決されるはずである．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 7
\begin{table}[t]
\input{05table07.tex}%
\caption{\ALTJP 後の\llamaThreeLargeBaseline \ が依然として解けない問題．}
\label{tb:case_study_negatives}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

最後に，\ALTJP は「特定の問題を解決するための手順」を教えることはできない，という原因が挙げられる．
例えば3番目の問題を解くには，四択問題と論理推論の「合わせ技」が必要となる．
LLMはまず，以下のように，各選択肢に帰結する推論系列を考えてみる必要がある： 「To build homes in an aquatic environment, one needs to maintain body heat and insulation despite being frequently submerged in cold water. Therefore, the waterproof fur of (A) is essential」「To build homes in an aquatic environment,  one must gather and process natural materials like wood. Large, sharp teeth of (C) are critical as they allow beavers to cut down trees and shape branches.」．
次にLLMは，一見妥当に見える全ての選択肢の中から，質問文の微妙なニュアンスを考慮しつつ，最良のものを選ぶ必要がある：「Since the question emphasizes the aquatic environment, the least related reasoning trace should be (C).」．
この手順は，単一の推論系列から直接答えを得られる論理推論やNLIとは対照的である．
\ALTJP が教えるのはあくまで論理の基礎でああるため，このような「特定の問題の解法手順」を教えることはできない．
よって今後，\ALTJP で得た推論能力を活かしながら，様々な問題の解法手順を教える必要がある．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連研究}   \label{appendix:sec:related_work}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{LLMの推論能力の調査}   \label{appendix:sec:LLM_reason_or_not}

LLMの推論能力の調査が現在，非常に盛んに行われている．
\pagebreak
まず，先行研究を「LLMは現状，推論ができていそう（あるいは今後の進展でできるようになりそう）」というグループ（\Cref{sec:LLM_reason}），また「LLM現状ではあまり推論ができていなさそう」というグループ（\Cref{sec:LLM_does_not_reason}）に分類して紹介する．
このように整理した上で，先行研究から得られた知見を考察することにより，「推論ができるLLM」の現状と展望を明らかにする（\Cref{sec:reasoning_LLM_future}）．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{肯定的な結果（LLMは推論ができていそう・今後できるようになりそう）}   \label{sec:LLM_reason}

\noindent  \textbf{\underline{高い数学能力}：} \ \ \ 
OpenAI o3 はアメリカ数学オリンピック予選(AIME)の問題を97\%正解できる\cite{openai_days12}．
また，数学の専門家が作成した高難易度ベンチマーク「FrontierMath
」\cite{glazer2024frontiermathbenchmarkevaluatingadvanced}でも，25\%の正答率に達する．
AIMEに関しては，過去問がweb上で手に入るため，単に類似問題の解法を暗記しているだけの可能性もある．
そこで\citeA{li2024openaio1abtestingdoes}は，AIMEと同等の難易度であり，かつ試験データが非公開である「Chinese National Team Training camp (CNT)」を用いて，Open AI o1 の性能を評価した．
その結果，OpenAI o1 はAIMEと同等程度の性能を維持していた．
よって，OpenAI o1 は単純な暗記を超えた能力を身につけている可能性を示唆する\footnote{だだし，CNTと類似の問題がweb上に少ない，という仮定は必要ではある．}．

\noindent  \textbf{\underline{暗記と汎化の両立}：} \ \ \ 
\citeA{xie2024memorizationlargelanguagemodels}は，論理推論のパズルにおいて，LLMのfine-tuningが学習サンプルの暗記に繋がる一方で，テストサンプルへの汎化性能も上がることを示した．
ここで用いられたテストサンプルは，学習サンプルとは難易度が違うので，分布外(out-of-distribution)となっている．
この結果は，暗記と汎化が必ずしも対立するものではなく，複雑な相互作用の下で両立している可能性を示唆する．
他の研究\cite{arpit2017closerlookmemorizationdeep,yu2024generalizabilitymemorizationneuralnetworks}でも，暗記と汎化の緊密な関係性を論じている．

\noindent  \textbf{\underline{手続き知識の獲得}：} \ \ \ 
\citeA{ruis2024proceduralknowledgepretrainingdrives}は，「LLMが問題を解く際に影響を与えている，事前学習に含まれていた文書」の分布を推定している．
LLMは，事実を問う問題に対しては少数文書のみを参照しており，これは暗記した別個の知識を取り出している可能性を示唆する．
一方で，数学のような推論問題に対しては，様々な文書を参照していることが分かった．
これはLLMが，推論問題に対しては，様々な文書から見出される「手続き的な知識」(Procedural Knowledge)を用いている可能性を示唆する．
\citeA{zhang-etal-2024-llm-graph}も類似の調査をしており，LLMのパラメータ数を大きくした際に，事実を問う問題に対しては少数文書の暗記が増えるが，推論問題では必ずしも増えないことを明らかにした．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{否定的な結果（LLMは現状では推論ができていなさそう）}   \label{sec:LLM_does_not_reason}

\noindent  \textbf{\underline{暗記(memorization)}：}　GPT-4が公開された当初，「2021年以前のプログラミング問題(Codeforces)は100\%の正解率だが，2022年以降の正解率はは0\%．」という現象が観測された\cite{melanie2023blog}．
\cite{jiang2024investigatingdatacontaminationpretraining}は，GPT-2のフルスクラッチ学習実験により，データのコンタミネーションがdownstreamタスクの性能に大きな影響を与えることを示した．

\noindent  \textbf{\underline{脆弱性(brittleness)：}}　LLMは，数学問題などで，問題文の表現（言語・数値・数式）を変える，あるいは無関係な情報を入れるなどすると，性能が大きく劣化する\cite{razeghi2022impact,shi2023largelanguagemodelseasily,zhang2024careful,mirzadeh2024gsmsymbolicunderstandinglimitationsmathematical,srivastava2024functionalbenchmarksrobustevaluation,zhou-etal-2024-paraphrase}．
\textbf{このような脆弱性はOpenAI o1-preview / o1 のような最先端のモデルでも確認されており\cite{jenia2024twitter}，最大30\%もの精度劣化が起こる\cite{gulati2024putnamaxiom}．}
数学の問題Aと問題Bを独立に解けるLLMが，一方で，それらを単純に組合わせた問題（問題Aで得られた答えを問題Bで再利用する，等）を解くことができない\cite{hosseini2024llmreasonerscreatedequal}．
論理推論問題においても，「一見回答に関係がありそうだが実は関係無い事実」を問題に混ぜるとLLMの性能が大きく劣化する\cite{bhuiya2024seeminglyplausibledistractorsmultihop}，あるいは，前提事実を提示する順序を変えると性能が大きく下落する\cite{pmlr-v235-chen24i}，等の現象が観測されている．

\noindent  \textbf{\underline{内容バイアス(content bias)：}}　LLMは，日常的な内容の推論問題には強いが，反実仮想的な推論問題には弱い\cite{frohberg-binder-2022-crass,dasgupta2023language,li-etal-2023-counterfactual,yu2023ifqadatasetopendomainquestion,jin2024cladderassessingcausalreasoning,zecevic2023causalparrotslargelanguage,zhao-etal-2024-uncommonsense}．
類似の現象として，学習コーパス中に頻出するトークンで構成した推論問題には強いが，低頻度トークンで構成した推論問題には弱い，という現象も観測されている\cite{jiang2024peektokenbiaslarge}．
\citeA{liu2023evaluating}によると，GPT-4は，よく知られた論理推論ベンチマークでは高性能を示すものの，分布外の論理推論ベンチマークでは性能が著しく劣化する．
LLMは，小さい桁数の足し算はできるが，桁数が大きくなると誤りが増えることが知られている\cite{GPT4AdditionEvaluation2023,gambardella2024language}．
言語学オリンピックの問題において，高リソース言語の問題の正解率に比べて，低リソース言語（稀少言語・絶滅言語）の問題の正解率が著しく低い\cite{bean2024lingolybenchmarkolympiadlevellinguistic}．

\noindent  \textbf{\underline{ヒューリスティック：}}　\citeA{nikankin2024arithmeticalgorithmslanguagemodels}によると，LLMは，数学の問題を，数学の規則を理解することでは無く，「無数のヒューリスティック(bag-of-heuristics)」によって解いている．
\cite{aoki-etal-2024-first}によると，LLMは，「前提事実と問題文との語彙オーバーラップ」のようなヒューリスティックを用いて，初期の推論系列を選定している．

\noindent  \textbf{\underline{長さへの非汎化（length generalizationができない）：}}　LLMは，学習サンプルに含まれる推論ステップ数を大きく超えた推論を，頑健に実行することができない\cite{NEURIPS2022_fb7451e4,zhou2024transformers}．

\noindent  \textbf{\underline{非誠実(unfaithful)な推論系列：}}　\citeA{pmlr-v202-morishita23a}は，GPT-4の論理推論問題における「推論系列としての正解率」と「最終的な回答の正解率」が大きく異なる（前者が後者に比べて著しく低い）ことを発見した．
この発見は，LLMが自らが生成した推論系列と，LLMが実際に内部で行っている推論とには，食い違いがあることを示唆する．

\citeA{lanham2023measuring}は，LLMに対して，人手でコントロールしたCoT系列を途中まで与えた上で最終的な回答を生成させた．
その結果，CoT系列の内容によって，ある時はCoT系列に従った回答を生成するが，ある時はCoT系列を無視した上で回答を生成することが分かった．
しかも，無視する場合においても，必ずしも正解を解答している訳ではない．
この結果もまた，LLMは必ずしもCoT系列に忠実に従って回答を生成しいる訳ではないことを示唆する．

\citeA{liu2024selfcontradictoryreasoningevaluationdetection} は，LLMの推論系列はしばしば，自己矛盾を起こしていることを明らかにした．
\citeA{turpin2023language}によると，GPT-3.5が，選択問題において，文脈内に入れるfew-shotサンプルを特定の選択肢（例えばAなど）を持つものに偏らせると，推論系列も(A)を正当化するように変化する．
これは，LLMが生成する推論系列にはバイアスがかかりうることを示唆する．
\citeA{kudo2024thinktotalktalktothinkllmscome}はモデル内部への因果的な介入措置により調査を行い，LLMは，簡単な数学の問題の場合は，CoT系列を生成する前に既に回答を``知っている．''ということを明らかにした．

\noindent  \textbf{\underline{その他}}：　\citeA{ando-etal-2023-evaluating,ozeki-etal-2024-exploring,bertolazzi2024systematicanalysislargelanguage,eisape-etal-2024-systematic} は，LLMが三段論法において人間に類似したバイアスを示すことを発見した．
\citeA{patel2024multilogievalevaluatingmultisteplogical} は，多段論理推論タスクにおいて，推論ステップ数が増加するにつれてLLMの性能が著しく低下することを確認した．
\citeA{parmar-etal-2024-logicbench} はLLMが複雑な推論，特に否定を含む問題に苦戦することを示した．
\citeA{mondorf2024liarliarlogicalmire} はLLMが，各文が偽である可能性のある仮定的推論(suppositional reasoning)に苦戦することを示した．
その他，多くの研究がLLMの推論能力を検証している \cite{lanham2023measuring,wu2023reasoning,hodel2023response,dziri2023faith,dasgupta2023language,dougrezlewis2024assessingreasoningabilitieschatgpt,wan2024logicaskerevaluatingimprovinglogical,sprague2024musr,zhao2024exploringcompositionaldeficiencylarge,hong-etal-2024-closer,huang2024large,zhu2024dyval,wang-etal-2024-llms}．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{「推論ができるLLM」の現状と展望}    \label{sec:reasoning_LLM_future}

以上のような先行研究からの知見を元に，「推論ができるLLM」の現状と今後の展望を簡単に考察する．

まず，肯定的な結果のうち最も重要なものは，「モデルサイズや学習データサイズを拡大することで，より難しい推論ベンチマークが解けるようになってきている」という事実である．
実際，最新のフロンティアモデルは，専門家でさえ苦戦する問題も解けるようになりつつある．
更に，この観点からは，今後の方向性として「モデルサイズと学習データ量の拡大」という明確な道筋が示唆される．
ただし，学習データに関しては，web上で利用可能なデータが近い将来に枯渇してしまうという推定がある\cite{villalobos2024rundatalimitsllm}．
そのため，人工データやLLM自体に内在する推論系列の活用などの工夫が必要になる．

また，LLMは問題を解くための「手続き的な」知識を獲得している，という観察もある．
様々な問題の手続きを記憶しておいて使い回すことは，おそらく多くの人間がやっていることだとも考えられ，実用的な問題の多くを解決できる可能性がある．
ただし，例えば，ある1つの問題に対してのみ有効な手続きを知っていても，それはその問題自体を暗記しているのと本質的に変わらない．
したがって，汎用性が高い（抽象度が高い）手続きを獲得するための研究が必要である．

他方で，否定的な様々な結果は，「LLMは学習データの分布内の問題には強いが，分布外の問題には弱い」という特徴に一言で集約される．
「学習データ中で暗記した問題は解けるが，それ以外のサンプルは解けない」「事前学習コーパスに含まれている日常的な内容の問題は解けるが，反実仮想的な問題は解けない」「学習データに含まれている表現で問題を出せば解けるが，別の表現にすると解けない」「学習データに含まれる長さの論理ステップは生成できるが，それより長いものは生成できない」というようにである．
この特徴は一見，単なる機械学習の一般的な性質\footnote{例えばPAC理論のような，データサンプリングの統計的揺らぎに由来する，経験誤差・汎化誤差の議論等．}と同様のものに思われる．
しかしながら，推論という文脈においては，この特徴はより深刻な問題を示唆している．
なぜならば，推論の規則の多くは任意性を持つため，本質的に\underline{分布内外という区別が存在しない}という側面があるからである．
例えば本論文で議論する述語論理の演繹規則は任意の事実に対して成り立つ（\Cref{sec:principle_unseen}）ので，分布内外の事実に対して等しく適用できる．
しかしながらLLMは，分布外の事実に対して演繹規則を適用することには苦戦している．
あるいは，足し算における繰り上がりのような規則
\footnote{数学における規則としては，（本稿で考えたような）基本的な公理系が知られているが，ここでは分かりやすさのため，より実用的な規則を考える．}
は，任意の桁数において普遍的に成り立つ．
しかしながらLLMは，小さい桁数の足し算は得意である一方で，大きな桁数の足し算は苦手としている．

それでは，「分布内の推論問題のみ解ける」機械は果たして一体何を学んでいるのか，という問いが生じる．
例えば「推論の規則を，分布内の問題のみに適用できる形で学んだ」という可能性や「推論の規則とは全く関係無い（分布外に汎化不可能な）何かを学んだ」という可能性などがありうる．

この点に関しては，\citeA{nikankin2024arithmeticalgorithmslanguagemodels}の調査が示唆を与える．
この調査によると，LLMは数学の問題を「無数のヒューリスティック(bag-of-heuristics)」を用いて解いている．
ここでヒューリスティックを用いるとは，例えば，「$x + y$という式において$x \in [5, 25] \ \mathrm{mod} \ 50$だとニューロンが反応する」や「$x + y$という式において$x - y = 8 \ \mathrm{mod} \ 10$だとニューロンが反応する」といったものを指す．
このようなヒューリスティックの組み合わせを用いて数学の問題を解く場合，数学の根本的な規則を用いる場合に比べて，汎化性が著しく低い．
LLMの「分布内に強く，分布外に弱い」という性質も合理的に説明できる．
実際，このようなヒューリスティックの組み合わせによって，数学が包含する任意の問題を解くことは，原理的に不可能
\footnote{まず，数学の規則も任意性を含む側面がある．例えば，「繰り上がりの規則は\underline{任意の桁数}について成り立つ」あるいは「``問題1の解答は$x=1$である．問題2はこの$x$を使って$y=\frac{x + 5}{2}$を計算する．問題3はこの$y$を使い\dots''と形で\underline{任意個の問題を組み合わせた新しい問題}を構築できる」などである．数学の規則が任意性を含む結果として，数学の問題は無限個存在する．しかしながら，有限個のヒューリスティックの組み合わせによって解ける（表現できる）問題は有限個である．したがって，数学が内包する無限個の問題を表現することは不可能である．もちろん，「任意の問題を解けるか」という議論はあえて極端にした例ではあるが，「数学の規則を理解すること」に対して「ヒューリスティックを用いること」が，いかに効率が悪いかを浮き彫りにしている．}
である．
このヒューリスティックの根本的欠陥は「手続き的な知識」にも内在している．

以上のように，LLMは，推論の根本的な規則によってではなく，別の（本質的でない）手段で問題を解いている，という可能性がある．
したがって今後，「LLMがどのような問題を解けるのか」という調査だけでなく，「LLMが\underline{どのように}問題を解いているのか」というメカニズムの調査が必要である
\footnote{
「難しいベンチマークを解けること」でもって，「推論ができる」と判断してしまっても，一見，問題ないように思われる．
この論拠は，（例えば数学の場合は）「数学のこんなに難しい問題が解けるならば，数学の規則を理解していないはずがない」というものである．
この論拠が成り立つならば，その対偶「数学の規則を理解していなければ，この難しい問題を解くことはできない」も成り立つ．
この命題は確かに，人間に対しては成り立つかもしれない．
しかしながら，LLMは，人間を遙かに超える記憶容量を持った機械であるので，例えば多数のヒューリスティックや手続きを流用することによって，難しい問題を解いてしまう可能性も否定できない．
よってやはり，単に「問題が解けるかどうか」を調査するだけでなく「どのように解いているか」を\underline{直接}調査する必要があると考えられる．
}．
また併せて，LLMに推論の規則を獲得させる方法も探求する必要がある．

以上の考察をまとめ，今後の展望とする．
まず，今後も，モデルサイズや学習データサイズの拡大は有望な方向性である．
ただし，web上の学習データは枯渇してしまう可能性があるので，人工データやLLM自体に内在する推論系列の活用などの工夫が必要である．
また，このような学習によって汎用性の高い手続きを獲得するための手法も追求すべきである．
更に，LLMがどのように問題を解いているのか（推論の規則を理解しているのか）という調査や，LLMに推論の規則を学習させる方法の確立が求められる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{人工コーパスによる，LLMの推論能力強化}    \label{sec:related_work_synthetic_corpus}

人工データを活用したLLMの推論能力強化に関する先行研究を紹介する．
本節では主に，本研究に最も関連が深い「ルールベースで自動生成した」「論理推論コーパス」に話を限定する．

RuleTaker \cite{clark2020transformers} が近年初めて，人工論理推論コーパスを構築した．
%%%%演繹規則として，含意（\Cref{appendix:fig:argument:implication}）を用いた．
    演繹規則として，含意（\Cref{appendix:arguments:all}b）を用いた．
RuleTakerで学習されたTransformer \cite{vaswani2017attention}が，（コーパスに含まれるのと同様の）論理推論問題を解けることを確認した．
後続の研究 \cite{saha-etal-2020-prover,dalvi-etal-2021-explaining,tafjord-etal-2021-proofwriter,sanyal2022fairr}では，人工論理推論コーパスで学習したT5 \cite{raffel-et-al-2019-t5}が，単に最終的な回答だけでなく，中間的な論理ステップも生成できることを確認した．

PARARULE-Plus \cite{bao2022multi} は，RuleTakerをより強化した人工論理推論コーパスであり，より多数の論理ステップからなるサンプルを含む．
PARARULE-Plusで学習したモデルは，RuleTakerで学習したモデルを上回る性能を達成できる．

Artificial Argument Corpus \cite{betz-etal-2021-critical} は，クリティカル・シンキングに有用な演繹規則から構築された単一ステップの論理推論サンプルを含む．
GPT-2 \cite{radford2019language}をこのコーパスで学習すると，NLIタスクの性能が向上することが確認された．
一方で，ARC \cite{habernal-etal-2018-argument} やLogiQA \cite{ijcai2020p501} のような，より挑戦的な推論タスクの性能は向上しなかった．

\citeA{bostrom-etal-2021-flexible} は，既存コーパスよりも自然で豊かな言語表現によって記述された論理推論コーパスを作成した．
演繹規則を基にしたテンプレートを用いてWikipediaから文を収集し，更にそれらの言い換えも生成することで，自然かつ豊かな言語表現を生成している．
このコーパスでの学習は，EntailmentBank \cite{dalvi-etal-2021-explaining} のように，実世界に近い推論問題を解く能力を向上させることができる．

これら先行研究は，人工論理推論コーパスの効果を部分的に検証したものといえる．
一方で，以下のように，人工論理推論コーパスを用いたアプローチが本当に有望であるかどうかは，依然として未解明の謎であった．
まず，「どのように論理推論サンプルを設計すべきなのか」という体系的な議論が欠如しており，結果として良いサンプルになっているかが不明であった．
次に，人工論理推論コーパスから得られる能力が，元コーパスに含まれる演繹推論タスク以外の様々タスクに汎化するかどうかが未検証であった．
更に，T5やRoBERTaといった小規模な言語モデルのみを用いて検証されていたため，人工論理推論コーパスの効果がより大きなLLMに対しても有効かどうかも未検証であった．
本研究はこれらの疑問に答えることで，人工論理推論コーパスを用いたアプローチの有望性を初めて示すものである．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{LLMの推論系列を学習データとして活用する}     \label{sec:related_work_distillation}

このアプローチでは，GPT-4のような超巨大なLLMの推論過程をより小さいLLMに学習させる \cite{ho2023large,magister-etal-2023-teaching,li2022explanations,li-etal-2023-symbolic,shridhar-etal-2023-distilling,wang-etal-2023-scott,mitra2023orca,liu-etal-2023-logicot,benallal2024cosmopedia,lu2024mathgenie}．
典型的な手順は以下の通りである：(i) 既存の推論問題を大量に用意する．(ii) chain-of-thought \cite{wei2022chain} などの技術を用いて超巨大LLMに推論過程を生成させる(iii) これらの推論過程で小規模なLLMを学習する．

この「蒸留」アプローチと，本研究で提案している人工論理推論コーパスアプローチは，以下のように相補的な利点・欠点がある．

蒸留アプローチの利点は，既存の様々な問題に対する「解法を直接教える」ことができるので，極めて実用的であること，である．
欠点としては，LLMの推論系列には（事前学習コーパスで頻出するパターンの方向に）偏りがあるので，設計指針で論じたような論理の基礎を教えづらい点が上がる．
また，「超巨大なLLMそれ自体の性能向上はできない」「学習サンプル数が既存の問題の数で制限される」「推論過程の正確性が保証されない \cite{turpin2023language,lanham2023measuring}」等も欠点となる．

人工論理推論コーパスの利点は，「サンプルが確固たる指針に基づいて作成されているため，論理の基礎を教えることができること」「超巨大なLLM自体の性能も向上させられること」「事実上無限のサンプルを生成できること」「推論過程の正確性が保証されていること」などである．
一方欠点としては「あくまで論理の基礎しか教えることができないので，現実世界のより有用な問題を解くためには，追加で別の学習が必要になりうる（\Cref{sec:which_task_others}）」点である．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{今後の展望} \label{sec:conclusion}

本研究では，LLMの推論能力を向上させるための一アプローチとして，人工論理推論コーパスによる\ALTJP (\textbf{Additional Logic Training, ALT}) を提案した．
良質なサンプルを作成するための体系的な設計指針を確立し，この設計指針に基づく人工論理推論コーパス\PLD (\PLDAbbr)を構築した．
\PLDAbbr \ 上での\ALTJP が，LLMの能力を大幅に向上させることを，実験的に確認した．

今後の方針としてまず，より多くのサンプル数での学習が挙げられる．
学習データ量を増やすことは，本研究のようなデータドリブンのアプローチでは，定石である．
実際，推論においても，データ量を増やしていくことでgrokkingが起きる，という報告も上がっている \cite{wang2024grokkedtransformersimplicitreasoners}．
よって，データ量の拡大は有望な方向性である．

また，本研究で提案した手法は完全にデータドリブンなアプローチであり，モデル側には一切の工夫を施さなかった．
すなわち，モデルは「データから言えることのみを吸い上げる」機械であった．
結果として，例えば「演繹規則は任意の事実に対して成り立つ」（設計指針1）ということを教えるためだけに，実際に任意の事実を含んだサンプルを大量に用意する必要があった．

一方で，人間には，少数のサンプルのみから，その背後に潜む規則を大胆に推測する能力が備わっていると考えられる（\Cref{sec:principle_unseen}）．
この能力は，汎用的な問題解決にとって重要である．
なぜならば，規則というものは，本論文で扱った述語論理や数学などにとどまらず，ゲーム・パズルのルール，人間関係の暗黙的なルール，社会や文化の進化に伴う新しい慣習やマナーなど，さまざまな場面で随時，新たに発現しうるからである．
このような場面が現れるごとに毎回大量のサンプルを生成することは，非効率的である．
従って，少数のサンプルからその背後の規則や理論を推測する能力，すなわち帰納推論能力や仮説推論能力の獲得が，重要である．

最後に，本研究や先行研究の多くは，LLMが「与えられた問題」を解決する能力に着目してきている．
しかしながら，より創造的な能力として「（有用な）新しい問題を定義する能力」「自律的に議論を進める能力」，あるいは更に進んで「新しい学問を構築する能力」などが重要となる．
このような目標に対しても，既存の問題をうまく一般化する帰納推論能力や，既存の枠にとどまらない大胆な仮説を提唱する仮説推論能力の獲得が必要である．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\acknowledgment

東京科学大学の岡崎直観先生には，内容に関するアドバイスを頂いた．
日立製作所の清水正明氏には，社内の大規模計算機環境の維持管理をして頂いた．
また，計算機リソースとして，産総研のAI橋渡しクラウド(ABCI)を用いた．
感謝申し上げる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{jnlpbbl_1.7}
\bibliography{05refs}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix

%%%%\numberwithin{equation}{section}
%%%%\renewcommand{\thefigure}{\Alph{section}.\arabic{figure}}
%%%%\renewcommand{\thetable}{\Alph{section}.\arabic{table}}

\vspace{-0.5\Cvs}
\section{演繹規則}   \label{appendix:sec:deduction_rules}

\vspace{-0.5\Cvs}
\Cref{appendix:arguments:all}に，人工論理推論コーパスで用いられた演繹規則を示す．
\Cref{appendix:argument:proofs}に，完全性定理（定理1）「任意の妥当な演繹規則は，公理系による多段演繹推論で表現ができる」ことを例示する．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 4
\begin{figure}[t]
\begin{center}
\includegraphics{32-2ia5f04.eps}
\end{center}
%%%%        \label{appendix:fig:argument:axioms}
%%%%        \label{appendix:fig:argument:implication}
\caption{\PLDAbbr \ や既存コーパスで用いられた演繹規則．}
\label{appendix:arguments:all}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 5
\begin{figure}[t]
\begin{center}
\includegraphics{32-2ia5f05.eps}
\end{center}
%%%%\label{appendix:argument:proof_G_modus_ponens}
%%%%\label{appendix:argument:proof_contraposition}
\hangcaption{完全性定理（定理1）「任意の妥当な演繹規則は，公理系による多段演繹推論で表現ができる」ことの例示．}
\label{appendix:argument:proofs}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 6
\begin{figure}[t]
\begin{center}
\includegraphics{32-2ia5f06.eps}
\end{center}
\hangcaption{\PLDAbbr \ に実際に含まれているサンプル例．\textbf{\colorBlueFacts{事実}}と\textbf{\colorVioletHypothesis{仮説}}をLLMに与えて,\textbf{\colorRedLogicalSteps{論理ステップ}}と\textbf{\colorRedLogicalSteps{回答ラベル}}（\Cref{appendix:sec:answer_label}参照）を生成させる．}
\label{appendix:fig:deduction_example}
\vspace{-0.5\Cvs}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 7
\begin{figure}[t]
\begin{center}
\includegraphics{32-2ia5f07.eps}
\end{center}
\caption{\PLDAbbr \ の生成機構の概略図．詳細は\Cref{appendix:sec:FLD_generator}．}
\label{fig:framework_overview}
\vspace{-1\Cvs}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\PLDAbbr\ の生成機構}   \label{appendix:sec:FLD_generator}

「設計指針を満たす論理推論サンプルを自動生成する手法」を説明する．
直感的な理解のために\Cref{fig:framework_overview}を参照のこと．
最終的に生成されるサンプルの例は\Cref{appendix:fig:deduction_example,appendix:fig:deduction_example_JFLD}に示す．
なお，人工論理推論コーパスの生成手法は先行研究\cite{clark2020transformers,betz-etal-2021-critical}があるが，これらの手法では設計指針を満たすことができないため，完全に新規な生成手法を提案する．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 8
\begin{figure}[b]
\begin{center}
\includegraphics{32-2ia5f08.eps}
\end{center}
\caption{「ランダム演繹」の手順．詳細は\Cref{appendix:sec:FLD_proof_tree_generation}を参照のこと．}
\label{appendix:fig:random_deduction}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{ランダム演繹による多段推論生成}   \label{appendix:sec:FLD_proof_tree_generation}

まず最初に，論理式で表された多段演繹推論を生成する．
先行研究\cite{clark2020transformers}では，論理式群をランダムに生成し，それらの間に偶発的に生じる多段演繹関係を論理ソルバーによって特定することで，多段演繹推論のサンプルを作成していた．
しかしながらこの方法は，外部のソルバーに依存するため演繹規則群を自由に選ぶことができず，結果として「演繹規則として公理系を用いる」（設計指針3）や「代表的な定理も用いる」（設計指針3$''$）を満たすことができない．
更に，偶発的に生じる演繹関係に頼っているため，論理ステップ数を調節することがず（特に大きな論理ステップ数を実現するのが難しい），「多様な論理ステップ数を用いる」（設計指針3$'$）を満たすこともできない．

そこで我々は，指定された演繹規則群・論理ステップ数を用いた多様な多段演繹推論を生成するアルゴリズム\textbf{「ランダム演繹」}（\Cref{appendix:fig:random_deduction}）を開発した．
このアルゴリズムは，「指定された演繹規則群（今回は公理系と代表的な定理）からランダムに 1 つの演繹規則を選び，現在までに作った多段推論木に結合する」ということを，指定された論理ステップ数を達成するまで，繰り替える．



より具体的には以下である．
まず，前向きにランダム演繹を行う．
公理系・代表的な定理からランダムに演繹規則を一つ選択し，その結論がルートノードとし，前提事実を子ノードとする，初期の多段推論木を形成する（\Cref{appendix:fig:random_deduction}\red{\textcircled{\scriptsize 1}}）．
次に，演繹規則をもう一つランダムに選び，多段推論木に「結合」する（\Cref{appendix:fig:random_deduction}\red{\textcircled{\scriptsize 2}}）．
以上を繰り返すことにより，所望の深さの多段推論木を生成する（\Cref{appendix:fig:random_deduction}\red{\textcircled{\scriptsize 3}}）．
また，後向きランダム演繹も同様に行い，多段推論木の枝を増やす（\Cref{appendix:fig:random_deduction}\red{\textcircled{\scriptsize 4}}）．

以上のように，ランダム演繹によって，\textbf{「公理系や代表的な定理を用いた，多様な多段演繹推論」（設計指針3・3$''$）}が生成される．
また，この多段推論木の論理ステップ数は，木の深さと枝の数から決まるので，前向きランダム演繹・後ろ向きランダム演繹の回数を（所望の範囲から）ランダムに選ぶことで，\textbf{「多様な論理ステップ数」（設計指針3$'$）}も実現できる．

なお，多段推論木に含まれる論理式の多様性を増やすために，以下の追加処理を施している．
多段推論木のノードの論理式（$\mathcal{F}$や$\mathcal{G}$）は任意である．
よって，これらは，$\mathcal{F}$や$\mathcal{G}$といった単純な論理式ではなく，より複雑な論理式でもよい．
そこで，$\mathcal{F}$や$\mathcal{G}$を，原子論理式（$A$や$B$等）と論理演算子$\land, \lor, \neg$を用いたより複雑な論理式に，ランダムに変換する
\footnote{ただし先行研究と同様，原子論理式の数は3までとする．}．
例えば，$\mathcal{F}=A\land B$, $\mathcal{G}=(C\lor \neg B)$などである．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{ノイズ事実の生成}   \label{sec:FLD_distractor_generation}


次に，\textbf{設計指針2「前提事実が不十分な場合は結論が導けないことを教える」}ために，多段演繹推論の前提事実群に加えて，不十分な事実を模擬した「ノイズ事実群」もサンプルに含めておく．
LLMは，各論理ステップにおいて，「ノイズ事実群の存在下であっても，結論を導くのに十分な前提事実のみを選び取る」ことが求められる．
よって，間接的に，「前提事実が不十分な場合は結論を導けないこと」を教えることに繋がる．
ノイズ事実としては，「前提事実とよく似ているが，情報が欠落した論理式」を，ルールベースで生成する．
例えば，前提事実$\mathcal{F} \land \mathcal{G}$に対して情報が欠落した$\mathcal{F}$を，前提事実$\mathcal{F} \rightarrow \mathcal{H}$に対して情報が欠落した$\mathcal{F} \land \mathcal{G} \rightarrow \mathcal{H}$を，生成する．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{サンプル形式への変換}   \label{appendix:sec:answer_label}

論理式で書かれた多段推論木を用いて論理推論サンプルを生成する．
論理推論サンプルは，「前提事実群」「仮説」「論理ステップ」「回答ラベル」から構成される．

ここで，回答ラベルとは以下の 3 種類がある：
\begin{itemize}
    \item 「証明」：多段演繹推論により仮説を証明できる（例えば仮説が$\mathcal{F}$の場合，$\mathcal{F}$を導出できる，ということ）．
    \item 「反証」：多段演繹推論により仮説を反証できる（例えば仮説が$\mathcal{F}$の場合，$\neg \mathcal{F}$を導出できる，ということ）．
    \item 「不明」：前提事実群からは，仮説を証明も反証もできない．
\end{itemize}
特に「不明」の論理推論サンプルは，\textbf{「前提事実が不十分な場合は結論が出せないこと」（設計指針2）}を教える．

まず，回答ラベル 3 種類から一様分布に従い 1 つを選び，次に，多段推論木を用いて，その回答ラベルに整合する論理推論サンプルを作成する．

回答ラベルが「証明」の場合は：
\begin{itemize}
    \item 前提事実群：多段推論木の葉ノード群を用いる．
    \item 仮説：多段推論木の根ノードを用いる
    \item 論理ステップ：多段推論木の中間ノード群を用いる．
\end{itemize}

回答ラベルが「反証」の場合は：
\begin{itemize}
    \item 前提事実群：多段推論木の葉ノード群を用いる．
    \item 仮説：多段推論木の根ノードの\underline{否定}を用いる（例えば根ノードが$\mathcal{F}$の場合は，$\neg \mathcal{F}$を用いる）．
    \item 論理ステップ：多段推論木の中間ノード群を用いる．
\end{itemize}

回答ラベルが「不明」の場合は：
\begin{itemize}
    \item 前提事実群：多段推論木の葉ノード群から\underline{幾つかをランダムに取り除いたノード群}を用いる．
    \item 仮説：多段推論木の根ノードもしくはその否定を用いる．
    \item 論理ステップ：多段推論木の中間ノード群を用いる．
\end{itemize}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{ランダム事実の割り当て} \label{appendix:sec:FLD_generator_linguistic_diversity}

最後に，各論理式に対して，自然言語で記述された事実を割り当てる．
\citeA{betz-etal-2021-critical}を参考に，テンプレートベースのアプローチを採用する．
まず，各論理式ごとに，それを表現する自然言語のテンプレートを複数，人手で用意しておく：
\begin{alignSmall}
    A \rightarrow B: & \ \text{``If A, then B.''}, \ \text{``A leads to B.''}\nonumber \\
    F(a) \rightarrow G(b):  & \ \text{``If a F, then b G.''}, \ \text{``When a F, b G.''} \nonumber
\end{alignSmall}
このテンプレートを人手で豊富にすることにより，\textbf{「論理式を表す多様な同義表現」（設計指針4）}を達成できる．
そして，各論理式に対して，このテンプレート群からランダムに 1 つを選択する．
次に，$A, B, F, G, a, b$のような記号に対して，語彙から（一定の文法制約の下で）ランダムに構築した事実を割り当てる：
\begin{alignSmall}
    A:\text{``an Earthquake} & \text{ occurs''}  \ \ \ B:\text{``the year ends''} \nonumber \\
    F:\text{``run''}\  G:\text{``answer''}\  & a:\text{``the hamburger''}\ b:\text{``Peter''}  \nonumber
\end{alignSmall}
事実はランダムに構築されるため，\textbf{設計指針1「任意の事実」}となっている．

ここで，文法制約とは，以下のようなものである：
(i) $A$や$B$という原始命題は，「[NOUN] is [ADJ]」 「[NOUN] [VERB]」「[NOUN] occurs」というような完全文に変換する．
(ii) $F$や$G$などの(論理的な)述語は，「[VERB]」「is [ADJ]」「is [NOUN]」といった言語的な述語に変換する．
(iii) $a$のような定数は「[NOUN]」というようなエンティティに変換する．


以上はテンプレートとして簡単な例を用いたが，実際には以下のように複雑である：
\begin{alignSmall}
    \langle(A \land B) \rightarrow C\rangle: & \ \text{If} \ \langle(A \land B)\text{.predicate\_phrase}\rangle, \ \text{then} \ \langle C\text{.predicate\_phrase}\rangle. \nonumber \\
    : & \ \langle (A \land B).\text{noun\_pharse} \rangle \ \langle \text{cause\_synonyms} \rangle \ \langle C\text{.noun\_phrase} \rangle. \nonumber \\
    : & \ (\dots) \nonumber \\
    \langle(A \land B)\text{.predicate\_phrase}\rangle: & \ A \ \langle \text{occur\_synonyms} \rangle \ \text{and also} \ B \ \langle \text{occur\_synonyms} \rangle.  \nonumber \\
    : & \ A \ \text{and also} \ B \ \langle \text{occur\_synonyms} \rangle. \nonumber \\
    : & \ \text{Both} \ A \ \text{and} \ B \ \langle \text{occur\_synonyms} \rangle.  \nonumber \\
    : & \ (\dots)   \nonumber \\ 
    \langle C\text{.predicate\_phrase}\rangle: & \ C \ \langle \text{occur\_synonyms} \rangle.  \nonumber \\
    : & \ (\dots)   \nonumber \\
    \langle \text{occur\_synonyms} \rangle: & \ \text{occur} \nonumber \\
    : & \ \text{happen} \nonumber \\
    : & \ \text{take place} \nonumber \\
    : & \ (\dots) \nonumber \\
    \langle (A \land B).\text{noun\_pharse}\rangle: & \ A \ \text{and} \ B \nonumber \\ 
    : & \ A \ \text{and also} \ B \nonumber \\ 
    : & \ \text{Both} \ A \ \text{and} \ B \nonumber \\ 
    : & \ \text{That} \ A \ \text{and} \ B \ \langle \text{occur\_synonyms} \rangle \nonumber \\ 
    : & \ (\dots) \nonumber \\ 
    \langle \text{cause\_synonyms} \rangle: & \ \text{cause} \nonumber \\
    : & \ \text{result in} \nonumber \\
    : & \ \text{lead to} \nonumber \\
    : & \ \text{bring about} \nonumber \\
    : & \ (\dots) \nonumber \\
    ( & \dots) 
    \label{appendix:eq:linguistic_templates}
\end{alignSmall}
見て分かるように，テンプレートは深く入れ子にできるため，組み合わせ的に多様な同義表現が生成される．
組み合わせ的爆発により，これらのテンプレートを前もって展開することは不可能なため，テンプレートをランダムに，動的に展開しつつ，言語表現を作っていく．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 9
\begin{figure}[b]
\begin{center}
\includegraphics{32-2ia5f09.eps}
\end{center}
\hangcaption{日本語FLD(JFLD)の「ぷにぷに版」からののサンプル例．ぷにぷに版は，人間にとっての分かりやすさのために，事実を敢えて，ぷにぷにしたものに限っている．正式版はより多様で任意の事実を含む．実際に生成されたサンプルを\Cref{appendix:fig:deduction_example,appendix:fig:deduction_example_JFLD}に示す．}
\label{appendix:fig:deduction_example_JFLD}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{日本語版の人工論理推論コーパス} \label{appendix:sec:JFLD}

我々は，日本語LLMの学習及び評価を目的として，日本語版FLD (Japanese Formal Logic Deduction, \textbf{JFLD})を構築している\cite{morishita_2024_NLP_JFLD,morishita-etal-2024-jfld}．
JFLDのサンプル例を\Cref{appendix:fig:deduction_example_JFLD}に示す．
また，JFLDを用いて様々な日本語LLMを評価し，以下のような洞察を得ている：
\begin{enumerate}
    \item GPT-4はある程度の論理推論能力を発揮できるが，完全には遠い．
    \item 日本語LLMの論理推論能力はGPT-4に大きく劣る．
    \item 事前学習の量の向上によりある程度の改善が見込めるが，（GPT-4のように）完全には届かない．
    \item 人工論理推論コーパスでの大規模学習が有望な方向性である．
\end{enumerate}

JFLDの構築は具体的には，\PLDAbbr \ の生成機構における「テンプレート」と「語彙」とを日本語にし，また日本語特有の統語現象もルールベースで取り入れることにより，実現している．

まず，各論理式に対する\underline{日本語テンプレート}を人手で作成した．
例を示す：
  \begin{align}
        \forall x, F(x) \rightarrow G(x):  & \ \text{$F$なものは$G$だ} \nonumber \\
        : & \ \text{何かがFなら、それはGだ} \nonumber    \\
        : & \ \ \ \ \ \  \dots \nonumber    \\
        F(a) \rightarrow G(b):  & \ \text{$a$が$F$なら$b$は$G$だ } \nonumber \\
        :  & \ \text{$F$な$a$は$G$な$b$に繋がる } \nonumber \\
        : & \ \ \ \ \ \  \dots
        \label{eq:templates}
  \end{align}
次に，\Cref{eq:templates}中の$F, G, a, b$のような各記号に対して，（一定の文法制約化で）ランダムに語彙を割り当てる．
多言語WordNet \cite{bond-foster-2013-linking}から\underline{日本語の語彙}を割り当てた：
%%%%\setlength{\abovedisplayskip}{3pt}
%%%%\setlength{\belowdisplayskip}{3pt}
\begin{align}
F: \text{``頑健''}  &   \ \ \ G:\ \text{``腐敗''}  \nonumber \\
\forall x, F(x) \rightarrow G(x):  & \ \text{頑健なものは腐敗だ}
\label{eq:assignment}
\end{align}
なお，文法制約とは以下のようなものである：
\begin{itemize}
    \item （論理的な）述語$F$や$G$には，日本語の述語（動詞・名詞・形容動詞）を割り当てる．
    \item 定数$a$や$b$には，日本語のエンティティ名詞を割り当てる．
\end{itemize}
最終的に\Cref{appendix:fig:deduction_example_JFLD}のような論理推論サンプルが得られる．

ただし，\underline{日本語特有の統語現象}を以下のように組み込んでいる．
第一に，日本語の語順は非常に柔軟で，例えば主語と目的語はほぼ常に入れ替え可能である．
これに対応するため，許容される場合には句をランダムに入れ替えた．
第二に，日本語は膠着語であるので，語句が活用する：例えば，「彼が走る」 から「もし彼が走\underline{れ}ば」への変化などである．
このような活用を Mecab \cite{kudo2005mecab} の辞書を利用したルールにより実現した．



\clearpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Recall Adamを使用せずに学習したLLMの性能} \label{appendix:sec:results_other_LLMs}

\Cref{appendix:tb:performance_aggregated}にRecall Adamを使用せずに学習したLLMも含めた結果を示す．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\llamaThreeBaseline のベンチマーク毎の性能} \label{appendix:sec:llama_8B_results}

\Cref{appendix:tb:performance_details_8B}に，\llamaThreeBaseline \ のベンチマーク毎の結果を示す．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 8
\begin{table}[h]
\input{05table08.tex}%
\addtocounter{table}{-1}
\hangcaption{\ALTJP 前後のLLMの精度．5-shot文脈内学習により評価した．$\oplus$\textbf{\ALT}-$x$は\Cref{tb:corpora}中に記載の人工論理推論コーパス$x$を用いて\ALTJP を施したことを示す．``w/o RecAdam''は，Recall Adam オプティマイザーを使わなかったことを示す．色は各列での順位を示す（濃いほど良い）．「平均」は全てのベンチマークのミクロ平均である．「論理推論」「数学」「コード」「NLI」「その他」は，その領域の様々なベンチマークで構成され（\Cref{appendix:tb:benchmarks}），ここでは平均精度を示す．}
\label{appendix:tb:performance_aggregated}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\clearpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 9
\begin{table}[t]
\input{05table09.tex}%
\caption{\ALTJP 前後の\llamaThreeBaseline \ の性能．5-shot文脈内学習により評価した．}
\label{appendix:tb:performance_details_8B}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{biography}

\bioauthor{森下　皓文}{%
2014年に東京大学―理学系研究科―物理学専攻（修士課程）を修了．専門は素粒子物理学・宇宙物理学．同年に株式会社東芝に入社し，音声認識の研究に従事．2017年より株式会社日立製作所に入社し，機械学習の情報論的解釈や，自然言語処理の基礎（論理推論）また事業応用（ソフトウェア開発・意志決定理支援等）の研究に従事．
}

\bioauthor{森尾　　学}{%
東京農工大工学部学情報工学科を2017年に早期卒業，同大学院工学府情報工学専攻を2019年に修了後，日立製作所入社．同社の研究開発グループにて自然言語処理の研究に従事．2023年よりHitachi America Ltd.の研究員，およびスタンフォード大学の客員研究員として自然言語処理と気候変動の学際研究に従事．
}

\bioauthor{山口　篤季}{%
2019年東京農工大学工学部情報工学科卒業．2020年英国シェフィールド大学コンピュータ・サイエンス学科音声言語処理専攻修士課程終了．株式会社日立製作所研究開発グループ研究員を経て，2023年より英国シェフィールド大学コンピュータ・サイエンススクール博士課程に在籍．現在は言語モデルの多言語適応に関する研究に従事．
}

\bioauthor{十河　泰弘}{%
2013年に大阪大学工学研究科電気電子情報工学専攻博士課程修了．博士（工学）．同年に日本電気株式会社に入社し，機械学習技術の研究および事業応用に従事．2019年より株式会社日立製作所に入社．現在，ユニットリーダ主任研究員として自然言語処理技術の研究およびチームマネジメントに従事．
}

\end{biography}





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\biodate



\end{document}



