Model jako usługa

https://aie24.pl/

Pokażemy, jak GPT-3 napędza kolejną falę start-upów, napędzając wyobraźnię kreatywnych przedsiębiorców odpowiednią technologią. Przyjrzymy się również, w jaki sposób badania nad sztuczną inteligencją zmierzają do komercjalizacji w kilku dziedzinach. Porozmawiamy także z jednym z inwestorów kapitału wysokiego ryzyka wspierających te inicjatywy, aby zrozumieć finansowe aspekty rozwijającej się gospodarki GPT-3. Historia powstania API OpenAI przypomina wiele historii start-upów i firm przedstawionych w tym rozdziale. Przeprowadziliśmy wywiad z Peterem Welinderem z OpenAI. Opowiedział nam historię odważnych eksperymentów, szybkich iteracji i wykorzystania inteligentnego projektu w celu osiągnięcia korzyści skali (dostarczanie potężnych modeli na dużą skalę przy możliwie najniższych kosztach). Welinder podsumowuje misję OpenAI w trzech kluczowych punktach: „Rozwiń AGI (sztuczną inteligencję ogólną), upewnij się, że jest bezpieczna, a następnie wprowadź ją na świecie, aby zmaksymalizować korzyści dla całej ludzkości”. Dlatego firma koncentruje się na rozwoju sztucznej inteligencji, która może znaleźć zastosowanie w coraz bardziej ogólnym zakresie potrzeb. Mając nadzieję na możliwie szybkie i bezpieczne osiągnięcie AGI, jedną z technologii, na którą OpenAI zdecydowało się postawić, były duże modele językowe, w szczególności GPT-3. Welinder mówi o wypróbowaniu GPT-3: „To był pierwszy raz, kiedy poczuliśmy coś takiego: «Właściwie to wydaje się całkiem przydatne, pozwala uzyskać najnowocześniejsze wyniki w wielu zadaniach akademickich testy porównawcze itd.”. Podekscytowany możliwościami Welinder i czterech współpracowników debatowali nad tym, jak najlepiej wykorzystać algorytm: Zbudować silnik tłumaczący? Asystent pisania? Aplikacja do obsługi klienta? Wtedy do nich dotarło, Welinder mówi: „Dlaczego zamiast tego po prostu nie udostępnić tej technologii jako interfejsu API i pozwolić deweloperom na zbudowanie na jej podstawie własnego biznesu?” Podejście API było zgodne z celami i misją OpenAI poprzez maksymalizację przyjęcia technologii i jej wpływu, umożliwiając członkom społeczności tworzenie aplikacji, których zespół OpenAI nie mógł przewidzieć. Pozostawia to również rozwój produktu wykwalifikowanym programistom na całym świecie, uwalniając zespół OpenAI do skupienia się na tym, w czym jest naprawdę dobry: opracowywaniu solidnych, przełomowych modeli. Do tego momentu badacze skupiali się na projektowaniu skalowalnych, wydajnych systemów szkoleniowych, aby wycisnąć maksymalną wydajność z procesorów graficznych. Ale tam w niewielkim stopniu skupiał się na uruchamianiu tych modeli na rzeczywistych danych i uzyskiwaniu z nich czegoś do zastosowań w świecie rzeczywistym. Dlatego zespół OpenAI zdecydował się podwoić podstawowe funkcje API, koncentrując się na takich aspektach, jak szybkie wnioskowanie i małe opóźnienia. Sześć miesięcy przed planowanym uruchomieniem wersji beta API. Według Welindera badacze zredukowali opóźnienia około dziesięciokrotnie i zwiększyli przepustowość setki razy: „Poświęciliśmy mnóstwo pracy inżynieryjnej, aby naprawdę wziąć te modele, upewnić się, że ich procesory graficzne są tak wydajne, jak to możliwe, wykonywać do nich połączenia za pomocą naprawdę niskie opóźnienia i sprawiają, że jest skalowalny.” Korzystanie z modelu za pośrednictwem interfejsu API zamiast konieczności korzystania z własnego procesora graficznego sprawia, że zwykli programiści są opłacalni i dostępni do zabawy z przypadkami użycia i próbowania nowych rzeczy. Ważne jest również bardzo małe opóźnienie, aby ułatwić iterację. „Nie chcesz czegoś wpisywać, a potem czekać minut na odpowiedź, co miało miejsce w początkach API. Teraz możesz zobaczyć wyniki modelu w czasie rzeczywistym” – mówi Welinder. OpenAI wierzyło, że modele będą się rozwijać, co utrudni programistom ich wdrażanie; zespół chciał usunąć tę barierę. „Będzie to po prostu zbyt wiele kosztować, ponieważ potrzebujesz wielu procesorów graficznych i procesorów do zabawy z konkretnym przypadkiem użycia. Samodzielne wdrażanie tego modelu nie będzie miało sensu” – mówi Welinder. Zamiast tego firma zdecydowała się udostępnić model deweloperom za pośrednictwem API. „Tysiące programistów korzysta z tych samych modeli i w ten sposób można osiągnąć korzyści skali” – dodaje Welinder. „A to obniża ceny dostępu do tych modeli dla wszystkich i jeszcze bardziej poszerza dystrybucję, dzięki czemu więcej osób może wypróbować te modele”. Wydanie API OpenAI w prywatnej wersji beta przyniosło sporo niespodzianek. Poprzedni model markizy, GPT-2, ożywił bardzo niewiele rzeczywistych przypadków użycia, więc zespół miał nadzieję, że GPT-3 okaże się bardziej przydatny. Udało się i to bardzo szybko.  Welinder mówi, że kolejną niespodzianką było to, że „wiele osób na naszej platformie nie było programistami. Byli autorami, twórcami różnego rodzaju, projektantami i menedżerami produktu i tak dalej. GPT-3 w pewnym sensie zmieniło to, co znaczy być programistą: nagle okazuje się, że aby zbudować aplikację AI, nie trzeba umieć programować. Wystarczy, że będziesz dobry w opisywaniu tego, co chcesz, aby sztuczna inteligencja zrobiła za pomocą podpowiedzi. Welinder i jego zespół odkryli, że „często ludzie, którzy byli w tym naprawdę dobrzy, nie mieli żadnego doświadczenia w uczeniu maszynowym”, a ci, którzy je posiadali, musieli się oduczyć, jak myśleli o wielu problemach, aby używać GPT-3. Wielu użytkowników tworzyło aplikacje oparte na GPT-3 bez kodu. Zespół OpenAI, choć tak naprawdę nie zamierzał, obniżył bariery w tworzeniu aplikacji: był to pierwszy krok w kierunku demokratyzacji sztucznej inteligencji. „Podstawową strategią jest zapewnienie użyteczności interfejsu API dla jak największej liczby osób” – mówi Welinder: „Podstawową misją naszej misji jest zapewnienie, że bariery w korzystaniu z naszej technologii będą niskie. Dlatego zbudowaliśmy ten interfejs API.” Kolejnym nieoczekiwanym przypadkiem użycia GPT-3 było kodowanie. Wczesne oznaki potencjału kodowania modelu skłoniły OpenAI do zintensyfikowania projektowania pod kątem kodowania przypadków użycia. Ich wysiłki zaowocowały wydaniem w połowie 2021 roku Kodeksu. Wraz z oszałamiającą różnorodnością zastosowań API dało początek zupełnie nowemu ekosystemowi start-upów: „W ciągu kilku miesięcy od uruchomienia API było kilka firm, które budowały w całości na bazie OpenAI API. Wiele z nich pozyskało obecnie finansowanie VC po dość wysokich wycenach” – mówi Welinder. Jedną z podstawowych zasad OpenAI jest ścisła współpraca z klientami. Welinder mówi: „Za każdym razem, gdy wprowadzamy nowe funkcje produktu, staramy się znaleźć klientów, o których wiemy, że uznają te funkcje za przydatne, i tworzymy bezpośrednie kanały komunikacji, w których zapewniamy im wcześniejszy dostęp”. Na przykład OpenAI współpracowało z kilkoma klientami nad udoskonaleniem funkcji wyszukiwania przed szerszą publikacją tej funkcji w interfejsie API. OpenAI zajmuje się przede wszystkim zapewnieniem bezpiecznego i odpowiedzialnego korzystania ze sztucznej inteligencji. Oprócz wielu pozytywnych skutków firma dostrzega rosnący potencjał niewłaściwego wykorzystania w miarę zwiększania się dostępności sztucznej inteligencji dla ogółu społeczeństwa. Jednym z głównych powodów, dla których zdecydowali się uruchomić API w prywatnej wersji beta, było zrozumienie, w jaki sposób ludzie będą korzystać z modeli i sprawdzenie ich potencjału do nadużyć. Badają jak najwięcej przypadków niepożądanego zachowania modelu, wykorzystując zdobytą wiedzę do swoich badań i szkolenia modeli. Welinder czerpie inspirację z różnorodności i kreatywności projektów opartych na API. „Nadchodząca dekada będzie niezwykle ekscytująca pod względem wszystkich rzeczy, które ludzie będą budować w oparciu o tę technologię. Myślę, że współpracując możemy stworzyć naprawdę dobre bariery zabezpieczające, które zapewnią, że te technologie i aplikacje, które zostaną zbudowane, będą naprawdę pozytywne dla naszego społeczeństwa”.

GPT-3 jako starter dla start-upów nowej generacji

https://aie24.pl/

Przed wydaniem GPT-3 interakcja większości ludzi z sztuczną inteligencją ograniczała się do określonych zadań, takich jak proszenie Alexy o puszczenie ulubionej piosenki lub używanie Tłumacza Google do rozmowy w różnych językach. Naukowcom udało się opracować sztuczną inteligencję zdolną do wykonywania przyziemnych zadań, jednak jak dotąd sztuczna inteligencja nie dorównała jeszcze kreatywnemu potencjałowi człowieka w zakresie wykonywania abstrakcyjnych zadań bez jasnych, dobrze zdefiniowanych instrukcji. Wraz z nadejściem ery LLM obserwujemy znaczącą zmianę paradygmatu. LLM pokazały nam, że zwiększając rozmiar modeli, mogą wykonywać kreatywne i złożone zadania podobne do ludzi. Teraz najważniejsze pytanie brzmi: czy sztuczna inteligencja jest w stanie wykonywać działania twórcze? Twórczy potencjał sztucznej inteligencji zawsze był ekscytującym obszarem badań, choć w większości ukryty za ciasnymi ścianami badawczo-rozwojowymi firm takich jak Google i Facebook. GPT-3 zmienia sposób, w jaki współdziałamy ze sztuczną inteligencją i umożliwia ludziom tworzenie aplikacji nowej generacji, co przed wydaniem wydawało się zbyt naciąganym pomysłem. John Smith, menedżer ds. multimediów i wizji w IBM Research, zauważa: „Sztucznej inteligencji łatwo jest wymyślić coś nowatorskiego po prostu przypadkowo. Ale bardzo trudno wymyślić coś nowatorskiego, nieoczekiwanego i przydatnego. A Jason Toy, dyrektor generalny Somatic, pyta: „Czy możemy wziąć to, co ludzie uważają za piękne i kreatywne, i spróbować umieścić to w algorytmie?”

Wniosek

https://aie24.pl/

Nauczyliśmy się korzystać z API OpenAI w językach programowania Python, Go i Java. Przeszliśmy także przez środowisko piaskownicy o niskim kodzie utworzone przy użyciu Streamlit, które pomoże Ci szybko przekształcić Twój pomysł w aplikację. Na koniec przyjrzeliśmy się kluczowym wymaganiom dotyczącym uruchomienia aplikacji GPT-3. Przedstawiono perspektywy programowania API; w przyszłości zagłębimy się w rozwijający się ekosystem wspierany przez GPT-3.

Uruchomienie aplikacji obsługujących GPT-3

https://aie24.pl/

Czy jesteś gotowy, aby wdrożyć aplikację korzystającą z GPT-3 w środowisku produkcyjnym? Zanim to zrobisz, omówmy niektóre środki ograniczające ryzyko. Dowiesz się, w jaki sposób GPT-3 może zostać wykorzystany do wyrządzenia szkody. Aby zabezpieczyć się przed tymi złośliwymi praktykami, OpenAI stworzyło wytyczne i procedury, których należy przestrzegać przed uruchomieniem aplikacji. Obecnie możesz udostępnić interfejs API pięciu osobom bez wcześniejszej zgody, ale w przypadku większej liczby osób musisz wystąpić o przegląd produkcyjny przed uruchomieniem. Zdecydowanie zalecamy zapoznanie się z Wytycznymi dotyczącymi użytkowania przed złożeniem wniosku. Kiedy przesyłasz żądanie przeglądu przed uruchomieniem, zespół OpenAI szczegółowo analizuje Twój przypadek użycia i sygnalizuje wszelkie potencjalne naruszenia Najlepszych praktyk dotyczących bezpieczeństwa API. Jeśli Twoja prośba zostanie zatwierdzona, OpenAI przyzna Ci maksymalny limit wydatków, który z czasem będzie wzrastał w miarę budowania historii. W miarę powiększania się bazy użytkowników możesz przesłać żądanie zwiększenia limitu. Daje to swobodę budowania i wdrażania aplikacji, podczas gdy OpenAI monitoruje jej potencjalny wpływ na platformę.

Piaskownica GPT-3 obsługiwana przez Streamlit

https://aie24.pl/

W tej sekcji przeprowadzimy Cię przez GPT-3 Sandbox, stworzone przez nas narzędzie typu open source, które udostępnia standardowy kod, który pomoże Ci przekształcić Twoje pomysły w rzeczywistość za pomocą zaledwie kilku linijek kodu Pythona. Pokażemy Ci, jak z niego korzystać i jak dostosować go do konkretnego zastosowania. Celem naszej piaskownicy jest umożliwienie Ci tworzenia fajnych aplikacji internetowych, bez względu na Twoje zaplecze techniczne. Jest zbudowany na platformie Streamlit.

W naszych przykładach używamy Visual Studio Code jako IDE, ale możesz użyć dowolnego IDE. Zanim zaczniesz, musisz zainstalować IDE. Upewnij się także, że używasz języka Python w wersji 3.7 lub nowszej. Możesz sprawdzić, którą wersję zainstalowałeś, uruchamiając następujące polecenie:

python –version

Sklonuj kod z tego repozytorium, otwierając nowy terminal w swoim IDE i używając następującego polecenia:

git clone https://github.com/Shubhamsaboo/kairos_gpt3

Po sklonowaniu repozytorium struktura kodu w Twoim IDE powinna wyglądać jak na rysunku

Wszystko, czego potrzebujesz do stworzenia i wdrożenia aplikacji internetowej, jest już obecne w kodzie. Wystarczy zmodyfikować kilka plików, aby dostosować piaskownicę do konkretnego przypadku użycia. Utwórz wirtualne środowisko Pythona, które nazwiesz env. Następnie możesz zainstalować wymagane zależności. Przejdź do folderu email_generacja. Twoja ścieżka powinna wyglądać następująco:

(env) kairos_gpt3\GPT-3 Sandbox\email_generation>

Stamtąd uruchom następujące polecenie:

(env) kairos_gpt3\GPT-3 Sandbox\email_generation> pip install -r

requirements.txt

Teraz możesz rozpocząć dostosowywanie kodu piaskownicy. Pierwszym plikiem, któremu musisz się przyjrzeć, jest Training_data.py. Otwórz ten plik i zastąp domyślny monit monitem szkoleniowym, którego chcesz użyć. Możesz używać GPT-3 Playground do eksperymentowania z różnymi podpowiedziami szkoleniowymi (zobacz rozdział 2 i nasz film, aby uzyskać więcej informacji na temat dostosowywania piaskownicy).

Możesz teraz dostosować parametry API (maksymalna liczba tokenów, silnik wykonawczy, temperatura, górne P, kara za częstotliwość, sekwencja zatrzymywania) zgodnie z wymaganiami przypadku użycia aplikacji. Zalecamy eksperymentowanie z różnymi wartościami parametrów dla danego monitu szkoleniowego w Playground, aby określić, które wartości będą najlepsze w Twoim przypadku użycia. Po uzyskaniu zadowalających wyników możesz zmienić wartości w pliku model_training_service.py. Otóż ​​to! Twoja aplikacja internetowa oparta na GPT-3 jest już gotowa. Możesz to uruchomić

lokalnie za pomocą następującego polecenia:

(env) kairos_gpt3\GPT-3 Sandbox\email_generation> streamlit run

gpt_app.py

Sprawdź, czy działa, a następnie możesz wdrożyć aplikację w Internecie za pomocą funkcji udostępniania Streamlit, aby zaprezentować ją szerszej publiczności. Nasz film przedstawia pełny opis wdrożenia.

NOTATKA

Ta aplikacja działa według prostego przepływu pracy, w którym monit szkoleniowy otrzymuje pojedyncze dane wejściowe z interfejsu użytkownika i wyświetla odpowiedź. Jeśli Twoja aplikacja wymaga bardziej złożonego przepływu pracy, w którym monit szkoleniowy przyjmuje wiele danych wejściowych, dostosuj elementy interfejsu użytkownika, korzystając ze skryptów app1.py, app2.py i gpt_app.py.

Korzystanie z API OpenAI w Javie

https://aie24.pl/

Java to jeden z najstarszych i najpopularniejszych języków programowania służących do tworzenia konwencjonalnych systemów oprogramowania; jest to również platforma dostarczana ze środowiskiem wykonawczym. Został opracowany przez firmę Sun Microsystems (obecnie spółkę zależną Oracle) w 1995 roku i obecnie działa na nim ponad trzy miliardy urządzeń. Jest to język programowania ogólnego przeznaczenia, oparty na klasach, zorientowany obiektowo, zaprojektowany tak, aby miał mniej zależności implementacyjnych. Jego składnia jest podobna do składni języków C i C++. Dwie trzecie branży oprogramowania nadal używa Java jako podstawowego języka programowania. Skorzystajmy jeszcze raz z naszego przykładowego podsumowania tekstu dotyczącego oliwy z oliwek. Podobnie jak w przypadku Pythona i Go, pokażemy Ci, jak wywołać interfejs API, wysłać monit szkoleniowy jako żądanie i uzyskać podsumowanie zakończenia w postaci wyniku przy użyciu języka Java. Aby zapoznać się ze szczegółowym opisem kodu na komputerze lokalnym, sklonuj nasze repozytorium GitHub. W sklonowanym repozytorium przejdź do folderu Programming_with_GPT-3 i otwórz folder GPT-3_Java. Najpierw zaimportuj wszystkie odpowiednie zależności:

package example;

// Importing Dependencies

import java.util.*;

import java.io.*;

import com.theokanning.openai.OpenAiService;

import com.theokanning.openai.completion.CompletionRequest;

import com.theokanning.openai.engine.Engine;

Teraz utworzysz klasę o nazwie OpenAiApiExample. Cały Twój kod będzie jego częścią. W ramach tej klasy utwórz najpierw obiekt OpenAiService przy użyciu tokena API:

class OpenAiApiExample {

public static void main(String… args) throws

FileNotFoundException {

String token = “sktuRevI46unEKRP64n7JpT3BlbkFJS5d1IDN8tiCfRv9WYDFY”;

OpenAiService service = new OpenAiService(token);

Połączenie z API OpenAI jest teraz nawiązywane w formie obiektu usługi. Przeczytaj monit szkoleniowy z folderu podpowiedzi:

// Reading the training prompt from the prompts folder

File file = new File(“D:\\GPT-3 Book\\Programming with GPT-3\\GPT-3

Java\\example\\src\\main\\java\\example\\prompts\\

summarize_for_a_2nd_grader.txt”);

Scanner sc = new Scanner(file);

// we just need to use \\Z as delimiter

sc.useDelimiter(“\\Z”);

// pp is the string consisting of the training prompt

String pp = sc.next();

Następnie możesz utworzyć żądanie uzupełnienia z następującą konfiguracją parametrów API:

Maksymalna liczba tokenów=100

Silnik wykonawczy = „Davinci”

Temperatura=0,5

Top-p=1

Kara za częstotliwość = 0,2

Sekwencja zatrzymania=[„\n\n”]

// Creating a list of strings to used as stop sequence

List<String> li = new ArrayList<String>();

li.add(“\n\n”””);

// Creating a completion request with the API parameters

CompletionRequest completionRequest =

CompletionRequest.builder().prompt(pp)

.maxTokens(100).temperature(0.5).topP(1.0).frequencyPenalty(0.2).sto

p(li)

.echo(true).build();

// Using the service object to fetch the completion response

service.createCompletion(“davinci”,completionRequest).getChoices().f

orEach

(System.out::println);

Zapisz plik kodu jako text_summarization.java i uruchom go z terminala, aby wygenerować dane wyjściowe. Aby uruchomić plik z folderu głównego, możesz użyć następującego polecenia:

./gradlew example:run

Twoja konsola powinna wydrukować to samo podsumowanie, co w poprzednich przykładach. Więcej przykładów wykorzystania języka Java do interakcji z GPT-3 można znaleźć w naszym repozytorium GitHub.

Piaskownica GPT-3 obsługiwana przez Streamlit

https://aie24.pl/

W tej sekcji przeprowadzimy Cię przez GPT-3 Sandbox, stworzone przez nas narzędzie typu open source, które udostępnia standardowy kod, który pomoże Ci przekształcić Twoje pomysły w rzeczywistość za pomocą zaledwie kilku linijek kodu Pythona. Pokażemy Ci, jak z niego korzystać i jak dostosować go do konkretnego zastosowania. Celem naszej piaskownicy jest umożliwienie Ci tworzenia fajnych aplikacji internetowych, bez względu na Twoje zaplecze techniczne. Jest zbudowany na platformie Streamlit.

W naszych przykładach używamy Visual Studio Code jako IDE, ale możesz użyć dowolnego IDE. Zanim zaczniesz, musisz zainstalować IDE. Upewnij się także, że używasz języka Python w wersji 3.7 lub nowszej. Możesz sprawdzić, którą wersję zainstalowałeś, uruchamiając następujące polecenie:

python –version

Sklonuj kod z tego repozytorium, otwierając nowy terminal w swoim IDE i używając następującego polecenia:

git clone https://github.com/Shubhamsaboo/kairos_gpt3

Po sklonowaniu repozytorium struktura kodu w Twoim IDE powinna wyglądać jak na rysunku

Wszystko, czego potrzebujesz do stworzenia i wdrożenia aplikacji internetowej, jest już obecne w kodzie. Wystarczy zmodyfikować kilka plików, aby dostosować piaskownicę do konkretnego przypadku użycia. Utwórz wirtualne środowisko Pythona, które nazwiesz env. Następnie możesz zainstalować wymagane zależności. Przejdź do folderu email_generacja. Twoja ścieżka powinna wyglądać następująco:

(env) kairos_gpt3\GPT-3 Sandbox\email_generation>

Stamtąd uruchom następujące polecenie:

(env) kairos_gpt3\GPT-3 Sandbox\email_generation> pip install -r

requirements.txt

Teraz możesz rozpocząć dostosowywanie kodu piaskownicy. Pierwszym plikiem, któremu musisz się przyjrzeć, jest Training_data.py. Otwórz ten plik i zastąp domyślny monit monitem szkoleniowym, którego chcesz użyć. Możesz używać GPT-3 Playground do eksperymentowania z różnymi podpowiedziami szkoleniowymi (zobacz rozdział 2 i nasz film, aby uzyskać więcej informacji na temat dostosowywania piaskownicy).

Możesz teraz dostosować parametry API (maksymalna liczba tokenów, silnik wykonawczy, temperatura, górne P, kara za częstotliwość, sekwencja zatrzymywania) zgodnie z wymaganiami przypadku użycia aplikacji. Zalecamy eksperymentowanie z różnymi wartościami parametrów dla danego monitu szkoleniowego w Playground, aby określić, które wartości będą najlepsze w Twoim przypadku użycia. Po uzyskaniu zadowalających wyników możesz zmienić wartości w pliku model_training_service.py. Otóż ​​to! Twoja aplikacja internetowa oparta na GPT-3 jest już gotowa. Możesz to uruchomić

lokalnie za pomocą następującego polecenia:

(env) kairos_gpt3\GPT-3 Sandbox\email_generation> streamlit run

gpt_app.py

Sprawdź, czy działa, a następnie możesz wdrożyć aplikację w Internecie za pomocą funkcji udostępniania Streamlit, aby zaprezentować ją szerszej publiczności. Nasz film przedstawia pełny opis wdrożenia.

NOTATKA

Ta aplikacja działa według prostego przepływu pracy, w którym monit szkoleniowy otrzymuje pojedyncze dane wejściowe z interfejsu użytkownika i wyświetla odpowiedź. Jeśli Twoja aplikacja wymaga bardziej złożonego przepływu pracy, w którym monit szkoleniowy przyjmuje wiele danych wejściowych, dostosuj elementy interfejsu użytkownika, korzystając ze skryptów app1.py, app2.py i gpt_app.py.

Korzystanie z API OpenAI w Javie

https://aie24.pl/

Java to jeden z najstarszych i najpopularniejszych języków programowania służących do tworzenia konwencjonalnych systemów oprogramowania; jest to również platforma dostarczana ze środowiskiem wykonawczym. Został opracowany przez firmę Sun Microsystems (obecnie spółkę zależną Oracle) w 1995 roku i obecnie działa na nim ponad trzy miliardy urządzeń. Jest to język programowania ogólnego przeznaczenia, oparty na klasach, zorientowany obiektowo, zaprojektowany tak, aby miał mniej zależności implementacyjnych. Jego składnia jest podobna do składni języków C i C++. Dwie trzecie branży oprogramowania nadal używa Java jako podstawowego języka programowania. Skorzystajmy jeszcze raz z naszego przykładowego podsumowania tekstu dotyczącego oliwy z oliwek. Podobnie jak w przypadku Pythona i Go, pokażemy Ci, jak wywołać interfejs API, wysłać monit szkoleniowy jako żądanie i uzyskać podsumowanie zakończenia w postaci wyniku przy użyciu języka Java. Aby zapoznać się ze szczegółowym opisem kodu na komputerze lokalnym, sklonuj nasze repozytorium GitHub. W sklonowanym repozytorium przejdź do folderu Programming_with_GPT-3 i otwórz folder GPT-3_Java. Najpierw zaimportuj wszystkie odpowiednie zależności:

package example;

// Importing Dependencies

import java.util.*;

import java.io.*;

import com.theokanning.openai.OpenAiService;

import com.theokanning.openai.completion.CompletionRequest;

import com.theokanning.openai.engine.Engine;

Teraz utworzysz klasę o nazwie OpenAiApiExample. Cały Twój kod będzie jego częścią. W ramach tej klasy utwórz najpierw obiekt OpenAiService przy użyciu tokena API:

class OpenAiApiExample {

public static void main(String… args) throws

FileNotFoundException {

String token = “sktuRevI46unEKRP64n7JpT3BlbkFJS5d1IDN8tiCfRv9WYDFY”;

OpenAiService service = new OpenAiService(token);

Połączenie z API OpenAI jest teraz nawiązywane w formie obiektu usługi. Przeczytaj monit szkoleniowy z folderu podpowiedzi:

// Reading the training prompt from the prompts folder

File file = new File(“D:\\GPT-3 Book\\Programming with GPT-3\\GPT-3

Java\\example\\src\\main\\java\\example\\prompts\\

summarize_for_a_2nd_grader.txt”);

Scanner sc = new Scanner(file);

// we just need to use \\Z as delimiter

sc.useDelimiter(“\\Z”);

// pp is the string consisting of the training prompt

String pp = sc.next();

Następnie możesz utworzyć żądanie uzupełnienia z następującą konfiguracją parametrów API:

Maksymalna liczba tokenów=100

Silnik wykonawczy = „Davinci”

Temperatura=0,5

Top-p=1

Kara za częstotliwość = 0,2

Sekwencja zatrzymania=[„\n\n”]

// Creating a list of strings to used as stop sequence

List<String> li = new ArrayList<String>();

li.add(“\n\n”””);

// Creating a completion request with the API parameters

CompletionRequest completionRequest =

CompletionRequest.builder().prompt(pp)

.maxTokens(100).temperature(0.5).topP(1.0).frequencyPenalty(0.2).sto

p(li)

.echo(true).build();

// Using the service object to fetch the completion response

service.createCompletion(“davinci”,completionRequest).getChoices().f

orEach

(System.out::println);

Zapisz plik kodu jako text_summarization.java i uruchom go z terminala, aby wygenerować dane wyjściowe. Aby uruchomić plik z folderu głównego, możesz użyć następującego polecenia:

./gradlew example:run

Twoja konsola powinna wydrukować to samo podsumowanie, co w poprzednich przykładach. Więcej przykładów wykorzystania języka Java do interakcji z GPT-3 można znaleźć w naszym repozytorium GitHub.

Korzystanie z interfejsu API OpenAI w Go

https://aie24.pl/

Go to język programowania typu open source, który łączy w sobie najlepsze cechy innych języków programowania, łącząc łatwość programowania interpretowanego języka o dynamicznie typowanym typie z wydajnością i bezpieczeństwem języka kompilowanego o typie statycznym. Programiści często nazywają go „C na miarę XXI wieku”. Go jest preferowanym językiem w przypadku projektów budowlanych wymagających wysokiego bezpieczeństwa, dużej szybkości i dużej modułowości. To sprawia, że jest to atrakcyjna opcja dla wielu projektów w branży fintech. Najważniejsze cechy Go są następujące:

* Łatwość użycia

* Najnowocześniejsza produktywność

* Wysokowydajne pisanie statyczne

* Zaawansowana wydajność w sieci

* Pełne wykorzystanie mocy wielordzeniowej

Jeśli dopiero zaczynasz korzystać z Go i chcesz spróbować, możesz zapoznać się z dokumentacją, aby rozpocząć. Po zakończeniu instalacji i zrozumieniu podstaw programowania Go możesz wykonać poniższe kroki, aby użyć opakowania Go API dla GPT-3. Więcej informacji na temat tworzenia modułów Go znajdziesz w tym samouczku. Najpierw utworzysz moduł do śledzenia i importowania zależności kodu. Utwórz i zainicjuj moduł gogpt za pomocą następującego polecenia:

go mod init gogpt

Po utworzeniu modułu gogpt wskażmy mu to repozytorium GitHub, aby pobrać niezbędne zależności i pakiety do pracy z API. Użyj następującego polecenia:

go get github.com/sashabaranov/go-gpt3

go get: added github.com/sashabaranov/go-gpt3 v0.0.0-20210606183212-

2be4a268a894

Użyjemy tego samego przykładu podsumowania tekstu, co w poprzedniej sekcji. (Cały kod znajdziesz w poniższym repozytorium.)

Na początek zaimportujmy niezbędne zależności i pakiety:

# Calling the package main

package main

# Importing Dependencies

import (

“fmt”

“io/ioutil”

“context”

gogpt “github.com/sashabaranov/go-gpt3”

)

Programowanie Go organizuje pliki źródłowe w katalogi systemowe zwane pakiety, co ułatwia ponowne wykorzystanie kodu w aplikacjach Go. W pierwszej linii kodu wywołujemy pakiet main, który informuje kompilator Go, że pakiet powinien się skompilować jako program wykonywalny, a nie jako biblioteka współdzielona.

UWAGA W Go za każdym razem, gdy tworzysz fragmenty kodu nadające się do ponownego użycia, będziesz tworzyć pakiet jako bibliotekę współdzieloną. Ale kiedy tworzysz programy wykonywalne, użyjesz pakietu main, aby uczynić pakiet programem wykonywalnym. Ponieważ nazywamy ten pakiet główną funkcją pakietu, main zostanie ustawiony jako punkt wejścia naszego programu wykonywalnego.

Teraz utworzysz główną funkcję, która będzie obsługiwać całą logikę odczytywania podpowiedzi szkoleniowej i dostarczania wyników zakończenia. Użyj następującej konfiguracji parametrów API:

* Maksymalna liczba tokenów = 100

* Silnik wykonawczy = „Davinci”

* Temperatura=0,5

* Góra-p=1

* Kara za częstotliwość = 0,2

* Sekwencja zatrzymania = [„\n\n”]

func main() {

c := gogpt.NewClient(“OPENAI-API-KEY”)

ctx := context.Background()

prompt, err :=

ioutil.ReadFile(“prompts/summarize_for_a_2nd_grader.txt”)

req := gogpt.CompletionRequest{

MaxTokens: 100,

Temperature: 0.5,

TopP: 1.0,

Stop: []string{“\n\n”},

FrequencyPenalty: 0.2,

Prompt: string(prompt),

}

resp, err := c.CreateCompletion(ctx, “davinci”, req)

if err != nil {

return

}

fmt.Println(“————————-“)

fmt.Println(resp.Choices[0].Text)

fmt.Println(“————————-“)

}

Ten kod wykonuje następujące zadania:

  1. Konfiguruje nowego klienta API poprzez przekazanie mu tokenu API, a następnie

pozostawia go działającego w tle.

  1. Odczytuje zachętę „ ” w formie pliku tekstowego z folderu podpowiedzi.
  2. Tworzy żądanie uzupełnienia, podając monit szkoleniowy i określając wartości parametrów API (takich jak temperatura, Top P, stop

kolejność itp.).

  1. Wywołuje funkcję dokończenia tworzenia i udostępnia jej API

klient, żądanie zakończenia i silnik wykonawczy.

  1. Generuje odpowiedź w postaci uzupełnienia, która wypisuje się na końcu w konsoli.

Następnie możesz zapisać plik kodu jako text_summarization.go i uruchomić go z terminala, aby wygenerować dane wyjściowe. Użyj następującego polecenia, aby uruchomić plik z folderu głównego:

go run text_summarization.go

Po uruchomieniu pliku konsola wyświetli następujące dane wyjściowe:

————————-

Oliwa z oliwek to płynny tłuszcz pochodzący z oliwek. Oliwki rosną na

drzewo zwane oliwnym. Drzewo oliwne jest najpospolitszym drzewem w basenie Morza Śródziemnego. Ludzie używają oliwy do gotowania, do sałatek i jako paliwo do lamp.

————————-

Więcej przykładów wykorzystania programowania Go do interakcji z GPT-3 można znaleźć w naszym repozytorium GitHub.

Korzystanie z API OpenAI w Pythonie

https://aie24.pl/

Python to najpopularniejszy język do zadań związanych z analizą danych i uczeniem maszynowym. W porównaniu z konwencjonalnymi językami programowania do nauki o danych, takimi jak R i Stata, Python wyróżnia się, ponieważ jest skalowalny i dobrze integruje się z bazami danych. Jest szeroko stosowany i ma kwitnącą społeczność programistów, którzy aktualizują swój ekosystem. Python jest łatwy do nauczenia i zawiera przydatne biblioteki do nauki o danych, takie jak NumPy i pandy. Możesz sparować GPT-3 z Pythonem, korzystając z biblioteki o nazwie Chronology, która zapewnia prosty i intuicyjny interfejs. Chronologia może złagodzić monotonną pracę polegającą na pisaniu całego kodu od zera za każdym razem. Jego funkcje obejmują:

* Wywołuje asynchronicznie interfejs API OpenAI, umożliwiając generowanie wiel szybkich uzupełnień w tym samym czasie.

* Możesz łatwo tworzyć i modyfikować podpowiedzi szkoleniowe; Na przykład, modyfikowanie podpowiedzi szkoleniowej używanej w innym przykładzie jest sprawiedliwe prosty.

* Umożliwia łączenie podpowiedzi poprzez podłączenie wyjścia jednego podpowiedzi do drugiego.

Chronologia jest hostowana na PyPI i obsługuje Python 3.6 i nowsze wersje. Aby zainstalować bibliotekę, uruchom następującą komendę:

pip install chronological

Po zainstalowaniu biblioteki Pythona przez PyPI przyjrzyjmy się przykładowi, jak przygotować GPT-3, aby podsumował dany dokument tekstowy na poziomie czytania drugiej klasy. Pokażemy Ci, jak wywołać interfejs API, wysłać monit szkoleniowy jako żądanie i uzyskać podsumowanie zakończenia w postaci wyniku. Opublikowaliśmy kod dla Ciebie w repozytorium GitHub.

W tym przykładzie użyjemy następującego podpowiedzi szkoleniowej:

My second-grader asked me what this passage means:

“””

Olive oil is a liquid fat obtained from olives (the fruit of Olea

europaea;

family Oleaceae)…

“””

I rephrased it for him, in plain language a second-grader can

understand:

“””

Najpierw zaimportuj następujące zależności:

# Importing Dependencies

from chronological import read_prompt, cleaned_completion, main

Teraz możemy utworzyć funkcję, która odczyta komunikat szkoleniowy i wyświetli wynik zakończenia. Uczyniliśmy tę funkcję asynchroniczną, co pozwala nam na wykonywanie równoległych wywołań funkcji. Dla parametrów API zastosujemy następującą konfigurację:

* Maksymalna liczba tokenów = 100

* Silnik wykonawczy = „Davinci”

* Temperatura=0,5

* Góra-p=1

* Kara za częstotliwość = 0,2

* Sekwencja zatrzymania = [„\n\n”]

# Takes in the training prompt and returns the completed response

async def summarization_example():

# Takes in a text file(summarize_for_a_2nd_grader) as the input

prompt

prompt_summarize = read_prompt(‘summarize_for_a_2nd_grader’)

# Calling the completion method along with the specific GPT-3

parameters

completion_summarize = await

cleaned_completion(prompt_summarize,

max_tokens=100, engine=”davinci”, temperature=0.5, top_p=1,

frequency_penalty=0.2, stop=[“\n\n”])

# Return the completion response

return completion_summarize

Teraz możemy stworzyć asynchroniczny przepływ pracy, wywołać go za pomocą głównej funkcji dostarczonej przez bibliotekę i wydrukować wynik w konsoli:

# Designing the end-to-end async workflow, capable of running

multiple prompts

# in parallel

async def workflow():

# Making async call to the summarization function

text_summ_example = await summarization_example()

# Printing the result in console

print(‘————————-‘)

print(‘Basic Example Response: {0}’.format(text_summ_example))

print(‘————————-‘)

# invoke Chronology by using the main function to run the async

workflow

main(workflow)

Zapisz go jako skrypt Pythona o nazwie text_summarization.py i uruchom go z terminala, aby wygenerować dane wyjściowe. Możesz uruchomić następujące polecenie z folderu głównego:

python text_summarization.py

Po wykonaniu skryptu konsola powinna wyświetlić następujące podsumowanie zachęty:

————————-

Basic Example Response: Olive oil is a liquid fat that comes from

olives.

Olives grow on a tree called an olive tree. The olive tree is the

most common

tree in the Mediterranean. People use the oil to cook with, to put

on their

salads, and as a fuel for lamps.

————————-

Jeśli nie jesteś dobrze zaznajomiony z językiem Python i chcesz połączyć różne podpowiedzi bez pisania kodu, możesz użyć interfejsu bez kodu wbudowanego w bibliotekę Chronology, aby utworzyć przepływ pracy podpowiedzi za pomocą metody „przeciągnij i upuść”. Więcej przykładów wykorzystania programowania w Pythonie do interakcji z GPT-3 znajdziesz w naszym repozytorium GitHub.