Upgrade to Pro — share decks privately, control downloads, hide ads and more …

太田博三

 太田博三

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

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

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

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

太田 博三

April 15, 2023
Tweet

More Decks by 太田 博三

Other Decks in Research

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. 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,
    )

    View Slide

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

    View Slide

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

    View Slide

  13. 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

    View Slide

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

    View Slide