Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Optuna DashboardにおけるPLaMo2連携機能の紹介 / PFN LLM セミナー

Optuna DashboardにおけるPLaMo2連携機能の紹介 / PFN LLM セミナー

Optuna Dashboardは、ブラックボックス最適化フレームワークOptunaの最適化履歴を手軽に閲覧できるWebダッシュボードです。現在はPLaMo 2.1 Primeを含むLLMとの連携機能の開発を進めています。本発表ではその機能概要や技術的詳細、Webダッシュボード上でLLMと連携するための工夫についてお話します。

イベントサイト: https://preferred-networks.connpass.com/event/368829/

Avatar for Preferred Networks

Preferred Networks PRO

October 01, 2025
Tweet

More Decks by Preferred Networks

Other Decks in Technology

Transcript

  1. 2 Optunaとは? • PFNが開発を主導するBlack-box 最適化フレームワーク • 最適化履歴を手軽に確認できる Webダッシュボードを提供 利用事例 機械学習のハイパーパラメータ最適化

    、結晶構造の探索、クッキーレシピの 最適化等 Optuna / Optuna Dashboardとは? Real-time Web Dashboard for Optuna https://github.com/optuna/optuna-dashboard
  2. 11 スマートフィルタリングの仕組み フィルタリングの流れ 1. フィルター条件を入力 2. JavaScript関数を生成 3. 実行確認ダイアログの表示 4.

    evalにより評価 5. フィルタリング結果を反映 JavaScript関数の生成例 function (trial) { return trial.state === "Complete" && trial.number < 10 }
  3. 12 工夫1:自動プロンプト最適化 自動プロンプト最適化 • PFN社内で開発したプロンプト最 適化フレームワーク(※1)を使用 • 用意したベンチマーク問題 (60問) のスコアがよくなるように最適化

    結果 • PLaMo2使用時の正答率が 70%→86%まで向上 1. フィルター関数の生成指示 2. TypeScriptの型定義 3. Few-shot Examples 4. 前回評価に失敗した関数 定義とそのエラーメッセ ージ (リトライ時のみ) プロンプトテンプレートの構成 水野尚人+ (2024) 『自動プロンプト最適化のソフト ウェア設計』言語処理学会第 30回年次大会 ※1
  4. 13 LLMが生成したコードの実行リスク 考えられる実行リスクの例 • 意図しないネットワークリクエストの 送信(関連:Librahack事件) • 意図せず利用者のCPUを大幅に占有 (関連:Coinhive事件) •

    forループで alert(); を実行 (関連:アラートループ事件) 実行確認ダイアログ • 入力結果はWebブラウザの sessionStorageに保存 • localStorageとは異なり、ブラウザの 別のタブとも共有されない 工夫2:実行確認ダイアログ
  5. 14 eval() 実行の危険性 • “allowing third-party code ... can lead

    to possible attacks that reads or changes local variables.” - eval() - JavaScript | MDN <iframe>によるサンドボックス化 • <iframe sandbox="allow-scripts">タグでコ ンテキストの異なる環境を用意 (※1) • postMessage() でJavaScript関数 文字列を送りeval()を実行 工夫3:<iframe>タグを使用した eval() const iframeSrcDoc = ` <script> window.fetch = () => { ... } window.XMLHttpRequest = () => { ... } window.addEventListener('message', (event) => { const { trials, filterFuncStr } = event.data; const filterFunc = eval(filterFuncStr); const result = trials.filter(filterFunc); parent.postMessage(...); }); </script>` return ( <iframe ref={iframeRef} sandbox="allow-scripts" style={{ display: "none" }} srcDoc={iframeSrcDoc} /> ) JavaScriptの実行だけは許可しつつも、allow-downloads, allow-popups, allow-storage-access-..., etc.等を制限 ※1
  6. 16 本発表でお話したこと • Optuna DashboardのPLaMo2連携機能の紹介 • スマートフィルタリング機能の設計 • LLMと連携するための工夫(自動プロンプト最 適化、実行確認ダイアログ、iframeタグを利用

    したeval) Q&A • 発表に関して気になる点ありましたら、気軽に ご質問いただければと思います! おわりに 27新卒 プレエントリー
  7. 18 Optuna Dashboardの起動方法 $ pip install optuna-dashboard openai $ optuna-dashboard

    --config config.toml Started to listening at http://localhost:8080/ 起動方法 • plamo.preferredai.jp から PLaMo2の利用登録 • Optuna Dashboardの設定 ファイル(TOML)を用意して 実行 [optuna_dashboard] storage = "sqlite:///db.sqlite3" [llm.openai] model = "plamo-2.0-prime" use_chat_completions_api = true [llm.openai.client] api_key = "sk-your-openai-key" base_url = "https://api.platform.preferredai.jp/v1" ※ 注意事項 • 開発中の機能のためPyPIにはま だリリースされていません。