・
プログラミングの知識がなくても、自分専用のAIアプリが作れるDify。
研究者やエンジニアの間で、大量の論文を効率よく読み解く「論文要約」の仕組みを作成して取り入れているのを耳にしたことがある方もいるはず。
「AIツールって使えるらしいけど、そういうのに疎いからなあ」と、導入を足踏みしている方はもったいない!
今回は、Difyを使って論文要約を劇的に効率化する方法と上手なプロンプト設定のアイデアをご紹介します。
Dify活用のコツをつかんで、論文要約作業の効率化を目指していきましょう!
Difyで作った要約アプリはとても有用なのですが、毎回URLや論文本文をコピーして貼り付けるのは少し手間ですよね。
そこで役立つのが、ハイパーオートメーションツールのYoomです。
Yoomを使えば、「特定のフォームに論文をアップロードしたら、自動でAIが要約し、その結果をSlackで受け取りつつNotionに保存する」といった、一連の「流れ」を丸ごと自動化できます。
例えば、以下のようなテンプレートを使えば、今日からでもその便利さを体感できますよ。
Difyは、LLM(大規模言語モデル)を活用したワークフローをノーコードで構築できるプラットフォームです。
論文要約において特に優れているポイントが3つあります。
実際にどうやって構築するのか、簡単な流れを解説しますね。
1. テキスト取得ノードの設定:「TavilySearch」などの外部検索ツールをフローに組み込んで、Web上の論文を検索します。
2. プロンプトの作成:「あなたはプロの論文分析者です」や「この論点を〇〇分野の知識が浅い人でもわかりやすく〜」というように、役割や目的を明確にして指示を出します。
3. モデルの選択: 論文は非常に長いので、一度に読み込める量(コンテキスト)が多い「Gemini」や「Claude」を選ぶのがおすすめです。
Difyを使って、いくつかのパターンで論文要約の精度と利便性を試してみました。
まずは王道のパターンで検証を行ってみます。
Difyのエージェント機能でアプリを作成し、arXivに投稿されたばかりの英語論文(検証用のサンプル)をDifyに投入しました。
この際に『あなたは英語の学術論文を読み解き、日本語で分かりやすく構造化要約する専門アシスタントです。』という役割を与えます。
この【あなたは何をして、どんなものを受け取り、どのように処理するのか】という情報が、プロンプトを設定する上でかなり重要となるということを覚えておいてください。
アプリ公開後の操作結果は以下の通りです。
結果は約30秒ほどで出力されました!
専門用語がたっぷりの英語論文でしたが、わかりやすい日本語で翻訳され、かつ専門用語の解説も漏れなく記載されています。
論文対象となっている分野に疎い人でも、注釈があるおかげで理解しやすくなっているのが良いですね!
また、『専門用語は、元の英語も可能な範囲で併記してください(例:グラフニューラルネットワーク(Graph Neural Network; GNN))』とプロンプトに設定していたので、こちらも指示を忠実に反映しているようです。
一方で、記載内容の重複が幾つか見られます。
他にも、全体の文字数をカウントすると4000文字を超えたものになってしまっていたので、「要約になっているのか」ということを鑑みると疑問が残りますね...
初期の生成では、文脈や専門用語の解説は丁寧なものでしたが、内容がやや冗長なのが気になる結果となりました。
なお、追加投稿で【2000文字以内にまとめ直して】と指示すると、要点を抑えた文章が生成できたので、「ちょっと違うんだよなあ」と感じた際にはチャットを重ねるのが良い結果を得るコツといえるでしょう!
次は同じテーマの論文を3つ同時に読み込ませ、その共通点や違いをまとめさせる検証です。
ここでもエージェント機能を駆使して、3つの変数を設定してみます。
なお、設定するプロンプトで重要な要素は『日本語で出力することを強調する』ことと、『それぞれの論文から何を得たいのかを明確にすること』です。
それを踏まえて、プロンプトは以下のように入力し、LLMで「Gemini」を指定してみました!
設定プロンプト
あなたは、同じテーマの複数の英語論文を読み比べて、「共通するトレンド」と「論文ごとの違い」を整理する専門アシスタントです。
以下の3本の論文テキストを入力しますので、それぞれを簡潔に要約したうえで、共通点・相違点・最近の傾向を日本語でまとめてください。
〜省略〜
アプリを公開し、論文の本文を3つ投稿した結果が以下です。
論文のタイトルが原語なのがやや気になりますが、Markdown形式や表形式で情報が整理されていて情報が把握しやすくなっていますね。
また、「論文Bは〜を訴えていて、論文Cは〜と解釈できる」と記載されている内容から、AIが独自の分析を行っていることで異なる視点から論文を見ることができるようになります。
個人の解釈では導かれない結論を得られるのは、より多くの情報を分析したい研究者の方にとって大きなメリットとなるのではないでしょうか。
他にも、日本語訳が適切だな、と感じる表現(「緩和策を講じる」など)も多々あって、翻訳の精度は申し分ないと評価できます!
自分で論文を3冊読み比べることを考えると、数時間は要しますよね。
しかし、このようにAIを活用することで、複数の論文を瞬時に読めるようになり、情報収集の時間も短縮できるのです!
最後は、気になるテーマや特定の論文PDFを検索ツールTavilySearchを活用してリサーチし、内容を要約して抽出してもらう検証を行います。
ここでは、Difyのワークフロー構築機能を活用してみますね!
「一からフローを組むのって難しいでしょ?」と思われるかもしれませんが、今回私が構築したフローはごく簡単なものなので、すぐにでも導入可能です!
これをサクッと説明すると、入力→検索→抽出と要約→出力というステップで組まれています。
たった4つの構成なんです。
ね?簡単すぎてびっくりするでしょう!
ちょっと工夫が必要なのは、変数の設置とLLMへの指示くらいです。
フローを組むときは、次のノードで使う情報を変数として設定し、間違いなく渡すことが大事です。
そして、これまでの検証で重要視していた『役割と何をするかを明確にする』ことを念頭において、LLMへプロンプトを設定します。
プロンプト
あなたは、日本語で書かれた医学論文を要約する「医学論文サマリー専用アシスタント」です。
# 前提
- 入力として渡されるテキストは、Web検索で見つかった日本語医学論文のPDFから、TavilySearchなどのツールで抽出されたものです。
〜(省略)〜
では、アプリを動かしてみますね。
公開後の画面で、検索KWを入力して【Execute】を押します。
出力された結果は以下の通り。
キーワード検索を行なったため、論文ではなくブログ記事を参照していました。
対象とは異なる情報を引っ張ってきているようですが、検索ワードと重なる『論文』が見つからず、『論文を引用しているブログ』が検索意図と近いとAIが判断しているのかな、と推察します。
ただ、読み取りの精度は高いものと評価できます。
抽出タイトルやURLを出力するようにプロンプトで設定していたので、どの項目も漏れなく抽出できていました!
数値や引用元の情報を独自に解釈して、事実とは異なる情報を挙げる『ハルシネーション』も見当たりません。
情報の処理精度は非常に高いことが伺えます。
人の手で全て参照すると30分ほどかかる作業をものの数分でこなしてくれるのは、かなりの時短になりますね。
追加で、気になっている特定の論文の要約もできるかを確認してみました。
論文のタイトルのみをKWに入れて投稿します。
こちらでは対象となる論文のPDFから情報を抽出し、指定した出力結果で要約されていました!
この後も、結構な長文で構成されている論文を要約させてみましたが、どれも2分ほどで結果を生成していたため、情報の処理速度は非常に安定しています。
論文を指定しないKW検索は思うような結果を得られませんでしたが、要約精度は高く評価でき、簡単なワークフローでも充分な実力を発揮していることがわかりました。
今回解説したポイント以外にも、Difyの生成精度を上げられる方法があります。
皆さん、いかがでしたか?
Difyを活用した論文要約は、研究や情報収集のスピードを異次元に高めることを実感できた方も多いのではないでしょうか。
英語論文やサイト上に公開されている長文構成の論文であっても、安定した処理速度で結果を打ち出し、尚且つAIにありがちなハルシネーションを最小限に抑えて情報を抽出していましたね。
また、ちょっと違うなと感じる結果であっても、チャットフローで再指示すれば即座に要点を射抜いた回答が得られます。
的確な指示と役割の付与、これがDifyを使いこなす最大のコツです。
膨大な文献に埋もれる日々はもう終わり!
Difyを導入し、質の高いインプットを最小限の工数で実現しましょう。
Dify単体でも便利ですが、Yoomと組み合わせることで一連の作業が自動化されます。
毎日決まった時間に新着論文をチェックして、チームの共有スペースに要約を届けるといったプロセスも、ノーコードですぐに作れますよ。
「まずは試しに、メールやGoogle スプレッドシートと連携させてみたい」という方は、こちらのテンプレートも覗いてみてくださいね。
[Yoomとは]