chatGPTに大量の文章を要約させたい時に使えるLangChainとは

2023/04/20に公開

chatGPTの文章の要約能力は非常に便利ですね。
この能力は非常に便利なのですが、例えば論文の要約をさせたい時、1つ1つの論文をchatGPTのAPIに投げているとリクエスト数も処理時間もかかってしまいます。

これをなんとか1度に行うことができないかを調べていた中で、LangChainというフレームワークに出会いました。LangChainを使うことで、上記の問題を解決することができそうです。

それではLangChainの説明です。

LangChainは、言語モデルを活用したアプリケーションを開発するためのフレームワークです。LangChainは、以下の6つのメインモジュールに対応しています。

  • Models: LangChainがサポートする様々なモデルタイプとモデル統合
  • Prompts: プロンプトの管理、最適化、シリアル化を含む
  • Memory: チェーン/エージェントの呼び出し間で状態を保持する概念であり、LangChainは、標準インターフェースを提供し、メモリ実装のコレクション、およびメモリを使用するチェーン/エージェントの例を提供します。
  • Indexes: 言語モデルは、自分自身のテキストデータと組み合わせることでより強力になることがあります。このモジュールでは、そのためのベストプラクティスをカバーしています。
  • Chains: LangChainは、LLMまたは別のユーティリティへの単一の呼び出しを超えて、呼び出しのシーケンスであるチェーンを提供します。LangChainは、標準インターフェース、他のツールとの多数の統合、および一般的なアプリケーションのためのエンドツーエンドチェーンを提供します。
  • Agents: エージェントには、Actionを選択し、そのActionを実行し、Observationを見て、それを繰り返すLLMが含まれます。LangChainは、標準インターフェース、選択可能なエージェントの数、およびエンドツーエンドエージェントの例を提供します。

公式ドキュメントはこちら。
https://python.langchain.com/en/latest/modules/chains/index_examples/summarize.html

データの準備

from langchain import OpenAI, PromptTemplate, LLMChain
from langchain.chains.mapreduce import MapReduceChain
from langchain.prompts import PromptTemplate

# 要約に使用したいモデルを定義
llm = OpenAI(temperature=0)

long_text = "(要約したい長文)"

from langchain.text_splitter import CharacterTextSplitter
# 長文を分割するオブジェクトを定義
text_splitter = CharacterTextSplitter()

# 要約したい長文の分割
texts = text_splitter.split_text(long_text)


from langchain.docstore.document import Document
# 分割した長文を書く文章ごとにDocumentオブジェクト化
docs = [Document(page_content=t) for t in texts]

要約の実行

from langchain.chains.summarize import load_summarize_chain

chain = load_summarize_chain(llm=llm, 
														 chain_type="map_reduce", # 要約の仕方 stuff, map_reduce, refineから選ぶ
														 return_intermediate_steps=True # 分割された文章ごとの要約結果を返すか
               )

# 要約の実行
chain.run(docs)

このフレームワークを使うことで、大量文章を一度に要約することが可能になりそうです。

もちろん、株式会社piponでも技術でお困りのことがある方はオンライン相談が可能です。
こちらから会社概要資料をDLできます!
お問い合わせ内容に「オンライン相談希望」とご記載ください。
https://share.hsforms.com/19XNce4U5TZuPebGH_BB9Igegfgt

株式会社piponでは定期的に技術勉強会を開催しています。
ChatGPT・AI・データサイエンスについてご興味がある方は是非、ご参加ください。
https://chatgptllm.connpass.com/

株式会社piponではChatGPT・AI・データサイエンスについて業界ごとの事例を紹介しています。ご興味ある方はこちらのオウンドメディアをご覧ください。
https://bigdata-tools.com/

Discussion