📝
「長文から長文を生成するLLMツールをオープンソースで作ってみた」という登壇をしました
株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。2024年3月23日、N.NETラボ 勉強会 2024年3月(AD, AOAI,新型Surfaceなど)で登壇しました!
登壇資料はこちらです。
Youtubeでも公開されていますのでご覧ください。
「長文から長文を作るLLMツール」
抱えていた課題
LLMを使っていて今までこんなことで困ったことはありませんか?
- 長文を訳そうとして貼り付けたら、全部一気に実行せずに、continueを押しても途中でバグってしまう
- 長文を同じチャットに貼り付けると、LLMの作業キャパを超えるので別チャンネルで実行して、整理ができない
- 別のLLMとの動作を比較したいがいろんなところに貼るのが面倒
- 本当に長い文を全部翻訳したりするときに、貼る量の管理が難しい
- ブラウザに貼って、待って、ローカルに結果を貼れば全部実行できるが、時間がかかりすぎて面倒
欲しいユースケース
長文から長文の結果が欲しい。GPTはサマリーが得意だから例になっているが必ずしもサマリーが欲しいわけではない。長文があればいつでも要約できる
アプリケーションの設計
- 長文を分割して実行するツール
- 綺麗に長文を分割してLLMに渡して全実行する
- 全ての結果を結合する。前後のコンテキストは渡さない
- 並列実行で実行を高速に
- Azure OpenAI, OpenAI, Gemini, Anthropic Claude Opus同時実行して、比較できる
- ローカルファイルからローカルファイルを作成するコンソールアプリ
- 複数の指示文を連続で実行してくれる
- 入力ファイルがなくても、指示文だけの質問にも答えてくれる
技術的なポイントなど
上記のプログラムを作成して、オープンソースでリリースしました。
Long2Long
- C# コンソールアプリケーション
- 設定が多いので、JSONファイルで設定する
- ファイルで入力 ファイルで出力
- オープンソースなので、誰でも今から使えます!
LLMを使用する方法は色々ありますが今回はシンプルでいいのでAPIを直接叩くようにします。
各サービスのAPIキーを取得する
APIのキーは各サービスから取得可能。個人でOpenAIやClaudeを購入するよりは安い(はず)
- Azure OpenAI https://portal.azure.com
- OpenAI https://oai.azure.com/portal プリペイドでAPI使用を購入 有料プランとは別管理(のはず)
- Anthropic Claude https://www.anthropic.com/api プリペイドでAPI使用を購入 有料プランとは別管理
- Google Gemini https://aistudio.google.com/ 無料でキー作れて使えている
同時実行耐性は?
APIのキーを使って同時アクセスすると、同時接続エラーが出る場合があるため、同時実行の制限をする必要がある
- Azure OpenAI かなり強い - 3スレッド同時実行でほぼエラーにならない 結果は遅い
- OpenAI かなり強い - 3スレッド同時実行でほぼエラーにならない 結果は遅い
- Anthropic Claude Opus あまり強くない - 3スレッド同時実行で結構エラーが出る。日によるので多分サーバー自体がBusyになっている 実行は遅い
- Google Gemini 同時実行したらエラーになる、直列実行 でもめちゃくちゃ早い Gemini Pro 1.0
デモ
- 日本語の字幕ファイルを英語に訳す
- 日本語の字幕ファイルを英語に訳す + 英語に訳した後にその英語ファイルをマークダウン化する
- 個人的には英語のテキストを和訳してその後マークダウン化して読んでいる
- 質問だけをした場合1 c#とjavaのメリットデメリットを書かせる
- 質問だけをした場合2 各LLMにプログラマーにわかるジョークを書かせる
Azure Open AIの1つめを登壇で読んだら、その解釈が会場で始まってしまい、登壇が止まってしまいましたw それなりに面白い話を作ってくれるから興味深いですね。
まとめ
- L2Lコンソールは個人的にすごく便利
- 検索とか、Function Calling、Code Interpreterなどの機能は使えずに、純LLMの機能だけなので万能ではない
- ファイルで保存しているため、テキストだけある英語の本の全翻訳など、ローカルで検索できるのですごく便利、管理ができる
- Webサービス化して、それぞれが自分のAPIキー入れて動作させるとかできるかもですが、APIの費用はかなりかかる
Discussion