GitHub Copilot kontra Amazon CodeWhisperer
Bitwa o najlepszego asystenta kodowania opartego na sztucznej inteligencji oficjalnie się rozpoczęła!
GitHub Copilot i Amazon CodeWhisperer to wspomagani przez sztuczną inteligencję asystenci kodowania, którzy przenoszą autouzupełnianie na zupełnie nowy poziom. W najlepszym przypadku mogą napisać kompletne fragmenty działającego kodu na podstawie krótkiego tekstu opisowego podanego przez programistę. Dzięki temu będziesz bardziej wydajny jako programista
i — moim zdaniem — sprawi, że programowanie stanie się o wiele przyjemniejsze!✨
Więc bez dalszych ceregieli, zaczynajmy!
Co to jest asystent kodowania oparty na sztucznej inteligencji?
GitHub Copilot i Amazon CodeWhisperer to usługi, które integrują się z twoim edytorem kodu i pomagają szybciej pisać kod. Jednak w przeciwieństwie do powszechnych narzędzi autouzupełniania, takich jak np. „IntelliSense”, Copilot i CodeWhisperer wykorzystują modele uczenia maszynowego, które zostały przeszkolone zarówno w zakresie kodu źródłowego, jak i języka naturalnego, umożliwiając im zrozumienie zarówno programowania, jak i języków ludzkich. To pozwala im zrozumieć komentarze napisane prostym językiem angielskim, wygenerować kod na podstawie intencji programisty oraz dopasować wzorce i styl programisty. Podczas pisania podają nawet zalecenia dotyczące uzupełnienia początkowego komentarza. Możesz zaakceptować najlepszą rekomendację, wyświetlić więcej rekomendacji lub po prostu kontynuować pisanie własnego kodu.
Poświęcaj mniej czasu na tworzenie szablonów i powtarzalnych wzorców kodu, a więcej na to, co ważne: tworzenie świetnego oprogramowania (GitHub Copilot)
Co to jest GitHub Copilot?
GitHub Copilot został opracowany przez GitHub i OpenAI. Jest zasilany przez model OpenAI Codex, który został przeszkolony na publicznie dostępnym kodzie źródłowym, w tym publicznych repozytoriach na GitHub. Copilot został oficjalnie ogłoszony „poza przeglądem technicznym” w czerwcu 2022 r.
Copilot jest bardzo łatwy w użyciu i oferuje usprawnioną integrację ze wszystkimi głównymi edytorami kodu. GitHub Copilot jest zoptymalizowany pod kątem siedmiu głównych języków programowania (szczegóły w tabeli poniżej), ale może również generować sugestie w innych językach i szerokiej gamie platform.
Copilot był darmowy na etapie podglądu, ale GitHub niedawno ogłosił, że przejdzie na model oparty na subskrypcji. Nadal możesz uzyskać 60-dniowy bezpłatny okres próbny, który pozostanie bezpłatny dla zweryfikowanych studentów i opiekunów popularnych projektów open source.
Co to jest Amazon CodeWhisperer?
Amazon CodeWhisper został opracowany przez Amazon. Jego modele ML są szkolone na różnych źródłach danych, w tym na kodzie wewnętrznym Amazon i kodzie open source.
CodeWhisperer jest wciąż w wersji zapoznawczej i obsługuje zarówno mniej języków, jak i mniej głównych edytorów kodu niż GitHub Copilot. Jednak szeroka obsługa języków i IDE nie jest jego główną atrakcją. Zamiast tego CodeWhisperer koncentruje się na zapewnieniu pierwszorzędnej obsługi interfejsów API AWS, która zapewnia zalecenia dotyczące kodu dla interfejsów API AWS w najpopularniejszych usługach, w tym Amazon Elastic Compute Cloud (EC2), AWS Lambda i Amazon Simple Storage Service (S3). Jakość ponad ilość?
Zgodnie z tym postem na blogu Amazon, użytkownik powinien móc napisać „prześlij plik do S3.”, a CodeWhisperer automatycznie określi, które usługi w chmurze i biblioteki publiczne najlepiej nadają się do określonego zadania, zbuduje określony kod w locie, i rekomenduj wygenerowane fragmenty kodu bezpośrednio w IDE.
W okresie zapoznawczym programiści mogą bezpłatnie korzystać z CodeWhisperer, rejestrując się tutaj .
Porównanie
Który jest bardziej popularny?
Biorąc pod uwagę krótki okres istnienia CodeWhisperer (wydany w zeszłym miesiącu), nie byłem w stanie znaleźć żadnych danych związanych z liczbą użytkowników. Jednak prawdopodobnie można śmiało powiedzieć, że GitHub Copilot, z roczną przewagą na starcie, jest obecnie dominującym graczem. Według samego GitHub ponad 1,2 miliona programistów skorzystało z technicznej wersji zapoznawczej Copilot w ciągu ostatnich 12 miesięcy. Z ich własnych badań wynika, że użytkownicy zaakceptowali średnio 26% wszystkich uzupełnień pokazanych przez GitHub Copilot, a aż 40% plików z kodem programistów zostało wygenerowanych przez GitHub Copilot.
A co z prywatnością?
Aby poprawić swoją wydajność, zarówno Copilot, jak i CodeWhisperer zbierają dane od swoich użytkowników. Czy używając tych narzędzi w pracy, narażasz bazę kodu lub dane swojej organizacji? Jest to ważne pytanie i potencjalny przełom dla większości firm.
Aby dostarczyć sugestie dotyczące kodu, GitHub Copilot wysyła Twój kod i komentarze do usługi GitHub Copilot. Ta usługa opiera się na kontekstowej zawartości pliku, zarówno w pliku, który edytujesz, jak i sąsiednich lub powiązanych plikach w projekcie. Może również gromadzić adresy URL repozytoriów lub ścieżek plików w celu identyfikacji odpowiedniego kontekstu. Części gromadzenia danych można wyłączyć w ustawieniach telemetrii. Inne części, takie jak informacje o użytkowaniu, są wymagane do korzystania z Copilota i nie można ich wyłączyć. Może to obejmować dane osobowe, o których mowa w Oświadczeniu o ochronie prywatności GitHub .
GitHub stwierdza również, że z ich wewnętrznych testów wynika, że rzadko zdarza się, aby sugestie GitHub Copilot zawierały dosłownie dane osobowe ze zbioru szkoleniowego („rzadkie”…? ). Jednak niektóre z tych sugestii mogą wyglądać na dane osobowe — adresy e-mail, numery telefonów itp. — ale w rzeczywistości są to fikcyjne informacje zsyntetyzowane na podstawie wzorców w danych szkoleniowych.
Amazon CodeWhisperer zbiera również pewne informacje, takie jak informacje kontekstowe (w tym zawartość plików), opinie, metryki telemetryczne i informacje o środowisku użytkownika. W swoich Warunkach świadczenia usług Amazon stwierdza, że w fazie podglądu może oferować opcję włączania i wyłączania udostępniania treści.
A co z ryzykiem i słabymi punktami?
Obaj asystenci są przeszkoleni w zakresie kodu publicznego, który może zawierać niebezpieczne wzorce kodowania, błędy lub odniesienia do przestarzałych interfejsów API lub idiomów. Badanie „Zasnąłeś przy klawiaturze? Assessing the Security of GitHub Copilot's Code Contributions ” wykazało, że aż 40% ich scenariuszy testowych z wykorzystaniem Copilot zawierało podatny na ataki kod.
GitHub przyznaje, że Copilot może czasami sugerować stare lub przestarzałe zastosowania bibliotek i języków oraz że może syntetyzować kod zawierający niepożądane wzorce. Aby temu zaradzić, sugerują używanie swojego produktu w połączeniu z narzędziami takimi jak GitHub Actions, Dependabot i CodeQL, aby poprawić jakość kodu.
To samo dotyczy Amazon, choć należy im się uznanie, że Amazon podjął wielkie środki, aby temu przeciwdziałać, zapewniając skanowanie bezpieczeństwa w celu wykrycia luk w projektach Java i Python.
Biorąc to pod uwagę, zawsze powinieneś używać asystentów kodowania opartych na sztucznej inteligencji wraz z odpowiednimi testami, dobrymi praktykami przeglądu kodu i niezawodnymi narzędziami bezpieczeństwa, a także własnym osądem!
A co z (niewłaściwym) użyciem kodu publicznego?
Zwiększono świadomość dotyczącą znacznego wykorzystania kodu publicznego w zbiorze szkoleniowym. W idealnej sytuacji asystent powinien konsekwentnie generować kod, którego nigdy wcześniej nie widziano. Jeśli zamiast tego asystent recytuje kod bezpośrednio ze zbioru uczącego, może to potencjalnie pozbawić go uznania za dozwolony użytek i może naruszyć prawa autorskie pierwotnego właściciela.
Aby temu zaradzić, Copilot ma wbudowany filtr, który próbuje wykryć i ukryć przypadki, w których sugestia GitHub Copilot zawiera kod pasujący do publicznego kodu w GitHub. Ten filtr jest opcjonalny i można go wyłączyć. Według samego GitHub, Copilot będzie generować dosłowne fragmenty kodu dłuższe niż ~ 150 znaków w około 1% przypadków. Obwiniają za to przypadki, w których GitHub Copilot nie jest w stanie zebrać wystarczającego kontekstu z pisanego kodu lub gdy istnieje powszechne, być może nawet uniwersalne rozwiązanie problemu.
Podobnie jak Copilot, CodeWhisperer jest również wyposażony w narzędzie do śledzenia referencji, które może wykrywać, kiedy generowane dane wyjściowe mogą być podobne do określonych danych treningowych. Jeśli chodzi o gromadzenie kodu napisanego przez użytkownika, Amazon oświadcza, że nie będzie używać żadnego kodu napisanego przez programistę do dalszego szkolenia swoich modeli w fazie podglądu. Jednak CodeWhisperer przechowuje dane o aktywności użytkownika związane z reakcjami programistów na zalecenia dotyczące kodu, takie jak akceptacja lub odrzucenie zalecenia. Usługa wykorzystuje te opinie, aby udoskonalić swoje modele ML, aby CodeWhisperer mógł udoskonalić przyszłe rekomendacje.
Zwycięzcą jest..?
GitHub Copilot jest zwycięzcą, jeśli chodzi o obsługę języków i IDE. Istnieje również dłużej i oficjalnie nie jest w wersji zapoznawczej, dając programistom więcej czasu na naprawienie błędów i wygładzenie nierówności na drodze. Korzystanie z niego wymaga niewielkiej inwestycji finansowej, ale otrzymujesz w pełni funkcjonalny produkt, który jest gotowy do pracy.
Jeśli jednak pracujesz w środowisku AWS, Amazon CodeWhisperer jest prawdopodobnie dla Ciebie. Naprawdę podziwiam wysiłek Amazona, by być pierwszym dostawcą usług w chmurze, który oferuje inteligentnego asystenta kodowania, który w dużej mierze jest przeznaczony dla ich własnego produktu, i mam nadzieję, że więcej dostawców pójdzie w jego ślady (patrzę na ciebie, Azure!). Ponadto ich zintegrowane wykrywanie luk w zabezpieczeniach może być dobrym powodem do rozważenia tego. Wreszcie fakt, że jest obecnie bezpłatny, stanowi silną zachętę do przynajmniej wypróbowania go, gdy jest w wersji zapoznawczej. Będzie to jednak wymagało rejestracji i cierpliwego czekania na swoją kolej. ⏳
Na koniec poświęćmy chwilę, aby docenić, jak daleko zaszła technologia i jakie niesamowite narzędzia możemy teraz wykorzystać jako programiści! Zarówno GitHub Copilot, jak i Amazon CodeWhisperer to niesamowite technologie, które według mnie będą obowiązkowym narzędziem dla wszystkich poważnych programistów w nie tak odległej przyszłości. A ponieważ inni aktorzy, tacy jak Google i Salesforce , zaczynają zanurzać palce w wodzie, z pewnością wydaje się, że wkrótce wkroczymy w nową erę, jeśli chodzi o tworzenie kodu.
Mam nadzieję, że ten artykuł był dla Ciebie przydatny. Dziękuje za przeczytanie!
Uwaga redaktorów:
GitHub Copilot był niezwykle cenny w mojej pracy jako analityka danych. Analiza danych często wymaga ode mnie szybkiego testowania hipotez. Ponieważ generalnie nie wiem z góry, jaki będzie wynik, często piszę wiele prawie identycznych kodów, które uruchamiam tylko raz, aby potwierdzić lub odrzucić moją hipotezę. GitHub Copilot jest świetnym narzędziem do przyspieszenia tego procesu, a także dobrze integruje się z każdym ulubionym IDE analityków danych, a mianowicie Jupyter Notebook (w VS Code) !
BIBLIOGRAFIA
- GitHub, Twój programista par AI (2022), github.com
- Amazon, towarzysz kodowania oparty na uczeniu maszynowym — Amazon CodeWhisperer — Amazon Web Services (2022), aws.amazon.com
- Amazon, AWS ogłasza Amazon CodeWhisperer (wersja zapoznawcza) (2022), aws.amazon.com
- A. Desai i A. Deo, Wprowadzenie Amazon CodeWhisperer, towarzysza kodowania opartego na uczeniu maszynowym (2022), Blog AWS Machine Learning
- S. Bhattacharyya, Bitwa asystentów kodowania AI: GitHub Copilot vs Amazon CodeWhisperer (2022), analyticsindiamag.com
- B. Dickson, GitHub Copilot jest teraz publiczny — oto, co musisz wiedzieć (2022), venturebeat.com
- F. Lardinois, Amazon uruchamia CodeWhisperer, narzędzie do programowania par AI podobne do GitHub Copilot (2022), techcrunch.com
- D. Gershgorn, narzędzie do automatycznego kodowania GitHub opiera się na nieprzetestowanej podstawie prawnej (2021), theverge.com

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































