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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ymgc
August 18, 2024
Technology
52
0
Share
論文輪読会 AutoCommenter: LLMを活用したコーディングベストプラクティス自動強制システム
このスライドは、2024.5.22 に公開された、以下論文の輪読会用の記事になります。
https://arxiv.org/html/2405.13565v1
ymgc
August 18, 2024
More Decks by ymgc
See All by ymgc
予測する心 - 知覚と行為の統一理論
__ymgc__
0
120
LLMのテスト時計算最適化に関する研究
__ymgc__
0
130
テスト駆動開発(TDD)入門
__ymgc__
0
170
AI に特化した品質特性のテスト
__ymgc__
1
100
AIを活用したソフトウェアテスト技術 - ISTQB Foundation Level - AI Testing (CT-AI)
__ymgc__
1
150
Machines of Loving Grace - AIはどのように世界をより良く変えるか -
__ymgc__
1
150
ファシリテーションの技術
__ymgc__
2
150
(論文読み)BigCodeBench: 多様な関数呼び出しと複雑な指示を用いたコード生成のベンチマーキング
__ymgc__
1
150
(論文読み)Very Large-Scale Multi-Agent Simulation in AgentScope
__ymgc__
1
180
Other Decks in Technology
See All in Technology
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.8k
Java正規表現エンジン(NFA)の仕組みと パフォーマンスを維持するための最適化手法
takeuchi_132917
0
170
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
190
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
300
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
370
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
350
AI時代の私の技術インプットとアウトプット術
tonkotsuboy_com
16
8.2k
Databricks 月刊サービスアップデート 2026年05月号
tyosi1212
0
200
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
640
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
300
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
600
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
260
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
For a Future-Friendly Web
brad_frost
183
10k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Balancing Empowerment & Direction
lara
6
1.1k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
190
First, design no harm
axbom
PRO
2
1.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Un-Boring Meetings
codingconduct
0
300
The untapped power of vector embeddings
frankvandijk
2
1.7k
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