生成AIを使ってarXiv論文を読む方法

ZIKUUの論文検索ボットでやっているのと似た方法で、ローカルLLMを使ってarXiv論文を取得して概要を表示する方法を紹介します。

動作環境は、

  • 13th Core i5/RTX 2000 Ada という構成のPC
  • llama.cppサーバーで gpt-oss:20b-Q4_K_M.ggufを動かす
  • Open WebUIで、llama.cppサーバーに接続

です。

Open WebUIでフォルダーを作り、そのフォルダーのシステムプロンプトを次のようにします。

ユーザーのメッセージに関係のありそうな論文をarXivから検索して、要約してください。

検索する論文は最大5つ。

厳守すべきルール:

- 論文タイトルごとにコードブロックに入れる
- コードブロックの中は、後述の出力フォーマットに準拠したyaml形式に
- SummaryとThought_Extractは要約文が日本語でない場合は日本語に翻訳し、内容に漏れのないように、複数行記述可能
- Source のURLは必ず入れる
- Tagは英語で
- Id は論文番号を使ってユニークなキーを生成する。例:arXiv-1111.22222

余計な文章を生成せず、以下、出力フォーマットで出力する。

- Title: "{論文タイトル}"
  Id: {ユニークなIDを生成}
  Year: {投稿年}
  Authors: [著者のリスト]
  Source: {論文のURL}
  Tags: [タグリスト]
  Summary:
    - "{要約}"
  Thought_Extract:
    - "{研究成果}"
  ZIKUU_Interpretation: ""
  Quote: ""

作成したフォルダーの中で、プロンプトに質問を入力して送信します。

Attention is all you need

こんな回答が返ってきます。

- Title: "Attention Is All You Need"
  Id: arXiv-1706.03762
  Year: 2017
  Authors: ["Ashish Vaswani", "Noam Shazeer", "Niki Parmar", "Jakob Uszkiewicz", "Llion Jones", "Aidan N. Gomez", "Lukasz Kaiser", "Illia Polosukhin"]
  Source: https://arxiv.org/abs/1706.03762
  Tags: ["transformer", "self-attention", "NLP", "deep-learning"]
  Summary:
    - "この論文は、従来のリカレントニューラルネットワークやCNNベースのシーケンスモデルを置き換え、完全に注意機構に基づくTransformerアーキテクチャを提案する。EncoderとDecoderの両方ともに全結合されたMulti‑Head Attentionと残差結合、LayerNormを用い、位置エンコーディングで位置情報を補足する。"
    - "実験では、Google翻訳の英語↔フランス語タスクで既存モデルを上回し、パラメータ数はほぼ同等ながら計算効率が大幅向上した。"
  Thought_Extract:
    - "自己注意機構は長距離相関を効率的に捕捉し、並列計算を可能にしたため、機械翻訳分野に革命をもたらした。"
  ZIKUU_Interpretation: ""
  Quote: ""

トークン生成速度は71tok/secほどです。

GPUのVRAMは16GBもあれば十分です。

こういうデータをデータベース化しておくと、論文を探索するのがだいぶ楽になります。


ZIKUUの場合は、

  1. Discordボットがこれと同等の処理を行う
  2. 結果を論文ごとにentryとしてGiteaリポジトリにcommit/pushする
  3. 論文の本文を再度読み込んできて、commentaryという要約文に変換してGiteaリポジトリにcommit/pushする
  4. GiteaでGit Actionsを実行して、Nerve(イベントの交通整理役)のキューに原本確定イベントを投げる
  5. Nerveのイベントハンドラーが原本をベクトルデータ化してQdrantに保存する
  6. その後、別のイベントハンドラーがCPS (Context Pipeline Server)に原本を送信し、文脈束を抽出して保存する
  7. さらに、別のイベントハンドラーがFact Builderに文脈束を送信し、文脈が意味空間に投影される(Pivot Service)

というワークフローが動きます。

ベクターデータベース化されているので、一般的なRAGアプリケーションから参照できるようにはなっていますが、ZIKUUのAIと人は文脈束や意味空間の方を先に見ます。

そんな仕組みなので、普段は面白そうな論文のタイトルやキーワードをDiscordに入力するだけ。関心事が自動的に共同体の文脈として積み上がっていきます。

ZIKUUの内外で発生するデータは、上の5から7のステップ(ZIKUUコアサービス)を必ず通過します。
それが共同体の記憶になっていくわけです。

大きなGPUがなくても、研究や学習を裏で支えてくれます。

「生成AIを使ってarXiv論文を読む方法」への1件のフィードバック

コメントする