Vous êtes sur la page 1sur 28

11/9/2023 3:44 PM

1
11/9/2023 3:44 PM

Conseils pragmatiques
pour tirer le meilleur parti
de GitHub CoPilot
[insérer le nom du conférencier]
[insérer le titre du conférencier]

Bienvenue à Microsoft Build AI Day London! Cela a été


journée passionnante jusqu’à présent, n’est-ce pas?
Avez-vous plein d’idées, avez-vous des réflexions et
comment vous pouvez introduire l’intelligence artificielle
générative dans votre travail? C’est bien... Maintenant,
je présume que la plupart d’entre vous sont des
développeurs. Pouvez-vous lever la main? Super!

Maintenant, prenons un moment pour nous préparer


mentalement. Pensez à ces moments où vous êtes assis
à votre bureau, en train de programmer - et vous avez
un problème que vous ne pouvez tout simplement pas
résoudre. Il s’agit peut-être de coder une expression
normale... Qui aime ceux-ci?

2
11/9/2023 3:45 PM

Nous sommes tous passés par là, n’est-ce pas? Cela peut
être difficile, mais dans ces situations, nous pouvons
faire appel à un collègue ou à un ami et échanger
quelques idées, et entrer dans l’état d’esprit de la
programmation en binôme. Dans ces scénarios, le fait de
communiquer notre problème, et ce que nous essayons
de réaliser est vital, pour résoudre le problème à deux.

Et nous pouvons envisager plusieurs de ces mêmes idées


lorsque nous travaillons avec GitHub Copilot pour
résoudre ces problèmes. Donc, mon travail tout au long
de cette conférence sera de vous aider à comprendre
certains de ces trucs et astuces.

2
11/9/2023 3:44 PM

GitHub

Sur ce, nous vous remercions d’être ici avec moi. Nous
répondrons aux questions et nous aurons une discussion
vers la fin, mais nous irons de l’avant à travers quelques
sections principales.

3
11/9/2023 3:44 PM

Agenda  Préparer le terrain


 Grands modèles de langage
 Limitations

 Tirez le meilleur parti de GitHub CoPilot


 Ingénierie rapide : unique, spécifique, courte
 Votre invite et votre contexte sont essentiels
 Itérer avec GitHub Copilot Chat
 Approuver, mais vérifier
 Conseils d’adoption

Nous allons d’abord préparer le terrain autour des grands modèles de langage, car il s’agit encore d’un
concept relativement nouveau pour plusieurs d’entre nous. Et par conséquent, nous devons être conscients
de leurs limites réelles et de l’impact qu’elles ont sur la façon dont nous travaillons avec ces outils.

Une fois que nous aurons établi les bases, nous nous éloignerons des diapositives et nous passerons aux
démos! Et pour être clair, ces démos seront en direct - à moins que nous ne rencontrions des problèmes en
cours de route, et j’ai quelques vidéos sauvegardés, au besoin. Donc, à titre de rappel, l’intelligence
artificielle générative n’est pas déterministe. Même si j’ai pratiqué ces démos plusieurs fois, nous pouvons
obtenir des résultats intéressants, alors veuillez faire preuve de patience et profiter des démos une fois que
nous y serons!

4
11/9/2023 3:44 PM

Alors, parlons de Copilot - je présume que vous savez tous ce qu’est GitHub Copilot, mais au cas où vous
l’auriez oublié, GitHub Copilot est votre compagnon de codage assisté par intelligence artificielle. Il existe
depuis près de 2 ans maintenant, depuis le moment où nous avons lancé notre aperçu technique. Il est
accessible au grand public avec Copilot for Individuals depuis l’année dernière (2022) et Copilot for Business a
été lancé à la fin de l’année dernière. Et cette offre principale est axée sur l’achèvement de code surpuissant, et
c’est ce qui est accessible au grand public. Certains d’entre vous ont peut-être constaté que nous avons
également lancé Copilot Chat en version BÊTA, et nous en reparlerons un peu plus tard.

Au cours de la prochaine demi-heure, je vais vous montrer comment tirer le meilleur parti de Copilot parce
que, bien qu’il donne l’impression de faire de la magie à certains moments, vous devez tenir compte de
certains conseils concrets et de certains modèles que vous pourrez utiliser lorsque la magie cessera d’opérer.
Nous examinerons également comment ces conseils et astuces peuvent être utiles dans le mode d’achèvement
de code et quand vous voudrez peut-être envisager certaines des fonctionnalités de clavardage.

5
11/9/2023 3:44 PM

Mercado Libre permet aux développeurs de


se concentrer sur leur mission avec GitHub.

GitHub Enterprise — accélère la vitesse de mise en le marché, y compris la


fusion et le déploiement d’environ 100 000 requêtes d’extraction par jour,
en permettant aux applications de l’entreprise de conserver un longueur
d’avance sur la concurrence.

GitHub Copilot : améliorez la satisfaction et la productivité des équipes, en


leur permettant de se concentrer davantage sur le travail important tout en
automatisant les tâches répétitives ou moins captivantes.

GitHub Advanced Security : envoyez aux développeurs des commentaires


sur la sécurité à l’avance, afin qu’ils puissent résoudre les problèmes
potentiels avant qu’ils ne nuisent à la production.

Déploiement automatisé, tests de sécurité et tâches répétitives pour


permettre aux développeurs de passer plus de temps sur le travail
gratifiant et de grande valeur

Pour nous, chez GitHub, c’est plus qu’une simple technologie intéressante. De retour à l’aperçu technique,
nous avons mené des enquêtes auprès des utilisateurs qui ont révélé ceci

96 % exécutent les tâches répétitives plus rapidement


88 % sont plus productifs
74 % peuvent se concentrer sur du travail plus satisfaisant

88 % ont un taux d’achèvement plus rapide


87 % fournissent moins d’efforts mentaux pour exécuter les tâches répétitives
77 % passent moins de temps à faire des recherches
73 % conservent mieux la cadence
60 % sont plus satisfaits de leur travail
59 %sont moins frustrés lorsqu’ils font du codage

(Source: https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-
productivity-and-happiness/)

Et nous constatons la même chose auprès de vrais clients, comme vous pouvez le voir dans cet exemple pour
Mercado Libre.

(Source : https://github.com/customer-stories/mercado-libre)

6
11/9/2023 3:44 PM

Et comme vous le savez déjà, parfois la saisie semi-


automatique fonctionne très bien, et parfois pas
tellement.

La partie essentielle à comprendre, c’est que les modèles


linguistiques ne comprennent pas ce qu’ils écrivent. Leur
travail consiste à deviner le mot suivant, en fonction du
contenu existant, ou de l’invite, et ce qu’ils ont vu
auparavant.

C’est une distinction très importante - surtout lorsque


vous travaillez avec une intelligence artificielle qui vous
aide à programmer. Parce qu’il y a des limites très
réelles.

8
11/9/2023 3:44 PM

Limitations

9
11/9/2023 3:44 PM

La limite existe effectivement

Les données de formation ont un


impact sur les suggestions

GitHub Copilot!= Compilateur

L’intelligence artificielle ne peut pas lire


dans vos pensées

il est important de comprendre les limites contre lesquelles vous travaillez. Si nos attentes ne sont pas
mesurées, chaque outil devient décevant et frustrant parce que nous nous attendons à qu’il fasse quelque
chose qu’il ne peut tout simplement pas faire. Et lorsque nous savons que nous nous heurtons à une limite,
nous pouvons modifier notre comportement pour naviguer les contourner.

Les données de formation ont un impact sur les suggestions


• La qualité des suggestions dépend des données dont nous disposons pour entraîner nos modèles.
Donc, ce que cela signifie, c’est que vous allez obtenir de bonnes suggestions pour les langages très
répandus dans le code source libre, comme python, typescript, c # JavaScript, car il y existe une foule de
données.
• Si vous vous apprêtez à essayer COBOL, il n’y a pas autant de projets auxquels nous avons accès, donc
cela sera peut-être un peu plus problématique. Nous n’avons pas autant de données, donc les
suggestions seront peut-être moins bonnes.
• Nous savons également qu’il existe de nombreux référentiels qui ne sont par conformes aux pratiques
exemplaires, peut-être qu’ils ne respectent pas de normes de sécurité appropriées, qu’ils ne sont pas
bien commentés, à moitié terminés, etc. Donc, cela sera également pris en compte dans les données de
formation. Cela signifie donc que Copilot vous fera parfois des recommandations qui ne seront pas
géniales. L’équipe fait de son mieux pour l’adapter et rendre les suggestions aussi bonnes que possible,
mais bien sûr, cela a un impact.

GitHub Copilot!= Compilateur


• Il ne comprend pas la syntaxe et les règles de nos langues. Il s’agit simplement d’un outil de prédiction
de texte qui essaie de prédire ce qui vient ensuite.
• Cela signifie que vos suggestions (par exemple, des parties partielles d’une fonction) pourraient ne pas
être compilables. Il pourrait y avoir un point-virgule ou un crochet manquant, ou quelque chose qui n’a
pas vraiment de sens. Il est essentiel d’utiliser GitHub Copilot en tandem avec les outils (IDE, éditeurs, CI
/ CD, tests, etc.). L’équipe continue bien sûr à se concentrer sur l’amélioration de la qualité des
suggestions, mais Copilot lui-même n’est pas doté d’une compréhension inhérente des règles sur
l’emploi des langues.

10
11/9/2023 3:45 PM

L’intelligence artificielle ne peut pas lire dans vos pensées


• Parfois, vous aurez l’impression qu’elle lit dans vos pensées, mais ce n’est pas le cas.
• GitHub Copilot prend en compte le contexte de votre tâche et fait des suggestions. Vous devez
indiquer à GitHub Copilot ce que vous tentez d’accomplir. Parfois, elle ne fournira pas de suggestion, et
vous devrez la pousser dans la bonne direction en entamant une ligne de code, en écrivant un nom de
fonction ou en écrivant un commentaire. Ce n’est pas grave, vous signalez votre intention et une partie
de cette tâche d’ingénierie rapide.

D’accord, j’ai assez parlé de ce que Copilot ne peut pas faire, découvrons ce qu’il peut faire et comment
vous pouvez l’amorcer pour obtenir les meilleures suggestions afin que vous puissiez vous moins vous
concentrer moins sur le contenu générique et davantage sur les problèmes complexes et les solutions
créatives qui revêtent le plus d’importance.

10
11/9/2023 3:44 PM

Tirez le meilleur parti de GitHub CoPilot

Alors, découvrons comment nous pouvons tirer le


meilleur parti de GitHub Copilot.

11
11/9/2023 3:44 PM

Invites + Contexte

• Utilisez l’analogie de la programmation en binôme


ou de la révision de code dans la vie réelle. Besoin
de fournir un contexte à l’autre personne, afin
qu’elle puisse être plus efficace.
• Nous y parvenons dans le contexte de notre travail
existant et au moyen d’invites claires.
• Quelqu’un a-t-il déjà essayé Copilot sur un projet
existant? Avez-vous comparé cela à un projet
vierge? Vous remarquerez probablement que les
résultats sont plus ciblés et reflètent plus
précisément votre intention.
• Le contexte des mots est très important.
• Il ne connaît pas le contexte commercial du
problème que vous essayez de résoudre. Il ne lit
pas vos éléments de travail, votre problèmes

12
11/9/2023 3:45 PM

GitHub ou d’autres choses similaires, et il ne


peut pas générer la réponse appropriée comme
par magie. Il est important que vous alimentiez
ce contexte au moyen de votre travail existant,
ou au moyen de vos invites. Alors, jetons un
coup d’œil…

12
11/9/2023 3:44 PM

Ingénierie rapide

Une chose à la fois – Responsabilité unique

L’invite est spécifique

Attendez-vous à des réponses courtes

Si vous respectez ces trois consignes, la fiabilité de GitHub Copilot augmentera. GitHub Copilot peut vous
surprendre et faire des choses incroyables, parfois il peut vous décevoir.

Examinons comment cela fonctionne. Maintenant, je vous ai déjà avertis - c’est une véritable session, tout est
en mode direct. Les choses peuvent et vont probablement mal tourner en cours de route, mais adoptons ces
outils et commençons à apprendre à appliquer ces principes!

13
11/9/2023 3:44 PM

Démonstration

Simple, spécifique, court


• Écrivez une fonction JavaScript visant à nettoyer la chaîne HTML.
o Le nettoyage est un concept vague dans ce contexte - soyons
explicites concernant ce que nous voulons qu’il fasse. Prend une
entrée de chaîne et renvoie la sortie sans balises HTML.
o Démontrez la même chose en créant une fonction, sans utiliser de
commentaires.

Modèles et trucs que vous avez oubliés


• Ayez un index de base.html prêt, avec une invite CSS.
• Donnez-moi 100 lignes de Lorem Ipsum – Copilot n’est pas génial dans ce
type de scénario. En raison des limites de modèles linguistiques et de
caractères de retour.

Invites et contexte
• Nouveau fichier C # (vide et non sauvegardé), ne comporte donc pas de
contexte. Utilisez un commentaire et demandez-lui de générer des données
d’essais. Soyez progressivement plus précis dans votre invite.
• Passez à une application existante en définissant certaines classes et
utilisez une invite similaire. Nudge Copilot pour utiliser les classes dans
l’espace de noms existant.

14
11/9/2023 3:45 PM

15
11/9/2023 3:44 PM

16
11/9/2023 3:45 PM

17
11/9/2023 3:45 PM

18
11/9/2023 3:44 PM

Approuver, mais vérifier

Examen manuel du code, des conseils IDE?

Les versions et les tests sont-ils


concluants localement?

Passe-t-il vos contrôles CI / CD réguliers?

Si vous respectez ces trois consignes, la fiabilité de GitHub Copilot augmentera. GitHub Copilot peut vous
surprendre et faire des choses incroyables, parfois il peut vous décevoir.

Examinons comment cela fonctionne. Maintenant, je vous ai déjà avertis - c’est une véritable session, tout est
en mode direct. Les choses peuvent et vont probablement mal tourner en cours de route, mais adoptons ces
outils et commençons à apprendre à appliquer ces principes!

DÉMONSTRATION :

Approuver, mais vérifier




• Créez des tests unitaires pour ce code.
• J’ai installé python3 mais je ne me souviens pas
comment exécuter des tests unitaires. Pouvez-
vous nous donner un coup de main?

19
11/9/2023 3:45 PM

• Définissez le répertoire de travail au moyen de


valeurs par défaut.
• Valider et soulever en tant que PR.
• Ajoutez une étape de linting uniquement pour le
fichier et le fichier d’essai (clavardage en ligne)
selon les normes PEP8.
• Visionner la vidéo sur l’échec de la version.
• Activez l’extension flake8 et utilisez intellisense
pour résoudre les problèmes.
• Validez les fichiers fixes, regardez la mise en
œuvre de la version réussir.
• Si vous être aventureux, créez un fichier appelé
http.py et utilisez le clavardage pour demander à
Copilot chat de générer un serveur avec un
formulaire de saisie. (notez qu’il devrait y avoir des
problèmes en cours d’exécution HTTP.py en raison
du nom, utilisez Copilot pour déterminer le
problème, puis exécutez-le de nouveau).

19
11/9/2023 3:45 PM

20
11/9/2023 3:44 PM

Conseils d’adoption

Développez votre communauté interne

Partagez des moments surprenants

Partagez les conseils que vous avez appris

Maintenant, nous nous sommes concentrés sur les conseils sur la façon dont chacun d’entre vous peut utiliser
Copilot individuellement. Mais vous pouvez apprendre de vos collègues, et vous pouvez partager des
moments formidables avec vos collègues aussi!

• Alors développez cette communauté interne. Nous, les humains, sommes des créatures sociales, et nous
apprenons les uns des autres - pensez à ces moments à l’école, au collège, à l’université! Qu’il s’agisse d’un
canal d’équipes, d’un de groupe de discussion, le fait d’être capable de faciliter cet environnement
d’apprentissage social mutuellement est une excellente chose.
• Vous pouvez l’utiliser pour partager ces moments surprenants au cours desquels vous étiez en train de
résoudre un problème et que GitHub Copilot vous a proposé une suggestion qui vous a vraiment surpris.
• Et inévitablement, au fil du temps, vous trouverez des trucs et astuces pour les langues dans lesquelles vous
travaillez et la façon dont vous travaillez. Transmettes-les à vos collègues, car ils ne les connaissent peut-
être pas et vous pourriez les aider dans leur propre cheminement!

21
11/9/2023 3:44 PM

Alors, écoutez, l’intelligence artificielle n’est pas là pour vous voler votre travail. Votre GPS ne peut pas conduire votre
voiture, mais il peut vous amener à votre destination beaucoup plus rapidement. De la même manière, GitHub Copilot
n’est pas là pour prendre en charge l’écriture de tout votre code. Il est là pour faire les choses banales et fastidieuses
qui gâchent tout le plaisir de la programmation - afin que vous puissiez faire ce que vous faites si bien - élaborer des
solutions créatives à des problèmes très difficiles.

22
11/9/2023 3:44 PM

Récapitulatif

Responsabilité unique

Invite spécifique

Réponse courte

Regex, CRON, etc.

D’accord, donc nous vous avons montré beaucoup de choses, mais n’oubliez pas ces éléments clés
• Restez simple, court et précis si vous êtes un débutant.
• Tirez parti de Copilot pour exécuter ces actions routinières et reproductibles - des choses qui sont faciles à
exécuter par ordinateur, mais difficiles pour les êtres humains.
• Le contexte est la clé - qu’il s’agisse d’un commentaire plus spécifique ou de fichiers pertinents, fournissez à
Copilot autant d’informations que possible et regardez-le aller.
• Itérer - comme c’est le cas dans le développement en général, nous apprenons à force d’essais et d’erreurs.
Ne vous découragez pas - essayez quelque chose, observez les résultats et procédez en fonction de ceux-
ci. C’est tout simplement une boucle intérieure légèrement modifiée et vous êtes habitués avec cela.

23
11/9/2023 3:45 PM

Essayez GitHub
Copilot dès
aujourd’hui!

http://gh.io/copilot-demo

24
11/9/2023 3:44 PM

Aventures
avec GitHub
Copilot
Un périple de codage avec
l’intelligence artificielle

Vous ne pouvez pas vous inscrire aujourd’hui?

Rejoignez l’équipe Microsoft pour assister à un atelier virtuel « Aventures avec GitHub » le 8 novembre

aka.ms/developerhub/copilot

25

Vous aimerez peut-être aussi