Programiści spędzają zbyt dużo czasu na naprawianiu błędów, zbyt mało na tworzeniu nowego kodu. AWS ma plan
Pierwsze badania rynku rzucają światło na realne korzyści, jakie przedsiębiorstwom zapewnia GenAI. Jednym z największych sukcesów tej rewolucyjnej technologii jest branża deweloperska. Generatywna sztuczna inteligencja okazała się wyjątkowo użyteczna jako asystent programisty, odciążając go od żmudnych zadań. A firma, która prawdopodobnie hostuje największą liczbę aplikacji na świecie, zdecydowała się przenieść tę technologię na istotnie wyższy poziom.
Amazon Q Developer to wszechstronny asystent programistyczny, który znacząco ułatwia codzienną pracę deweloperów. Jedną z jego najważniejszych funkcji jest generowanie kodu, na co zresztą jego nazwa wskazuje. Dzięki zaawansowanym algorytmom sztucznej inteligencji narzędzie to potrafi analizować kontekst kodu i na jego podstawie proponować odpowiednie fragmenty nowego kodu. Może to być zarówno pojedyncza linia, jak i całe funkcje, co znacznie przyspiesza proces tworzenia oprogramowania.
Kolejną istotną funkcją jest modernizacja istniejącego kodu. Amazon Q Developer automatyzuje proces aktualizacji i transformacji aplikacji, co jest szczególnie przydatne w przypadku migracji między wersjami języków programowania. Przykładowo narzędzie to może pomóc w przejściu z Java 8 do Java 17, automatycznie dostosowując kod do nowych standardów i najlepszych praktyk. Dzięki temu programiści mogą skupić się na rozwijaniu nowych funkcji, zamiast tracić czas na ręczne aktualizacje.
Wsparcie w narzędziach typu IDE to kolejna zaleta Amazon Q Developer. Narzędzie to integruje się z popularnymi środowiskami programistycznymi, takimi jak JetBrains, Visual Studio czy VS Code. Dzięki temu programiści mogą korzystać z zaawansowanych funkcji bezpośrednio w swoim ulubionym edytorze kodu.
Dla tych, którzy preferują pracę w terminalu, Amazon Q Developer oferuje dostep komendowy. Narzędzie to zapewnia autouzupełnianie wiersza poleceń oraz wsparcie w konsoli AWS, co ułatwia zarządzanie zasobami i operacjami w chmurze. Programiści mogą szybko i efektywnie wykonywać różne zadania, takie jak zarządzanie instancjami EC2, diagnozowanie błędów czy rozwiązywanie problemów z siecią, bez konieczności opuszczania terminala.
Ostatnią, ale nie mniej ważną funkcją jest optymalizacja i operacje. Amazon Q Developer pomaga zarządzać zasobami AWS, diagnozować błędy, wybierać odpowiednie instancje oraz rozwiązywać problemy z siecią. Narzędzie to pełni rolę eksperta w zakresie wzorców architektonicznych AWS, dokumentacji oraz implementacji rozwiązań, co pozwala na optymalizację kosztów i zwiększenie efektywności operacyjnej. Dzięki temu programiści mogą skupić się na tworzeniu wartości dodanej dla swoich projektów, mając pewność, że ich infrastruktura jest zarządzana w sposób optymalny i bezpieczny.
Bezpieczeństwo i niezawodność?
Amazon Q Developer kładzie ogromny nacisk na bezpieczeństwo. Narzędzie to automatycznie skanuje kod w poszukiwaniu luk bezpieczeństwa, co pozwala na szybkie wykrycie i naprawienie potencjalnych zagrożeń. Dzięki temu programiści mogą być pewni, że ich aplikacje są chronione przed najnowszymi zagrożeniami. Amazon Q Developer nie tylko identyfikuje problemy, ale również sugeruje natychmiastowe poprawki, co znacznie przyspiesza proces zabezpieczania kodu.
Niezawodność Amazon Q Developer jest również wzmocniona przez jego zgodność z najlepszymi praktykami AWS, co oznacza, że programiści mogą polegać na jego rekomendacjach dotyczących implementacji rozwiązań. Amazon Q Developer pomaga w tworzeniu skalowalnych, wydajnych i bezpiecznych aplikacji, które są zgodne z najnowszymi standardami branżowymi.
Po co właściwie AWS zdecydował się na zbudowanie Q Developer?
W miarę jak projekty stawały się coraz bardziej złożone, a wymagania dotyczące bezpieczeństwa i wydajności rosły, tradycyjne narzędzia programistyczne zaczęły nie wystarczać. AWS, jako lider w dziedzinie chmury obliczeniowej i innowacji technologicznych, dostrzegł tę lukę i postanowił stworzyć narzędzie, które nie tylko ułatwi codzienną pracę programistów, ale również zrewolucjonizuje sposób, w jaki tworzone jest oprogramowanie.
- W Amazon pracujeny nad rozwiązaniami AI i ML już od 25 lat, używając bardziej tradycyjnych modeli uczenia maszynowego do prognozowania lub wykrywania anomalii i tym podobnych. Tym niemniej z GenAI szybko stało się jasne: "okej, jest tu ogromny potencjał" - mówi Jonathan Weiss, dyrektor zarządzający niemieckich centrów rozwoju Amazon, w rozmowie ze Spider’s Web.
Więc to, co zrobiliśmy, to próba ustalenia, jaka część naszej wewnętrznej pracy nad AI może przynieść największą wartość z perspektywy dewelopera. Przeanalizowaliśmy wiele danych wewnętrznych i zewnętrznych, aby zobaczyć, gdzie deweloperzy spędzają swój czas, na jakich zadaniach się koncentrują i które z nich są najłatwiejsze do poprawy. Okazało się, że to rozwiązywanie problemów i debugowanie. Naiwne założenie może być takie, że deweloperzy głównie piszą kod - ale jeśli faktycznie to zmierzyć, okazuje się, że nie spędzają większości czasu na pisaniu nowego kodu. Spędzają większość czasu na rozwiązywaniu problemów i debugowaniu aplikacji. Często aplikacji, których nie napisali, ponieważ są to istniejące aplikacje, które są objęte supportem. Ale nawet jeśli piszą i tworzą aplikacje, nawet wtedy spędzają dużo czasu na naprawianiu błędów. Więc był to był jeden z pierwszych obszarów, w których chcieliśmy pomóc
- jak zdradza nam Weiss.
Jak dodaje, AWS zaczął dzięki temu rozumieć, jakie są największe problemy, z którymi borykają się dziś deweloperzy. Następnie przeanalizowano, jak GenAI może w tym pomóc. Weiss ilustruje to przykładem funkcji Diagnose w Q Developer.
Możesz nie od razu zrozumieć, dlaczego pojawia się dany błąd, o co w nim chodzi. Więc musisz przejść do naszej dokumentacji lub szukać w Google, aby spróbować pojąć co jest nie tak i jak to rozwiązać. Tymczasem Q zasadniczo wychwyci ten błąd, a następnie pokaże bardzo czytelne wyjaśnienie, o co chodzi w tym błędzie, dlaczego go otrzymujesz – ponieważ, na przykład, dana funkcja kodu nie ma określonego zestawu uprawnień do zasobów, do których próbowała uzyskać dostęp. I jeśli chcesz to rozwiązać, oto kroki naprawcze w zakresie tworzenia tych konkretnych polityk z odpowiednimi rolami, przypisania ich do tej funkcji i oto jak to zrobić. Jest to rodzaj instrukcji krok po kroku, jak naprawić ten problem. Co ważne bardzo konkretny sposób, z uwzględnieniem tej konkretnej sytuacji, w jakiej znalazł się deweloper
- argumentuje Weiss.
W istocie, kontekst jest ogromną przewagą Q, który na życzenie klienta może mieć pełen wgląd w jego informatyczną infrastrukturę, dzięki czemu jest w stanie od razu wychwycić właściwe źródło problemu. Przy czym należy podkreślić owo jest w stanie. Bo Q Developer nie zawsze będzie wyrocznią absolutną. Technologia GenAI nadal wymaga dalszych szlifów, a AWS nie próbuje tego ukrywać.
Jak zaufać Q Developer, skoro AI miewa skłonności do halucynacji? AWS mówi wprost: nie robić tego
Jak przyznaje Jonathan Weiss w rozmowie ze Spider’s Web, halucynacje to istotny problem. AWS ma wobec tego wyzwania dwie strategie albo dwa podejścia. Pierwsze to redukowanie prawdopodobieństwa wystąpienia halucynacji do absolutnego minimum, poprzez całkiem sensowne działania związane ze szkoleniem modelu. Drugie to edukacja samego klienta.
- Upewniamy się, że trenujemy modele na naszej dokumentacji i wszystkich danych ścisłej natury. Ale jedną z dużych zalet, jakie ma Amazon Q Developer, to funkcja Diagnose, o której już mówiłem. Ta wie, że jeśli próbujesz utworzyć tę przykładową funkcję typu lambda, więc oto rzeczywiste zasoby na twoim koncie, nie masz tej polityki lub polityce którą obecnie masz czegoś brakuje - jak z entuzjazmem opowiada. Tym niemniej odniósł się i bezpośrednio do problemu.
Korzystając z ogólnego modelu - dajmy na to, GPT od OpenAI - korzysta się z AI trenowanej na publicznie dostępnych źródłach. Te nie są dostosowane do konkretnej sytuacji klienta. Jego konkretne zasoby, które istnieją na twoim koncie, bardzo szczególny stan tych zasobów - nie są przez taki ogólny model brane pod uwagę i czatbot oparty na takim modelu będzie niepomocny lub zacznie halucynować.
- Tylko dlatego, że jest to najbardziej prawdopodobny zestaw znaków, który następuje po tym komunikacie o błędzie, nie oznacza, że jest to rozwiązanie dla twojego przypadku. Więc to, co Q jest w stanie tutaj zrobić, to faktycznie dostarczyć dużo więcej kontekstu - jak zauważa Weiss, odnosząc się bezpośrednio do zasady działania Dużych Modeli Językowych. Ale też przyznaje, że dla narzędzi tego typu wciąż istnieje dużo pole do poleprzenia swojego działania.
- Bardzo ważne jest również edukowanie i informowanie ludzi, że to niekoniecznie musi być jedyna prawdziwa ścieżka i absolutnie poprawna odpowiedź. Jeśli dziś porozmawiasz z ekspertem i otrzymasz poradę na jakiś temat, nadal będziesz ją przetwarzać i nie będziesz ślepo ufać, prawda? Więc w tym sensie staramy się z jednej strony upewnić, że odpowiedź systemu jest tak dokładna, jak to możliwe - ale nie będzie ona gwarantowana jako idealna we wszystkich przypadkach brzegowych. Dlatego też stosujemy pewne szczególne UX i tym podobne, aby powiedzieć: "Hej, ta operacja ma takie konsekwencje i bądź ostrożny, gdy to robisz i sprawdź dwa razy, czy to jest rzeczywiście działanie, które chcesz podjąć" - ostrzega.
- Nie sądzę, że te narzędzia, jak niektórzy się obawiają, "zastąpią ludzi". Widzę Q jako narzędzie przyspieszające. Jest to coś, co automatyzuje wiele ciężkiej pracy za mnie. Oszczędza mi to spędzania dwóch godzin na Google, Stack Overflow lub forach, aby zrozumieć, co ten błąd może potencjalnie oznaczać. Nadal muszę zastosować zdrowy rozsądek i wiedzę, aby zrozumieć, czy to odpowiednie rozwiązanie - twierdzi.
Feedback od klientów? Najpierw przerażenie, potem niezrozumienie, a potem ogromna ciekawość
Rok temu, kiedy to wszystko było bardzo, bardzo nowe, klienci byli dużo bardziej ostrożni. Początkowo CIO pytali jak wyłączyć tego typu narzędzia wszystkim pracownikom odgórnie, ponieważ "na pewno kradną dane" i tym podobne. To było nowe, to było obce. Teraz ludzie bardziej się tym interesują. Jak mogę to wykorzystać? Jak mogę to przyjąć? I opinie są bardzo, bardzo pozytywne. Ludzie naprawdę starają się zrozumieć, jakie są przypadki użycia, gdzie można to AI zastosować. Jak w przypadku wszystkich nowych technologii, niektóre przypadki użycia okażą się nie najszczęśliwiej dobrane, a inne przypadki użycia okażą się fantastyczne, zaskakujące - może takie, których nawet nie braliśmy pod uwagę
- jak z wyraźnym entuzjazmem opowiada Weiss.
Jak można się domyśleć, rozwój narzędzia nie stoi w miejscu. Próbowałem podpytać pana dyrektora o roadmapę, ale - co zrozumiałe - nie chciał być zbyt wylewny. Mamy się jednak spodziewać jeszcze większego nacisku na bezpieczeństwo kodu i danych (w tym aktywne skanowanie w poszukiwaniu zagrożeń) oraz zwiększenia liczby obsługiwanych języków i frameworków.
Jak zacząć z Amazon Q Developer?
Amazon Q Developer oferuje różne plany cenowe, aby dostosować się do potrzeb różnych użytkowników. Darmowy poziom jest idealny dla indywidualnych programistów i małych zespołów, którzy chcą wypróbować narzędzie i zobaczyć, jak może ono poprawić ich produktywność. W ramach darmowego poziomu użytkownicy mają dostęp do podstawowych funkcji, takich jak generowanie kodu i skanowanie pod kątem luk bezpieczeństwa, co pozwala na zapoznanie się z możliwościami narzędzia bez ponoszenia kosztów.
Dla bardziej zaawansowanych użytkowników i większych zespołów dostępny jest plan subskrypcyjny Amazon Q Developer Pro. Ten plan oferuje rozszerzone funkcje, takie jak zaawansowane wsparcie w IDE, automatyzacja modernizacji kodu oraz dodatkowe narzędzia do optymalizacji i zarządzania zasobami AWS. Subskrypcja Pro jest idealna dla firm, które potrzebują bardziej zaawansowanych narzędzi do zarządzania dużymi projektami i infrastrukturą w chmurze. Koszt subskrypcji zależy od liczby użytkowników oraz zakresu funkcji, z których korzystają.
Amazon oferuje również indywidualne plany cenowe dla dużych przedsiębiorstw, które mają specyficzne wymagania dotyczące wsparcia i integracji. W ramach tych planów firmy mogą negocjować warunki umowy, aby dostosować narzędzie do swoich unikalnych potrzeb. Dzięki elastycznym opcjom cenowym Amazon Q Developer może być używany zarówno przez małe startupy, jak i duże korporacje, zapewniając wsparcie na każdym etapie rozwoju oprogramowania.
Rozpoczęcie pracy z Amazon Q Developer jest proste i intuicyjne. Pierwszym krokiem jest założenie konta AWS, jeśli jeszcze go nie posiadasz. Konto AWS umożliwia dostęp do wszystkich usług Amazon Web Services, w tym Amazon Q Developer. Po założeniu konta, należy zalogować się do konsoli AWS i przejść do sekcji Amazon Q Developer, gdzie można rozpocząć konfigurację narzędzia.
Następnie, warto zainstalować wtyczkę Amazon Q Developer w swoim ulubionym środowisku programistycznym (IDE). Narzędzie to jest kompatybilne z popularnymi IDE, takimi jak JetBrains, Visual Studio i VS Code. Instalacja wtyczki pozwala na pełne wykorzystanie funkcji Amazon Q Developer bezpośrednio w edytorze kodu, co znacznie ułatwia pracę. Wtyczka oferuje sugestie kodu, skanowanie pod kątem luk bezpieczeństwa oraz funkcję chat, która umożliwia szybkie uzyskanie pomocy.
Dla tych, którzy preferują pracę w terminalu, Amazon Q Developer oferuje również wsparcie dla CLI i konsoli AWS. Można go używać w terminalu na macOS oraz przez Secure Shell, co ułatwia zarządzanie zasobami i operacjami w chmurze. Aby rozpocząć, wystarczy zainstalować odpowiednie narzędzia CLI i skonfigurować je zgodnie z dokumentacją AWS. Dzięki temu programiści mogą szybko i efektywnie wykonywać różne zadania, takie jak zarządzanie instancjami EC2, diagnozowanie błędów czy rozwiązywanie problemów z siecią.
- Oferujemy bezpłatne szkolenia i kursy online. Zawsze istnieje również możliwość bezpośredniego kontaktu z nami, mamy obecność w Polsce od ponad 9 lat, gdzie mamy dedykowaną obecność AWS. I ludzi, którzy pracują z klientami, odwiedzają klientów. W Polsce przeszkoliliśmy już ponad 100 tys. ludzi. Myślę, że jest wiele możliwości. Spotykamy się teraz przecież na Amazon Cloud Day w Warszawie. Są możliwości i oczywiście będziemy tworzyć ich więcej - zachęca Weiss.
Na marginesie: warto zainteresować się Amazon PartyRock
Amazon PartyRock to nowa, innowacyjna platforma stworzona przez AWS, która umożliwia budowanie aplikacji generatywnej sztucznej inteligencji w prosty i intuicyjny sposób. PartyRock jest oparty na Amazon Bedrock, w pełni zarządzanej usłudze AWS, która udostępnia modele bazowe (Foundation Models) od Amazon i wiodących firm AI, takich jak m.in. AI21 Labs, Amazon, Anthropic, Cohere, Meta, Mistral AI oraz Stability AI. Również poprzez API.
PartyRock pozwala użytkownikom na tworzenie różnorodnych aplikacji AI bez konieczności pisania kodu - na podstawie promptu. Można na przykład stworzyć aplikację generującą żarty, personalizowaną playlistę, rekomendacje kulinarne na podstawie dostępnych składników, analizę budżetu imprezy, czy nawet generatora scenariuszy do gier fabularnych. Platforma jest zaprojektowana tak, aby każdy, niezależnie od poziomu zaawansowania technicznego, mógł eksperymentować z generatywną AI i uczyć się technik związanych z inżynierią promptów oraz łączeniem różnych modeli.
PartyRock jest idealnym narzędziem dla tych, którzy chcą nauczyć się więcej o generatywnej AI, jednocześnie dobrze się bawiąc i tworząc ciekawe aplikacje. Platforma umożliwia również dzielenie się stworzonymi aplikacjami z innymi użytkownikami, co sprzyja wymianie pomysłów i inspiracji. Dzięki PartyRock, każdy może stać się twórcą aplikacji AI, niezależnie od poziomu zaawansowania technicznego.
Amazon Web Services z zaawansowaną technologią AI. Największy dostawca chmurowy na świecie zbyt długo kojarzył się z wymyślnym hostingiem
Nie dziwi mnie, że ludzie mają nadal takie wyobrażenie o AWS, ponieważ historycznie rzecz biorąc, to właśnie tam byliśmy bardzo silni z naszymi ofertami w zakresie baz danych, obliczeń, przechowywania danych, sieci i tym podobnych. Tym niemniej byliśmy aktywni w przestrzeni deweloperskiej przez wiele lat. Osobiście pracowałem nad narzędziami dla deweloperów. Pracowaliśmy tam od dawna, ale może nie byliśmy tak widoczni i znani jak w innych obszarach. Myślę, że na pewno możesz założyć, że zobaczysz dużo więcej w tej przestrzeni, właśnie z Amazon Q Developer i Amazon Q for Business. Myślę, że to świetne przykłady
- jak pointuje nasz rozmówca.
Jako Spider’s Web nie jesteśmy w stanie w żaden sposób uwiarygodnić wielu z powyższych deklaracji. Nasze zaplecze deweloperskie znajduje się w kompletnie innej rzeczywistości i ekosystemie narzędzi, z Amazon Web Services mamy niewiele wspólnego. Możemy jednak weryfikować powyższe deklaracje feedbackiem ze strony klientów. A ten jest zbliżony do tego, jaki cytował pan Weiss. Można go w skrócie opisać jako ostrożny entuzjazm.
Większość pierwszych klientów nadal ewaluuje to narzędzie i nie chciała w rozmowie ze mną dzielić się definitywną oceną, tłumacząc, że na to jest stanowczo za wcześnie. Ale też trudno było znaleźć kogokolwiek, kto nie widzi potencjału tego narzędzia. Większość albo już testuje, albo zamierza - deklarując bardzo zachęcające wyniki tych testów. Na szczęście przekonać się o tym można też samemu, i to bez żadnych opłat.