Utwórz interfejs sieciowy do interakcji z LLM za pomocą Amazon SageMaker JumpStart | Usługi internetowe Amazona

Utwórz interfejs sieciowy do interakcji z LLM za pomocą Amazon SageMaker JumpStart | Usługi internetowe Amazona

Uruchomienie ChatGPT i wzrost popularności generatywnej sztucznej inteligencji pobudziły wyobraźnię klientów, którzy są ciekawi, w jaki sposób mogą wykorzystać tę technologię do tworzenia nowych produktów i usług na AWS, takich jak chatboty dla przedsiębiorstw, które są bardziej konwersacyjne. W tym poście dowiesz się, jak utworzyć internetowy interfejs użytkownika, który nazywamy Chat Studio, aby rozpocząć rozmowę i wchodzić w interakcję z podstawowymi modelami dostępnymi w Amazon SageMaker JumpStart takie jak Llama 2, Stable Diffusion i inne modele dostępne na Amazon Sage Maker. Po wdrożeniu tego rozwiązania użytkownicy będą mogli szybko rozpocząć pracę i poznać możliwości wielu podstawowych modeli konwersacyjnej sztucznej inteligencji za pośrednictwem interfejsu internetowego.

Chat Studio może również opcjonalnie wywołać punkt końcowy modelu Stable Diffusion, aby zwrócić kolaż odpowiednich obrazów i filmów, jeśli użytkownik zażąda wyświetlenia multimediów. Ta funkcja może pomóc ulepszyć doświadczenie użytkownika dzięki wykorzystaniu multimediów jako zasobów towarzyszących odpowiedzi. To tylko jeden przykład tego, jak możesz wzbogacić Chat Studio o dodatkowe integracje, aby osiągnąć swoje cele.

Poniższe zrzuty ekranu pokazują przykłady wyglądu zapytania i odpowiedzi użytkownika.

Interfejs zapytań Chat Studio

Interfejs odpowiedzi Chat Studio

Duże modele językowe

Generacyjne chatboty AI, takie jak ChatGPT, działają w oparciu o duże modele językowe (LLM), które opierają się na sieci neuronowej głębokiego uczenia, którą można szkolić na dużych ilościach nieoznakowanego tekstu. Korzystanie z LLM pozwala na lepsze doświadczenia konwersacyjne, które bardzo przypominają interakcje z prawdziwymi ludźmi, wzmacniając poczucie połączenia i zwiększając satysfakcję użytkownika.

Modele fundamentów SageMaker

W 2021 r. Instytut Sztucznej Inteligencji Skoncentrowanej na Człowieku Stanforda określił niektóre LLM jako modele fundamentów. Modele podstawowe są wstępnie trenowane na dużym i szerokim zestawie danych ogólnych i mają służyć jako podstawa do dalszych optymalizacji w szerokim zakresie przypadków użycia, od generowania grafiki cyfrowej po klasyfikację tekstu wielojęzycznego. Te modele podstawowe cieszą się popularnością wśród klientów, ponieważ szkolenie nowego modelu od podstaw wymaga czasu i może być kosztowne. SageMaker JumpStart zapewnia dostęp do setek podstawowych modeli utrzymywanych od zewnętrznych dostawców open source i zastrzeżonych.

Omówienie rozwiązania

W tym poście omówiono przepływ pracy wymagający niewielkiej ilości kodu, umożliwiający wdrażanie wstępnie przeszkolonych i niestandardowych aplikacji LLM za pomocą programu SageMaker oraz tworzenie internetowego interfejsu użytkownika umożliwiającego współpracę z wdrożonymi modelami. Omawiamy następujące kroki:

  1. Wdrażaj modele fundamentów SageMaker.
  2. Rozmieścić AWS Lambda i AWS Zarządzanie tożsamością i dostępem (IAM) przy użyciu uprawnień Tworzenie chmury AWS.
  3. Skonfiguruj i uruchom interfejs użytkownika.
  4. Opcjonalnie dodaj inne modele fundamentów SageMaker. Ten krok rozszerza możliwości Chat Studio w zakresie interakcji z dodatkowymi modelami podstawowymi.
  5. Opcjonalnie wdróż aplikację za pomocą Wzmocnienie AWS. Ten krok powoduje wdrożenie Chat Studio w Internecie.

Przegląd architektury rozwiązania można znaleźć na poniższym diagramie.

Architektura rozwiązań Chat Studio

Wymagania wstępne

Aby przejść przez rozwiązanie, musisz mieć następujące wymagania wstępne:

  • An Konto AWS z wystarczającymi uprawnieniami użytkownika IAM.
  • npm zainstalowany w środowisku lokalnym. Aby uzyskać instrukcje dotyczące instalacji npm, odnosić się do Pobieranie i instalowanie Node.js i npm.
  • Limit usług wynoszący 1 dla odpowiednich punktów końcowych SageMaker. W przypadku Llama 2 13b Chat używamy instancji ml.g5.48xlarge, a w przypadku Stable Diffusion 2.1 używamy instancji ml.p3.2xlarge.

Aby poprosić o zwiększenie limitu usług, na stronie Konsola przydziałów usług AWS, nawigować do Usługi AWS, SageMakeri żądanie zwiększenia limitu usług do wartości 1 dla ml.g5.48xlarge w przypadku użycia punktu końcowego i ml.p3.2xlarge w przypadku użycia punktu końcowego.

Zatwierdzenie żądania dotyczącego przydziału usługi może zająć kilka godzin, w zależności od dostępności typu instancji.

Wdrażaj modele fundamentów SageMaker

SageMaker to w pełni zarządzana usługa uczenia maszynowego (ML) przeznaczona dla programistów, umożliwiająca szybkie i łatwe tworzenie modeli uczenia maszynowego. Wykonaj następujące kroki, aby wdrożyć modele podstawowe Lama 2 13b Chat i Stable Diffusion 2.1 przy użyciu Studio Amazon SageMaker:

  1. Utwórz domenę SageMaker. Aby uzyskać instrukcje, zobacz Dołącz do domeny Amazon SageMaker za pomocą szybkiej konfiguracji.

Domena konfiguruje całą pamięć i umożliwia dodawanie użytkowników mających dostęp do SageMaker.

  1. W konsoli SageMaker wybierz Studio w okienku nawigacji, a następnie wybierz Otwórz studio.
  2. Po uruchomieniu Studio, w pliku SageMaker Szybki start w okienku nawigacji wybierz Modele, notebooki, rozwiązania.
    Konsola SageMaker JumpStart
  3. W pasku wyszukiwania wyszukaj Llama 2 13b Chat.
  4. Pod Konfiguracja wdrożenia, Dla Instancja hostingu SageMakerwybierz ml.g5.48xduży i dla Nazwa punktu końcowego, wchodzić meta-textgeneration-llama-2-13b-f.
  5. Dodaj Wdrożyć.

Konfiguracja wdrożenia SageMaker JumpStart

Po pomyślnym wdrożeniu powinieneś zobaczyć plik In Service stan.

Stan modelu lamy

  1. Na Modele, notebooki, rozwiązania wyszukaj Stable Diffusion 2.1.
  2. Pod Konfiguracja wdrożenia, Dla Instancja hostingu SageMakerwybierz ml.p3.2xduże i dla Nazwa punktu końcowego, wchodzić jumpstart-dft-stable-diffusion-v2-1-base.
  3. Dodaj Rozmieścić.

Konfiguracja wdrożenia SageMaker JumpStart

Po pomyślnym wdrożeniu powinieneś zobaczyć plik In Service stan.

Stabilny status modelu dyfuzji

Wdróż uprawnienia Lambda i IAM za pomocą AWS CloudFormation

W tej sekcji opisano, jak uruchomić stos CloudFormation, który wdraża funkcję Lambda, która przetwarza żądanie użytkownika i wywołuje wdrożony punkt końcowy SageMaker oraz wdraża wszystkie niezbędne uprawnienia IAM. Wykonaj następujące kroki:

  1. Nawiguj do Repozytorium GitHub i pobierz szablon CloudFormation (lambda.cfn.yaml) na komputer lokalny.
  2. W konsoli CloudFormation wybierz opcję Utwórz stos menu rozwijane i wybierz Z nowymi zasobami (standard).
  3. Na Określ szablon strona, wybierz Prześlij plik szablonu i Wybierz plik.
  4. Wybierz lambda.cfn.yaml pobrany plik, a następnie wybierz Następna.
  5. Na Określ szczegóły stosu stronie, wprowadź nazwę stosu i klucz API uzyskany w wymaganiach wstępnych, a następnie wybierz Następna.
  6. Na Skonfiguruj opcje stosu wybierz stronę Następna.
  7. Przejrzyj i zatwierdź zmiany, a następnie wybierz Prześlij.

Skonfiguruj interfejs WWW

W tej sekcji opisano kroki umożliwiające uruchomienie internetowego interfejsu użytkownika (utworzonego przy użyciu System projektowania chmur) na komputerze lokalnym:

  1. W konsoli IAM przejdź do użytkownika functionUrl.
  2. Na Poświadczenia bezpieczeństwa kartę, wybierz Utwórz klucz dostępu.
  3. Na Uzyskaj dostęp do najważniejszych najlepszych praktyk i alternatyw strona, wybierz Interfejs wiersza poleceń (CLI) i wybierz Następna.
  4. Na Ustaw znacznik opisu wybierz stronę Utwórz klucz dostępu.
  5. Skopiuj klucz dostępu i tajny klucz dostępu.
  6. Dodaj Gotowe .
  7. Nawiguj do Repozytorium GitHub i pobierz react-llm-chat-studio kod.
  8. Uruchom folder w preferowanym IDE i otwórz terminal.
  9. Nawigować do src/configs/aws.json i wprowadź otrzymany klucz dostępu i tajny klucz dostępu.
  10. Wpisz następujące polecenia w terminalu:
    npm install npm start

  11. Otwarte http://localhost:3000 w swojej przeglądarce i rozpocznij interakcję ze swoimi modelami!

Aby skorzystać z Chat Studio, wybierz podstawowy model z menu rozwijanego i wpisz zapytanie w polu tekstowym. Aby wraz z odpowiedzią otrzymać obrazy wygenerowane przez sztuczną inteligencję, dodaj na końcu zapytania frazę „z obrazami”.

Dodaj inne modele fundamentów SageMaker

Możesz dodatkowo rozszerzyć możliwości tego rozwiązania, aby uwzględnić dodatkowe modele fundamentów SageMaker. Ponieważ każdy model oczekuje różnych formatów wejściowych i wyjściowych podczas wywoływania punktu końcowego SageMaker, konieczne będzie napisanie kodu transformacji w funkcji Lambda callSageMakerEndpoints, aby połączyć się z modelem.

W tej sekcji opisano ogólne kroki i zmiany w kodzie wymagane do zaimplementowania dodatkowego wybranego modelu. Pamiętaj, że w przypadku kroków 6–8 wymagana jest podstawowa znajomość języka Python.

  1. W SageMaker Studio wdróż wybrany przez siebie model podstawowy SageMaker.
  2. Dodaj SageMaker Szybki start i Uruchom zasoby JumpStart.
  3. Wybierz nowo wdrożony punkt końcowy modelu i wybierz Otwórz notatnik.
  4. Na konsoli notebooka znajdź parametry ładunku.

Są to pola, których nowy model oczekuje podczas wywoływania punktu końcowego SageMaker. Poniższy zrzut ekranu pokazuje przykład.

Konfiguracja punktu końcowego SageMaker

  1. W konsoli Lambda przejdź do callSageMakerEndpoints.
  2. Dodaj niestandardową procedurę obsługi danych wejściowych dla swojego nowego modelu.

Na poniższym zrzucie ekranu przekształciliśmy dane wejściowe dla Falcon 40B Instruct BF16 i GPT NeoXT Chat Base 20B FP16. Możesz wstawić logikę parametrów niestandardowych, jak wskazano, aby dodać logikę transformacji wejściowej w odniesieniu do skopiowanych parametrów ładunku.

Fragment kodu Lambda

  1. Wróć do konsoli notebooka i zlokalizuj query_endpoint.

Ta funkcja daje wyobrażenie o tym, jak przekształcić dane wyjściowe modeli, aby wyodrębnić ostateczną odpowiedź tekstową.

Konfiguracja punktu końcowego SageMaker

  1. W nawiązaniu do kodu w query_endpoint, dodaj niestandardową procedurę obsługi danych wyjściowych dla nowego modelu.
    Kod Lambdy
  2. Dodaj Wdrożyć.
  3. Otwórz swoje IDE, uruchom react-llm-chat-studio kod i przejdź do src/configs/models.json.
  4. Dodaj nazwę modelu i punkt końcowy modelu, a następnie wprowadź parametry ładunku z kroku 4 w sekcji payload używając następującego formatu:
    "add_model_name": { "endpoint_name": "add_model_enpoint", "payload": { "add_payload_paramters_here"
    }
    },

  5. Odśwież przeglądarkę, aby rozpocząć interakcję ze swoim nowym modelem!

Wdróż aplikację za pomocą Amplify

Amplify to kompletne rozwiązanie, które pozwala szybko i sprawnie wdrożyć aplikację. W tej sekcji opisano kroki wdrażania Chat Studio w pliku Amazon CloudFront dystrybucję za pomocą Amplify, jeśli chcesz udostępnić swoją aplikację innym użytkownikom.

  1. Nawiguj do react-llm-chat-studio folder code, który utworzyłeś wcześniej.
  2. Wprowadź następujące polecenia w terminalu i postępuj zgodnie z instrukcjami instalacji:
    npm install -g @aws-amplify/cli amplify configure

  3. Zainicjuj nowy projekt Amplify za pomocą następującego polecenia. Podaj nazwę projektu, zaakceptuj konfiguracje domyślne i wybierz Klucze dostępu AWS po wyświetleniu monitu o wybranie metody uwierzytelniania.
    amplify init

  4. Hostuj projekt Amplify za pomocą następującego polecenia. Wybierać Amazon CloudFront i S3 po wyświetleniu monitu o wybranie trybu wtyczki.
    amplify hosting add

  5. Na koniec zbuduj i wdróż projekt za pomocą następującego polecenia:
    amplify publish

  6. Po pomyślnym wdrożeniu otwórz adres URL podany w przeglądarce i rozpocznij interakcję ze swoimi modelami!

Sprzątać

Aby uniknąć przyszłych opłat, wykonaj następujące czynności:

  1. Usuń stos CloudFormation. Aby uzyskać instrukcje, patrz Usuwanie stosu w konsoli AWS CloudFormation.
  2. Usuń punkt końcowy SageMaker JumpStart. Aby uzyskać instrukcje, zobacz Usuń punkty końcowe i zasoby.
  3. Usuń domenę SageMaker. Aby uzyskać instrukcje, zobacz Usuń domenę Amazon SageMaker.

Wnioski

W tym poście wyjaśniliśmy, jak utworzyć interfejs sieciowy do komunikacji z LLM wdrożonymi w AWS.

Dzięki temu rozwiązaniu możesz wchodzić w interakcję ze swoim LLM i prowadzić rozmowę w przyjazny dla użytkownika sposób, aby przetestować LLM lub zadać pytania LLM, a także uzyskać kolaż zdjęć i filmów, jeśli to konieczne.

Rozwiązanie to można rozbudowywać na różne sposoby, np. integrując dodatkowe modele fundamentów, zintegruj się z Amazon Kendra aby umożliwić inteligentne wyszukiwanie oparte na technologii ML w celu zrozumienia treści korporacyjnych i nie tylko!

Zapraszamy do eksperymentowania różne wstępnie przeszkolone LLM dostępne w AWSlub buduj na bazie lub nawet twórz własne LLM w SageMaker. Daj nam znać o swoich pytaniach i ustaleniach w komentarzach i baw się dobrze!


O autorach

Utwórz interfejs sieciowy do interakcji z LLM za pomocą Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Jarretta Yeo Shan Wei jest współpracownikiem Cloud Architect w AWS Professional Services obejmującym sektor publiczny w całym regionie ASEAN i jest zwolennikiem pomagania klientom w modernizacji i migracji do chmury. Uzyskał pięć certyfikatów AWS, a także opublikował artykuł badawczy na temat zespołów maszyn zwiększających gradient podczas 8. Międzynarodowej Konferencji na temat sztucznej inteligencji. W wolnym czasie Jarrett skupia się na scenie generatywnej sztucznej inteligencji w AWS i wnosi do niej swój wkład.

Utwórz interfejs sieciowy do interakcji z LLM za pomocą Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Tammy Lim Lee Xin jest Associate Cloud Architect w AWS. Wykorzystuje technologię, aby pomóc klientom osiągnąć pożądane rezultaty na drodze do wdrożenia chmury i pasjonuje się sztuczną inteligencją/ML. Poza pracą uwielbia podróżować, wędrować i spędzać czas z rodziną i przyjaciółmi.

Znak czasu:

Więcej z Uczenie maszynowe AWS