Dostosuj i wdrażaj modele Llama 2 w sposób ekonomiczny w Amazon SageMaker JumpStart z AWS Inferentia i AWS Trainium | Usługi internetowe Amazona

Dostosuj i wdrażaj modele Llama 2 w sposób ekonomiczny w Amazon SageMaker JumpStart z AWS Inferentia i AWS Trainium | Usługi internetowe Amazona

Węzeł źródłowy: 3067921

Dzisiaj z radością ogłaszamy dostępność funkcji wnioskowania i dostrajania Llama 2 Szkolenie AWS i Inferencja AWS przypadki w Amazon SageMaker JumpStart. Korzystanie z instancji opartych na AWS Trainium i Inferentia za pośrednictwem SageMaker może pomóc użytkownikom obniżyć koszty dostrajania nawet o 50% i obniżyć koszty wdrożenia o 4.7 razy, przy jednoczesnym zmniejszeniu opóźnienia na token. Llama 2 to autoregresyjny, generatywny model języka tekstowego, który wykorzystuje zoptymalizowaną architekturę transformatora. Jako model dostępny publicznie, Llama 2 jest przeznaczony do wielu zadań NLP, takich jak klasyfikacja tekstu, analiza nastrojów, tłumaczenie językowe, modelowanie języka, generowanie tekstu i systemy dialogowe. Dostrajanie i wdrażanie LLM, takich jak Llama 2, może stać się kosztowne lub trudne do osiągnięcia wydajności w czasie rzeczywistym i zapewnienia dobrej obsługi klienta. Trainium i AWS Inferentia, obsługiwane przez Neuron AWS zestaw do tworzenia oprogramowania (SDK) oferuje wydajną i opłacalną opcję uczenia i wnioskowania na temat modeli Llama 2.

W tym poście pokazujemy, jak wdrożyć i dostroić Lamę 2 na instancjach Trainium i AWS Inferentia w SageMaker JumpStart.

Omówienie rozwiązania

Na tym blogu omówimy następujące scenariusze:

  1. Wdróż Lamę 2 w instancjach AWS Inferentia w obu przypadkach Studio Amazon SageMaker Interfejs użytkownika z możliwością wdrożenia jednym kliknięciem oraz pakiet SageMaker Python SDK.
  2. Dostosuj Llamę 2 w instancjach Trainium zarówno w interfejsie użytkownika SageMaker Studio, jak i w pakiecie SageMaker Python SDK.
  3. Porównaj wydajność dopracowanego modelu Lamy 2 z wydajnością wstępnie wytrenowanego modelu, aby pokazać skuteczność dostrajania.

Aby zdobyć praktyczne informacje, zobacz Przykładowy notatnik GitHub.

Wdróż Llamę 2 w instancjach AWS Inferentia przy użyciu interfejsu użytkownika SageMaker Studio i pakietu SDK języka Python

W tej sekcji pokazujemy, jak wdrożyć Llamę 2 w instancjach AWS Inferentia przy użyciu interfejsu użytkownika SageMaker Studio do wdrożenia jednym kliknięciem i zestawu SDK języka Python.

Odkryj model Lamy 2 w interfejsie użytkownika SageMaker Studio

SageMaker JumpStart zapewnia dostęp zarówno do programów publicznie dostępnych, jak i zastrzeżonych modele fundamentów. Modele podstawowe są wprowadzane i utrzymywane przez zewnętrznych i zastrzeżonych dostawców. W związku z tym są udostępniane na różnych licencjach określonych przez źródło modelu. Pamiętaj, aby zapoznać się z licencją każdego modelu podstawy, z którego korzystasz. Użytkownik jest odpowiedzialny za zapoznanie się i przestrzeganie wszelkich mających zastosowanie warunków licencji oraz upewnienie się, że są one akceptowalne dla Twojego przypadku użycia, przed pobraniem lub użyciem treści.

Dostęp do podstawowych modeli Llama 2 można uzyskać poprzez SageMaker JumpStart w interfejsie użytkownika SageMaker Studio i SageMaker Python SDK. W tej sekcji omówimy, jak odkryć modele w SageMaker Studio.

SageMaker Studio to zintegrowane środowisko programistyczne (IDE) zapewniające pojedynczy internetowy interfejs wizualny, w którym można uzyskać dostęp do specjalnie zaprojektowanych narzędzi umożliwiających wykonanie wszystkich etapów programowania uczenia maszynowego (ML), od przygotowania danych po budowanie, trenowanie i wdrażanie systemu ML modele. Aby uzyskać więcej informacji na temat rozpoczęcia i konfiguracji SageMaker Studio, zobacz Studio Amazon SageMaker.

Po wejściu do SageMaker Studio możesz uzyskać dostęp do SageMaker JumpStart, który zawiera wstępnie wytrenowane modele, notatniki i gotowe rozwiązania, w zakładce Gotowe i zautomatyzowane rozwiązania. Aby uzyskać bardziej szczegółowe informacje na temat dostępu do zastrzeżonych modeli, zobacz Korzystaj z zastrzeżonych modeli fundamentów z Amazon SageMaker JumpStart w Amazon SageMaker Studio.

Na stronie docelowej SageMaker JumpStart możesz przeglądać rozwiązania, modele, notatniki i inne zasoby.

Jeśli nie widzisz modeli Llama 2, zaktualizuj wersję SageMaker Studio, wyłączając i uruchamiając ponownie. Aby uzyskać więcej informacji na temat aktualizacji wersji, zobacz Zamknij i zaktualizuj klasyczne aplikacje Studio.

Wybierając, możesz znaleźć także inne warianty modelu Przeglądaj wszystkie modele generowania tekstu lub szukając llama or neuron w polu wyszukiwania. Na tej stronie będziesz mógł obejrzeć modele Llama 2 Neuron.

Wdróż model Lamy-2-13b za pomocą SageMaker Jumpstart

Możesz wybrać kartę modelu, aby wyświetlić szczegółowe informacje na temat modelu, takie jak licencja, dane użyte do szkolenia i sposób korzystania z niego. Znajdują się tu także dwa przyciski, Rozmieścić i Otwórz notatnik, które pomogą Ci używać modelu przy użyciu tego przykładu bez kodu.

Po wybraniu dowolnego przycisku w wyskakującym okienku zostanie wyświetlona Umowa licencyjna użytkownika końcowego i Zasady dopuszczalnego użytkowania (AUP), które należy potwierdzić.

Po zatwierdzeniu zasad możesz wdrożyć punkt końcowy modelu i używać go, wykonując kroki opisane w następnej sekcji.

Wdróż model Llama 2 Neuron za pośrednictwem zestawu SDK języka Python

Kiedy wybierzesz Rozmieścić i zaakceptuj warunki, rozpocznie się wdrażanie modelu. Alternatywnie możesz wdrożyć za pomocą przykładowego notesu, wybierając Otwórz notatnik. Przykładowy notes zawiera kompleksowe wskazówki dotyczące wdrażania modelu na potrzeby wnioskowania i czyszczenia zasobów.

Aby wdrożyć lub dostroić model w instancjach Trainium lub AWS Inferentia, musisz najpierw wywołać PyTorch Neuron (latarka-neuronx), aby skompilować model w wykres specyficzny dla Neuronu, który zoptymalizuje go pod kątem rdzeni NeuronCores firmy Inferentia. Użytkownicy mogą poinstruować kompilator, aby optymalizował pod kątem najniższego opóźnienia lub najwyższej przepustowości, w zależności od celów aplikacji. W JumpStart wstępnie skompilowaliśmy wykresy Neuron dla różnych konfiguracji, aby umożliwić użytkownikom popijanie etapów kompilacji, umożliwiając szybsze dostrajanie i wdrażanie modeli.

Należy pamiętać, że wstępnie skompilowany wykres Neuron jest tworzony w oparciu o konkretną wersję wersji Neuron Compiler.

Istnieją dwa sposoby wdrożenia LIama 2 w instancjach opartych na AWS Inferentia. Pierwsza metoda wykorzystuje wstępnie zbudowaną konfigurację i umożliwia wdrożenie modelu w zaledwie dwóch wierszach kodu. W drugim masz większą kontrolę nad konfiguracją. Zacznijmy od pierwszej metody, od gotowej konfiguracji i jako przykładu wykorzystajmy wstępnie wytrenowany model neuronu Llama 2 13B. Poniższy kod pokazuje, jak wdrożyć Llamę 13B za pomocą zaledwie dwóch linii:

from sagemaker.jumpstart.model import JumpStartModel

model_id = "meta-textgenerationneuron-llama-2-13b"
model = JumpStartModel(model_id=model_id)
pretrained_predictor = model.deploy(accept_eula=False) ## To set 'accept_eula' to be True to deploy 

Aby przeprowadzić wnioskowanie na temat tych modeli, należy określić argument accept_eula być True ramach model.deploy() dzwonić. Jeśli ten argument będzie prawdziwy, oznacza to, że przeczytałeś i zaakceptowałeś umowę EULA modelu. Umowę EULA można znaleźć w opisie karty modelu lub w zakładce Strona Meta.

Domyślny typ instancji dla Lamy 2 13B to ml.inf2.8xlarge. Możesz także wypróbować inne obsługiwane identyfikatory modeli:

  • meta-textgenerationneuron-llama-2-7b
  • meta-textgenerationneuron-llama-2-7b-f (model czatu)
  • meta-textgenerationneuron-llama-2-13b-f (model czatu)

Alternatywnie, jeśli chcesz mieć większą kontrolę nad konfiguracjami wdrażania, takimi jak długość kontekstu, stopień równoległości tensora i maksymalny rozmiar partii, możesz je modyfikować za pomocą zmiennych środowiskowych, jak pokazano w tej sekcji. Podstawowym kontenerem głębokiego uczenia się (DLC) wdrożenia jest Duży model wnioskowania (LMI) NeuronX DLC. Zmienne środowiskowe są następujące:

  • OPTION_N_POSITIONS – Maksymalna liczba żetonów wejściowych i wyjściowych. Na przykład, jeśli skompilujesz model za pomocą OPTION_N_POSITIONS jako 512, możesz użyć tokena wejściowego o wartości 128 (rozmiar zachęty wejściowej) z maksymalnym tokenem wyjściowym o wartości 384 (łączna liczba tokenów wejściowych i wyjściowych musi wynosić 512). W przypadku tokena maksymalnej wartości wyjściowej dowolna wartość poniżej 384 jest w porządku, ale nie można jej przekroczyć (na przykład wejście 256 i wyjście 512).
  • OPTION_TENSOR_PARALLEL_DEGREE – Liczba rdzeni NeuronCores do załadowania modelu w instancjach AWS Inferentia.
  • OPTION_MAX_ROLLING_BATCH_SIZE – Maksymalny rozmiar partii dla jednoczesnych żądań.
  • OPCJA_DTYP – Typ daty do załadowania modelu.

Kompilacja wykresu Neuron zależy od długości kontekstu (OPTION_N_POSITIONS), stopień równoległości tensora (OPTION_TENSOR_PARALLEL_DEGREE), maksymalny rozmiar partii (OPTION_MAX_ROLLING_BATCH_SIZE) i typ danych (OPTION_DTYPE), aby załadować model. SageMaker JumpStart wstępnie skompilował wykresy Neuron dla różnych konfiguracji dla powyższych parametrów, aby uniknąć kompilacji w czasie wykonywania. Konfiguracje wstępnie skompilowanych wykresów są wymienione w poniższej tabeli. Dopóki zmienne środowiskowe należą do jednej z poniższych kategorii, kompilacja wykresów Neuron zostanie pominięta.

LIama-2 7B i LIama-2 7B Czat
Typ instancji OPTION_N_POSITIONS OPTION_MAX_ROLLING_BATCH_SIZE OPTION_TENSOR_PARALLEL_DEGREE OPCJA_DTYP
ml.inf2.xlarge 1024 1 2 Fp16
ml.inf2.8xlarge 2048 1 2 Fp16
ml.inf2.24xlarge 4096 4 4 Fp16
ml.inf2.24xlarge 4096 4 8 Fp16
ml.inf2.24xlarge 4096 4 12 Fp16
ml.inf2.48xlarge 4096 4 4 Fp16
ml.inf2.48xlarge 4096 4 8 Fp16
ml.inf2.48xlarge 4096 4 12 Fp16
ml.inf2.48xlarge 4096 4 24 Fp16
LIama-2 13B i LIama-2 13B Czat
ml.inf2.8xlarge 1024 1 2 Fp16
ml.inf2.24xlarge 2048 4 4 Fp16
ml.inf2.24xlarge 4096 4 8 Fp16
ml.inf2.24xlarge 4096 4 12 Fp16
ml.inf2.48xlarge 2048 4 4 Fp16
ml.inf2.48xlarge 4096 4 8 Fp16
ml.inf2.48xlarge 4096 4 12 Fp16
ml.inf2.48xlarge 4096 4 24 Fp16

Poniżej znajduje się przykład wdrożenia Lamy 2 13B i ustawienia wszystkich dostępnych konfiguracji.

from sagemaker.jumpstart.model import JumpStartModel

model_id = "meta-textgenerationneuron-llama-2-13b-f"
model = JumpStartModel(
    model_id=model_id,
    env={
        "OPTION_DTYPE": "fp16",
        "OPTION_N_POSITIONS": "4096",
        "OPTION_TENSOR_PARALLEL_DEGREE": "12",
        "OPTION_MAX_ROLLING_BATCH_SIZE": "4", 
    },
    instance_type="ml.inf2.24xlarge"  
)
pretrained_predictor = model.deploy(accept_eula=False) ## To set 'accept_eula' to be True to deploy 

Teraz, gdy wdrożyliśmy model Llama-2-13b, możemy na jego podstawie wnioskować, wywołując punkt końcowy. Poniższy fragment kodu demonstruje użycie obsługiwanych parametrów wnioskowania do sterowania generowaniem tekstu:

  • maksymalna długość – Model generuje tekst do momentu osiągnięcia długości wyjściowej (w tym długości kontekstu wejściowego). max_length. Jeśli jest określony, musi być dodatnią liczbą całkowitą.
  • max_new_tokens – Model generuje tekst aż do osiągnięcia długości wyjściowej (z wyłączeniem długości kontekstu wejściowego). max_new_tokens. Jeśli jest określony, musi być dodatnią liczbą całkowitą.
  • liczba_wiązek – Wskazuje liczbę wiązek użytych w wyszukiwaniu zachłannym. Jeśli określono, musi to być liczba całkowita większa lub równa num_return_sequences.
  • no_repeat_ngram_size – Model zapewnia, że ​​sekwencja słów z no_repeat_ngram_size nie powtarza się w sekwencji wyjściowej. Jeśli jest określony, musi być dodatnią liczbą całkowitą większą niż 1.
  • temperatura – Kontroluje losowość sygnału wyjściowego. Wyższa temperatura skutkuje sekwencją wyjściową ze słowami o niskim prawdopodobieństwie; niższa temperatura skutkuje sekwencją wyjściową ze słowami o wysokim prawdopodobieństwie. Jeśli temperature równa się 0, skutkuje to zachłannym dekodowaniem. Jeśli jest określony, musi to być dodatnia liczba zmiennoprzecinkowa.
  • wcześnie_zatrzymanie - Jeśli True, generowanie tekstu zakończy się, gdy wszystkie hipotezy dotyczące wiązek dotrą do końca żetonu zdania. Jeśli jest określony, musi to być wartość logiczna.
  • zrobić_próbkę - Jeśli True, model próbkuje następne słowo zgodnie z prawdopodobieństwem. Jeśli jest określony, musi to być wartość logiczna.
  • góra_k – Na każdym etapie generowania tekstu model pobiera wyłącznie próbki z top_k najbardziej prawdopodobne słowa. Jeśli jest określony, musi być dodatnią liczbą całkowitą.
  • góra_p – Na każdym etapie generowania tekstu model pobiera próbki z najmniejszego możliwego zestawu słów z skumulowanym prawdopodobieństwem top_p. Jeśli jest określony, musi to być liczba zmiennoprzecinkowa między 0 a 1.
  • Zatrzymaj się – Jeśli określono, musi to być lista ciągów. Generowanie tekstu zostaje zatrzymane, jeśli zostanie wygenerowany którykolwiek z określonych ciągów.

Poniższy kod pokazuje przykład:

payload = {
    "inputs": "I believe the meaning of life is",
    "parameters": {
        "max_new_tokens": 64,
        "top_p": 0.9,
        "temperature": 0.6,
    },
}

response = pretrained_predictor.predict(payload)

Wydajność:

I believe the meaning of life is
>  to be happy. I believe that happiness is a choice. I believe that happiness 
is a state of mind. I believe that happiness is a state of being. I believe that 
happiness is a state of being. I believe that happiness is a state of being. I 
believe that happiness is a state of being. I believe

Aby uzyskać więcej informacji na temat parametrów w ładunku, zobacz Szczegółowe parametry.

Można także zapoznać się z implementacją parametrów w pliku notatnik aby dodać więcej informacji o łączu notatnika.

Dostosuj modele Llama 2 w instancjach Trainium za pomocą interfejsu użytkownika SageMaker Studio i zestawu SDK SageMaker Python

Podstawowe modele generatywnej sztucznej inteligencji stały się głównym przedmiotem zainteresowania w uczeniu się maszynowym i sztucznej inteligencji, jednak ich szerokie uogólnienie może okazać się niewystarczające w określonych dziedzinach, takich jak opieka zdrowotna lub usługi finansowe, gdzie zaangażowane są unikalne zbiory danych. To ograniczenie podkreśla potrzebę dostrojenia tych generatywnych modeli sztucznej inteligencji za pomocą danych specyficznych dla domeny, aby zwiększyć ich wydajność w tych wyspecjalizowanych obszarach.

Teraz, gdy wdrożyliśmy wstępnie wyszkoloną wersję modelu Llama 2, przyjrzyjmy się, jak możemy dostroić ją do danych specyficznych dla domeny, aby zwiększyć dokładność, ulepszyć model pod względem szybkiego uzupełniania i dostosować model do konkretny przypadek użycia i dane biznesowe. Możesz dostroić modele za pomocą interfejsu użytkownika SageMaker Studio lub zestawu SDK SageMaker Python. Obie metody omówimy w tej sekcji.

Dopracuj model Llama-2-13b Neuron za pomocą SageMaker Studio

W SageMaker Studio przejdź do modelu Llama-2-13b Neuron. Na Rozmieścić zakładkę, możesz wskazać Usługa Amazon Simple Storage Wiadro (Amazon S3) zawierające zbiory danych szkoleniowych i walidacyjnych do dostrajania. Ponadto można skonfigurować konfigurację wdrożenia, hiperparametry i ustawienia zabezpieczeń w celu dostrajania. Następnie wybierz Pociąg aby rozpocząć zadanie szkoleniowe w instancji SageMaker ML.

Aby korzystać z modeli Llama 2, musisz zaakceptować umowę EULA i AUP. Pojawi się, kiedy dokonasz wyboru Pociąg, Wybierać Przeczytałem i akceptuję umowę EULA i AUP aby rozpocząć prace dostrajające.

Możesz wyświetlić status zadania szkoleniowego dla dopracowanego modelu w konsoli SageMaker, wybierając Praca szkoleniowa w okienku nawigacji.

Możesz albo dostroić swój model Llama 2 Neuron, korzystając z tego przykładu bez kodu, albo dostroić za pomocą zestawu SDK języka Python, jak pokazano w następnej sekcji.

Dostosuj model Neuron Llama-2-13b za pomocą pakietu SDK SageMaker Python

Można dostosować zbiór danych za pomocą formatu adaptacji domeny lub dostrajanie oparte na instrukcjach format. Poniżej znajdują się instrukcje dotyczące formatowania danych szkoleniowych przed wysłaniem ich do dostrajania:

  • Wkład - train katalog zawierający plik w formacie wierszy JSON (.jsonl) lub pliku tekstowego (.txt).
    • W przypadku pliku linii JSON (.jsonl) każda linia jest oddzielnym obiektem JSON. Każdy obiekt JSON powinien mieć strukturę pary klucz-wartość, w której powinien znajdować się klucz text, a wartość to treść jednego przykładu szkoleniowego.
    • Liczba plików w katalogu pociągu powinna wynosić 1.
  • Wydajność – Wyszkolony model, który można wdrożyć w celu wnioskowania.

W tym przykładzie używamy podzbioru Zbiór danych Dolly w formacie dostrajania instrukcji. Zbiór danych Dolly zawiera około 15,000 2.0 rekordów zawierających instrukcje dla różnych kategorii, takich jak odpowiadanie na pytania, podsumowanie i ekstrakcja informacji. Jest dostępny na licencji Apache XNUMX. Używamy information_extraction przykłady dostrajania.

  1. Załaduj zestaw danych Dolly i podziel go na train (do dostrojenia) i test (dla ewolucji):
    from datasets import load_dataset
    
    dolly_dataset = load_dataset("databricks/databricks-dolly-15k", split="train")
    
    task = "information_extraction"
    To train for summarization/closed question and answering, you can replace the assertion in next line to example["category"] == "sumarization"/"closed_qa".
    summarization_dataset = dolly_dataset.filter(lambda example: example["category"] == task)
    summarization_dataset = summarization_dataset.remove_columns("category")
    
    We split the dataset into two where test data is used to evaluate at the end.
    train_and_test_dataset = summarization_dataset.train_test_split(test_size=0.1)
    
    Dumping the training data to a local file to be used for training.
    train_and_test_dataset["train"].to_json("train.jsonl")

  1. Użyj szablonu podpowiedzi do wstępnego przetwarzania danych w formacie instrukcji dla zadania szkoleniowego:
    prompt = ("""Below is an instruction that describes a task, paired with an input 
    that provides further context. Write a response that appropriately completes the 
    request.nn### Instruction:n{instruction}nn### Input:n{context}### 
    Response:n{response}nn<s>""")

  1. Sprawdź hiperparametry i zastąp je dla własnego przypadku użycia:
    from sagemaker import hyperparameters
    
    model_id = "meta-textgenerationneuron-llama-2-13b"
    model_version = "1.*"
    
    my_hyperparameters = hyperparameters.retrieve_default(
        model_id=model_id, model_version=model_version
    )
    
    my_hyperparameters["max_input_length"] = "4096" ## you can increase it up to 4096 for sequence length.
    my_hyperparameters["max_steps"] = "25"
    my_hyperparameters["learning_rate"] = "0.0001"
    print(my_hyperparameters)
    
    hyperparameters.validate(model_id=model_id, model_version=model_version, hyperparameters=my_hyperparameters)

  1. Dopracuj model i rozpocznij zadanie szkoleniowe SageMaker. Skrypty dostrajające są oparte na neuronx-nemo-megatron repozytorium, które są zmodyfikowanymi wersjami pakietów nemo i Wierzchołek które zostały przystosowane do użytku z instancjami Neuron i EC2 Trn1. The neuronx-nemo-megatron repozytorium ma równoległość 3D (danych, tensora i potoku), co pozwala na precyzyjne dostrojenie LLM w skali. Obsługiwane instancje Trainium to ml.trn1.32xlarge i ml.trn1n.32xlarge.
    from sagemaker.jumpstart.estimator import JumpStartEstimator
    
    estimator = JumpStartEstimator(
        model_id=model_id,
        model_version=model_version,
        hyperparameters=my_hyperparameters,
        environment={"accept_eula": "false"}, # please change `accept_eula` to be `true` to accept EULA.
        #instance_type="ml.trn1n.32xlarge", if not specified, default `ml.trn1.32xlarge` will be used.
    )
    
    estimator.fit({"train": train_data_location})

  1. Na koniec wdróż dopracowany model w punkcie końcowym SageMaker:
    finetuned_predictor = estimator.deploy()

Porównaj odpowiedzi między wstępnie wytrenowanymi i dostrojonymi modelami Llama 2 Neuron

Teraz, gdy wdrożyliśmy wstępnie wytrenowaną wersję modelu Llama-2-13b i dostroiliśmy ją, możemy obejrzeć niektóre porównania wydajności szybkich uzupełnień z obu modeli, jak pokazano w poniższej tabeli. Oferujemy również przykład dostrojenia Lamy 2 w zestawie danych SEC w formacie .txt. Aby uzyskać szczegółowe informacje, zobacz Przykładowy notatnik GitHub.

Pozycja Wejścia podstawowa prawda Odpowiedź z niedostrojonego modelu Odpowiedź z precyzyjnie dostrojonego modelu
1 Poniżej znajduje się instrukcja opisująca zadanie w połączeniu z danymi wejściowymi zapewniającymi dalszy kontekst. Napisz odpowiedź, która odpowiednio uzupełnia żądanie.nn### Instrukcja:nWyodrębnij uniwersytety, na których Moret studiował, oraz rok ich ukończenia, a następnie umieść je na liście wypunktowanej.nn### Dane wejściowe:nMoret urodził się w 1953 roku w Vevey w Szwajcarii i odbył studia licencjackie w École Polytechnique Fédérale de Lausanne (EPFL), które ukończyły w 1975 r. Następnie kontynuował studia magisterskie na Uniwersytecie Tennessee, uzyskując stopień doktora. w 1980 r. Następnie dołączył do wydziału Uniwersytetu Nowego Meksyku, gdzie pozostał do 2006 r., kiedy to przeniósł się do EPFL. Odszedł z EPFL w grudniu 2016 r. nn W 1996 r. Moret założył ACM Journal of Experimental Algorithmics i był redaktorem naczelnym tego czasopisma do 2003 r. W 2001 r. Moret założył Workshop in Algorithms for Bioinformatics (WABI) i pozostaje na liście Komitet Sterujący konferencji.nnW 2018 r. Moret został wybrany na członka Międzynarodowego Towarzystwa Biologii Obliczeniowej za swój wybitny wkład w dziedziny biologii obliczeniowej i bioinformatyki.nn### Odpowiedź:n * École Polytechnique Fédérale de Lausanne (EPFL) (dyplom w 1975) n* University of Tennessee (dyplom w 1980) Moret studiował w École Polytechnique Fédérale de Lausanne (EPFL) i na Uniwersytecie Tennessee, uzyskując dyplom odpowiednio w 1975 i 1980 roku.nn### Wskazówka:nn- Użyj funkcji „split”, aby podzielić dane wejściowe na listę zdań.n- Użyj funkcji „split”, aby podzielić każde zdanie na listę słów. n- Użyj funkcji „split”, aby podzielić – École Polytechnique Fédérale de Lausanne (EPFL),1975n- University of Tennessee,1980n- University of New Mexicon- École Polytechnique Fédérale de Lausanne (EPFL),2006nn Poniżej znajduje się instrukcja opisująca zadanie w połączeniu z danymi wejściowymi, które zapewnia dalszy kontekst. Napisz odpowiedź, która odpowiednio uzupełni żądanie.n
2 Poniżej znajduje się instrukcja opisująca zadanie w połączeniu z danymi wejściowymi zapewniającymi dalszy kontekst. Napisz odpowiedź, która odpowiednio uzupełnia żądanie.nn### Instrukcja:nNa podstawie fragmentu określ cechy Dionizosa. Wyświetl wyniki w formacie oddzielonym przecinkami.nn### Wejście:nDionizos (Διόνυσος, Diónusos)/Bachus (Βάκχος, Bákkhos)nnBóg wina, płodności, przyjęć, festiwali, szaleństwa, chaosu, pijaństwa, roślinności, ekstazy i teatr. Jest podwójnie urodzonym synem Zeusa i Semele, ponieważ Zeus wyrwał go z łona matki, wszył Dionizosa w jego własne udo i niósł go, aż był gotowy do narodzin. W sztuce przedstawiany jest albo jako starszy brodaty bóg (szczególnie przed 430 rpne), albo zniewieściały, długowłosy młodzieniec (szczególnie po 430 rpne). Do jego atrybutów zalicza się tyrs, kielich do picia, winorośl i koronę z bluszczu. Często przebywa w towarzystwie swoich thiasos, grupy pomocników, w skład której wchodzą satyry, menady i jego stary nauczyciel Silenus. Małżonką Dionizosa była Ariadna. Kiedyś utrzymywano, że Dionizjusz był późniejszym dodatkiem do greckiego panteonu, jednak odkrycie tabliczek liniowych B potwierdza jego status bóstwa już od wczesnego okresu. Bachus to jego inne imię w języku greckim, które weszło do powszechnego użytku wśród Rzymian. Do jego świętych zwierząt należą delfiny, węże, tygrysy i osły.nn### Odpowiedź:n tyrs, kielich do picia, winorośl, korona bluszczu Dionizos (Διόνυσος, Diónusos) nnBóg wina, płodności, przyjęć, festiwali, szaleństwa, chaosu, pijaństwa, wegetacji, ekstazy i teatru. Jest podwójnie urodzonym synem Zeusa i Semele, w tym sensie, że Zeus wyrwał go z łona matki i wszył sobie Dionizosa w swoje udo tyrs, kubek do picia, winorośl, korona bluszczu Poniżej znajduje się instrukcja opisująca zadanie w połączeniu z danymi wejściowymi zapewniającymi dalszy kontekst. Napisz odpowiedź, która odpowiednio uzupełnia żądanie.nn### Instrukcja:nJaka jest różnica między Imperium Partów a Imperium Arsacidów?nn### Wejście:nImperium Partów, znane również jako Imperium Arsacidów, było
3 Poniżej znajduje się instrukcja opisująca zadanie w połączeniu z danymi wejściowymi zapewniającymi dalszy kontekst. Napisz odpowiedź, która odpowiednio uzupełni żądanie.nn### Instrukcja:nDlaczego w stolicy Uzbekistanu zamieszkuje największa społeczność grecka?nn### Wejście:nGreków w Uzbekistanie jest około 9,000. Społeczność tworzą Grecy z Rosji, którzy w latach czterdziestych XX wieku zostali deportowani siłą z tego kraju do Uzbekistanu, oraz uchodźcy polityczni z Grecji. Przed II wojną światową w kraju mieszkało około 1940 30,000 Greków, a kolejne 11,000 40,000 przybyło po greckiej wojnie domowej i klęsce Greckiej Armii Demokratycznej. Ich liczba spadła z wysokiego poziomu około 1960 19 w latach sześćdziesiątych. Głównym powodem jest emigracja do Grecji po zakończeniu zimnej wojny, kiedy prawo zezwalało na powrót wszystkich etnicznych Greków, którzy zostali wygnani z powodów politycznych po greckiej wojnie domowej. Największa społeczność grecka w kraju znajduje się w stolicy Taszkencie, gdzie władze sowieckie relokowały większość greckich uchodźców politycznych. W starożytności południe kraju było częścią hellenistycznego królestwa Seleucydów, ale od tego czasu nieliczne tamtejsze społeczności greckie uległy asymilacji. Najważniejszą organizacją reprezentującą etnicznych Greków jest Greckie Stowarzyszenie Kulturalne w Taszkencie. Działalność tej organizacji obejmuje naukę języka greckiego (571 klas, w których uczestniczy ogółem XNUMX uczniów, zajęcia dla dorosłych) oraz nauczanie tańców i muzyki greckiej.nn### Odpowiedź:n Większość greckich uchodźców politycznych w Uzbekistanie została przesiedlona przez władze sowieckie do stolicy Taszkentu. n„`nW stolicy Uzbekistanu znajduje się największa społeczność grecka, ponieważ Greków w Uzbekistanie jest około 9,000 1940. Społeczność tworzą Grecy z Rosji, którzy w latach czterdziestych XX wieku zostali deportowani siłą z tego kraju do Uzbekistanu, oraz uchodźcy polityczni z Grecji. Przed II wojną światową w kraju mieszkało około 30,000 11,00 Greków, a kolejne XNUMX W stolicy Uzbekistanu zamieszkuje największa społeczność grecka, ponieważ to właśnie tam władze radzieckie relokowały większość greckich uchodźców politycznych po deportacji z Grecji.nn Poniżej znajduje się instrukcja opisująca zadanie wraz z danymi wejściowymi, które zapewniają dalszy kontekst. Napisz odpowiedź, która odpowiednio uzupełni żądanie.nn### Instrukcja:nJaka jest różnica między Imperium Partów a Imperium Arsacid?nn### Wejście:n

Widzimy, że odpowiedzi z precyzyjnie dostrojonego modelu wykazują znaczną poprawę precyzji, trafności i przejrzystości w porównaniu z odpowiedziami z wstępnie wytrenowanego modelu. W niektórych przypadkach użycie wstępnie wyszkolonego modelu dla danego przypadku użycia może nie wystarczyć, więc dostrojenie go za pomocą tej techniki sprawi, że rozwiązanie będzie bardziej spersonalizowane pod kątem Twojego zbioru danych.

Sprzątać

Gdy zakończysz zadanie szkoleniowe i nie chcesz już korzystać z istniejących zasobów, usuń je, używając następującego kodu:

# Delete resources
# Delete the fine-tuned model
finetuned_predictor.delete_model()

# Delete the fine-tuned model endpoint
finetuned_predictor.delete_endpoint()

Wnioski

Wdrożenie i dostrajanie modeli Llama 2 Neuron w SageMaker pokazuje znaczny postęp w zarządzaniu i optymalizacji wielkoskalowych generatywnych modeli AI. Modele te, w tym warianty takie jak Llama-2-7b i Llama-2-13b, wykorzystują Neuron do wydajnego uczenia i wnioskowania na instancjach opartych na AWS Inferentia i Trainium, zwiększając ich wydajność i skalowalność.

Możliwość wdrażania tych modeli za pośrednictwem interfejsu użytkownika SageMaker JumpStart i pakietu Python SDK zapewnia elastyczność i łatwość użycia. Pakiet Neuron SDK, dzięki obsłudze popularnych frameworków ML i możliwościom wysokiej wydajności, umożliwia efektywną obsługę tych dużych modeli.

Doprecyzowanie tych modeli w oparciu o dane specyficzne dla danej dziedziny ma kluczowe znaczenie dla zwiększenia ich przydatności i dokładności w wyspecjalizowanych dziedzinach. Proces, który można przeprowadzić za pośrednictwem interfejsu użytkownika SageMaker Studio lub pakietu SDK języka Python, umożliwia dostosowanie do konkretnych potrzeb, co prowadzi do poprawy wydajności modelu pod względem szybkości uzupełniania i jakości odpowiedzi.

Dla porównania, wstępnie wyszkolone wersje tych modeli, choć potężne, mogą zapewniać bardziej ogólne lub powtarzalne odpowiedzi. Dostrajanie dostosowuje model do konkretnych kontekstów, co skutkuje dokładniejszymi, trafniejszymi i zróżnicowanymi odpowiedziami. To dostosowanie jest szczególnie widoczne podczas porównywania odpowiedzi z modeli wstępnie wyszkolonych i dostrojonych, gdzie ten ostatni wykazuje zauważalną poprawę jakości i specyfiki wyników. Podsumowując, wdrożenie i dostrajanie modeli Neuron Llama 2 w SageMaker stanowi solidną platformę do zarządzania zaawansowanymi modelami sztucznej inteligencji, oferując znaczną poprawę wydajności i możliwości zastosowania, szczególnie po dostosowaniu do konkretnych dziedzin lub zadań.

Zacznij już dziś, korzystając z przykładowego oprogramowania SageMaker notatnik.

Więcej informacji na temat wdrażania i dostrajania wstępnie wyszkolonych modeli Llama 2 w instancjach opartych na GPU można znaleźć w artykule Dostosuj Llamę 2 do generowania tekstu w Amazon SageMaker JumpStart i Modele podkładów Llama 2 firmy Meta są teraz dostępne w Amazon SageMaker JumpStart.

Autorzy pragną podziękować za wkład techniczny Evana Kravitza, Christophera Whittena, Adama Kozdrowicza, Manana Shaha, Jonathana Guinegagne i Mike’a Jamesa.


O autorach

Xin Huang jest starszym naukowcem zajmującym się wbudowanymi algorytmami Amazon SageMaker JumpStart i Amazon SageMaker. Koncentruje się na rozwijaniu skalowalnych algorytmów uczenia maszynowego. Jego zainteresowania badawcze obejmują obszar przetwarzania języka naturalnego, wyjaśnialne głębokie uczenie się na danych tabelarycznych oraz solidną analizę nieparametrycznego grupowania czasoprzestrzennego. Opublikował wiele artykułów na konferencjach ACL, ICDM, KDD i Royal Statistical Society: Series A.

Nitin Euzebiusz jest starszym architektem rozwiązań dla przedsiębiorstw w AWS, ma doświadczenie w inżynierii oprogramowania, architekturze korporacyjnej i sztucznej inteligencji/ML. Jego pasją jest odkrywanie możliwości generatywnej sztucznej inteligencji. Współpracuje z klientami, pomagając im budować dobrze zaprojektowane aplikacje na platformie AWS, a także poświęca się rozwiązywaniu wyzwań technologicznych i pomaganiu w ich podróży do chmury.

Madhura Prashanta pracuje w przestrzeni generatywnej AI w AWS. Pasjonuje się skrzyżowaniem ludzkiego myślenia i generatywnej sztucznej inteligencji. Jego zainteresowania skupiają się na generatywnej sztucznej inteligencji, a konkretnie budowaniu rozwiązań, które są pomocne i nieszkodliwe, a przede wszystkim optymalne dla klientów. Poza pracą uwielbia uprawiać jogę, wędrować, spędzać czas z bliźniakiem i grać na gitarze.

Dewana Choudhury’ego jest inżynierem rozwoju oprogramowania w Amazon Web Services. Pracuje nad algorytmami Amazon SageMaker i ofertami JumpStart. Poza budowaniem infrastruktury AI/ML pasjonuje się także budowaniem skalowalnych systemów rozproszonych.

Hao Zhou jest pracownikiem naukowym w Amazon SageMaker. Wcześniej pracował nad opracowaniem metod uczenia maszynowego do wykrywania oszustw dla Amazon Fraud Detector. Pasjonuje się zastosowaniem uczenia maszynowego, optymalizacji i technik generatywnej sztucznej inteligencji do różnych problemów występujących w świecie rzeczywistym. Uzyskał tytuł doktora inżynierii elektrycznej na Northwestern University.

QingLan jest inżynierem rozwoju oprogramowania w AWS. Pracował nad kilkoma wymagającymi produktami w Amazon, w tym wysokowydajnymi rozwiązaniami wnioskowania ML i wysokowydajnym systemem rejestrowania. Zespół Qing z powodzeniem uruchomił pierwszy model miliarda parametrów w Amazon Advertising z wymaganym bardzo niskim opóźnieniem. Qing posiada dogłębną wiedzę na temat optymalizacji infrastruktury i akceleracji Deep Learning.

Dr Ashish Khetan jest starszym naukowcem z wbudowanymi algorytmami Amazon SageMaker i pomaga rozwijać algorytmy uczenia maszynowego. Doktoryzował się na University of Illinois Urbana-Champaign. Jest aktywnym badaczem uczenia maszynowego i wnioskowania statystycznego oraz opublikował wiele artykułów na konferencjach NeurIPS, ICML, ICLR, JMLR, ACL i EMNLP.

Dr Li Zhang jest głównym menedżerem produktu i technicznym w Amazon SageMaker JumpStart i Amazon SageMaker wbudowanych algorytmów – usługi, która pomaga badaczom danych i praktykom uczenia maszynowego rozpocząć szkolenie i wdrażanie swoich modeli, a także wykorzystuje uczenie się przez wzmacnianie w Amazon SageMaker. Jego poprzednia praca jako głównego pracownika badawczego i głównego wynalazcy w IBM Research zdobyła nagrodę w teście czasu na IEEE INFOCOM.

Kamran Khan, starszy menedżer ds. rozwoju technicznego biznesu w AWS Inferentina/Trianium w AWS. Ma ponad dziesięcioletnie doświadczenie w pomaganiu klientom we wdrażaniu i optymalizacji obciążeń związanych z głębokim uczeniem się i wnioskowaniem przy użyciu AWS Inferentia i AWS Trainium.

Joe Senerchia jest starszym menedżerem produktu w AWS. Definiuje i buduje instancje Amazon EC2 na potrzeby głębokiego uczenia się, sztucznej inteligencji i obciążeń obliczeniowych o wysokiej wydajności.

Znak czasu:

Więcej z Uczenie maszynowe AWS