Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIコードエディタの基盤となるLLMのFlutter性能評価
Search
alquist
April 01, 2025
Programming
0
250
AIコードエディタの基盤となるLLMのFlutter性能評価
alquist
April 01, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
Flutterでllama.cppをつかってローカルLLMを試してみた
sakuraidayo
0
150
「理解」を重視したAI活用開発
fast_doctor
0
300
ドメイン駆動設計とXPで支える子どもの未来 / Domain-Driven Design and XP Supporting Children's Future
nrslib
0
290
プロフェッショナルとしての成長「問題の深掘り」が導く真のスキルアップ / issue-analysis-and-skill-up
minodriven
8
2k
カオスに立ち向かう小規模チームの装備の選択〜フルスタックTSという装備の強み _ 弱み〜/Choosing equipment for a small team facing chaos ~ Strengths and weaknesses of full-stack TS~
bitkey
1
150
The New Developer Workflow: How AI Transforms Ideas into Code
danielsogl
0
130
Jakarta EE Meets AI
ivargrimstad
0
920
Road to Ruby for A Linguistics Nerd
hayat01sh1da
PRO
0
310
MySQL初心者が311個のカラムにNot NULL制約を追加していってALTER TABLEについて学んだ話
hatsu38
2
140
SwiftDataのカスタムデータストアを試してみた
1mash0
0
150
eBPF超入門「o11yに使える」とは (20250424_eBPF_o11y)
thousanda
1
120
ComposeでのPicture in Picture
takathemax
0
140
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Git: the NoSQL Database
bkeepers
PRO
430
65k
How to Ace a Technical Interview
jacobian
276
23k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.6k
Site-Speed That Sticks
csswizardry
6
540
Product Roadmaps are Hard
iamctodd
PRO
53
11k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.5k
The Cost Of JavaScript in 2023
addyosmani
49
7.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Transcript
AIコードエディタの基盤となる LLMのFlutter性能評価 関澤 瞭 2025/03/21
なぜFlutterの勉強会でLLM評価の話? 個人的にLLMそのもののDart/Flutter性能を上げていきたいから そのために… - 非アカデミア側でデータセット作成を進める必要がある - LLM研究者はFlutter単体には関心を持ちづらい(というか無い) - 自分が作りたいがFlutter歴が浅いので、色々な経験者から意見を募りたい
なぜFlutterの勉強会でLLM評価の話? モデルの評価プロセスを理解すると、より効果的な改善が可能になるから - アプリ開発者が個人でLLMのチューニングを行う時代 - 職種関係なく、R&DやML/DS職以外にも身近なものに - 個人がAIコードエディタを使い倒す上で、引き出しが増えるはず
「LLMを評価する」 とは
大規模言語モデル(LLM)のエッセンス 「LLMを評価する」とは おすすめ書籍 https://amzn.asia/d/7kdSHGD テキスト 符号化 テキスト 復号化 入力 出力
出力を末尾に追加 巨大な「関数」
AIコードエディタ 裏側でLLMを使っている 「LLMを評価する」とは https://www.cursor.com/ja 何が違うの? ex. Cursor
性能評価の重要性 利用者目線 - 特定の用途で性能がいいモデルがあるのであれば、それを使いたい - モデルを導入する際に誰かに説明するためのデータ・資料が欲しい LLM開発者目線 - 作成したモデルが本当に使えるのか明らかにする -
作成したモデルが現状出来ないことは何なのか明らかにする 「LLMを評価する」とは https://speakerdeck.com/chokkan/jsai2024-tutorial-llm?slide=64
評価プロセスの大枠 「LLMを評価する」とは タスクを定義する 評価指標を定める データセットを作成する モデルの出力を分析する
評価プロセスの大枠 「LLMを評価する」とは タスクを定義する 評価指標を定める データセットを作成する モデルの出力を分析する
タスクを定義する ≒ 入出力を定義する 「LLMを評価する」とは 修正 実装 説明 検出 入力:実装の詳細 出力:コード
入力:修正方針&コード 出力:コード 入力:コード (&検出したいこと) 出力:コード&説明 入力:コード(&何を知りたいか) 出力:説明 開発におけるユースケース
評価プロセスの大枠 「LLMを評価する」とは タスクを定義する 評価指標・手法を定める データセットを作成する モデルの出力を分析する
評価手法を定める 1. 人手評価 a. タスク・分野の専門家 b. クラウドソーシング 2. 自動評価 a.
定量的な基準を実装(ex. BLEU, ROUGE) b. LLM-as-a-judge; GPT-4と人間の評価判断が80%以上一致 [Zheng et al., 23] 「LLMを評価する」とは 正しい答えを出しているか⇨1a, 2aが良さそう 指定のフォーマットに則っているか⇨2が良さそう 倫理的に問題がないか⇨1, 2bが良さそうだが2aでできることもありそう 出力: I have pen 正解:I have a pen
評価プロセスの大枠 「LLMを評価する」とは タスクを定義する 評価指標を定める データセットを作成する モデルの出力を分析する
データセットの作成 設定したタスクと評価指標・方法を踏まえて、データを作成・収集する 1. 人手 a. タスク・分野の専門家 b. クラウドソーシング 2. 自動
a. 大規模コーパスからクローリング b. テンプレートを用意し、単語や文章を埋めていく c. LLM Synthetic Dataset(LLMを用いた人工的データセット) 「LLMを評価する」とは
データセット品質の担保 - 分量 - 妥当なデータ数があるか - 正確性 - 間違ったラベリングがされていないか -
ラベルの偏り - ex. はい/いいえで答えるタスクで、答えが「はい」のデータが9割 - 網羅性 - タスクが持つ複数の要素をカバーできているか - ex. 「テストコード生成タスク」⇨単体/Widget/E2E/etc.. - データの多様性 - 特定の単語やパターンが繰り返されていないか 「LLMを評価する」とは
作成したデータセットの公開 GitHub Hugging Face Dataset https://huggingface.co/datasets
評価プロセスの大枠 「LLMを評価する」とは タスクを定義する 評価指標を定める データセットを作成する モデルの出力を分析する(割愛)
FlutterにおけるLLM 評価
Flutter固有タスクの候補 FlutterにおけるLLM評価 タスクを定義する 評価指標を定める データセットを作成する UI実装・修正 Riverpodを用いたロジックの実装・修正 Widgetテスト・E2Eテストの実装・修正 設計の変更・リアーキテクチャ ネイティブコードからDartへの変換
評価指標・手法の候補 FlutterにおけるLLM評価 UI実装・修正 - ビルドが通るかまで見る - snapshotツールと併用する Riverpodを用いたロジックの実装・修正 - Riverpodのバージョンまで見る
Widgetテスト・E2Eテストの実装・修正 - テストが通るかまで見る - snapshotツールと併用する タスクを定義する 評価指標・手法を定める データセットを作成する
データセットの候補 FlutterにおけるLLM評価 タスクを定義する 評価指標を定める データセットを作成する データの収集元 GitHubのpublic repo 各種packageのonboarding ここが一番悩んでいるので、
意見を募集しています…!
簡易実験
具体例 簡易実験 タスク定義:Widget Testから1行消した部分を、正しく補完できるか 評価指標:完全一致(消した行とモデル出力が一言一句同じか) あっていればTrue間違えればFalseとし, Trueの数を正答率とする データセット:個人プロジェクトで書いたTest10件 出力を分析:対象モデルはGPT-4o
結果 簡易実験 結果 90%成功した(さすが) 失敗した例 NotifierProviderのmockでoverrideWithValueを使おうとしていた 仮説 - テスト対象の元ファイルをcontextとして与えれば、providerの種類を間違え なさそう
- 学習データcutoffが2024春なので、riverpodの知識は更新されているはず
皆さんもやってみてください! 今回の簡易実験は各ステップに色々な穴があります ぜひどのように改善できるかを考えてみてください また、他のタスク設定や評価指標で実験した結果を是非公開してください😊 簡易実験
結言
- LLM評価について知ることで、AIコードエディタをより活用できる - LLMのFlutter性能を上げるのは、研究者ではなくFlutterコミュニティ - LLMにできないことは無限にあるはずで、より多くの個人が評価実験を 行い共有することで改善が加速する まとめ 結言
個人の展望 - Dart/Flutter性能評価ベンチマークの作成&公開 - より広範なモデルに対する評価実験 - AIコードエディタそのものの活用法の研究 結言
References - Zheng, Lianmin, et al. "Judging llm-as-a-judge with mt-bench
and chatbot arena." Advances in Neural Information Processing Systems 36 (2023): 46595-46623. - https://speakerdeck.com/chokkan/jsai2024-tutorial-llm