- 論文要約のGPT
- NotebookLMには劣りますが自分の専門分野で簡易にならばかなりお役立ちと思います
論文調査が多いため、いろいろプロンプトを工夫したり、NotebookLMを使ったりしています。
詳細・網羅性ならばNotebookLMが圧倒的なのですが、ChatGPTベースで仕事をしているため、ChatGPTでもなんとかならないかなといろいろ試していました。GPT 5.4でかなりスライド能力も上がり、現状これに落ち着いています。
使い方
- ChagGPTのGPT
- 下記で作成
- GPTを呼び出し、論文URLを入力するかPDFをアップロードで実行
GPT内容
指示
アップロードしたPDFファイル、あるいはURL指定してPDFファイルの論文を読み込み以下に日本語で
回答する。
論文に書いていないことは特別な指示がない限り答えてはいけない。
また、
https://developers.openai.com/api/docs/guides/prompt-guidance
に従うこと。
まず論文を読み込み、サーベイ・レビューかオリジナル研究論文かを判定する。
#サーベイ・レビューならば以下を答える
- タイトル
- 何についてサーベイ・レビューか
レビューであれば何について比較・検証しているか
- そのテーマの俯瞰
- 何が課題でどう克服しようとしているか
- そのテーマの歴史
- そのテーマのサブテーマ・技術要素をロジックツリーで分解
箇条書きとPlantUML/Mindmapで図解
- 次に読むべき注目の、サーベイ・レビュー、オリジナル論文
- 最後に分かりやすいHTMLスライドをCanvasで表示(原則日本語、重要Termは英語も可)
研究の流れを時系列やロジックツリーで表示
課題と解決、そしてまだ残る課題を
研究間の類似点や相違点を比較
#オリジナル論文ならば以下を答える
- タイトル
- 何がすごいか
- 概要
- 導入
- 方法
作業ステップなどがあればMermaid/FlowChartで図解
- 結果
- 考察
- 本手法の利点
- 本手法の限界
- 最後に分かりやすいHTMLスライドをCanvasで表示(原則日本語、重要Termは英語も可)
課題と解決方法
方法のフロー
従来の類似研究との比較
会話のきっかけ
論文のPDFをアップロードするかURLを指定して
推奨モデル
GPT-5.4 Thinking
何でもいいですが、Plusライセンスがあればこれが一番いいでしょう。
機能
- ウェブ検索 ←必須
- Canvas ←必須
- 画像生成 ←必須ではないですが、追加指示で画像生成もあり
- コード インタープリターとデータ分析 ←同上
結果
- Attention Is All You Need論文で試しました。
こんな感じの要約スライドが5-7ページ出来ます
HTMLは下記
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Attention Is All You Need - 論文要約</title>
<style>
:root {
--bg: #0b1020;
--panel: #121a33;
--panel2: #182245;
--text: #eef2ff;
--muted: #b8c0e0;
--accent: #7dd3fc;
--accent2: #c4b5fd;
--good: #86efac;
--warn: #f9a8d4;
--line: rgba(255,255,255,0.12);
--shadow: 0 18px 60px rgba(0,0,0,0.28);
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: Inter, "Hiragino Sans", "Yu Gothic", sans-serif;
background: radial-gradient(circle at top right, #182245 0%, var(--bg) 45%, #080c18 100%);
color: var(--text);
overflow: hidden;
}
.deck {
width: 100vw;
height: 100vh;
position: relative;
}
.slide {
position: absolute;
inset: 0;
padding: 48px 60px 72px;
display: none;
gap: 20px;
background: transparent;
}
.slide.active { display: grid; }
.title-slide {
grid-template-rows: auto auto 1fr auto;
}
.eyebrow {
color: var(--accent);
letter-spacing: .08em;
font-size: 14px;
font-weight: 700;
text-transform: uppercase;
}
h1 {
margin: 0;
font-size: 46px;
line-height: 1.12;
}
h2 {
margin: 0 0 10px;
font-size: 30px;
line-height: 1.2;
}
h3 {
margin: 0 0 8px;
font-size: 20px;
color: var(--accent);
}
p, li {
color: var(--muted);
font-size: 20px;
line-height: 1.6;
}
.subtitle {
font-size: 24px;
color: #dbe4ff;
max-width: 1000px;
}
.grid-2, .grid-3 {
display: grid;
gap: 18px;
}
.grid-2 { grid-template-columns: 1fr 1fr; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.card {
background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03));
border: 1px solid var(--line);
border-radius: 24px;
padding: 22px 24px;
box-shadow: var(--shadow);
}
.big {
font-size: 26px;
color: var(--text);
font-weight: 700;
line-height: 1.5;
}
ul { margin: 10px 0 0 22px; }
.chiprow {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-top: 8px;
}
.chip {
padding: 9px 14px;
border-radius: 999px;
background: rgba(125,211,252,0.12);
border: 1px solid rgba(125,211,252,0.25);
color: #dff6ff;
font-size: 16px;
font-weight: 600;
}
.flow {
display: flex;
gap: 12px;
align-items: stretch;
flex-wrap: wrap;
}
.node {
min-width: 180px;
flex: 1 1 180px;
background: var(--panel);
border: 1px solid var(--line);
border-radius: 20px;
padding: 18px;
position: relative;
}
.node strong {
display: block;
font-size: 20px;
margin-bottom: 6px;
color: var(--text);
}
.arrow {
align-self: center;
font-size: 28px;
color: var(--accent2);
font-weight: 800;
}
.compare {
display: grid;
grid-template-columns: 1fr 1.15fr;
gap: 18px;
height: 100%;
}
.metric {
display: flex;
justify-content: space-between;
gap: 12px;
padding: 12px 0;
border-bottom: 1px solid var(--line);
font-size: 18px;
color: var(--muted);
}
.metric b { color: var(--text); }
.result-num {
font-size: 38px;
font-weight: 800;
color: var(--good);
}
.small {
font-size: 16px;
color: var(--muted);
}
.footer {
position: absolute;
left: 60px;
right: 60px;
bottom: 22px;
display: flex;
justify-content: space-between;
align-items: center;
color: var(--muted);
font-size: 14px;
}
.kbd {
border: 1px solid var(--line);
border-bottom-width: 3px;
border-radius: 8px;
padding: 2px 8px;
background: rgba(255,255,255,0.06);
color: var(--text);
font-weight: 700;
}
</style>
</head>
<body>
<div class="deck">
<section class="slide active title-slide">
<div class="eyebrow">Original Research Paper</div>
<h1>Attention Is All You Need</h1>
<div class="subtitle">RNNやCNNを使わず、<b>attention のみ</b>で系列変換を行う Transformer を提案した論文。</div>
<div class="grid-3">
<div class="card"><h3>課題</h3><p>系列モデルの逐次計算は並列化しにくく、長距離依存の学習も難しい。</p></div>
<div class="card"><h3>解決</h3><p>self-attention と multi-head attention を中心にした encoder-decoder を設計。</p></div>
<div class="card"><h3>成果</h3><p>翻訳で高性能かつ高速学習。構文解析にも一般化。</p></div>
</div>
</section>
<section class="slide">
<h2>何がすごいか</h2>
<div class="grid-2">
<div class="card">
<div class="big">入力・出力表現の計算を <span style="color:var(--accent)">self-attention のみ</span>で行う最初の系列変換モデルとして提示</div>
<div class="chiprow">
<span class="chip">No RNN</span>
<span class="chip">No CNN</span>
<span class="chip">More Parallelizable</span>
<span class="chip">State of the Art</span>
</div>
</div>
<div class="card">
<ul>
<li>Encoder: 6層、各層は Multi-Head Self-Attention + Feed Forward</li>
<li>Decoder: 6層、Masked Self-Attention + Encoder-Decoder Attention + Feed Forward</li>
<li>Residual connection と Layer Normalization を使用</li>
<li>位置情報は Positional Encoding で付与</li>
</ul>
</div>
</div>
</section>
<section class="slide">
<h2>方法のフロー</h2>
<div class="card">
<div class="flow">
<div class="node"><strong>Input Tokens</strong><span>入力トークンを埋め込みへ変換</span></div>
<div class="arrow">→</div>
<div class="node"><strong>+ Positional Encoding</strong><span>系列順序の情報を加える</span></div>
<div class="arrow">→</div>
<div class="node"><strong>Encoder Stack</strong><span>Self-Attention と Feed Forward を6層重ねる</span></div>
<div class="arrow">→</div>
<div class="node"><strong>Decoder Stack</strong><span>Masked Self-Attention と Encoder-Decoder Attention</span></div>
<div class="arrow">→</div>
<div class="node"><strong>Linear + Softmax</strong><span>次トークン確率を出力</span></div>
</div>
</div>
<div class="grid-2">
<div class="card">
<h3>Scaled Dot-Product Attention</h3>
<p>QKᵀ を √d<sub>k</sub> で割って softmax をとり、V に重み付けする。</p>
</div>
<div class="card">
<h3>Multi-Head Attention</h3>
<p>複数の表現部分空間で並列に attention を計算し、結合して投影する。</p>
</div>
</div>
</section>
<section class="slide">
<h2>従来法との比較</h2>
<div class="compare">
<div class="card">
<h3>従来の課題</h3>
<ul>
<li>RNNは逐次計算が必要で、学習の並列化が難しい</li>
<li>CNN系は位置間依存を結ぶまでに複数層が必要</li>
<li>長距離依存の学習に不利</li>
</ul>
</div>
<div class="card">
<h3>論文内の比較観点</h3>
<div class="metric"><span>Self-Attention の sequential operations</span><b>O(1)</b></div>
<div class="metric"><span>Recurrent の sequential operations</span><b>O(n)</b></div>
<div class="metric"><span>Self-Attention の maximum path length</span><b>O(1)</b></div>
<div class="metric"><span>Recurrent の maximum path length</span><b>O(n)</b></div>
<div class="metric"><span>ただし注意点</span><b>長系列では restricted attention を検討</b></div>
<p class="small">論文では、self-attention は系列長 n が表現次元 d より小さい場合に recurrent より高速になりやすいと述べる。</p>
</div>
</div>
</section>
<section class="slide">
<h2>結果</h2>
<div class="grid-2">
<div class="card">
<h3>機械翻訳</h3>
<p><span class="result-num">28.4 BLEU</span> EN-DE (Transformer big)</p>
<p><span class="result-num">41.8 BLEU</span> EN-FR (Transformer big)</p>
<p>WMT 2014 英独・英仏翻訳で新しい state of the art を報告。</p>
</div>
<div class="card">
<h3>学習コスト</h3>
<p>Base: 8×P100 で約12時間、Big: 約3.5日。</p>
<p>論文中では、既存の強力な翻訳モデルより小さい学習コストで高い性能を示した。</p>
</div>
</div>
<div class="grid-2">
<div class="card">
<h3>モデル変種の観察</h3>
<ul>
<li>単一ヘッドは最良設定より 0.9 BLEU 低い</li>
<li>attention key size を減らすと性能低下</li>
<li>大きいモデルはより良い</li>
<li>dropout は過学習回避に有効</li>
</ul>
</div>
<div class="card">
<h3>他タスクへの一般化</h3>
<p>英語 constituency parsing でも高い性能を示し、semi-supervised で 92.7 F1。</p>
</div>
</div>
</section>
<section class="slide">
<h2>利点・限界・今後</h2>
<div class="grid-3">
<div class="card">
<h3>利点</h3>
<ul>
<li>高い並列化可能性</li>
<li>長距離依存への短いパス</li>
<li>attention head の役割が比較的解釈しやすい</li>
</ul>
</div>
<div class="card">
<h3>限界</h3>
<ul>
<li>attention重み付き平均により有効解像度が下がる可能性</li>
<li>長い系列では計算性能のため restricted self-attention が必要になりうる</li>
</ul>
</div>
<div class="card">
<h3>今後の方向</h3>
<ul>
<li>画像・音声・動画など他モダリティへの拡張</li>
<li>local / restricted attention の検討</li>
<li>生成をより非逐次にする研究</li>
</ul>
</div>
</div>
<div class="card">
<div class="big">一言でいうと、<span style="color:var(--accent)">系列変換の中心を recurrence から attention へ置き換えた</span>論文。</div>
</div>
</section>
<div class="footer">
<div>Attention Is All You Need / Transformer 要約スライド</div>
<div><span class="kbd">←</span> <span class="kbd">→</span> / Space で移動</div>
</div>
</div>
<script>
const slides = [...document.querySelectorAll('.slide')];
let index = 0;
const show = (i) => {
index = (i + slides.length) % slides.length;
slides.forEach((s, idx) => s.classList.toggle('active', idx === index));
};
window.addEventListener('keydown', (e) => {
if (["ArrowRight", "PageDown", " "].includes(e.key)) show(index + 1);
if (["ArrowLeft", "PageUp"].includes(e.key)) show(index - 1);
});
window.addEventListener('click', () => show(index + 1));
</script>
</body>
</html>
- そしてその他指示通りの要約が作成されます
現状、サーベイとオリジナル論文に対応。その他、ご自身が関心を持っているOOと関係するかですとか、XXビジネスに応用できるか、などのプロンプトを追加してもよいでしょう。
