Twórz niestandardowe aplikacje chatbota przy użyciu modeli OpenChatkit na Amazon SageMaker | Usługi sieciowe Amazona

Twórz niestandardowe aplikacje chatbota przy użyciu modeli OpenChatkit na Amazon SageMaker | Usługi sieciowe Amazona

Duże modele językowe (LLM) typu open source stały się popularne, umożliwiając naukowcom, programistom i organizacjom dostęp do tych modeli w celu wspierania innowacji i eksperymentowania. To zachęca społeczność open source do współpracy w celu przyczynienia się do rozwoju i doskonalenia LLM. LLM typu open source zapewniają przejrzystość architektury modelu, procesu szkolenia i danych szkoleniowych, co pozwala naukowcom zrozumieć, jak działa model, zidentyfikować potencjalne błędy i rozwiązać problemy etyczne. Te LLM typu open source demokratyzują generatywną sztuczną inteligencję, udostępniając zaawansowaną technologię przetwarzania języka naturalnego (NLP) szerokiemu gronu użytkowników w celu tworzenia aplikacji biznesowych o znaczeniu krytycznym. GPT-NeoX, LLaMA, Alpaca, GPT4All, Vicuna, Dolly i OpenAssistant to tylko niektóre z popularnych LLM typu open source.

OpenChatKit to LLM typu open source służący do budowy aplikacji chatbotowych ogólnego przeznaczenia i specjalistycznych, wydany przez Together Computer w marcu 2023 roku na licencji Apache-2.0. Model ten pozwala programistom na większą kontrolę nad zachowaniem chatbota i dopasowanie go do konkretnych aplikacji. OpenChatKit zapewnia zestaw narzędzi, podstawowego bota i bloków konstrukcyjnych do tworzenia w pełni dostosowanych, potężnych chatbotów. Kluczowe komponenty są następujące:

  • Dostosowany do instrukcji LLM, dostrojony do czatu z GPT-NeoX-20B firmy EleutherAI z ponad 43 milionami instrukcji na 100% obliczeniach ujemnych pod względem emisji dwutlenku węgla. The GPT-NeoXT-Chat-Base-20B Model jest oparty na modelu GPT-NeoX firmy EleutherAI i jest dopracowany za pomocą danych skupiających się na interakcjach w stylu dialogowym.
  • Receptury dostosowywania w celu dostrojenia modelu w celu osiągnięcia wysokiej dokładności zadań.
  • Rozszerzalny system wyszukiwania umożliwiający rozszerzenie odpowiedzi botów o informacje z repozytorium dokumentów, interfejsu API lub innego aktualizowanego na żywo źródła informacji w czasie wnioskowania.
  • Model moderacji, dostrojony z GPT-JT-6B, zaprojektowany do filtrowania pytań, na które odpowiada bot.

Rosnąca skala i rozmiar modeli głębokiego uczenia się stanowią przeszkodę w pomyślnym wdrożeniu tych modeli w generatywnych aplikacjach sztucznej inteligencji. Aby spełnić wymagania dotyczące niskich opóźnień i wysokiej przepustowości, niezbędne staje się zastosowanie zaawansowanych metod, takich jak równoległość modeli i kwantyzacja. Brak biegłości w stosowaniu tych metod sprawia, że ​​wielu użytkowników napotyka trudności w inicjowaniu hostingu dużych modeli dla generatywnych przypadków użycia sztucznej inteligencji.

W tym poście pokazujemy, jak wdrożyć modele OpenChatKit (GPT-NeoXT-Chat-Base-20B and GPT-JT-Moderation-6B) modele na Amazon Sage Maker przy użyciu DJL Serving i równoległych bibliotek modeli typu open source, takich jak DeepSpeed ​​i Hugging Face Accelerate. Korzystamy z usługi DJL Serving, która jest wysokowydajnym, uniwersalnym rozwiązaniem do obsługi modeli opartym na bibliotece Deep Java Library (DJL), która jest niezależna od języka programowania. Pokazujemy, w jaki sposób biblioteka Hugging Face Accelerate upraszcza wdrażanie dużych modeli w wielu układach GPU, zmniejszając w ten sposób obciążenie związane z uruchamianiem LLM w sposób rozproszony. Zacznijmy!

Rozszerzalny system wyszukiwania

Rozszerzalny system wyszukiwania jest jednym z kluczowych elementów OpenChatKit. Umożliwia dostosowanie odpowiedzi bota w oparciu o zamkniętą bazę wiedzy domeny. Chociaż LLM są w stanie zachować faktyczną wiedzę w swoich parametrach modelu i mogą osiągnąć niezwykłą wydajność w dalszych zadaniach NLP po precyzyjnym dostrojeniu, ich zdolność do dokładnego dostępu i przewidywania wiedzy w domenie zamkniętej pozostaje ograniczona. Dlatego też, gdy przedstawia się im zadania wymagające dużej wiedzy, ich wydajność spada w porównaniu z architekturami specyficznymi dla zadań. Możesz użyć systemu wyszukiwania OpenChatKit, aby poszerzyć wiedzę w ich odpowiedziach z zewnętrznych źródeł wiedzy, takich jak Wikipedia, repozytoria dokumentów, interfejsy API i inne źródła informacji.

System wyszukiwania umożliwia chatbotowi dostęp do bieżących informacji poprzez uzyskanie istotnych szczegółów w odpowiedzi na konkretne zapytanie, dostarczając w ten sposób kontekstu niezbędnego do wygenerowania odpowiedzi przez model. Aby zilustrować funkcjonalność tego systemu wyszukiwania, zapewniamy wsparcie dla indeksu artykułów Wikipedii i oferujemy przykładowy kod pokazujący, jak wywołać interfejs API wyszukiwania w sieci w celu pobrania informacji. Postępując zgodnie z dostarczoną dokumentacją, możesz zintegrować system wyszukiwania z dowolnym zestawem danych lub interfejsem API podczas procesu wnioskowania, umożliwiając chatbotowi włączenie dynamicznie aktualizowanych danych do swoich odpowiedzi.

Model moderacji

Modele moderacji są ważne w aplikacjach chatbotów do wymuszania filtrowania treści, kontroli jakości, bezpieczeństwa użytkowników oraz ze względów prawnych i zgodności. Moderacja to trudne i subiektywne zadanie, które w dużej mierze zależy od domeny aplikacji chatbota. OpenChatKit zapewnia narzędzia do moderowania aplikacji chatbota i monitorowania monitów tekstowych pod kątem wszelkich nieodpowiednich treści. Model moderacji zapewnia dobry punkt odniesienia, który można dostosować i dostosować do różnych potrzeb.

OpenChatKit ma model moderacji o 6 miliardach parametrów, GPT-JT-Moderation-6B, który może moderować chatbota, aby ograniczyć dane wejściowe do moderowanych tematów. Chociaż sam model ma wbudowaną moderację, firma TogetherComputer wyszkoliła a GPT-JT-Moderacja-6B model z Ontocord.ai Zestaw danych moderacji OIG. Ten model działa wraz z głównym chatbotem, aby sprawdzić, czy zarówno dane wejściowe użytkownika, jak i odpowiedź z bota nie zawierają nieodpowiednich wyników. Możesz również użyć tego do wykrycia jakichkolwiek pytań skierowanych do chatbota spoza domeny i nadpisać je, gdy pytanie nie jest częścią domeny chatbota.

Poniższy diagram ilustruje przepływ pracy OpenChatKit.

Twórz niestandardowe aplikacje chatbotów, korzystając z modeli OpenChatkit na Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Przypadki użycia rozszerzalnego systemu wyszukiwania

Chociaż możemy zastosować tę technikę w różnych branżach do tworzenia generatywnych aplikacji AI, w tym poście omawiamy przypadki użycia w branży finansowej. Generowanie rozszerzone wyszukiwania może być wykorzystywane w badaniach finansowych do automatycznego generowania raportów badawczych dotyczących określonych firm, branż lub produktów finansowych. Pobierając odpowiednie informacje z wewnętrznych baz wiedzy, archiwów finansowych, artykułów prasowych i dokumentów badawczych, możesz generować kompleksowe raporty, które podsumowują kluczowe spostrzeżenia, wskaźniki finansowe, trendy rynkowe i rekomendacje inwestycyjne. Możesz użyć tego rozwiązania do monitorowania i analizowania wiadomości finansowych, nastrojów rynkowych i trendów.

Omówienie rozwiązania

Aby zbudować chatbota przy użyciu modeli OpenChatKit i wdrożyć go w SageMaker, należy wykonać następujące kroki:

  1. Pobierz bazę czatów GPT-NeoXT-Chat-Base-20B modelować i pakować artefakty modelu, do których mają zostać przesłane Usługa Amazon Simple Storage (Amazonka S3).
  2. Użyj kontenera wnioskowania dużego modelu (LMI) SageMaker, skonfiguruj właściwości i skonfiguruj niestandardowy kod wnioskowania, aby wdrożyć ten model.
  3. Skonfiguruj techniki równoległego modelu i wykorzystuj biblioteki optymalizacji wnioskowania we właściwościach udostępniania DJL. Będziemy używać Hugging Face Accelerate jako silnika do serwowania DJL. Dodatkowo definiujemy konfiguracje równoległych tensorów do partycjonowania modelu.
  4. Utwórz model SageMaker i konfigurację punktu końcowego oraz wdróż punkt końcowy SageMaker.

Możesz śledzić dalej, uruchamiając notatnik w programie GitHub repo.

Pobierz model OpenChatKit

Najpierw pobieramy podstawowy model OpenChatKit. Używamy huggingface_hub I użyć pobierz migawkę_ aby pobrać model, który pobiera całe repozytorium w danej wersji. Pobieranie odbywa się jednocześnie, aby przyspieszyć proces. Zobacz następujący kod:

from huggingface_hub import snapshot_download
from pathlib import Path
import os
# - This will download the model into the current directory where ever the jupyter notebook is running
local_model_path = Path("./openchatkit")
local_model_path.mkdir(exist_ok=True)
model_name = "togethercomputer/GPT-NeoXT-Chat-Base-20B"
# Only download pytorch checkpoint files
allow_patterns = ["*.json", "*.pt", "*.bin", "*.txt", "*.model"]
# - Leverage the snapshot library to donload the model since the model is stored in repository using LFS
chat_model_download_path = snapshot_download( repo_id=model_name,#A user or an organization name and a repo name cache_dir=local_model_path, #Path to the folder where cached files are stored. allow_patterns=allow_patterns, #only files matching at least one pattern are downloaded.
)

Właściwości serwowania DJL

Możesz używać kontenerów SageMaker LMI do hostowania dużych generatywnych modeli AI z niestandardowym kodem wnioskowania bez konieczności dostarczania własnego kodu wnioskowania. Jest to niezwykle przydatne, gdy nie ma niestandardowego przetwarzania wstępnego danych wejściowych ani przetwarzania końcowego predykcji modelu. Możesz również wdrożyć model przy użyciu niestandardowego kodu wnioskowania. W tym poście pokazujemy, jak wdrożyć modele OpenChatKit z niestandardowym kodem wnioskowania.

SageMaker oczekuje artefaktów modelu w formacie tar. Każdy model OpenChatKit tworzymy z następującymi plikami: serving.properties i model.py.

Połączenia serving.properties plik konfiguracyjny wskazuje DJL Serving, których bibliotek równoległości modelu i optymalizacji wnioskowania chcesz użyć. Poniżej znajduje się lista ustawień, których używamy w tym pliku konfiguracyjnym:

openchatkit/serving.properties
engine = Python
option.tensor_parallel_degree = 4
option.s3url = {{s3url}}

Zawiera następujące parametry:

  • silnik – Silnik używany przez DJL.
  • opcja.punkt wejścia – Plik lub moduł punktu wejścia Pythona. Powinno to być zgodne z używanym silnikiem.
  • opcja.s3url – Ustaw to na identyfikator URI zasobnika S3, który zawiera model.
  • opcja.identyfikator modelu – Jeśli chcesz pobrać model z huggingface.co, możesz ustawić option.modelid do identyfikatora modelu wstępnie wytrenowanego modelu hostowanego w repozytorium modeli na stronie huggingface.co (https://huggingface.co/models). Kontener używa tego identyfikatora modelu do pobrania odpowiedniego repozytorium modelu na stronie huggingface.co.
  • opcja.tensor_równoległy_stopień – Ustaw to na liczbę urządzeń GPU, na których DeepSpeed ​​musi podzielić model. Ten parametr kontroluje również liczbę procesów roboczych na model, które zostaną uruchomione po uruchomieniu usługi DJL Serving. Na przykład, jeśli mamy maszynę z 8 procesorami graficznymi i tworzymy osiem partycji, będziemy mieli jednego pracownika na model do obsługi żądań. Konieczne jest dostrojenie stopnia równoległości i określenie optymalnej wartości dla danej architektury modelu i platformy sprzętowej. Nazywamy to zdolnością równoległość przystosowana do wnioskowania.

Odnosić się do Konfiguracje i ustawienia aby uzyskać wyczerpującą listę opcji.

Modele OpenChatKit

Implementacja modelu podstawowego OpenChatKit ma następujące cztery pliki:

  • model.py – Ten plik implementuje logikę obsługi dla głównego modelu OpenChatKit GPT-NeoX. Otrzymuje żądanie wejścia wnioskowania, ładuje model, ładuje indeks Wikipedii i obsługuje odpowiedź. Odnosić się do model.py(utworzona część notatnika) w celu uzyskania dodatkowych informacji. model.py używa następujących klas kluczy:
    • Usługa OpenChatKit – Obsługuje przekazywanie danych między modelem GPT-NeoX, wyszukiwaniem Faissa i obiektem konwersacji. WikipediaIndex i Conversation obiekty są inicjowane, a konwersacje na czacie wejściowym są wysyłane do indeksu w celu wyszukania odpowiednich treści z Wikipedii. Spowoduje to również wygenerowanie unikalnego identyfikatora dla każdego wywołania, jeśli nie zostanie on podany w celu przechowywania monitów Amazon DynamoDB.
    • Model czatu – Ta klasa ładuje model i tokenizator oraz generuje odpowiedź. Obsługuje partycjonowanie modelu na wiele procesorów graficznych tensor_parallel_degreei konfiguruje dtypes i device_map. Monity są przekazywane do modelu w celu wygenerowania odpowiedzi. Kryterium zatrzymania StopWordsCriteria jest skonfigurowany tak, aby generacja generowała odpowiedź bota tylko na podstawie wnioskowania.
    • Model moderacji – Stosujemy dwa modele moderacji w ModerationModel class: model wejściowy wskazujący modelowi czatu, że dane wejściowe są nieodpowiednie do zastąpienia wyniku wnioskowania, oraz model wyjściowy do zastąpienia wyniku wnioskowania. Klasyfikujemy monit wejściowy i odpowiedź wyjściową z następującymi możliwymi etykietami:
      • casual
      • wymaga ostrożności
      • wymaga interwencji (jest to oznaczone jako moderowane przez model)
      • prawdopodobnie wymaga ostrożności
      • prawdopodobnie wymaga ostrożności
  • wikipedia_prepare.py – Ten plik obsługuje pobieranie i przygotowywanie indeksu Wikipedii. W tym poście używamy indeksu Wikipedii udostępnionego w zestawach danych Hugging Face. Aby przeszukać dokumenty Wikipedii pod kątem odpowiedniego tekstu, indeks należy pobrać z Hugging Face, ponieważ nie jest on spakowany gdzie indziej. The wikipedia_prepare.py plik jest odpowiedzialny za obsługę pobierania po zaimportowaniu. Tylko jeden proces z wielu uruchomionych w celu wnioskowania może sklonować repozytorium. Reszta czeka, aż pliki znajdą się w lokalnym systemie plików.
  • wikipedia.py – Ten plik służy do przeszukiwania indeksu Wikipedii pod kątem dokumentów istotnych kontekstowo. Zapytanie wejściowe jest tokenizowane, a osadzania są tworzone przy użyciu mean_pooling. Obliczamy cosinusowe metryki odległości podobieństwa między osadzeniem zapytania a indeksem Wikipedii, aby uzyskać odpowiednie kontekstowo zdania z Wikipedii. Odnosić się do wikipedia.py szczegóły realizacji.
#function to create sentence embedding using mean_pooling
def mean_pooling(token_embeddings, mask): token_embeddings = token_embeddings.masked_fill(~mask[..., None].bool(), 0.0) sentence_embeddings = token_embeddings.sum(dim=1) / mask.sum(dim=1)[..., None] return sentence_embeddings #function to compute cosine similarity distance between 2 embeddings def cos_sim_2d(x, y): norm_x = x / np.linalg.norm(x, axis=1, keepdims=True) norm_y = y / np.linalg.norm(y, axis=1, keepdims=True) return np.matmul(norm_x, norm_y.T)

  • rozmowa.py – Ten plik służy do przechowywania i pobierania wątku konwersacji w DynamoDB w celu przekazania go modelowi i użytkownikowi. conversation.py jest adaptacją repozytorium open-source OpenChatKit. Ten plik jest odpowiedzialny za zdefiniowanie obiektu, który przechowuje przebieg rozmowy między człowiekiem a modelem. Dzięki temu model jest w stanie zachować sesję konwersacji, umożliwiając użytkownikowi odwołanie się do poprzednich wiadomości. Ponieważ wywołania punktów końcowych SageMaker są bezstanowe, ta konwersacja musi być przechowywana w lokalizacji zewnętrznej względem instancji punktów końcowych. Podczas uruchamiania instancja tworzy tabelę DynamoDB, jeśli nie istnieje. Wszystkie aktualizacje konwersacji są następnie przechowywane w DynamoDB na podstawie session_id klucz, który jest generowany przez punkt końcowy. Każde wywołanie z identyfikatorem sesji pobierze powiązany ciąg konwersacji i zaktualizuje go zgodnie z wymaganiami.

Zbuduj kontener wnioskowania LMI z niestandardowymi zależnościami

Wyszukiwanie w indeksie korzysta z Facebooka Faiss biblioteka do wyszukiwania podobieństw. Ponieważ nie jest to uwzględnione w podstawowym obrazie interfejsu LMI, należy dostosować kontener w celu zainstalowania tej biblioteki. Poniższy kod definiuje plik Dockerfile, który instaluje Faissa ze źródła wraz z innymi bibliotekami wymaganymi przez punkt końcowy bota. Używamy sm-docker narzędzie do budowania i przekazywania obrazu Rejestr elastycznego pojemnika Amazon (Amazon ECR) z Studio Amazon SageMaker. Odnosić się do Korzystanie z Amazon SageMaker Studio Image Build CLI do tworzenia obrazów kontenerów z notebooków Studio by uzyskać więcej szczegółów.

Kontener DJL nie ma zainstalowanej Condy, więc Faiss musi zostać sklonowany i skompilowany ze źródła. Aby zainstalować Faissa, należy zainstalować zależności do korzystania z interfejsów API BLAS i obsługi języka Python. Po zainstalowaniu tych pakietów Faiss jest konfigurowany do używania AVX2 i CUDA przed kompilacją z zainstalowanymi rozszerzeniami Pythona.

pandas, fastparquet, boto3, git-lfs są instalowane później, ponieważ są one wymagane do pobierania i odczytywania plików indeksu.

FROM 763104351884.dkr.ecr.us-east-1.amazonaws.com/djl-inference:0.21.0-deepspeed0.8.0-cu117
ARG FAISS_URL=https://github.com/facebookresearch/faiss.git
RUN apt-get update && apt-get install -y git-lfs wget cmake pkg-config build-essential apt-utils
RUN apt search openblas && apt-get install -y libopenblas-dev swig
RUN git clone $FAISS_URL && cd faiss && cmake -B build . -DFAISS_OPT_LEVEL=avx2 -DCMAKE_CUDA_ARCHITECTURES="86" && make -C build -j faiss && make -C build -j swigfaiss && make -C build -j swigfaiss_avx2 && (cd build/faiss/python && python -m pip install ) RUN pip install pandas fastparquet boto3 && git lfs install --skip-repo && apt-get clean all

Stwórz model

Teraz, gdy mamy obraz Dockera w Amazon ECR, możemy przystąpić do tworzenia obiektu modelu SageMaker dla modeli OpenChatKit. Wdrażamy GPT-NeoXT-Chat-Base-20B wykorzystanie modeli moderacji wejścia i wyjścia GPT-JT-Moderation-6B. Odnosić się do utwórz_model by uzyskać więcej szczegółów.

from sagemaker.utils import name_from_base chat_model_name = name_from_base(f"gpt-neoxt-chatbase-ds")
print(chat_model_name) create_model_response = sm_client.create_model( ModelName=chat_model_name, ExecutionRoleArn=role, PrimaryContainer={ "Image": chat_inference_image_uri, "ModelDataUrl": s3_code_artifact, },
)
chat_model_arn = create_model_response["ModelArn"] print(f"Created Model: {chat_model_arn}")

Skonfiguruj punkt końcowy

Następnie definiujemy konfiguracje punktów końcowych dla modeli OpenChatKit. Wdrażamy modele przy użyciu typu instancji ml.g5.12xlarge. Odnosić się do stwórz_konfigurację_punktu końcowego by uzyskać więcej szczegółów.

chat_endpoint_config_name = f"{chat_model_name}-config"
chat_endpoint_name = f"{chat_model_name}-endpoint" chat_endpoint_config_response = sm_client.create_endpoint_config( EndpointConfigName=chat_endpoint_config_name, ProductionVariants=[ { "VariantName": "variant1", "ModelName": chat_model_name, "InstanceType": "ml.g5.12xlarge", "InitialInstanceCount": 1, "ContainerStartupHealthCheckTimeoutInSeconds": 3600, }, ],
)

Wdróż punkt końcowy

Na koniec tworzymy punkt końcowy przy użyciu modelu i konfiguracji punktu końcowego, które zdefiniowaliśmy w poprzednich krokach:

chat_create_endpoint_response = sm_client.create_endpoint(
EndpointName=f"{chat_endpoint_name}", EndpointConfigName=chat_endpoint_config_name
)
print(f"Created Endpoint: {chat_create_endpoint_response['EndpointArn']},")

Uruchom wnioskowanie z modeli OpenChatKit

Teraz nadszedł czas, aby wysłać żądania wnioskowania do modelu i uzyskać odpowiedzi. Przekazujemy monit o wprowadzenie tekstu i parametry modelu, takie jak temperature, top_k, max_new_tokens. Jakość odpowiedzi chatbota opiera się na określonych parametrach, dlatego zaleca się porównanie wydajności modelu z tymi parametrami, aby znaleźć optymalne ustawienie dla danego przypadku użycia. Monit wejściowy jest najpierw wysyłany do modelu moderacji danych wejściowych, a dane wyjściowe są wysyłane do ChatModel do generowania odpowiedzi. Na tym etapie model korzysta z indeksu Wikipedii, aby pobrać odpowiednie kontekstowo sekcje do modelu jako zachętę do uzyskania odpowiedzi specyficznych dla domeny z modelu. Na koniec odpowiedź modelu jest wysyłana do modelu moderowania danych wyjściowych w celu sprawdzenia klasyfikacji, a następnie odpowiedzi są zwracane. Zobacz następujący kod:

def chat(prompt, session_id=None, **kwargs): if session_id: chat_response_model = smr_client.invoke_endpoint( EndpointName=chat_endpoint_name, Body=json.dumps( { "inputs": prompt, "parameters": { "temperature": 0.6, "top_k": 40, "max_new_tokens": 512, "session_id": session_id, "no_retrieval": True, }, } ), ContentType="application/json", ) else: chat_response_model = smr_client.invoke_endpoint( EndpointName=chat_endpoint_name, Body=json.dumps( { "inputs": prompt, "parameters": { "temperature": 0.6, "top_k": 40, "max_new_tokens": 512, }, } ), ContentType="application/json", ) response = chat_response_model["Body"].read().decode("utf8") return response
prompts = "What does a data engineer do?"
chat(prompts)

Zapoznaj się z przykładowymi interakcjami na czacie poniżej.

Twórz niestandardowe aplikacje chatbotów, korzystając z modeli OpenChatkit na Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Sprzątać

Postępuj zgodnie z instrukcjami w sekcji czyszczenia, aby usunąć zasoby udostępnione w ramach tego wpisu, aby uniknąć niepotrzebnych opłat. Odnosić się do Cennik Amazon SageMaker aby uzyskać szczegółowe informacje na temat kosztów instancji wnioskowania.

Wnioski

W tym poście omówiliśmy znaczenie LLM typu open source i jak wdrożyć model OpenChatKit w SageMaker, aby zbudować aplikacje chatbota nowej generacji. Omówiliśmy różne komponenty modeli OpenChatKit, modele moderacji oraz sposoby korzystania z zewnętrznego źródła wiedzy, takiego jak Wikipedia, do przepływów pracy generowania rozszerzonego wyszukiwania (RAG). Instrukcje krok po kroku można znaleźć w Notatnik GitHub. Daj nam znać o niesamowitych aplikacjach chatbota, które tworzysz. Dzięki!


O autorach

Twórz niestandardowe aplikacje chatbotów, korzystając z modeli OpenChatkit na Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Dawal Patel jest głównym architektem uczenia maszynowego w AWS. Pracował z organizacjami od dużych przedsiębiorstw po średniej wielkości start-upy w zakresie problemów związanych z przetwarzaniem rozproszonym i sztuczną inteligencją. Koncentruje się na uczeniu głębokim, w tym w domenach NLP i Computer Vision. Pomaga klientom uzyskać wnioskowanie o wysokiej wydajności modelu w SageMaker.

Twórz niestandardowe aplikacje chatbotów, korzystając z modeli OpenChatkit na Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Vikrama Elango jest starszym architektem rozwiązań specjalistycznych AIML w firmie AWS z siedzibą w Wirginii w USA. Obecnie koncentruje się na generatywnej sztucznej inteligencji, LLM, szybkiej inżynierii, optymalizacji wnioskowania dużych modeli i skalowaniu uczenia maszynowego w przedsiębiorstwach. Vikram pomaga klientom z branży finansowej i ubezpieczeniowej w projektowaniu i myśleniu przywództwem w tworzeniu i wdrażaniu aplikacji uczenia maszynowego na dużą skalę. W wolnym czasie lubi podróżować, wędrować, gotować i biwakować z rodziną.

Twórz niestandardowe aplikacje chatbotów, korzystając z modeli OpenChatkit na Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Andrew Smith jest inżynierem wsparcia chmury w zespole SageMaker, Vision & Other w AWS z siedzibą w Sydney w Australii. Wspiera klientów korzystających z wielu usług AI/ML na AWS z doświadczeniem w pracy z Amazon SageMaker. Poza pracą lubi spędzać czas z przyjaciółmi i rodziną oraz poznawać różne technologie.

Znak czasu:

Więcej z Uczenie maszynowe AWS