VSCode で LLM と論文執筆
この記事は CyberAgent AI Lab Advent Calendar 2024 19 日目の記事です。
はじめに
非ネイティブにとって英語論文執筆はハードルが高いものですが、最近では LLM の発展によりハードルがだいぶ下がりつつあるのではないでしょうか。
LLM 時代の英文執筆方法の一つとして、Overleaf Workshop を使用して、Overleaf のプロジェクトを VSCode 上で編集する方法を紹介したいと思います。VSCode 上で編集することで、GitHub Copilot (+そのほかの強力な拡張機能) を使用することができます。また、ローカルにプロジェクトをシンクさせることで Git 管理することも可能となリます。個人的には LLM による不本意な編集が気になるため、Git 化することで VSCode 上で差分の確認や復元が容易になるのはメリットだと感じています。
VSCode のダウンロードはこちらから: Download Visual Studio Code - Mac, Linux, Windows
Overleaf Workshop の導入と基本操作
※ この辺りは公式ドキュメントも参照できます: Overleaf Workshop
VSCode で Overleaf Workshop の拡張機能をインストール
- VSCode を開き、左のサイドバーから Extensions をクリック
- 検索バーに
Overleaf Workshop
と入力し、インストール
Overleaf のアカウント認証
Overleaf Workshop に Cookie 情報を与える必要があります。
- ブラウザでデベロッパーツールを開き、Overleaf のメインページにアクセス
-
Network
タブを開き、/project
でフィルタリングし、Cookie の情報 (overleaf_session2=...
) をコピー (下図参照) - VS Code の左のサイドバーから Overleaf のアイコンをクリック、
www.overleaf.com
を選択し、扉のアイコンをクリック、上部に表示されるLogin with Cookies
をクリック - 出現した入力欄に、先ほどコピーした Cookie の情報をペースト
- プロジェクトの一覧が表示されれば、認証成功!
基本的な操作
- コンパイル:
Cmd + Alt + B
- プレビュー:
Cmd + Alt + V
- 該当箇所へジャンプ:
Cmd + Alt + J
(.tex to PDF)、ダブルクリック (PDF to .tex)
その他の操作は公式ドキュメント参照。
ローカルにプロジェクトをシンクさせる
Overleaf Workshop には、ローカルにプロジェクトをシンクさせることもできます。Git 管理及びそれに伴う差分確認や復元が容易になりますが、なくても十分に VSCode 上で編集するメリットはあるかと思うので、必須ではありません。後述のように、コンパイル結果の確認が若干煩雑になるというデメリットもあります。
- プロジェクトを右クリックし、
Open Project Locally
を選択 - 新しいプロジェクトの場合は確認ダイアログが表示されるので、
yes
を選択 - シンク先のパスを指定
これでローカルにプロジェクトがシンクされました。あとは適当に GitHub レポジトリを作って、シンク先を紐づけることで Git 管理することができます。
注意点として、ローカルファイルは Overleaf Workshop でコンパイルやプレビューすることはできません。コンパイルやプレビューを行う場合は、Overleaf Workshop (もしくはブラウザの Overleaf) 上で行う必要があります。ローカルファイルを直接コンパイルしたい場合は Latex Workshop (別の VSCode 拡張機能、Latex 環境構築必須) を使う手があります。個人的には数式執筆や図の調整などを除けば、逐一コンパイル結果を確認しなくても不便に感じないのと、環境構築を避けて Overleaf でコンパイルしたいので Latex Workshop は使っていません。
英語論文執筆におけるGithub Copilot の活用事例
通常のコーディング時と同様に、強力な補完としてだけでも十分にありがたみがあります (数式、図表の Latex 記法、繰り返し表現等)。
以下、論文執筆においてそこそこ便利だった GitHub Copilot の使い方をいくつか紹介します。
校正
GitHub Copilotの自動編集機能を使って、英文校正をかける例です。校正したい部分を選択し、Cmd + i
でインラインチャットを呼び出し、プロンプトを入力します。
以下は ChatGPT に稚拙な英文として生成させた文章を校正してもらった例です。
プロンプトを入力し、Copilot に校正を依頼:
Copilot が生成した校正結果(Git の差分):
なお、プロンプトの作成は「ChatGPT による英文校正のプロンプト比較」を参考させていただきました。AlfredのSnippets機能などを活用してプロンプトを保存しておくとより便利かもしれません。
英訳:
日本語で雑に内容を書いてから、補完として英訳する例です。
日本語を解釈しながら英語補完がされるため、補完の精度も高い印象です。英語で言い回しに困った時などに止まらずに執筆できます。翻訳だけであればインラインチャットを使わなくても機能してくれます。
箇条書きから文章生成:
内容の箇条書きから文章を生成する例です。
例では割と詳細に箇条書きしましたが、これだと文章書いてるのとあまり変わらないので、どちらかというとメモとして入れたい内容を単語レベルで先に書いておいて、補完を強化するようなイメージで使うのが良さそうです。
注意点
論文執筆における LLM の利用については、投稿先の規約をよく確認し、従う必要があります。
また、複数人で共同編集中に Overleaf Workshop で編集すると同期がうまく取れずに編集内容が消えてしまったことがあったので、注意が必要です。Overleaf Workshop を使うときは個人編集にする、もしくは各人ごとに異なるファイルを編集するようにしたほうが良いかもしれません。
おわりに
LLM により非ネイティブの英語論文執筆のハードルがかなり下がってきているように思います。
とはいえハードルが下がっているだけで、論文執筆が難しい仕事であることには変わりないので、
うまく活用しながら、日々精進していけたらと思います。
Discussion