お知らせ

GMW(Gustav Mahler Werke, グスタフ・マーラー作品番号:国際グスタフ・マーラー協会による)を公開しました。(2025.4.20)

2025年4月24日木曜日

マーラーについて生成AIに聞いてみた(9):RAGの改良について(2025.4.24再公開)

0.はじめに

    マーラーについて生成AIに問い合わせた結果が思わしくないことをうけ、RAG(Retrieval-Augumented Generation)を試作して問い合わせを行い、効果を検証してみたところ、妥当な回答を得ることができたことは、前回ご報告した通りです。前回はRAGが確かに効果を発揮していることを確認するために、「大地の歌」の日本初演を問い合わせるプロンプトへの回答を確認しただけですが、今回はより多くの質問に回答できるようにRAGを改良した結果を報告します。改良の対象としたRAGは前回の報告にて構築したもので、山田育矢(監修・著)・鈴木正敏・西川荘介・藤井一喜・山田康輔・李凌寒(著)『大規模言語モデル入門II』(技術評論社, 2024)の第13章で紹介されているサンプルに基づいたものです。

1.実験の概要

 RAGの改良点は以下の通りです。

A.読み込ませる文書の拡大

前回報告したRAGには日本語版wikipediaの記事(文書数29)を読み込ませました。全文書長124,444、構築されたインデクス数は468でした。「大地の歌」日本初演については、偶々wikipediaの記事中に適当な文章があって、それを引き当てることによって正解を返すことができましたが、思いつくままに色々なプロンプトを与えると、作品や伝記的な事柄に関するごく基本的な問い合わせについてもなかなか適切な答が返ってこないことが確認されたため、以下の方針で読み込ませる文書数および文書の種類を増やしました。

  • 自分の書いたマーラーに関する記事。ブログ切り替え前のhntl形式の記事185に加え、その後ブログで執筆・公開した記事の一部である90記事をテキスト化して読み込ませました。
  • 自分で作成・公開しているマーラーに関する作品表、年表は基本的に表形式ですが、表形式のデータをそのまま与えても、LLMは表の構造に含意された意味を理解することができないため、生成AIで利用するためには何らかの前処理によって加工を行う必要性が各所で指摘されています。もっとも確実なのは、表の内容を自然言語で説明した文章を用意して、それを読み込ませることですが、ここではできるだけ手間をかけずに行うことを優先し、列ラベルと値のペアを行毎に一単位のデータをする変換処理をAIに指示して作成させ、それを用いて変換を行いました。実験環境がColaboratoryであるため、プログラムの作成はColaboratoryのnoteで使えるGeminiを用いて行いました。
  • 実際に変換した文書を読み込ませて実験をしてみると、一つの表のデータを一つのファイルにしてしまうと、インデクスの作り方によっては、前後の行のデータが混在することになり、それが原因での回答の誤りが一定の割合で発生することが確認できたため、主要作品の初演(イギリス、アメリカ、日本での初演含む)データについては、1行1ファイルとする変換プログラムをAIに作成させてデータを用意しました。作品・地域毎にファイルが作成されますので、初演情報のみで文書数は65になりました。
  • 伝記的情報、著名なエピソードの類への回答ができるように、マーラーについての伝記・回想のうちパブリック・ドメインで利用できるものの中から、ガブリエル・エンゲルの伝記とブルーノ・ワルターの回想を選びました。日本語化するにあたっては、Goolgle翻訳を用い、校正は全く行わない状態で、そのまま読み込ませました。実際にはGoogle翻訳の結果は、未校正の状態だとかなりの誤訳を含みますが、ここでは極力AIにやらせることで手間を省くことを優先しました。いずれも基本的に省単位で文書化したのでエンゲルの伝記の文書数が12、ワルターの回想の文書数が10となりました。
以上をまとめると以下の通りとなります。

  • 日本語版wikipedia  29 (前回報告のRAGはこれのみ)
  • 旧ホームページhtml 185
  • ブログ記事追加分 90 (画像やデータ分析に関する記事を除外)
  • 初演情報(含・英米日) 65 (作品・国別にファイル分割)
  • エンゲルの伝記の日本語訳 12 (Google翻訳・未校正)
  • ワルターの回想の日本語訳 10 (Google翻訳・未校正)

合計で391文書を読み込ませることにした結果、全文書長は約20倍の2,731,088となりました。

B.文埋め込みインデクス長の調整

元記事で構築したRAGは、基本的に上掲書のサンプルのパラメータをそのまま用いていました。そのため文埋め込みインデクスの最大文字数は400文字、オーバーラップは最大100文字分で、構築されたインデクス数は468、平均インデクス長は約266でした。今回、特に初演情報をはじめとした表形式データの変換結果をインデクス化した際に、別の作品のデータである前後の行のデータがインデクスの中に混在してしまうことによる誤答が一定の割合で生じたことから、インデクス長を短くすることにしました。結果として今回構築されたインデクスは、最大文字数200文字、オーバーラップ最大50文字で、インデクス数19,321、平均インデクス長は約141となりました。なお、Retriverがプロンプトに対して引き当ててLLMに渡すインデクスの数は3で、これは前回から変更ありません。

 一方で、RAGの評価については以下の通りです。

C.評価対象とするLLMおよびRAG

前回は上掲書第13章RAGでサンプルが示されていた以下の2種のLLMを対象としました。

  • llm-book/Swallow-7b-hf-oasst1-21k-ja:東京科学大がMeta Llama 2の日本語能力を強化した大規模言語モデルであるLlama 2 Swallowシリーズの最も基本的なモデルであるSwallow-7b-hfに対して、同書11章で紹介されている指示チューニングを行った独自モデル。
  • llm-book/Swallow-7b-hf-oasst1-21k-ja-aio-retriever:llm-book/Swallow-7b-hf-oasst1-21k-jaをベースとして、上掲書13章3節で行われているAI王データセットを用いた指示チューニングを行ったモデル
モデルの特性を踏まえ、今回は前者、すなわちllm-book/Swallow-7b-hf-oasst1-21k-jaのみを対象として、様々なタイプのプロンプトを送って回答を確認することにしました。

また比較対照を行うために、今回構築した、文書拡張版のRAG(以降、gmdoc1と呼びます)以外に、RAGを用いずにLLMに直接問い合わせた場合、前回構築したRAGに問い合わせた場合についても評価を行いました。

結果的に今回は以下の3種類のパターンについて評価を行ったことになります。
  • (本実験) Swallow-7b-hf-oasst1-21k-ja+gmdoc1 (gmdoc1):今回構築した文書拡張版RAGに問い合わせ
  • (対照実験1) Swallow-7b-hf-oasst1-21k-ja+wiki (wiki):前回構築した日本語wikipediaベースのRAGに問い合わせ
  • (対照実験2) Swallow-7b-hf-oasst1-21k-ja (Swallow):直接LLMに問い合わせ
前回もそうであったように、ここで使用したLLMのベースはMetaのllama2であり、現時点では既に過去のLLMであることに留意する必要があります。Swallow自体でもllama3ベースのものではどうなるのか、更には最新の商用LLMベースのチャット(ChatGPT, Gemini, Claudeなど)に問い合わせたらどうなるかも興味深いものがありますが、今回の報告には含めず、次回以降の課題としたいと思います。

D.評価用プロンプトセット

既述の通り、前回は「大地の歌」の日本初演についてのプロンプトのみで確認を行いましたが、今回は上述のように読み込ませる文書を拡大した効果を確認するために、以下のようなプロンプトセットを用意しました。

  1. 「大地の歌」の日本初演は?
  2. マーラーの「大地の歌」の日本初演は?
  3. マーラーの「大地の歌」はどこで書かれたか?
  4. マーラーは第8交響曲についてメンゲルベルクに何と言いましたか?
  5. マーラーが死んだのはいつか?
  6. マーラーはいつ、誰と結婚したか?
  7. マーラーがライプチヒの歌劇場の指揮者だったのはいつ?
  8. マーラーがプラハ歌劇場の指揮者だったのはいつ?
  9. マーラーがハンブルクの歌劇場の楽長になったのはいつ?
  10. マーラーの第9交響曲の日本初演は?
  11. マーラーは自分の葬儀についてどのように命じたか?
  12. マーラーの「嘆きの歌」の初演は?
  13. マーラーはどこで生まれたか?
  14. マーラーの第9交響曲第1楽章を分析してください
  15. マーラーの第10交響曲の補作者は?
  16. マーラーの第2交響曲の最初の録音は?
  17. マーラーの「大地の歌」のイギリス初演は?
  18. マーラーの「交響曲第6番」はいつ、どこで初演されたか?
  19. ブラームスはブダペストでマーラーについて何と言ったか?

選択は体系だったものではなく、多分に恣意的なものではありますが、クイズ式の短答のものから、文章を答えるものまで、また生涯と作品の両面にわたった質問となるよう、一定の配慮はしました。また、今回用意したプロンプトは、RAGに読み込ませた文書の中に正解が含まれる内容についての問い合わせとしました。これは今回の実験の目的が、必要な情報が含まれる文書が与えられた場合に正しい答えを返すことができるかどうかを確認することを基本としたためです。但し、プロンプト14のような一部の質問については、そもそも何を正解とするか自体、様々な立場が考えられるため、これはどちらかといえば、事実に反した情報を追加するなどして、誤った答えを生成することがないかどうかを確認していることになるかと思います。また、「大地の歌」の日本初演について、1,2の2種類のプロンプトを用意したのは、偶々実際に前回構築したRAG(wiki)において「マーラーの」があるとないとで違った答が返って来たためで、プロンプトの与え方がどのように影響するかを確認する目的で加えてあります。

評価は、概ね正解が返って来た場合を〇(2点)、一部正解が含まれるものの誤りが含まれたり、明確な誤りではないものの、一般的に期待される回答からは不十分な場合等を△(1点)、明確に誤っているものを×(0点)として点数の合計を求めました。満点は38点ということになります。

E.検索されたインデクスの確認

また、評価が〇でなかった場合には、問題の所在を確認するために、プロンプトに対して類似度に基づき検索され、LLMに渡されたインデクス(1プロンプトにつき3つ)の内容を確認しました。このことにより、(a)文書に回答するための情報が含まれない場合(既述の通り、これは原則としてはない筈ですが)、(b)文書に情報が含まれているのに、正しいインデクスが引き当てられない、(c)正しいインデクスは引き当てられているが、LLMがそこから正解を抽出できていない、(d)正しいインデクスから正しい情報が引き当てられているが、それ以外に不正確な情頬を付加してしまっている等、誤答の原因を同定し、RAGのどの面に問題があるかを分類することができます。

以下では報告を割愛しますが、「大地の歌」の日本初演について、1,2の2種類のプロンプトで前回構築したRAG(wiki)において違った答が返って来たケースについて調べてみると、1.では正解を含むインデクスが引き当てられているのに対し、2.では引き当てられたインデクスが一部入れ替わっており、正解を含むインデクスが選ばれなくなってしまっていることが確認できました。つまり1,.2のプロンプトに対する回答の違いは、この場合には、2.のプロンプトの場合に(b)文書に情報が含まれているのに、正しいインデクスが引き当てられないという、RAGの検索システム側の問題が原因となっており、LLM側の問題ではないことが確認できています。

また、以下で報告する今回の改良版RAG(gmdoc1)の回答のうち、「大地の歌」のイギリス初演についての回答は、以下で確認できるように、前半部分は正しいのに対し、後半は意味の通らない文章になっていますが、これについてインデクスを確認すると、前半部分の回答の元となったインデクスが正しく検索されている一方で、後半部分に相当する情報は引き当てられた3つのインデクスのいずれにも含まれていないことがわかりました。従ってこの場合には、後半の誤りは、(d)正しいインデクスから正しい情報が引き当てられているが、それ以外に不正確な情頬を付加してしまっているバターンに該当し、LLM側の問題であることがわかります。

同様の問題は、マーラーはいつ、誰と結婚したか?というプロンプトについても起きていて、Swallowおよび前のRAG(wiki)は年が間違っていたのに対し、今回の改良版RAG(gmdoc1)の回答は年月までは正しい回答になっているのに、日付が誤っています。読み込ませた文書には1902年3月という情報は含まれており、正しくインデクスも検索できていますが、LLMが日付を補った結果、誤りとなってしまったようで、これもまた(d)正しいインデクスから正しい情報が引き当てられているが、それ以外に不正確な情頬を付加してしまっているバターンに該当します。

これらについてはRAGの検索器(retriever)が選択したインデクスの情報も公開しているので、そちらをご覧いただければ確認することができます。

2.実験の結果

今回の実験も前回同様、Google Colaboratory上で行いました。読み込ませる文書の拡大に伴い、構築されるインデクスの規模も大きくなり、評価用のプロンプトの量も増やしていることから、前回はColab Pro標準のT4モデルで動かせていたものが、今回はメモリ不足で動かせなくなったため、A100モデルを用いて実験を行いました。

実験結果のスコアを示すと以下の通りとなり、日本語版wikpediaの記事のみによる前回のRAGと比べても、今回読み込ませる文書を拡大したことの効果は明らかだと思います。ただし、評価用プロンプト・セットを用意したとはいえ、規模が小さく(19)、網羅性に欠けるため、全般的な性能を測定したものではないことには注意が必要です。既述の通り、そもそもが読み込ませる文書に情報が含まれていそうな質問を選択しているので、ランダムに質問を設定すれば、正解率が大きく低下するのは間違いないものと思われます。
  • (本実験) gmdoc1:33/38(△:11,14,17, ×:6,  〇:残り全て)
  • (対照実験1) wiki:11/38(〇:1,5,15,18, △:9,11,12, ×:残り全て)
  • (対照実験2) Swallow:3/38(〇:5, △:14、 ×:残り全て)
詳細は煩瑣になるため、以下のファイルを参照頂くこととし、ここでは割愛します。
  • gmdoc1_result.pdf:本実験・対照実験1,2における回答と評価の一覧。
  • gmdoc1_retriever.pdf;本実験で各プロンプトに対して検索されたインデクス(3種)。
以下、gmdoc1についてのみ、個別に回答を示します。

*     *     *
今回改良したRAG(gmdoc1)の回答一覧

1.「大地の歌」の日本初演は?(〇)
  • 「大地の歌」の日本初演は1941年1月22日、東京のNHK交響楽団による演奏で、ジョゼフ・ローゼンストックが指揮した。
2.マーラーの「大地の歌」の日本初演は?(〇)
  • マーラーの「大地の歌」の日本初演は、1941年1月22日、東京のNHK交響楽団による演奏で行われた。指揮はジョゼフ・ローゼンストック、ソプラノは四家文子、バリトンは木下保であった。この演奏会は、当時の日本の音楽界に大きな影響を与え、マーラーの作品の普及に貢献した。
 ※「この演奏会は」以降はLLMの付加。なくもがなだが、誤りとも言えず〇。

3.マーラーの「大地の歌」はどこで書かれたか?(〇)
  • マーラーの「大地の歌」は、1908年にイタリアのドロミテ・アルプスで作曲された。
 ※当時はオーストリア=ハンガリー帝国領だが現在はイタリアに属している。

4.マーラーは第8交響曲についてメンゲルベルクに何と言いましたか?(〇)
  • マーラーはメンゲルベルクに、交響曲第8番は「宇宙全体が調和して響き始めると想像してください」と語った。
5.マーラーが死んだのはいつか?(〇)
  • マーラーは1911年5月18日に亡くなった。
6.マーラーはいつ、誰と結婚したか?(×)
  • マーラーは1902年3月10日にアルマ・シントラーと結婚した。
 ※年月は検索結果に基づき正しい。LLMが補完した日付は誤り。9日が正解なので×。

7.マーラーがライプチヒの歌劇場の指揮者だったのはいつ?(〇)
  • マーラーがライプチヒの歌劇場の指揮者だったのは1886年8月から1888年10月までです。
8.マーラーがプラハ歌劇場の指揮者だったのはいつ?(〇)
  • マーラーは1885年から1886年までプラハ歌劇場の指揮者だった。
9.マーラーがハンブルクの歌劇場の楽長になったのはいつ?(〇)
  • マーラーがハンブルクの歌劇場の指揮者になったのは1891年3月26日のことで、彼は1897年までその地位にあった。
10.マーラーの第9交響曲の日本初演は?(〇)
  • マーラーの交響曲第9番は1967年4月16日に東京文化会館でキリル・コンドラーシン指揮モスクワ・フィルハーモニー管弦楽団によって初演された。
11.マーラーは自分の葬儀についてどのように命じたか?(△)
  • マーラーは自分の葬儀について、以下のように命じた:
1.マーラーは、自分の葬儀には、伝統的なウィーンの市民の行列や、大勢の市民による弔辞は必要ないと考えていた。
2.マーラーは、自分の墓石には自分の名前だけを刻み、自分の希望を記した簡潔な碑文を刻むように指定した。
3.マーラーは、自分の葬儀には、(…以下1の繰り返し)

 ※誤りは含まれていないが、3は1の繰り返しで不要なため△、

12.マーラーの「嘆きの歌」の初演は?(〇)
  • マーラーの「嘆きの歌」の初演は、1901年2月17日にウィーンでマーラー自身の指揮によりウィーン・フィルハーモニー管弦楽団によって行われた。
13.マーラーはどこで生まれたか?(〇)
  • マーラーはオーストリアのカリシュトで生まれた。
14.マーラーの第9交響曲第1楽章を分析してください(△)
  • マーラーの交響曲第9番第1楽章は、マーラーの交響曲の中で最も有名な楽章のひとつである。この楽章は、マーラーの死の直前に作曲され、彼の音楽の集大成として意図された。この楽章は、(以下、繰り返し。)
 ※適切なインデクスが検索できなかったケース。「死の直前」はミスリードで△。

15.マーラーの第10交響曲の補作者は?(〇)
  • マーラーの第10交響曲の補作者はデリック・クックです。
16.マーラーの第2交響曲の最初の録音は?(〇)
  • マーラーの交響曲第2番の最初の録音は、1924年にオスカー・フリートが指揮したSPレコードである。この録音は、マーラーの交響曲の初めての全曲録音であり、また、マイクロフォンを用いた「電気録音」技術が登場する前夜の、所謂「アコースティック録音」と呼ばれる録音技術を用いての収録としては最後期のものである。この録音は、交響曲第2番のそれとしてだけでなく、マーラーの交響曲の最初の録音
 ※途中で切れているが、内容的には間違いではなく、繰り返しでもないため〇。

17.マーラーの「大地の歌」のイギリス初演は?(△)
  • マーラーの「大地の歌」のイギリス初演は、1914年1月20日にロンドンのクイーンズ・ホールで行われた。指揮はヘンリー・ウッド、オーケストラはクイーンズ・ホール管弦楽団、ソリストはドリス・グッドールとジェルヴューズ・エルヴス。この演奏会は、第一次世界大戦の勃発により、マーラーの死後に作曲された「大地の歌」のイギリス初演としては、マーラーの意図した形ではないことに注意
 ※前半は〇。「この演奏会は」以降はLLMの追加で×。なくもがなで全体として△。

18.マーラーの「交響曲第6番」はいつ、どこで初演されたか?(〇)
  • マーラーの交響曲第6番は1906年5月27日にドイツのエッセンで初演された。
19.ブラームスはブダペストでマーラーについて何と言ったか?(〇)
  • ブラームスはマーラーについて、「本物のドン・ジョヴァンニを聴くにはブダペストに行かねばならない」と言ったと伝えられている。
(2025.4.22 公開, 23追記, 24評価での集計ミスを訂正して再公開。)

0 件のコメント:

コメントを投稿