Google Cloud 

PaLM 2 を用いた論文の要約検証

Introduction

こんにちは、DATUM STUDIOのyasunamiです。ここ最近、LLM(大規模言語モデル)の技術が目まぐるしく発展しているなと、ひしひしと感じる毎日です。

そんな中先日、弊社とパートナーシップを締結させていただいている Google 様よりPaLM 2 の日本語対応が発表されました。PaLM 2 は、英語を主要とする多言語処理、自然言語の生成、そしてコーディングなどの幅広い機能を備えたLLMです。今回、社内の有志でPaLM 2 を試す機会があり、PaLM 2 を用いた英語論文の日本語要約に挑戦しました。

本記事は、PaLM 2 のキャッチアップも兼ねて、どんな活用方法がありそうかを実験的に検証した内容をまとめたものになっております。この記事を読まれた方、特に、PaLM 2 でどんなことができるのか気になっている方、試してみたいと思っている方の参考となれば幸いです。

英語論文を自動要約するモチベーション

先ほど少し触れましたが、LLMをはじめとするAIに関する技術の進化は目まぐるしく、日々大量の論文が公開されています。要点を理解するだけでもかなりの時間を要してしまい、自分の関心のある分野に絞った場合でも、全ての論文に目を通すことは難しいです。特に、ほとんどの論文は英語で書かれているため、私のように英語に不慣れな人にとっては、翻訳という更なるハードルがあります。これらの翻訳・要約の作業が人手ではなく機械的に行うことができるようになれば、より効率良く新しい技術をキャッチアップできるようになります。その手始めとして、今回はPaLM 2 を用いて翻訳・要約が行えるのかどうかを検証しました。

要約とは

一般的に要約とは、元の文章から重要な情報を汲み取り短い文章にすることを指し、多くの場合は、元の文章と要約した後の文章は同じ言語が想定されています。

また、どのように短い文章にするのか、という手法に着目すると要約は抽出型と抽象型に分類されます。抽出型は、元の文章から重要そうな文や表現をそのまま抽出する方法、抽象型は、元の文章の意味を汲み取り、新しい文章としてまとめ直す方法です。要約手法の観点以外にも、要約の分類観点は入力、要約結果のスタイルなど様々存在します。

今回は、PaLM 2 を用いて、ある程度の長さの単一の英語論文から、抽象型の手法によって翻訳処理を行いつつ、ある程度短い日本語の文章にまとめ直すことを要約のゴールとします。

長い文章に対する処理方法

今回使用するPaLM 2 (bison)は入力コンテキスト長が最大8,196トークン(公式によると英語では1トークンあたり約4文字程度)であるため、それ以上の長さのコンテキストはそのままでは処理することはできません。そこで、LangChainという言語モデルの機能を拡張できるライブラリを使用します。このライブラリには、長い文章を分割しながら処理を行うChain機能があり、これにより言語モデルの入力制限以上の長さの文章に対しても処理が可能となります。

元々の文章を分割した上で、どのように処理するかはいくつか手法があり、この手法をChainTypeといいます。記事作成時点でLangChainでは4つの手法から選択することができます。以下の表に、各手法の処理方法の概要などの情報をまとめました。 

ChainType処理方法得意な文章の特徴英語論文の要約との親和性
stuff文章を分割せず処理短い文章×
(長文非対応)
refine分割した文章を順番に処理。
ただし、前の分割文章の処理結果を次の分割文章に結合して処理
長い文章。
重要な情報や文脈関係が広範に存在。

(処理速度遅、論文構成不向き)
map reduce分割した文章ごとに処理。
全ての処理結果を結合して再度処理。
結合結果が長い場合はオプションとして圧縮処理が可能
長い文章。
重要な情報が広範に存在。

(処理速度早、網羅性良)
map re-rank分割した文章ごとに処理し、処理結果と併せて結果の確実性を示すスコアを出力。
全ての処理結果のうち最大スコアのものを出力
長い文章。
重要な情報が局所に存在。

(処理速度早、網羅性低)
表: ChainType概要

今回は、論文自体が章ごとに内容がある程度独立しており、前後のつながりよりも全体の網羅性を重要視した要約にしたいためmap reduceを採用して検証を行っていきます。

入力したpromptと生成された要約

ここからはPaLM 2 に指示するpromptの内容と、そのpromptに対応した要約結果を紹介したいと思います。

要約例として使用したのは機械学習モデルであるXGBoostCatBoostの2つの論文です。参考論文や図表を含めPDFファイル形式でそれぞれ10ページ、11ページの長い文章となっております。論文の文章は、pythonモジュールpypdfを用いてPDFファイルから機械的に抽出を行い、特別な前処理は行わないこととします。その結果、論文の文字数は空白や改行を含めそれぞれ約49,500文字と約41,500文字となりました。今回は、これらの文章を論文のabstract程度(5文程度)の短い文章に要約することを目指して検証を行います。得られた要約に対する評価は以下の3つの観点で行います。

  • ・要約が簡潔であるか。
  • ・間違った情報が含まれていないか。
  • ・論文内で述べられていることのみを参照して要約がされているか。

今回はChainTypeとしてmap reduceを採用しているため、分割した文章をそれぞれ処理するmap_prompt、それらの処理結果を全て統合した文章を再度処理するcombine_promptを指定する必要があります。また、論文のような長い文章では、結合した文章自体が言語モデルの入力制限よりも長くなる場合があるため、処理結果全体が入力制限よりも短くなるまで圧縮処理をするcollapse_promptも必要になります(指定しない場合、処理結果のうち先頭から入力制限までの長さの文章だけが処理されます)。

まず手始めに、この3つのpromptとして以下の共通のpromptを設定して要約を行ってみます。

prompt_template = “””以下の文章の内容を、日本語で5文以下に要約しなさい。
文章:{text}
“””

map_promptやcollapse_promptでは分割した文章ごとに処理を行うため、場所によっては文章の要点が少なく要約に多くの文章量が必要ない場合があります。文章量にある程度の自由度を与える気持ちを込めて「5文以下」という表現をしています。ここで、「5文以下」という数値指定を行っていますが、言語モデルは一般的に数を数えることが得意ではないため、意図した回答が得られない場合があり、大きい数値ほどその傾向が強いです。これは、言語モデル自体が単語同士の関係性を学んでいるだけで言葉の意味を理解しているわけではないということに起因します。今回は、小さな数値では上手く動作してくれることを期待して、そのまま数値指定を採用します。

上記のprompt設定の結果、生成された要約が以下のようになりました。

【検証1: XGBoost】

XGBoostは、データサイエンティストが機械学習の課題で最先端の結果を達成するために広く使用されている、スケーラブルなエンドツーエンドのツリーブースティングシステムです。

XGBoostは、スパースデータ用の新しいスパース認識アルゴリズムと、近似ツリー学習用の重み付きクオンタイルスケッチを提案しています。

さらに、XGBoostは、スケーラブルなツリーブースティングシステムを構築するための、キャッシュアクセスパターン、データ圧縮、シャーディングに関する洞察を提供します。

これらの洞察を組み合わせることで、XGBoostは既存のシステムよりもはるかに少ないリソースを使用して、数十億の例を超えてスケーリングします。

XGBoostは、すべてのシナリオでスケーラブルであることが成功の最も重要な要因です。

【検証1: CatBoost】

CatBoostは、Yandexが開発した勾配ブースティングツールキットです。
CatBoostは、他の公開されているブースティング実装よりも、さまざまなデータセットで品質の面で優れています。
CatBoostは、順序付きブースティングとカテゴリカル特徴の処理のための革新的なアルゴリズムという2つの重要なアルゴリズム的進歩を導入しています。
CatBoostは、勾配ブースティング法の一種であり、二値決定木をベース予測器として使用する。
CatBoostは、様々な機械学習コンペティションで優勝しており、その性能の良さが実証されています。

どちらも運良く指定どおり5文以下の簡潔な文章となっていますが、元々の文章の主張を過剰に捉えている表現や、要約の過程で情報が抜け落ちてしまった箇所が多少ありました(赤字でハイライトした部分が該当箇所)。

一方で、要約結果の大部分は、論文のabstractやconclusionの内容をgoogle翻訳などで英訳した文章とほぼ一致していました。これは、明るく捉えると論文の主張を正しく捉えているということですが、今回のモチベーションにあるような自動要約の意義としてはプラスアルファの価値が欲しいところです。

上記の結果を受け、5文よりも多くの文章量を指定した場合に元々の論文の要約以上の付加情報が得られるのかを検証してみました。要約例をXGBoostに絞り、先ほどのpromptの指定する文章量を増減させた結果を観察してみます。

【検証2: XGBoost 6文以下】

XGBoostは、データサイエンティストが機械学習の課題で最先端の結果を達成するために広く使用されている、スケーラブルなエンドツーエンドのツリーブースティングシステムです。
XGBoostは、スパースデータ用の新しいスパースアウェアアルゴリズムと、近似ツリー学習用の重み付きクオンタイルスケッチを提案しています。
さらに、XGBoostは、キャッシュアクセスパターン、データ圧縮、シャーディングに関する洞察を提供し、スケーラブルなツリーブースティングシステムを構築しています。
これらの洞察を組み合わせることで、XGBoostは既存のシステムよりもはるかに少ないリソースを使用して、数十億の例を超えてスケーリングします。
XGBoostは、機械学習コンペティションサイトKaggleの29のチャレンジのうち、17のソリューションで使用されました。
XGBoostは、KDDCup 2015でも使用され、トップ10のすべての優勝チームで使用されました。

【検証2: XGBoost 7文以下】

XGBoostは、データサイエンティストが機械学習の課題で最先端の結果を達成するために広く使用されている、スケーラブルなエンドツーエンドのツリーブースティングシステムです。
XGBoostは、スパースデータ用の新しいスパース認識アルゴリズムと、近似ツリー学習用の重み付きクオンタイルスケッチを提案しています。
さらに、XGBoostは、キャッシュアクセスパターン、データ圧縮、シャーディングに関する洞察を提供し、スケーラブルなツリーブースティングシステムを構築しています。
これらの洞察を組み合わせることで、XGBoostは既存のシステムよりもはるかに少ないリソースを使用して、数十億の例を超えてスケーリングします。
私たちのシステムは、幅広い問題に対して最先端の結果を出しています。
XGBoostのスケーラビリティは、いくつかの重要なシステムとアルゴリズムの最適化によるものです。
XGBoostは、メモリ外のデータ構造とデータ入出力の最適化を活用して、大規模なデータセットを扱うことができます。
※見やすさのため、検証1の結果で見られた不要な改行は削除

指定する文章量を守りつつ、5文以下の指定で得られた要約結果をベースに、文が追加した結果が得られました(赤字でハイライトした部分が該当箇所)。すでにある文章と重複する内容の文も追加されていますが、6文以下指定の場合は「実績を踏まえた性能の良さ」、7文以下指定の場合は「より具体な手法の概要説明」を重視した文が追加されていそうです。

文章量を増やすことによって、最初の検証結果のようなabstractの単純翻訳よりも追加情報を得ることができ、目的によっては有益な要約結果になったと言えそうです。

検証結果としては以上になりますが、検証の中で得られた知見を元に、より「良い」要約を行うためにどのようにpromptを設計するべきかについて最後に述べたいと思います。

一つ目は、検証結果でも触れていましたが、ざっくりと論文の要約を指示するのではなく、論文の手法や性能など、どの観点の内容を要約したいかを指定することです。大規模言語モデルに広く言えることですが、処理手順や最終的な出力形式など、promptで細かく指定することで望ましい結果が得られるケースが多いです。論文には、研究背景・手法説明・実験結果など多岐に渡った内容がまとめられているため、観点を指定することで不要な情報を省くことに繋がり要約結果の改善が期待できます。

二つ目は、map_reduceの特性を活かして、map_prompt、collapse_prompt、combine_promptを別々に設計することです。今回は3つ全て共通のpromptを使用しましたが、分割した文章ごとに再帰的に5文以下の要約を行ったことによって、分割文章によっては要約に内容が偏り、本来必要な情報が抜け落ちてしまうリスクもあります。文章の要点を箇条書きするmap_prompt、箇条書きの中から要約に必要な情報だけを抜き出すcollapse_prompt、その要素を取りまとめるcombine_prompt、などそれぞれ役割を変えるなど試行錯誤することで要約の改善が見込めるかもしれません。

まとめ

今回はPaLM 2 のキャッチアップの一環として、英語論文の日本語要約について検証を行いました。文章の前処理は行わず、プロンプトによる文章量の変更という簡単な検証ではありましたが、PaLM 2 を用いて手軽に英語論文のキャッチアップが出来そうな兆しが確認できました。

とは言え、今回の要約結果は実用には程遠いものではあるので、検証知見として述べたような要約の観点の指定や、プロンプトの細かな設計なども試してみたいと思います。

このページをシェアする:



DATUM STUDIOは、クライアントの事業成長と経営課題解決を最適な形でサポートする、データ・ビジネスパートナーです。
データ分析の分野でお客様に最適なソリューションをご提供します。まずはご相談ください。