【Python】論文翻訳ツールにChatGPTによる要約機能を追加してみた【LangChain】
こんにちは。
さて今回はいよいよChatGPTによる要約機能について実装をご紹介します。
既にGithubにはアップロード済です。
github.com
今回は以下の項目について解説します。
それではよろしくお願いします。
1. 実行までの手順
1.1 OpenAIのAPIキーの取得
OpenAIのAPIキーの取得方法については、私が以前書いた記事で紹介しています。
yonesuke0716.hatenablog.com
1.2 OpenAI、LangChainのインストール
以下のコマンドでインストールしましょう。
pip install openai langchain
LangChainとは、LLM系のフレームワークです。
GithubではDocker環境も用意しています。
そちらには追加済みですので、Dockerを使われる場合はインストール不要です。
1.3 config.iniの設定
summaryを1に変更します。
2. 実行結果の確認
それでは実行してみましょう
実行するとsummaryフォルダが生成され、all_result.txtが生成される。
この論文は全て読んだことがあるので、内容は把握しています。
その上で要約結果を眺めた感想としては...
イマイチわかりにくいですね。。
抽象度が高すぎるし、専門用語らしきものも変な解釈になってます。
うーん、実践にはまだまだイマイチってところですね。
3.開発裏話
3.1 なぜLangChainを使ったのか?
端的に言えば、「流行ってるから」と「コードが楽だから」です。笑
要約をするためには、ある程度まとまった文章ごとにChatGPTに渡す必要があります。
LangChainを使わずとも、普通にPythonコードで書けるは書けますが、LangChainの方がより短いコードで書けます。
以前の私の記事でChatGPTによるチャットボットを作成しましたが、あの時よりも簡単に書けていることがわかります。
DeepLearning黎明期でもそうでしたが、流行りのフレームワークもいつまで続くかわかりません。T〇nsorflowのことかー!!
今後もLLM系のフレームワークについての動向は注視したいところです。
3.2 要約をなぜ分割したのか?
実はChatGPTを使った論文要約サイトは存在します。
例えばChatPDFなどがあげられます。
https://www.chatpdf.com/
こちらを使ったことはあるのですが、かなり抽象度が高く、Abstract読む方が理解が進んだ経験があります。
ではどうすれば具体性がでるかといえば、分割して、出来れば章ごとに要約すれば良いのではと考えました。
そしてそれは狙い通りで、全文突っ込むよりも具体性の高い要約結果は取得できました。
しかしながら、まだまだ実践で使えるレベルには到達していないという所感になります。
4.まとめ
今回の内容をまとめると、
- ChatGPTのAPIを使って論文の翻訳だけでなく要約もできるようになった。
- 翻訳にはLangChainを使っており、コードもよりシンプルに作成できた。
- 論文をまとめて要約するのではなく、分割することで具体度をあげることができた。
ひとまずChatGPTによる論文翻訳・要約ツールとしては完成した形になります。
興味を持っていただけた方は、ぜひ一度動かしてみて、出来れば使った感想やご意見などをコメント欄にいただけると幸いです。
ChatGPTは今後も注目を集める技術となるので、情報が更新され次第キャッチアップしていきます。
今回はここまで!