\documentclass[japanese,other]{jnlp_3.6}
\usepackage{jnlpbbl_2.2}
\usepackage[dvipdfmx]{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{url}
\usepackage{hangcaption_jnlp}
\usepackage{array}
%%%%\usepackage{udline}
%%%%\setulminsep{1.2ex}{0.2ex}
%%%%\let\underline=\ul
\allowdisplaybreaks


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% author's definition
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\Volume{30}
\Number{3}
\Month{September}
\Year{2023}
%%%%\Issuetitle{「　　　　」特集号}

\setcounter{page}{1100}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\jsubject{学会記事}
\jtitle{「大規模言語モデルに基づく複数の外部ツールを利用した\\
	推論フレームワーク」の研究}
\jauthor{稲葉　達郎\affiref{稲葉達郎}}
\etitle{Research on "MultiTool-CoT: GPT-3 Can Use Multiple External Tools with Chain of Thought Prompting"}
\eauthor{Tatsuro Inaba\affiref{稲葉達郎}} 

\headauthor{稲葉}
%%%%\headtitle{「複数の外部ツールを利用した推論フレームワーク」の研究}
    \headtitle{「大規模言語モデルに基づく複数の外部ツールを利用した推論フレームワーク」の研究}

\affilabel{稲葉達郎}{京都大学}{Kyoto University}



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


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{はじめに}

本稿では，言語処理学会第29回年次大会（NLP2023）で優秀賞を受賞した「大規模言語モデルに基づく複数の外部ツールを利用した推論フレームワーク」について，手法の概要と研究の過程を紹介する．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{本研究の概要}
\label{sec:abstract}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 1
\begin{figure}[t]
\begin{center}
\includegraphics{30-3ia23f1.pdf}
\end{center}
\hangcaption{提案手法の全体像．出力中のハイライトは，黄緑色がGPT-3，黄色が電卓（Calculator; \textsc{Cal}），橙色が化学反応予測器（Chemical reaction predictor; \textsc{Crp}），紫色がモル質量検索器（Molar mass list; \textsc{Mml}）の出力であることを表す．}
\label{fig:overview}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

本研究の目的は，外部ツールを利用することで大規模言語モデルの能力不足を補完することである．
大規模言語モデルは事前学習を通じて広範な世界知識や一定レベルの記号処理能力を獲得している一方で，専門知識や複雑な記号処理能力は不足している．
例(\ref{ex:question})に専門知識と数値計算を要する問題例と Chain of Thought プロンプティング~\cite{wei2022chain,kojima2022large}を利用した大規模言語モデルの推論過程付き解答を示す．

\begin{enumerate}
    \item \label{ex:question}
    Q: What is the amount of 11 moles of Glucosamine\\
    A: The molar mass of Glucosamine is 221.22 g/mol. Therefore, 11 moles of Glucosamine would be equal to 11 x 221.22 = 2434.42 g.
\end{enumerate}

推論過程をみると，グルコサミンのモル質量に11をかけるという推論の道筋自体は正しい．
しかし，グルコサミンのモル質量（正しくは 179.19 g）と $11 \times 221.22$ の計算（正しくは 2433.42）を間違えており，これらをふまえて生成された最終的な解答も間違っている．
このような問題を解くには大規模言語モデルの能力が不足していることがわかる．

これらの問題を同時に解決するため，本研究では大規模言語モデルによる推論において，複数の外部ツール利用を可能にする枠組みを提案した．
図~\ref{fig:overview}に提案手法の概要を示す．
大規模言語モデルには GPT-3（text-davinci-003）\footnote{https://platform.openai.com/docs/models/gpt-3}~\cite{GPT-3} を利用している．
プロンプトは，利用可能な外部ツールを明示した\textbf{説明文}，いくつかの問題文と推論過程付きの解答のペア（\textbf{Few-Shot 事例}），解かせる\textbf{問題文}を結合して構成する．
Few-Shot 事例として与える推論過程には外部ツールの呼び出し方をアノテーションする．
具体的には，\texttt{$<<$外部ツール名$>>$}の文字列を外部ツールを呼び出す文字列としてアノテーションし，その直前に外部ツールへの入力を特定のフォーマットでアノテーションする．
例えば，外部ツールとして電卓（Calculator）を利用する場合，Few-Shot 事例として与える推論過程の中で電卓を利用すべき箇所に \texttt{$<<$Calculator$>>$} の文字列をアノテーションし，その直前に電卓に与える数式をアノテーションする．
推論時は GPT-3 がプロンプトに従い，与えられた問題文に対する解答を外部ツールを呼び出す文字列を含む推論過程と一緒に生成する．
その時，\texttt{$>>$} の文字列が生成されたら生成を中断し，その直前の文字列から使用する外部ツールの名前とそのツールへの入力を抽出，外部ツールを実行した後，その結果を生成中の推論過程の末尾に追記する．
これを新たな入力とし，GPT-3 による推論過程の生成を再開する．

提案手法の有効性を確認するため，専門知識を要する数値推論タスク NumGLUE (Task2) ~\cite{mishra-etal-2022-numglue}のもとで実験を行った．
実験の結果，提案手法が強力なベースライン手法の性能を大幅に上回り，現時点での世界最高性能を達成することを確認した．
詳細については原論文~\cite{inabanlp2023}や関連英語論文~\cite{inaba2023multitoolcot}を参照していただきたい．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{本研究の過程}

本研究は筆者が学部4年時に行った研究であり，2022年4月の研究室配属後に研究テーマを定めたところから始まっている．
筆者が所属していた研究室では，配属された学部生は教員が提示する研究テーマの中から興味を持ったテーマを出発点に据えることが多い．
自然言語処理について右も左もわからなかった筆者はありがたくこのシステムの恩恵にあずかった．
選択した研究テーマは，言語モデルが持っていない専門知識を外部知識として与えることで，該当分野における言語モデルの性能を引き上げる，というものであった．
8月に大学院試験が控えていたこともあり，前期のうちは自然言語処理の基本~\cite{kurohashi_nlp}を勉強して少し手を動かしたり，関連論文を読むので精一杯であった．
しかし今思うと，この時期に Chain of Thought プロンプティング~\cite{wei2022chain,kojima2022large} や In-context 学習~\cite{10.1145/3560815}を知り，GPT-3 を使って楽しく遊んでいたのが後々役立っていたのかもしれない．

9月に入り，いよいよ本腰を入れて研究を始めた．
当初の研究テーマの専門知識を補完するという目的を達成するため，いくつかの方法を試した．
はじめに思いついた方法は，与えられた問題を解くために必要な知識を言語モデルによって予測し，その知識の検索結果をプロンプトに追加するという手法であった．
結果から言うとこの手法は上手くいかなかった．
推論を始める前に必要な知識を予測するのでは，推論を進めていくうちに必要なことが発覚する知識を上手く与えられなかったからである．

11月に入り，この問題を解決する論文~\cite{dentaku}に出会った．
この論文では数値推論タスクに着目し，推論過程の最中に現れる ``='' をトリガーに電卓を実行するという手法を提案していた．
電卓を検索器に置き換え，推論中に適宜検索を実行するという手法を思いつくのは難しくなかった．

それと並行して，ちょうどこの時期にアルバイトで化学ドメインに特化した言語モデルに触る機会があり，これも研究に使えないかという妄想が膨らんでいた．
考えてみれば，自分が例~\ref{ex:question}のような問題を解くことになったら，問題を解くのに必要な専門知識を調べるのは当然として，計算が複雑になってきたら電卓を叩くし，その他にも問題を解くのに便利なツールがあれば利用する．
専門知識の問題を解決するために検索を駆使することばかり考えていたが，使えるものは何でも使えば良いのではないだろうか？

これが複数の外部ツールを使い分けながら推論を行うという本研究のアイデアに繋がった．
このアイデアを共著者の清丸さんに相談したところ「絶対に面白い」というコメントをいただき，そこからは順調に実装を行い，実験を重ね，言語処理学会と ACL に論文を投稿するに至った．
2023年1月に卒業論文を含む全ての締め切りがあり，初めて論文を執筆する筆者にとってハードな日々ではあったが，共著者の方々のとてもとても手厚いサポートのおかげで満足のいく論文に仕上げられたと思う．
ありがたいことに言語処理学会では優秀賞を受賞し， ACL では本会議に採択された．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{おわりに}

本研究はアイデアも実装も至ってシンプルである．
それにも関わらず高い評価をいただけたのはタイミングが良かったからという側面があるだろう．
最近では LangChain\footnote{\url{https://github.com/hwchase17/langchain}} や Toolformer~\cite{toolformer}， ChatGPT plugins\footnote{\url{https://openai.com/blog/chatgpt-plugins}} など類似した研究やサービスが多く見受けられる．
そして，共著の清丸さん，Feiさん，黒橋先生のアドバイスやサポートも本研究には欠かせないものであった．
こういった運や研究環境に恵まれていたことを深く自覚し，本研究の成果に驕ることなく，一歩一歩着実に歩んでいく所存である．


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

共著者の清丸さん，Feiさん，黒橋先生には大変お世話になりました．
特に清丸さんには，研究の進め方に留まらず，研究者としての心構えや，論文の書き方等多方面にわたる助言をいただきました．
どんな小さいことでも褒めてくださる指導方針のおかげで楽しく研究を進めていくことができました．
また，最後になりましたが賞選考ならびに本記事執筆の機会をくださった言語処理学会編集委員の皆様に深く感謝いたします．


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


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

\bioauthor{稲葉　達郎}{%
2023年京都大学工学部電気電子工学科卒業．
同年より京都大学大学院情報学研究科知能情報学コース修士課程在籍中．
言語処理学会， ACL 各会員．
}

\end{biography}



\end{document}



