Slide 1

Slide 1 text

LanguChainによる自動要約 ChatGPT部 #02 〜LT大会〜 - connpass 2023年4月15日(土)10:00-11:00 @usagisan2020 太田 博三

Slide 2

Slide 2 text

概要 • LangChainで下記の2つのタイプの自動要 約を試してみました。 • 芥川竜之介の『蜘蛛の糸』青空文庫(3236 文字)を用いました。 • WikipediaのあらすじとLangChainの2種 類のあらすじ(要約)を比較し、考察しました。

Slide 3

Slide 3 text

目次 1. The map_reduce Chain:並列処理型の自動要約 2. The refine Chain:翻訳とオリジナルを繰り返す 自動要約 上記の1.と2.とで、要約の処理過程を可視化し、プロン プトのテンプレートで調整します。 3. 1.と2.の結果をGraphGPTで可視化 4. 考察〃まとめ 5. 参考文献〃URL一覧

Slide 4

Slide 4 text

GraphGPTで可視化:Wikipediaのあらすじとその文字数 • 釈迦はある日の朝、極楽を散歩中に蓮池を 通して下の地獄を覗き見た。罪人どもが苦 しんでいる中にカンダタ(犍陀多)という男 を見つけた。カンダタは殺人や放火もした泥 棒であったが、過去に一度だけ善行を成し たことがあった。それは林で小さな蜘蛛を踏 み殺しかけて止め、命を助けたことだった。 それを思い出した釈迦は、彼を地獄から救 い出してやろうと、一本の蜘蛛の糸をカンダ タめがけて下ろした。暗い地獄で天から垂 れて来た蜘蛛の糸を見たカンダタは、この 糸を登れば地獄から出られると考え、糸に つかまって昇り始めた。ところが途中で疲れ てふと下を見下ろすと、数多の罪人達が自 分の下から続いてくる。このままでは重みで 糸が切れてしまうと思ったカンダタは、下に 向かって大声で「この蜘蛛の糸は己(おれ) のものだぞ。」「お前たちは一体誰に聞いて 登って来た。」「下りろ。下りろ。」と喚いた。 その途端、蜘蛛の糸がカンダタの真上の部 分で切れ、カンダタは再び地獄の底に堕ち てしまった。無慈悲に自分だけ助かろうとし、 結局元の地獄へ堕ちてしまったカンダタを 浅ましく思ったのか、それを見ていた釈尊は 悲しそうな顔をして蓮池から立ち去った。 Wikipediaのあらすじ(491文字)

Slide 5

Slide 5 text

GraphGPTで可視化: # 1. The map_reduce Chain • ブッダは蜘蛛の糸を 彼に降ろすことによっ て、多田という罪人を 地獄から救います。 多田はそれを登って 逃げようとしましたが 失敗し、糸が切れて 血のプールに落ちま した。ブッダは悲しん でいますが、極楽の 蓮の花は影響を受け ません。楽園の正午 近くです

Slide 6

Slide 6 text

1. The map_reduce Chain:並列処理型の 自動要約 • Wikipediaのあらすじ(491文字)と1. The map_reduce Chain との比較 Wikipediaのあらすじ(491文字) . The map_reduce Chain ナレッジグラフでは1/3はカバーされているが、十分ではない。 • 多田はそれを登って逃げようとしましたが失敗 し、糸が切れて血のプールに落ちました。 • ブッダは蜘蛛の糸を彼に降ろすことによっ て、多田という罪人を地獄から救います。

Slide 7

Slide 7 text

1. Wikipediaのあらすじ(491文字)と1 . The map_reduce Chainテンプレート〃カスタマイズとの比較 # プロンプトをテンプレートを用いてカスタマイズ (map_reduce) from langchain import PromptTemplate template = """ 次の文章を日本語で簡潔にあらすじを500文字程度で記して ください。 文章:{text} """ PROMPT = PromptTemplate( input_variables=["text"], template=template, )

Slide 8

Slide 8 text

1. Wikipediaのあらすじ(491文字)と1 . The map_reduce Chainテンプレート〃カスタマイズとの比較 . The map_reduce Chain(テンプレ) Wikipediaのあらすじ(491文字) ナレッジグラフでは比較的、広くカバーされている。 御釈迦様が極楽の蓮池で 散歩していたところ、地獄が あることを知り、罪人たちを 見た。 、極楽の蓮池の蓮は美しく揺れ、良 い香りが漂っていた。

Slide 9

Slide 9 text

1. Wikipediaのあらすじ(491文字)と2. The refine Chainとの比較 Wikipediaのあらすじ(491文字) 2つのナレッジグラフで、カバーされているが、ややバラバラ。 . The refine Chain ある日、仏陀は多田という 男が地獄にいるのを見て、 彼を救う決心をしました。 それを地獄の多田に降ろして 救った。しかし、タダの残酷な 心は彼を地獄に落とした.

Slide 10

Slide 10 text

1. Wikipediaのあらすじ(491文字)と2. The refine Chainテンプレート〃カスタマイズとの比較 prompt_template = """次の文章の簡潔なあらすじを500文字程度で記してください: {text} 簡潔な日本語のあらすじ:""" PROMPT = PromptTemplate(template=prompt_template, input_variables=["text"]) refine_template = ( "あなたの仕事は最終的なあらすじを400文字程度で作ることです¥n" "途中までのあらすじがあります: {existing_answer}¥n" "必要に応じて下記の文章を使い、さらに良いあらすじを作成してください¥n" "------------¥n" "{text}¥n" "------------¥n" "与えられた文章を踏まえて、日本語であらすじを改善してください" "与えられた文章が有用でない場合、途中までの文章を返してください" ) refine_prompt = PromptTemplate( input_variables=["existing_answer", "text"], template=refine_template, )

Slide 11

Slide 11 text

1. Wikipediaのあらすじ(491文字)と2. The refine Chainテンプレート〃カスタマイズとの比較 . The refine Chain(テンプレ) Wikipediaのあらすじ(491文字) ナレッジグラフでは網羅的にカバーされている。 言い換えがやや強く聞いている。 陀多は彼らを追い払 おうとするが、糸が断 れて地獄に落ちてし まいます。

Slide 12

Slide 12 text

4. 考察〃まとめ 〃The refine Chainのテンプレ〃カスタマイズがダン トツに網羅的でよかった。 〃map-reduceの並列処理の要約は、どこか中心が ズレやすい傾向が見受けられた。 〃GraphGPTのナレッジグラフが比較的、よく捉えて いたことにも、驚きが合った。

Slide 13

Slide 13 text

5. 参考文献〃URL一覧 1. 蜘蛛の糸 - Wikipedia 2. LangChain Summarization 公式ドキュメン ト 20230414時点 3. LanguChain Summarization Notebook 公式ドキュ メント 20230414時点 4. LexRank sumy python library 5. GraphGPT 20230414時点 6. GraphGPTのアプリ 20230414時点 7. github otanet/LangChain_Summarization_202304 8. 本slide/PPT

Slide 14

Slide 14 text

追記 自動要約の流れは、 1)TF-IDFなどで重要な単語を見出し、 2)キーフレーズを抽出し、 3) 2)を集める(抽象型要約;LexRankなど)であったが、 ニュース記事ニュースの要約は不自然であった。 そこで、3)抽象型要約(T5やPEGASUS)が出て、日本語対応 の有無で一瞬、とまっていたが、4)LanguChain(GPT- 3.5/GPT-4)が出現し、より練られた処理過程が実現されて いる。 • 一方、自動要約の対象とするデータの限界も感じられた。 • 多くの小説は4000文字以上で、大規模言語モデルのトー クン数を超えていて、ここばかりは人手になるかと思わ れる。