Slide 1

Slide 1 text

の裏側と Tips & Tricks Yuki Hattori Customer Success Architect GitHub Japan

Slide 2

Slide 2 text

December, 2022 GitHub Copilot Agenda GitHub Copilot 101 Demo Behind the curtain Tips and Trick Q&A

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

開発者の⽣産性向上 本当の問題に集中でき、満⾜度も向上 イノベーションを加速 より速くプロトタイプやイノベーションを実現 スキルギャップを埋める 新しい開発⾔語や技術を習得 開発者に⼤きな アドバンテージを提供

Slide 5

Slide 5 text

55% 46% 74% のコードがCopilotによるもの 速くタスクを完了 がより満⾜する仕事に 集中できたと証⾔ プロジェクトの⽂脈に即したコードを提案

Slide 6

Slide 6 text

OpenAI Model 文脈 提案

Slide 7

Slide 7 text

今後のGitHub Copilot リファクタリング (コード翻訳) コードレビュー (コード解説) ドキュメント化 今後のGitHub Copilot ユニットテスト コードエラー検知 デバッグ コードレビュー AI による Pull Request 現在のGitHub Copilot コメントをコードに変換 繰り返すコードを補完 代替⼿段を表⽰ 1 計画 2 分析 3 設計 4 実装 5 テストと統合 6 メンテナンス X エディタを⾶び出し SDLC 全体を AI で⽀援

Slide 8

Slide 8 text

GitHub Copilot X Copilot for Pull Requests Copilot for Docs Copilot for the CLI Copilot Chat

Slide 9

Slide 9 text

GitHub Copilot Future コードやドキュメントから、ユニットテストを 自動生成 TestPilot Codespaces上に存在するすべてのコードを使う ことで提案を改善 GitHub Copilot for *Your* Codebase キーボードを使わずにコードを書く Copilot Voice https://githubnext.com/

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

December, 2022 GitHub Copilot GitHub Copilot Behind the curtain

Slide 12

Slide 12 text

GitHub Copilot の裏側 • GitHub Copilot の仕組み • GitHub Copilot がエディタの情報をどのように取るのか = GitHub Copilot Prompt Crafting • Tips and Tricks

Slide 13

Slide 13 text

GitHub Copilot の 3 Layer Copilot Platform Copilot Client OpenAI Model API * 上記は GitHub Copilot のアーキテクチャを抽象化した図です Githubによって開発及び保守。 認証、セキュリティ、プライバシー Githubによって開発及び保守。 カスタムプロンプト作成と自動補完 ユーザーエクスペリエンスを提供 OpenAI によって開発 GitHub が Azure でホスティング スケーラブルなデリバリー

Slide 14

Slide 14 text

GitHub Copilot のモデル GitHub Copilot のモデル選定重要事項 • 精度 • 速度 ←とても重要 現在は GPT3.5-turbo の派生版である Sahara-base を利用 Codex は今は利用していません *今後変わる可能性があります

Slide 15

Slide 15 text

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つずつ供給されます。 前のトークンに基づいて次のトークンを予測する、訓練済のモデルです。

Slide 16

Slide 16 text

Prompt Crafting • Language Marker: プログラミング⾔語情報 • Path Marker: 現在のファイルへのパス • Neighboring Tabs: ⾮アクティブなオープンしているタブ • Code Retrieval: コードベースの中の他の場所のコード (New) Language Marker の例 "html": "", "python": "#\!/usr/bin/env python3", "ruby": "#\!/usr/bin/env ruby",

Slide 17

Slide 17 text

December, 2022 GitHub Copilot GitHub Copilot Tips and Tricks

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Tips and Tricks: あまり気にしすぎない • 「知っている」と「知らない」では GitHub Copilot の飼い慣らしに差はでますが、 GitHub ではそれを意識しないでも高いコード提案ができるようにプロダクトを作っています。 • 結局のところ「良いコーディング」をすれば、提案されるコードも「良いコード」になります。 • 人間にとって良いコーディング • 文脈を知らない人でもわかるようなコーディング • ミスを誘発しないような確かなコーディング

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content