Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Timee-event-Copilot
Search
Yuki Hattori
September 25, 2023
Technology
2
290
Timee-event-Copilot
Yuki Hattori
September 25, 2023
Tweet
Share
More Decks by Yuki Hattori
See All by Yuki Hattori
GitHubの軌跡:リポジトリからAIプラットフォームへ
yuhattor
3
65
コードAI本 - コード×AIーソフトウェア開発者のための生成AI実践入門
yuhattor
1
210
Code AI Findy Event
yuhattor
7
930
コード✕AIーソフトウェア開発者のための生成AI実践入門~
yuhattor
4
1.2k
Productivity-Conference-GitHub-20240629
yuhattor
2
4.6k
The-Next-gen-Dev-Strategy-InnerSource
yuhattor
1
56
AI-Powered Development with GitHub Copilot 20240202
yuhattor
14
5.8k
AI-Powered Development with Copilot
yuhattor
0
190
Bringing Open-Source Brilliance to Scrum Teams: A Guide to Enhanced Collaboration
yuhattor
0
190
Other Decks in Technology
See All in Technology
もう一度、 事業を支えるシステムに。
leveragestech
5
2.9k
OpenLLMetry-Hands-On 生成AIアプリを観測してみよう!OpenLLMetryハンズオン編
tkhresk
1
140
SDN の Hype Cycle を一通り経験してみて思うこと / Going through the Hype Cycle of SDN
mshindo
3
340
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
1
130
asumikamというカンファレンスオーガナイザの凄さを語る / The Brilliance of Asumikam
tomzoh
0
130
Amazon Forecast亡き今、我々がマネージドサービスに頼らず時系列予測を実行する方法
sadynitro
0
210
モバイルアプリ開発未経験者が プロダクト開発に携わるまでに取り組んだこと/nikkei-tech-talk-27-3
nikkei_engineer_recruiting
0
110
241130紅白ぺぱ合戦LT「編集の技術」
toya524287
3
480
Yahoo! JAPANトップページにおけるマイクロフロントエンド - 大規模組織におけるFE開発を加速させるには
lycorptech_jp
PRO
0
1.6k
Bytebaseで実現する データベース管理の効率化
shogo452
1
120
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
220
セキュリティ運用って包括的にできていますか?SaaSを使って次のステップへ / Comprehensive Cyber Security Operations for Cloud Services Using SaaS
sakaitakeshi
0
260
Featured
See All Featured
The Language of Interfaces
destraynor
154
24k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
A Tale of Four Properties
chriscoyier
156
23k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
750
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Documentation Writing (for coders)
carmenintech
65
4.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Adopting Sorbet at Scale
ufuk
73
9.1k
Producing Creativity
orderedlist
PRO
341
39k
Building Applications with DynamoDB
mza
90
6.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Transcript
開発⽣産性をあげる を 徹底解剖! Yuki Hattori Customer Success Architect GitHub Japan
None
開発者の⽣産性向上 本当の問題に集中でき、満⾜度も向上 イノベーションを加速 より速くプロトタイプやイノベーションを実現 スキルギャップを埋める 新しい開発⾔語や技術を習得 開発者に⼤きな アドバンテージを提供
55% 46% 74% のコードがCopilotによるもの 速くタスクを完了 がより満⾜する仕事に 集中できたと証⾔ プロジェクトの⽂脈に即したコードを提案
OpenAI Model 文脈 提案
今後のGitHub Copilot リファクタリング (コード翻訳) コードレビュー (コード解説) ドキュメント化 今後のGitHub Copilot ユニットテスト
コードエラー検知 デバッグ コードレビュー AI による Pull Request 現在のGitHub Copilot コメントをコードに変換 繰り返すコードを補完 代替⼿段を表⽰ 1 計画 2 分析 3 設計 4 実装 5 テストと統合 6 メンテナンス X エディタを⾶び出し SDLC 全体を AI で⽀援
GitHub Copilot X Copilot for Pull Requests Copilot for Docs
Copilot for the CLI Copilot Chat
GitHub Copilot Future コードやドキュメントから、ユニットテストを 自動生成 TestPilot Codespaces上に存在するすべてのコードを使う ことで提案を改善 GitHub Copilot
for *Your* Codebase キーボードを使わずにコードを書く Copilot Voice https://githubnext.com/
December, 2022 GitHub Copilot GitHub Copilot Behind the curtain
GitHub Copilot の裏側 • GitHub Copilot の仕組み • GitHub Copilot
がエディタの情報をどのように取るのか = GitHub Copilot Prompt Crafting • Tips and Tricks
GitHub Copilot の 3 Layer Copilot Platform Copilot Client OpenAI
Model API * 上記は GitHub Copilot のアーキテクチャを抽象化した図です Githubによって開発及び保守。 認証、セキュリティ、プライバシー Githubによって開発及び保守。 カスタムプロンプト作成と自動補完 ユーザーエクスペリエンスを提供 OpenAI によって開発 Azure でホスト スケーラブルなデリバリー
GitHub Copilot のモデル GitHub Copilot のモデル選定重要事項 • 精度 • 速度
←とても重要 現在は GPT3.5-turbo の派生版である Sahara-base を利用 Codex は今は利用しておりません 今後モデルは変わる可能性があります
Large Language Models LLM To k 1. Attention 2. Tokenization
3. Autoregressive(自己回帰型) Very Very …. Very Large Neural Network To,k ens To,k,ens in To,k,ens, in . Tokens in. To,k,ens, in, . テキストはトークンに分割され、モデルに1つずつ供給されます。 前のトークンに基づいて次のトークンを予測する、訓練済のモデルです。
Prompt Crafting • Language Marker: プログラミング⾔語情報 • Path Marker: 現在のファイルへのパス
• Neighboring Tabs: ⾮アクティブなオープンしているタブ Language Marker の例 "html": "<!DOCTYPE html>", "python": "#\!/usr/bin/env python3", "ruby": "#\!/usr/bin/env ruby",
Prompt Crafting: Markers Path: foo/foo.py Language Marker HTML: <!DOCTYPE html>
Python: #\!/usr/bin/env python3 Ruby: #\!/usr/bin/env ruby ファイルパスおよび言語マーカーは、強力なシグナルを言語モデルに 提供し、出力の構文と文法を調整します。
Prompt Crafting: 隣接ファイル Open Tab 1 Open Tab 2 他のオープンタブからのコード
スニペットは類似性を検索し、 プロンプトに追加のコンテキス トとして注入されます。
Snippet Inclusion – 隣接するタブ • 最⼤で 20 ファイルまで 過去の履歴 (FIFO)
を遡り読み込む • 同じ⾔語のファイルを読み込む
文字の類似性でファイル内を検索 • GitHub Copilot は 現在⽂字の類似性 を活⽤して類似性を求める • 関数名はシンプルかつ、意味のあるものにする必要性 •
AB テストなどでこの⽅法は変わります / カーソル履歴など • ⼀貫して⾔えること • ⼀貫性のある命名規則ときれいなコード • 現在何をしているのかにフォーカスしながら作業
GitHub Copilot の制限 • プロンプトの制限トークン数 • トークンが無限に渡せるわけではない • 渡せるトークンの数は増加中 •
より多くの情報を渡すには…? • ⽇本語よりも英語を使う • 短く、わかりやすい変数名 • ⼀⽅でトークンが多ければ確実に精度が上が るわけではないのでご注意を https://platform.openai.com/tokenizer
December, 2022 GitHub Copilot GitHub Copilot Tips and Tricks BJOBUJWFEFW
None
None
None
None
None
None
None
None
None
None
None
None
None
None
まとめ: あまり気にしすぎない • 「知っている」と「知らない」では GitHub Copilot の飼い慣らしに差はでますが、 GitHub ではそれを意識しないでも高いコード提案ができるようにプロダクトを作っています。 •
結局のところ「良いコーディング」をすれば、提案されるコードも「良いコード」になります。 • 人間にとって良いコーディング • 文脈を知らない人でもわかるようなコーディング • ミスを誘発しないような確かなコーディング
None
None