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
論文輪読会 AutoCommenter: LLMを活用したコーディングベストプラクティス自動...
Search
ymgc
August 18, 2024
Technology
0
27
論文輪読会 AutoCommenter: LLMを活用したコーディングベストプラクティス自動強制システム
このスライドは、2024.5.22 に公開された、以下論文の輪読会用の記事になります。
https://arxiv.org/html/2405.13565v1
ymgc
August 18, 2024
Tweet
Share
More Decks by ymgc
See All by ymgc
予測する心 - 知覚と行為の統一理論
__ymgc__
0
24
LLMのテスト時計算最適化に関する研究
__ymgc__
0
18
テスト駆動開発(TDD)入門
__ymgc__
0
50
AI に特化した品質特性のテスト
__ymgc__
1
34
AIを活用したソフトウェアテスト技術 - ISTQB Foundation Level - AI Testing (CT-AI)
__ymgc__
1
37
Machines of Loving Grace - AIはどのように世界をより良く変えるか -
__ymgc__
1
55
ファシリテーションの技術
__ymgc__
2
59
(論文読み)BigCodeBench: 多様な関数呼び出しと複雑な指示を用いたコード生成のベンチマーキング
__ymgc__
1
49
(論文読み)Very Large-Scale Multi-Agent Simulation in AgentScope
__ymgc__
1
61
Other Decks in Technology
See All in Technology
人はなぜISUCONに夢中になるのか
kakehashi
PRO
6
1.7k
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
130
Classmethod AI Talks(CATs) #17 司会進行スライド(2025.02.19) / classmethod-ai-talks-aka-cats_moderator-slides_vol17_2025-02-19
shinyaa31
0
130
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
370
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.7k
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
600
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
770
速くて安いWebサイトを作る
nishiharatsubasa
12
14k
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
550
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
710
Oracle Cloud Infrastructure:2025年2月度サービス・アップデート
oracle4engineer
PRO
1
220
Featured
See All Featured
Statistics for Hackers
jakevdp
797
220k
Embracing the Ebb and Flow
colly
84
4.6k
Bash Introduction
62gerente
611
210k
Documentation Writing (for coders)
carmenintech
67
4.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
A Modern Web Designer's Workflow
chriscoyier
693
190k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
Transcript
論文輪読会 AutoCommenter: AI-Powered Code Review Assistant 大規模言語モデルを活用したコーディングベストプラクティス自動強制システム https://arxiv.org/html/2405.13565v1#S3 1
目次 1.はじめに ▶ 2.背景 ▶ 3.アプローチ ▶ 4.展開 ▶ 5.評価
▶ 6.学んだ教訓 ▶ 7.関連研究 ▶ 8.結論 ▶ 2
想定読者 ソフトウェア開発者 ▶ コードレビュアー ▶ ソフトウェアエンジニアリングマネージャー ▶ AI/ML研究者(特にコード分析に興味がある方) ▶ ソフトウェア品質保証の専門家
▶ 3
1. はじめに モダンなコードレビューの重要性 ▶ コード変更がバージョン管理システムにコミットされる前に実施 - 1人以上の同僚がレビュー - コーディングのベストプラクティス検証の課題 ▶
一部は自動化可能、多くは人間のレビュアーに依存 - 自動化困難な例:命名規則、コメントの明確さ - AutoCommenterシステムの提案 ▶ 大規模言語モデル(LLM)を活用 - 4言語(C++、Java、Python、Go)で実装・評価 - 4
1. はじめに(続き) コードレビューの時間的コスト ▶ 専門家の開発者が1日数時間を費やすことも - LLMのコードレビュー自動化への可能性 ▶ 大規模展開の課題 ▶
ソフトウェアエンジニアリングの観点 - 全体的な有効性とユーザー受容の評価不足 - 5
2. 背景 Googleのコードレビュープロセス ▶ 産業界・オープンソースプロジェクトと類似 - 日々数万の変更、数万人の開発者が参加 - レビュープロセスの特徴 ▶
変更ベース、ツール支援 - 最低1人の他の開発者によるレビュー必須 - コードレビューシステムでのコメント交換 - 6
2. 背景(続き) ベストプラクティスの定義 ▶ スタイルガイド、言語プライマー、ライブラリドキュメント - 15言語に正式なスタイルガイド、一部数百ページ - "readability"メカニズム ▶
10年以上前から導入 - 専門のスタイルエキスパートが新人を指導 - readabilityプロセスの課題 ▶ 開発時間の増加 - メンターの負担 - 進化するベストプラクティスの管理難しさ - 7
3. アプローチ AutoCommenterの概要 ▶ ベストプラクティス違反を自動検出 - 適時フィードバック提供、レビュアーの負担軽減 - モデルとタスク定義 ▶
T5ベースのトランスフォーマーアプローチ - 入力:タスクプロンプトとソースコード - 出力:違反箇所とURL - マルチタスク大規模シーケンスモデルの一部 - 8
3. アプローチ(続き) モデルトレーニング ▶ i. 大規模前処理:関連コードコメント特定 - ii. データセット整理:TensorFlow Example形式に変換
- iii. トレーニングと微調整:T5X、TPUフリート使用 - モデル選択 ▶ 2つの内在的評価 - a. 検証・テストデータセットでの評価 - b. 完全な歴史的コードレビューでの評価 - 推論インフラストラクチャ ▶ 中央ベストプラクティス分析サービス - フィルタリングステップで低品質予測を抑制 - 9
3. アプローチ(続き) IDE・コードレビューシステム統合 ▶ IDEプラグイン:診断として表示 - コードレビューシステム:自動コメント投稿 - ユーザーフィードバック収集機能 -
10
4. 展開 段階的展開(2022年7月〜2023年10月) ▶ i. チームフーディング - ii. 早期採用者(約3000人) -
iii. A/B実験(約半数の開発者) - iv. 一般公開(全開発者) - 継続的評価と改善 ▶ 閾値選択とデコーディング戦略最適化 - 古くなったベストプラクティスの抑制 - 選択コメントの独立評価 - A/Bテスト実施 - 11
4. 展開(続き) 閾値とデコーディング戦略の最適化 ▶ 高信頼度閾値(0.98)から開始、徐々に調整 - URL別閾値導入で多様性と精度向上 - ビーム検索採用で投稿頻度とURL多様性改善 -
古くなったベストプラクティスへの対応 ▶ 条件付きフィルタリングで特定予測を抑制 - 独立評価の実施 ▶ 15人の評価者、370コメントのサンプル評価 - 有用性の低いコメントパターン特定と改善 - 12
4. 展開(続き) A/Bテスト結果 ▶ コードレビュー総時間、アクティブ時間、反復回数に有意差なし - コーディング速度のわずかな改善を検出 - 13
5. 評価 開発者満足度 ▶ 2023年3月以降の有用率とフィードバックに基づき高評価 - コメント解決率 ▶ 約40%のコメントが解決 -
6000スナップショットペアの自動分析 - 40サンプルの手動検査 - 人間のコメントとの比較 ▶ 人間レビュアー参照ベストプラクティスの68%をカバー - 330の異なるURLでコメント生成 - URL多様性にはまだ改善の余地 - リンターとの比較 ▶ 上位50の頻出違反中、66%が従来の静的解析の範囲外 - 多くのベストプラクティスは従来ツールでは検出困難 - 14
6. 学んだ教訓 1.従来分析の補完 ▶ 多くの静的解析範囲外のベストプラクティスをカバー - 2.内在的評価と実世界性能の乖離 ▶ 外在的評価とシステム改善が成功展開に不可欠 -
3.ユーザー受容監視の重要性 ▶ 少数のネガティブ経験でも信頼損なう可能性 - 継続的モニタリングと分析が問題検出・改善に重要 - 15
7. 関連研究 静的解析研究 ▶ 50年以上の歴史、多数の論文 - 開発者との相互作用に関する研究多数 - 既存ワークフロー統合と信頼性維持が重要 -
機械学習によるコード分析 ▶ 比較的新しい分野 - 自動コードレビューモデル・手法の提案 - 多くは歴史的データセット評価に留まる - 実システム評価は少ない - 16
8. 結論 AutoCommenter開発・展開・評価の経験報告 ▶ 従来ツール超える能力と高ユーザー受容度の両立 ▶ 全プロセス概説 ▶ モデル・システム設計 -
内在的評価とシステム調整 - 段階的ロールアウト - エンドユーザー評価 - 今後の課題 ▶ リコール改善 - 新機能追加のためのアーキテクチャ変更 - 最新大規模モデル活用の可能性 - 17
まとめ AutoCommenterは大規模言語モデルを活用した革新的なコードレビュー支援システム ▶ ベストプラクティス違反の自動検出により、開発者とレビュアーの負担を軽減 ▶ 段階的な展開と継続的な改善により、高いユーザー受容度を達成 ▶ 従来の静的解析ツールでは困難だった領域をカバー ▶ 実世界での評価と調整が成功の鍵
▶ 今後の改善と拡張の余地が大きい革新的なアプローチ ▶ 18
用語 モダンなコードレビュー: コード変更がバージョン管理システムにコミットされる前に行われる増分的なレビュープロセス ▶ ベストプラクティス: プログラミング言語の優れた使用方法とその適用方法を記述したもの ▶ 大規模言語モデル (LLM): 大量のテキストデータで訓練された高度な自然言語処理モデル
▶ T5: "Text-to-Text Transfer Transformer"の略。多様なNLPタスクに適用可能なトランスフォーマーモデル ▶ readability: Googleで使用されている、ベストプラクティスの一貫した遵守を確保するためのメカニズム ▶ ビーム検索: 複数の候補を並行して探索する探索アルゴリズム ▶ TPU: Tensor Processing Unit。機械学習ワークロード用に設計された特殊なハードウェアアクセラレータ ▶ リンター: ソースコードを分析し、プログラミングエラー、バグ、スタイルエラーなどを検出するツール ▶ 19