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
LLM(Copilot)を最大限活用するための取り組みとその副産物
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ほりしょー
August 20, 2024
200
1
Share
LLM(Copilot)を最大限活用するための取り組みとその副産物
「CHUO_Tech #4 LLM活用について語ろう!」にて
2024/08/20(火)
https://chuo-tech.connpass.com/event/324549/
ほりしょー
August 20, 2024
More Decks by ほりしょー
See All by ほりしょー
開発プロセスを継続的に改善する仕組み作り ~ 強いスクラムをいかに維持するか ~
h0r15h0
0
120
ドメインイベント増えすぎ問題
h0r15h0
2
850
現実世界の事象から学ぶSOLID原則
h0r15h0
30
22k
集団意思決定の落とし穴と誰も望まない技術的負債
h0r15h0
1
5.2k
Goのパーサ作ってvscode拡張作ってみた!
h0r15h0
0
220
デザインパターンを学んだら世界が広がった話
h0r15h0
2
410
Featured
See All Featured
A Soul's Torment
seathinner
5
2.6k
KATA
mclloyd
PRO
35
15k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
230
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
RailsConf 2023
tenderlove
30
1.4k
The SEO Collaboration Effect
kristinabergwall1
0
410
Building the Perfect Custom Keyboard
takai
2
720
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
The Invisible Side of Design
smashingmag
302
51k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Transcript
2024/08/20 CHUO_Tech #4 LLM(Copilot)を最大限活用するための 取り組みとその副産物
ほりしょー ハコベル株式会社 サーバーサイドエンジニア @H0R15H0 https://youtu.be/ZFTW6Ete9eE?feature=shared https://zenn.dev/hacobell_dev/articles/131cbcb873e8ba https://zenn.dev/hacobell_dev/articles/4bf484a360d343
話すこと GitHub Copilotによる回答の正確性を高めるための取り組み 取り組みによる思わぬ副産物
正確性を向上させるためには? プロンプトエンジニアリングのテクニックをコードベースに落とし込む 1 コードベースのスタイル・命名規則に一貫性を (Few-shot prompting) 2 モジュールを小さく分割し、依存順に実装 (Prompt Chaining)
プロンプト: 出力: デモを提供し文脈を学習させる テクニック 1. Few-shot prompting
コードベースに一貫性を持たせる 1. Few-shot prompting Copilotはコードベースをプロンプト(文脈)とし、Few-shot promptingを図る コードベースに一貫性がない状態=デモがない (=Few-shot promptingが行えない) 一貫性のない状態
意味の欠如した命名 誤ったコメント・不要なコメント ベストプラクティス・基本的な設計原則を違反した実装
複雑なタスクを複数のサブタスクに分割するテクニック 2. Prompt Chaining 複雑なタスク サブタスク1 サブタスク2
複雑なコードはモジュールを適切に分割 小さなモジュールに分割することで複雑性を排除 2. Prompt Chaining コーディングにおける複雑なタスクとは? 複雑なドメインロジックの実装 依存関係の多いモジュールの実装 複雑なタスクのままコードは当然困難
モジュールを依存関係の順に実装 2. Prompt Chaining 依存の向き 実装の流れ A B C D
E 上位モジュールでは下位モジュールをうまく利用したコード生成が可能に
副産物:既存コードの問題点が明白に 1 コードベースのスタイル・命名規則に一貫性を(Few-shot prompting) 2 モジュールを小さく分割し、依存順に実装(Prompt Chaining) 暗黙的・形式化されていないコーディングスタイルを明示 コードに潜む“臭い”に対する嗅覚の向上 コード保守性の向上
手戻りの軽減
まとめ 効率化以上の恩恵があった うまく回答が得られない時は自分のコードを怪しむいい機会 コードベース(=プロンプト)のプロンプトエンジニアリングを意識 1 コードベースのスタイル・命名規則に一貫性を(Few-shot prompting) 2 モジュールを小さく分割し、依存順に実装(Prompt Chaining)