W ciągu ostatnich kilku lat modele wielkojęzykowe (LLM) zyskały na znaczeniu jako wybitne narzędzia zdolne do rozumienia, generowania i manipulowania tekstem z niespotykaną dotąd biegłością. Ich potencjalne zastosowania obejmują agentów konwersacyjnych, generowanie treści i wyszukiwanie informacji, co może zrewolucjonizować wszystkie branże. Jednak wykorzystanie tego potencjału przy jednoczesnym zapewnieniu odpowiedzialnego i skutecznego wykorzystania tych modeli zależy od krytycznego procesu oceny LLM. Ocena to zadanie służące do pomiaru jakości i odpowiedzialności za wyniki usługi LLM lub generatywnej sztucznej inteligencji. Ocena LLM jest motywowana nie tylko chęcią zrozumienia działania modelu, ale także koniecznością wdrożenia odpowiedzialnej sztucznej inteligencji oraz potrzebą ograniczenia ryzyka dostarczania dezinformacji lub stronniczych treści oraz zminimalizowania generowania szkodliwych, niebezpiecznych, złośliwych i nieetycznych treści treść. Co więcej, ocena LLM może również pomóc w ograniczeniu zagrożeń bezpieczeństwa, szczególnie w kontekście szybkiego manipulowania danymi. W przypadku aplikacji opartych na LLM kluczowa jest identyfikacja podatności i wdrożenie zabezpieczeń chroniących przed potencjalnymi naruszeniami i nieuprawnionymi manipulacjami danych.
Zapewniając niezbędne narzędzia do oceny LLM z prostą konfiguracją i podejściem jednym kliknięciem, Amazon SageMaker Wyjaśnij Możliwości oceny LLM zapewniają klientom dostęp do większości wyżej wymienionych korzyści. Mając do dyspozycji te narzędzia, kolejnym wyzwaniem jest zintegrowanie oceny LLM z cyklem życia uczenia maszynowego i operacji (MLops), aby osiągnąć automatyzację i skalowalność procesu. W tym poście pokażemy, jak zintegrować ocenę LLM Amazon SageMaker Clarify z Amazon SageMaker Pipelines, aby umożliwić ocenę LLM na dużą skalę. Dodatkowo podajemy w tym przykładowy kod GitHub repozytorium umożliwiające użytkownikom prowadzenie równoległej oceny wielu modeli na dużą skalę, z wykorzystaniem przykładów takich jak Llama2-7b-f, Falcon-7b i dopracowane modele Llama2-7b.
Kto musi przeprowadzić ocenę LLM?
Każdy, kto trenuje, dostraja lub po prostu korzysta z wstępnie wyszkolonego LLM, musi dokładnie go ocenić, aby ocenić zachowanie aplikacji obsługiwanej przez ten LLM. W oparciu o tę zasadę możemy sklasyfikować użytkowników generatywnej sztucznej inteligencji, którzy potrzebują możliwości oceny LLM, na 3 grupy, jak pokazano na poniższym rysunku: dostawcy modeli, osoby dostrajające i konsumenci.
- Dostawcy modelu podstawowego (FM). modele pociągów ogólnego przeznaczenia. Modele te można wykorzystać do wielu dalszych zadań, takich jak wyodrębnianie cech lub generowanie treści. Każdy wyszkolony model należy porównać z wieloma zadaniami, nie tylko w celu oceny jego wydajności, ale także porównania go z innymi istniejącymi modelami, zidentyfikowania obszarów wymagających ulepszeń i wreszcie śledzenia postępów w tej dziedzinie. Dostawcy modeli muszą również sprawdzić obecność wszelkich błędów systematycznych, aby zapewnić jakość początkowego zbioru danych i prawidłowe zachowanie swojego modelu. Gromadzenie danych ewaluacyjnych ma kluczowe znaczenie dla dostawców modeli. Ponadto te dane i metryki muszą być gromadzone, aby zachować zgodność z nadchodzącymi przepisami. ISO 42001The Zarządzenie wykonawcze administracji Bidena, Ustawa UE o sztucznej inteligencji opracowywać standardy, narzędzia i testy, które pomogą zapewnić bezpieczeństwo i wiarygodność systemów AI. Na przykład unijna ustawa o sztucznej inteligencji ma za zadanie dostarczać informacji na temat tego, jakie zbiory danych są wykorzystywane do szkolenia, jaka moc obliczeniowa jest wymagana do uruchomienia modelu, raportować wyniki modelu w porównaniu z publicznymi/branżowymi wzorcami porównawczymi oraz udostępniać wyniki testów wewnętrznych i zewnętrznych.
- Model dostrajacze chcą rozwiązywać konkretne zadania (np. klasyfikację nastrojów, podsumowywanie, odpowiadanie na pytania), a także wstępnie wytrenowane modele do przyjmowania zadań specyficznych dla danej dziedziny. Potrzebują metryk oceny wygenerowanych przez dostawców modeli, aby wybrać odpowiedni, wstępnie wyszkolony model jako punkt wyjścia.
Muszą ocenić swoje dopracowane modele pod kątem pożądanego przypadku użycia, korzystając ze zbiorów danych specyficznych dla zadania lub domeny. Często muszą zarządzać i tworzyć swoje prywatne zbiory danych, ponieważ publicznie dostępne zbiory danych, nawet te zaprojektowane do konkretnego zadania, mogą nie odzwierciedlać odpowiednio niuansów wymaganych w ich konkretnym przypadku użycia.
Dostrajanie jest szybsze i tańsze niż pełne szkolenie i wymaga szybszej iteracji operacyjnej na potrzeby wdrożenia i testowania, ponieważ zwykle generowanych jest wiele modeli kandydatów. Ocena tych modeli umożliwia ciągłe doskonalenie, kalibrację i debugowanie modeli. Należy pamiętać, że dostrajający mogą stać się konsumentami własnych modeli, gdy opracują aplikacje w świecie rzeczywistym. - Model konsumenci lub podmioty wdrażające modele obsługują i monitorują modele ogólnego przeznaczenia lub dopracowane w środowisku produkcyjnym, mając na celu ulepszenie swoich aplikacji lub usług poprzez przyjęcie LLM. Pierwszym wyzwaniem, przed jakim stają, jest zapewnienie, że wybrany LLM jest zgodny z ich konkretnymi potrzebami, kosztami i oczekiwaniami dotyczącymi wydajności. Interpretacja i zrozumienie wyników modelu stanowi ciągły problem, zwłaszcza gdy w grę wchodzi prywatność i bezpieczeństwo danych (np. w przypadku audytu ryzyka i zgodności w branżach regulowanych, takich jak sektor finansowy). Ciągła ocena modelu ma kluczowe znaczenie, aby zapobiec rozprzestrzenianiu się stronniczości lub szkodliwych treści. Wdrażając solidne ramy monitorowania i oceny, konsumenci modeli mogą aktywnie identyfikować regresję w LLM i eliminować ją, zapewniając, że modele te utrzymają swoją skuteczność i niezawodność w miarę upływu czasu.
Jak przeprowadzić ocenę LLM
Skuteczna ocena modelu obejmuje trzy podstawowe elementy: jeden lub więcej FM lub precyzyjnie dostrojonych modeli do oceny wejściowych zbiorów danych (podpowiedzi, rozmowy lub regularne dane wejściowe) oraz logikę oceny.
Aby wybrać modele do oceny, należy wziąć pod uwagę różne czynniki, w tym charakterystykę danych, złożoność problemu, dostępne zasoby obliczeniowe i pożądany wynik. Wejściowy magazyn danych dostarcza danych niezbędnych do uczenia, dostrajania i testowania wybranego modelu. Bardzo ważne jest, aby ten magazyn danych był dobrze zorganizowany, reprezentatywny i wysokiej jakości, ponieważ wydajność modelu w dużym stopniu zależy od danych, z których się uczy. Wreszcie logika oceny definiuje kryteria i metryki stosowane do oceny wydajności modelu.
Razem te trzy elementy tworzą spójną strukturę, która zapewnia rygorystyczną i systematyczną ocenę modeli uczenia maszynowego, co ostatecznie prowadzi do świadomych decyzji i poprawy efektywności modeli.
Techniki oceny modeli są nadal aktywnym obszarem badań. W ciągu ostatnich kilku lat społeczność badaczy stworzyła wiele publicznych wzorców i ram, aby uwzględnić szeroki zakres zadań i scenariuszy, takich jak KLEJ, Super klej, HEŁM, MMLU i Ławka DUŻA. Te testy porównawcze mają tabele wyników, których można używać do porównywania i kontrastowania ocenianych modeli. Testy porównawcze, takie jak HELM, mają również na celu ocenę wskaźników wykraczających poza pomiary dokładności, takich jak precyzja czy wynik w F1. Benchmark HELM obejmuje wskaźniki uczciwości, stronniczości i toksyczności, które mają równie istotne znaczenie w ogólnym wyniku oceny modelu.
Wszystkie te testy porównawcze obejmują zestaw metryk mierzących sposób, w jaki model radzi sobie z określonym zadaniem. Najbardziej znane i najczęściej spotykane wskaźniki to CZERWONA (dubler zorientowany na wycofanie do oceny istoty), NIEBIESKI (Badanie oceny dwujęzyczności), lub METEOR (Metryka oceny tłumaczenia z jawną kolejnością). Metryki te służą jako przydatne narzędzie do automatycznej oceny, dostarczając ilościowych miar podobieństwa leksykalnego między tekstem wygenerowanym a tekstem referencyjnym. Nie oddają one jednak pełnego zakresu generowania języka podobnego do ludzkiego, co obejmuje rozumienie semantyczne, kontekst i niuanse stylistyczne. Na przykład HELM nie zapewnia szczegółów oceny istotnych dla konkretnych przypadków użycia, rozwiązań do testowania niestandardowych podpowiedzi i łatwych do interpretacji wyników wykorzystywanych przez osoby niebędące ekspertami, ponieważ proces może być kosztowny, trudny do skalowania i przeznaczony tylko do określonych zadań.
Co więcej, osiągnięcie generowania języka podobnego do ludzkiego często wymaga włączenia metody „human-in-the-loop”, aby zapewnić oceny jakościowe i ludzką ocenę w celu uzupełnienia zautomatyzowanych wskaźników dokładności. Ocena dokonywana przez człowieka jest cenną metodą oceny wyników LLM, ale może być również subiektywna i podatna na stronniczość, ponieważ różni oceniający mogą mieć odmienne opinie i interpretacje jakości tekstu. Co więcej, ocena dokonywana przez człowieka może wymagać dużych zasobów i kosztów, a także wymagać znacznego czasu i wysiłku.
Przyjrzyjmy się bliżej, jak Amazon SageMaker Clarify płynnie łączy kropki, pomagając klientom w przeprowadzeniu dokładnej oceny i wyboru modelu.
Ocena LLM za pomocą Amazon SageMaker Clarify
Amazon SageMaker Clarify pomaga klientom zautomatyzować wskaźniki, w tym między innymi dokładność, solidność, toksyczność, stereotypy i wiedzę faktograficzną w celu zautomatyzowania, a także stylu, spójności, przydatności dla oceny opartej na ludziach oraz metod oceny, zapewniając ramy do oceny LLM oraz usługi oparte na LLM, takie jak Amazon Bedrock. Jako usługa w pełni zarządzana, SageMaker Clarify upraszcza korzystanie z platform ewaluacyjnych typu open source w Amazon SageMaker. Klienci mogą wybrać odpowiednie zbiory danych i metryki ewaluacyjne dla swoich scenariuszy i rozszerzyć je o własne szybkie zbiory danych i algorytmy ewaluacyjne. SageMaker Clarify dostarcza wyniki oceny w wielu formatach, aby wspierać różne role w przepływie pracy LLM. Analitycy danych mogą analizować szczegółowe wyniki za pomocą wizualizacji SageMaker Clarify w notatnikach, kartach modeli SageMaker i raportach w formacie PDF. Tymczasem zespoły operacyjne mogą używać Amazon SageMaker GroundTruth do przeglądania i opisywania elementów wysokiego ryzyka zidentyfikowanych przez SageMaker Clarify. Na przykład ze względu na stereotypy, toksyczność, utratę informacji umożliwiających identyfikację lub niską dokładność.
Następnie stosuje się adnotacje i uczenie się przez wzmacnianie, aby złagodzić potencjalne ryzyko. Przyjazne dla człowieka wyjaśnienia zidentyfikowanych ryzyk przyspieszają proces ręcznego przeglądu, redukując w ten sposób koszty. Raporty podsumowujące oferują interesariuszom biznesowym porównawcze punkty odniesienia dla różnych modeli i wersji, ułatwiając podejmowanie świadomych decyzji.
Poniższy rysunek przedstawia ramy oceny LLM i usług opartych na LLM:
Amazon SageMaker Clarify LLM Evaluation to biblioteka Foundation Model Evaluation (FMEval) o otwartym kodzie źródłowym opracowana przez AWS, aby pomóc klientom w łatwej ocenie LLM. Wszystkie funkcje zostały również włączone do Amazon SageMaker Studio, aby umożliwić użytkownikom ocenę LLM. W kolejnych sekcjach przedstawiamy integrację możliwości oceny LLM Amazon SageMaker Clarify LLM z SageMaker Pipelines, aby umożliwić ocenę LLM na dużą skalę przy użyciu zasad MLOps.
Cykl życia Amazon SageMaker MLOps
Jak w poście „Mapa drogowa fundacji MLOps dla przedsiębiorstw z Amazon SageMaker” opisuje, MLOps to połączenie procesów, ludzi i technologii umożliwiające efektywną produkcję przypadków użycia ML.
Poniższy rysunek przedstawia kompleksowy cykl życia MLOps:
Typowa podróż zaczyna się od stworzenia przez analityka danych notatnika potwierdzającego koncepcję (PoC), aby udowodnić, że ML może rozwiązać problem biznesowy. Podczas opracowywania weryfikacji koncepcji (PoC) zadaniem analityka danych jest przekształcenie kluczowych wskaźników wydajności biznesowej (KPI) w metryki modelu uczenia maszynowego, takie jak precyzja lub odsetek wyników fałszywie dodatnich, a także wykorzystanie ograniczonego zestawu danych testowych do oceny tych metryka. Analitycy danych współpracują z inżynierami ML, aby przenieść kod z notatników do repozytoriów, tworząc potoki ML przy użyciu Amazon SageMaker Pipelines, które łączą różne etapy przetwarzania i zadania, w tym przetwarzanie wstępne, szkolenie, ocena i przetwarzanie końcowe, a wszystko to przy ciągłym włączaniu nowej produkcji dane. Wdrożenie Amazon SageMaker Pipelines opiera się na interakcjach z repozytorium i aktywacji potoku CI/CD. Potok ML przechowuje modele o najwyższej wydajności, obrazy kontenerów, wyniki oceny i informacje o statusie w rejestrze modeli, w którym interesariusze modelu oceniają wydajność i decydują o przejściu do produkcji w oparciu o wyniki wydajności i testy porównawcze, po czym następuje aktywacja kolejnego potoku CI/CD do wdrożenia etapowego i produkcyjnego. Po wejściu do środowiska produkcyjnego konsumenci ML korzystają z modelu poprzez wnioskowanie wyzwalane przez aplikację poprzez bezpośrednie wywołanie lub wywołania API, z pętlami informacji zwrotnej dla właścicieli modeli w celu ciągłej oceny wydajności.
Integracja Amazon SageMaker Clarify i MLOps
Podążając za cyklem życia MLOps, dostrajający lub użytkownicy modeli open source tworzą dopracowane modele lub FM za pomocą usług Amazon SageMaker Jumpstart i MLOps, jak opisano w Wdrażanie praktyk MLOps za pomocą wstępnie wyszkolonych modeli Amazon SageMaker JumpStart. Prowadzi to do nowej domeny dla operacji na modelu podstawowym (FMOps) i operacji LLM (LLMOps) FMOps/LLMOps: Operacjonalizacja generatywnej sztucznej inteligencji i różnic z MLOps.
Poniższy rysunek przedstawia kompleksowy cykl życia LLMOps:
W LLMOps główne różnice w porównaniu z MLOps to wybór modelu i ocena modelu obejmująca różne procesy i metryki. W początkowej fazie eksperymentów badacze danych (lub dostrajający) wybierają FM, który będzie używany w konkretnym przypadku użycia generatywnej sztucznej inteligencji.
Często skutkuje to testowaniem i dostrajaniem wielu FM, z których niektóre mogą dawać porównywalne wyniki. Po wybraniu modelu(ów) inżynierowie zajmujący się szybką realizacją są odpowiedzialni za przygotowanie niezbędnych danych wejściowych i oczekiwanych wyników do oceny (np. podpowiedzi wejściowe obejmujące dane wejściowe i zapytanie) oraz zdefiniowanie wskaźników, takich jak podobieństwo i toksyczność. Oprócz tych wskaźników badacze danych lub osoby dostrajające muszą zweryfikować wyniki i wybrać odpowiedni FM nie tylko na podstawie precyzyjnych wskaźników, ale także innych możliwości, takich jak opóźnienia i koszty. Następnie mogą wdrożyć model w punkcie końcowym SageMaker i przetestować jego wydajność na małą skalę. Chociaż faza eksperymentów może obejmować prosty proces, przejście do produkcji wymaga od klientów automatyzacji procesu i zwiększenia niezawodności rozwiązania. Dlatego musimy dogłębnie poznać sposoby automatyzacji oceny, umożliwiając testerom przeprowadzanie skutecznej oceny na dużą skalę i wdrażając monitorowanie danych wejściowych i wyjściowych modelu w czasie rzeczywistym.
Zautomatyzuj ocenę FM
Amazon SageMaker Pipelines automatyzuje wszystkie fazy wstępnego przetwarzania, dostrajania FM (opcjonalnie) i oceny na dużą skalę. Biorąc pod uwagę wybrane modele podczas eksperymentów, inżynierowie podpowiedzi muszą uwzględnić większy zestaw przypadków, przygotowując wiele podpowiedzi i przechowując je w wyznaczonym repozytorium zwanym katalogiem podpowiedzi. Aby uzyskać więcej informacji, zobacz FMOps/LLMOps: Operacjonalizacja generatywnej sztucznej inteligencji i różnic z MLOps. Następnie rurociągi Amazon SageMaker mogą być zorganizowane w następujący sposób:
Scenariusz 1 – Oceń wiele FM: W tym scenariuszu FM mogą objąć przypadek użycia biznesowego bez dostrajania. Potok Amazon SageMaker składa się z następujących etapów: wstępne przetwarzanie danych, równoległa ocena wielu FM, porównanie modeli i wybór w oparciu o dokładność i inne właściwości, takie jak koszt lub opóźnienie, rejestracja wybranych artefaktów modelu i metadane.
Poniższy diagram ilustruje tę architekturę.
Scenariusz 2 – Dostosuj i oceń wiele FM: W tym scenariuszu struktura Amazon SageMaker Pipeline jest podobna do scenariusza 1, ale przebiega równolegle zarówno z etapami dostrajania, jak i oceny dla każdego FM. Najlepiej dopracowany model zostanie zarejestrowany w Rejestrze Modeli.
Poniższy diagram ilustruje tę architekturę.
Scenariusz 3 – Oceń wiele FM i dostrojone FM: Ten scenariusz stanowi połączenie oceny FM ogólnego przeznaczenia i FM dostrojonych. W tym przypadku klienci chcą sprawdzić, czy dopracowany model może działać lepiej niż FM ogólnego przeznaczenia.
Poniższy rysunek przedstawia wynikowe kroki potoku SageMaker.
Należy pamiętać, że rejestracja modelu odbywa się według dwóch schematów: (a) przechowuje model i artefakty o otwartym kodzie źródłowym lub (b) przechowuje odniesienie do zastrzeżonego FM. Aby uzyskać więcej informacji, zobacz FMOps/LLMOps: Operacjonalizacja generatywnej sztucznej inteligencji i różnic z MLOps.
Omówienie rozwiązania
Aby przyspieszyć Twoją podróż do oceny LLM na dużą skalę, stworzyliśmy rozwiązanie, które implementuje scenariusze przy użyciu zarówno Amazon SageMaker Clarify, jak i nowego pakietu SDK Amazon SageMaker Pipelines. Przykład kodu, w tym zestawy danych, notesy źródłowe i potoki SageMaker (kroki i potok ML), są dostępne na stronie GitHub. Do opracowania tego przykładowego rozwiązania wykorzystaliśmy dwa FM: Llama2 i Falcon-7B. W tym poście skupiamy się przede wszystkim na kluczowych elementach rozwiązania SageMaker Pipeline, które dotyczą procesu oceny.
Konfiguracja oceny: W celu ujednolicenia procedury oceny stworzyliśmy plik konfiguracyjny YAML (evaluation_config.yaml), który zawiera niezbędne szczegóły procesu oceny, w tym zbiór danych, model(y) i algorytmy do uruchomienia podczas etap oceny rurociągu SageMaker. Poniższy przykład ilustruje plik konfiguracyjny:
pipeline: name: "llm-evaluation-multi-models-hybrid" dataset: dataset_name: "trivia_qa_sampled" input_data_location: "evaluation_dataset_trivia.jsonl" dataset_mime_type: "jsonlines" model_input_key: "question" target_output_key: "answer" models: - name: "llama2-7b-f" model_id: "meta-textgeneration-llama-2-7b-f" model_version: "*" endpoint_name: "llm-eval-meta-textgeneration-llama-2-7b-f" deployment_config: instance_type: "ml.g5.2xlarge" num_instances: 1 evaluation_config: output: '[0].generation.content' content_template: [[{"role":"user", "content": "PROMPT_PLACEHOLDER"}]] inference_parameters: max_new_tokens: 100 top_p: 0.9 temperature: 0.6 custom_attributes: accept_eula: True prompt_template: "$feature" cleanup_endpoint: True - name: "falcon-7b" ... - name: "llama2-7b-finetuned" ... finetuning: train_data_path: "train_dataset" validation_data_path: "val_dataset" parameters: instance_type: "ml.g5.12xlarge" num_instances: 1 epoch: 1 max_input_length: 100 instruction_tuned: True chat_dataset: False ... algorithms: - algorithm: "FactualKnowledge" module: "fmeval.eval_algorithms.factual_knowledge" config: "FactualKnowledgeConfig" target_output_delimiter: "<OR>"
Etap oceny: Nowy pakiet SDK SageMaker Pipeline zapewnia użytkownikom elastyczność w definiowaniu niestandardowych kroków w przepływie pracy ML przy użyciu dekoratora Pythona „@step”. Dlatego użytkownicy muszą stworzyć podstawowy skrypt Pythona, który przeprowadzi ocenę w następujący sposób:
def evaluation(data_s3_path, endpoint_name, data_config, model_config, algorithm_config, output_data_path,): from fmeval.data_loaders.data_config import DataConfig from fmeval.model_runners.sm_jumpstart_model_runner import JumpStartModelRunner from fmeval.reporting.eval_output_cells import EvalOutputCell from fmeval.constants import MIME_TYPE_JSONLINES s3 = boto3.client("s3") bucket, object_key = parse_s3_url(data_s3_path) s3.download_file(bucket, object_key, "dataset.jsonl") config = DataConfig( dataset_name=data_config["dataset_name"], dataset_uri="dataset.jsonl", dataset_mime_type=MIME_TYPE_JSONLINES, model_input_location=data_config["model_input_key"], target_output_location=data_config["target_output_key"], ) evaluation_config = model_config["evaluation_config"] content_dict = { "inputs": evaluation_config["content_template"], "parameters": evaluation_config["inference_parameters"], } serializer = JSONSerializer() serialized_data = serializer.serialize(content_dict) content_template = serialized_data.replace('"PROMPT_PLACEHOLDER"', "$prompt") print(content_template) js_model_runner = JumpStartModelRunner( endpoint_name=endpoint_name, model_id=model_config["model_id"], model_version=model_config["model_version"], output=evaluation_config["output"], content_template=content_template, custom_attributes="accept_eula=true", ) eval_output_all = [] s3 = boto3.resource("s3") output_bucket, output_index = parse_s3_url(output_data_path) for algorithm in algorithm_config: algorithm_name = algorithm["algorithm"] module = importlib.import_module(algorithm["module"]) algorithm_class = getattr(module, algorithm_name) algorithm_config_class = getattr(module, algorithm["config"]) eval_algo = algorithm_class(algorithm_config_class(target_output_delimiter=algorithm["target_output_delimiter"])) eval_output = eval_algo.evaluate(model=js_model_runner, dataset_config=config, prompt_template=evaluation_config["prompt_template"], save=True,) print(f"eval_output: {eval_output}") eval_output_all.append(eval_output) html = markdown.markdown(str(EvalOutputCell(eval_output[0]))) file_index = (output_index + "/" + model_config["name"] + "_" + eval_algo.eval_name + ".html") s3_object = s3.Object(bucket_name=output_bucket, key=file_index) s3_object.put(Body=html) eval_result = {"model_config": model_config, "eval_output": eval_output_all} print(f"eval_result: {eval_result}") return eval_result
Rurociąg SageMaker: Po utworzeniu niezbędnych kroków, takich jak wstępne przetwarzanie danych, wdrożenie modelu i ocena modelu, użytkownik musi połączyć te kroki ze sobą za pomocą pakietu SageMaker Pipeline SDK. Nowy zestaw SDK automatycznie generuje przepływ pracy, interpretując zależności między różnymi krokami po wywołaniu interfejsu API tworzenia potoku SageMaker, jak pokazano w poniższym przykładzie:
import os
import argparse
from datetime import datetime import sagemaker
from sagemaker.workflow.pipeline import Pipeline
from sagemaker.workflow.function_step import step
from sagemaker.workflow.step_outputs import get_step # Import the necessary steps
from steps.preprocess import preprocess
from steps.evaluation import evaluation
from steps.cleanup import cleanup
from steps.deploy import deploy from lib.utils import ConfigParser
from lib.utils import find_model_by_name if __name__ == "__main__": os.environ["SAGEMAKER_USER_CONFIG_OVERRIDE"] = os.getcwd() sagemaker_session = sagemaker.session.Session() # Define data location either by providing it as an argument or by using the default bucket default_bucket = sagemaker.Session().default_bucket() parser = argparse.ArgumentParser() parser.add_argument("-input-data-path", "--input-data-path", dest="input_data_path", default=f"s3://{default_bucket}/llm-evaluation-at-scale-example", help="The S3 path of the input data",) parser.add_argument("-config", "--config", dest="config", default="", help="The path to .yaml config file",) args = parser.parse_args() # Initialize configuration for data, model, and algorithm if args.config: config = ConfigParser(args.config).get_config() else: config = ConfigParser("pipeline_config.yaml").get_config() evalaution_exec_id = datetime.now().strftime("%Y_%m_%d_%H_%M_%S") pipeline_name = config["pipeline"]["name"] dataset_config = config["dataset"] # Get dataset configuration input_data_path = args.input_data_path + "/" + dataset_config["input_data_location"] output_data_path = (args.input_data_path + "/output_" + pipeline_name + "_" + evalaution_exec_id) print("Data input location:", input_data_path) print("Data output location:", output_data_path) algorithms_config = config["algorithms"] # Get algorithms configuration model_config = find_model_by_name(config["models"], "llama2-7b") model_id = model_config["model_id"] model_version = model_config["model_version"] evaluation_config = model_config["evaluation_config"] endpoint_name = model_config["endpoint_name"] model_deploy_config = model_config["deployment_config"] deploy_instance_type = model_deploy_config["instance_type"] deploy_num_instances = model_deploy_config["num_instances"] # Construct the steps processed_data_path = step(preprocess, name="preprocess")(input_data_path, output_data_path) endpoint_name = step(deploy, name=f"deploy_{model_id}")(model_id, model_version, endpoint_name, deploy_instance_type, deploy_num_instances,) evaluation_results = step(evaluation, name=f"evaluation_{model_id}", keep_alive_period_in_seconds=1200)(processed_data_path, endpoint_name, dataset_config, model_config, algorithms_config, output_data_path,) last_pipeline_step = evaluation_results if model_config["cleanup_endpoint"]: cleanup = step(cleanup, name=f"cleanup_{model_id}")(model_id, endpoint_name) get_step(cleanup).add_depends_on([evaluation_results]) last_pipeline_step = cleanup # Define the SageMaker Pipeline pipeline = Pipeline( name=pipeline_name, steps=[last_pipeline_step], ) # Build and run the Sagemaker Pipeline pipeline.upsert(role_arn=sagemaker.get_execution_role()) # pipeline.upsert(role_arn="arn:aws:iam::<...>:role/service-role/AmazonSageMaker-ExecutionRole-<...>") pipeline.start()
Przykład implementuje ocenę pojedynczego FM poprzez wstępne przetworzenie początkowego zestawu danych, wdrożenie modelu i uruchomienie oceny. Wygenerowany wykres acykliczny skierowany potokiem (DAG) pokazano na poniższym rysunku.
Stosując podobne podejście oraz wykorzystując i dostosowując przykład w Dostosuj modele LLaMA 2 w SageMaker JumpStartutworzyliśmy potok w celu oceny dopracowanego modelu, jak pokazano na poniższym rysunku.
Wykorzystując poprzednie kroki SageMaker Pipeline jako klocki „Lego”, opracowaliśmy rozwiązanie dla Scenariusza 1 i Scenariusza 3, jak pokazano na poniższych rysunkach. Konkretnie, GitHub repozytorium umożliwia użytkownikowi ocenę wielu FM równolegle lub przeprowadzenie bardziej złożonej oceny, łączącej ocenę zarówno modeli podstawowych, jak i dopracowanych.
Dodatkowe funkcjonalności dostępne w repozytorium obejmują:
- Dynamiczne generowanie etapów oceny: Nasze rozwiązanie dynamicznie generuje wszystkie niezbędne kroki ewaluacyjne w oparciu o plik konfiguracyjny, aby umożliwić użytkownikom ocenę dowolnej liczby modeli. Rozszerzyliśmy rozwiązanie o obsługę łatwej integracji nowych typów modeli, takich jak Hugging Face czy Amazon Bedrock.
- Zapobiegaj ponownemu wdrażaniu punktów końcowych: Jeśli punkt końcowy już istnieje, pomijamy proces wdrażania. Pozwala to użytkownikowi na ponowne wykorzystanie punktów końcowych z FM do oceny, co skutkuje oszczędnościami i skróceniem czasu wdrożenia.
- Oczyszczanie punktów końcowych: Po zakończeniu oceny SageMaker Pipeline likwiduje wdrożone punkty końcowe. Tę funkcjonalność można rozszerzyć, aby utrzymać najlepszy punkt końcowy modelu.
- Krok wyboru modelu: Dodaliśmy symbol zastępczy etapu wyboru modelu, który wymaga logiki biznesowej ostatecznego wyboru modelu, w tym kryteriów takich jak koszt lub opóźnienie.
- Krok rejestracji modelu: Najlepszy model można zarejestrować w rejestrze modeli Amazon SageMaker jako nową wersję określonej grupy modeli.
- Ciepły basen: Zarządzane ciepłe pule SageMaker pozwalają zachować i ponownie wykorzystać udostępnioną infrastrukturę po zakończeniu zadania, aby zmniejszyć opóźnienia w przypadku powtarzalnych obciążeń
Poniższy rysunek ilustruje te możliwości oraz przykład oceny wielu modeli, który użytkownicy mogą łatwo i dynamicznie tworzyć, korzystając z naszego rozwiązania w tym GitHub magazyn.
Celowo nie wykraczaliśmy poza zakres przygotowania danych, ponieważ zostanie ono szczegółowo opisane w innym poście, w tym dotyczące projektów katalogów, szablonów szybkiej optymalizacji i szybkiej optymalizacji. Aby uzyskać więcej informacji i powiązanych definicji komponentów, zobacz FMOps/LLMOps: Operacjonalizacja generatywnej sztucznej inteligencji i różnic z MLOps.
Wnioski
W tym poście skupiliśmy się na automatyzacji i operacjonalizacji oceny LLM na dużą skalę przy użyciu możliwości oceny LLM Amazon SageMaker Clarify i Amazon SageMaker Pipelines. Oprócz teoretycznych projektów architektury mamy w tym przykładowy kod GitHub repozytorium (zawierające moduły FM Llama2 i Falcon-7B), aby umożliwić klientom tworzenie własnych skalowalnych mechanizmów oceny.
Na poniższej ilustracji przedstawiono architekturę oceny modelu.
W tym poście skupiliśmy się na operacjonalizacji oceny LLM na dużą skalę, jak pokazano po lewej stronie ilustracji. W przyszłości skupimy się na opracowywaniu przykładów spełniających kompleksowy cykl życia FM do produkcji, postępując zgodnie z wytycznymi opisanymi w FMOps/LLMOps: Operacjonalizacja generatywnej sztucznej inteligencji i różnic z MLOps. Obejmuje to obsługę LLM, monitorowanie, przechowywanie ocen wyników, które ostatecznie spowodują automatyczną ponowną ocenę i dostrajanie, a na koniec wykorzystanie ludzi w pętli do pracy z oznakowanymi danymi lub katalogiem podpowiedzi.
O autorach
Dr Sokratis Kartakis jest głównym architektem rozwiązań w zakresie uczenia maszynowego i operacji w Amazon Web Services. Sokratis koncentruje się na umożliwianiu klientom korporacyjnym industrializacji rozwiązań Machine Learning (ML) i generatywnej sztucznej inteligencji poprzez wykorzystanie usług AWS i kształtowanie ich modelu operacyjnego, tj. fundamentów MLOps/FMOps/LLMOps oraz planu transformacji z wykorzystaniem najlepszych praktyk programistycznych. Spędził ponad 15 lat na wymyślaniu, projektowaniu, kierowaniu i wdrażaniu innowacyjnych, kompleksowych rozwiązań ML i AI na poziomie produkcyjnym w obszarach energii, handlu detalicznego, zdrowia, finansów, sportów motorowych itp.
Jagdeepa Singha Soni jest starszym architektem rozwiązań partnerskich w AWS z siedzibą w Holandii. Wykorzystuje swoją pasję do DevOps, GenAI i narzędzi konstruktorskich, aby pomóc zarówno integratorom systemów, jak i partnerom technologicznym. Jagdeep wykorzystuje swoje doświadczenie w tworzeniu aplikacji i architekturze, aby wprowadzać innowacje w swoim zespole i promować nowe technologie.
Doktor Riccardo Gatti jest starszym architektem rozwiązań dla start-upów mieszkającym we Włoszech. Jest doradcą technicznym klientów, pomagającym im rozwijać działalność poprzez wybór odpowiednich narzędzi i technologii umożliwiających wprowadzanie innowacji, szybkie skalowanie i wejście na rynek globalny w ciągu kilku minut. Zawsze pasjonował się uczeniem maszynowym i generatywną sztuczną inteligencją, po studiowaniu i stosowaniu tych technologii w różnych dziedzinach w trakcie swojej kariery zawodowej. Jest gospodarzem i redaktorem włoskiego podcastu AWS „Casa Startup”, poświęconego historiom założycieli startupów i nowym trendom technologicznym.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/operationalize-llm-evaluation-at-scale-using-amazon-sagemaker-clarify-and-mlops-services/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 1
- 100
- 7
- 9
- a
- O nas
- przyśpieszyć
- dostęp
- precyzja
- dokładnie
- Osiągać
- osiągnięcia
- w poprzek
- działać
- Aktywacja
- aktywny
- acykliczny
- w dodatku
- dodatek
- do tego
- adres
- odpowiednio
- administracja
- Przyjęcie
- Przyjęcie
- postępy
- doradca
- Po
- przed
- agentów
- AI
- Ustawa o sztucznej inteligencji
- Systemy SI
- zmierzać
- Cel
- algorytm
- Algorytmy
- Wyrównuje
- żywy
- Wszystkie kategorie
- pozwala
- już
- również
- zawsze
- Amazonka
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- Rurociągi Amazon SageMaker
- Studio Amazon SageMaker
- Amazon Web Services
- an
- w czasie rzeczywistym sprawiają,
- i
- Inne
- odpowiedź
- każdy
- api
- Zastosowanie
- Application Development
- aplikacje
- stosowany
- dotyczy
- podejście
- właściwy
- architektura
- SĄ
- obszary
- argument
- AS
- oszacować
- oceniając
- oszacowanie
- oceny
- At
- audytu
- zautomatyzować
- zautomatyzowane
- automatycznie
- automatycznie
- Automatyzacja
- dostępny
- AWS
- tło
- na podstawie
- podstawowy
- BE
- bo
- stają się
- być
- zachowanie
- Benchmark
- testowany
- Benchmarki
- Korzyści
- BEST
- Ulepsz Swój
- pomiędzy
- Poza
- stronniczość
- stronniczy
- uprzedzenia
- Bloki
- obie
- naruszenia
- szerokość
- przynieść
- budować
- budowniczy
- biznes
- ale
- by
- nazywa
- Połączenia
- CAN
- kandydat
- możliwości
- zdolny
- zdobyć
- Kartki okolicznosciowe
- Kariera
- walizka
- Etui
- katalog
- pewien
- wyzwanie
- Charakterystyka
- tańsze
- ZOBACZ
- Dodaj
- wybrany
- klasyfikacja
- Klasyfikuj
- kleń
- kod
- spoisty
- współpracować
- połączenie
- łączenie
- wspólny
- społeczność
- porównywalny
- porównać
- w porównaniu
- porównanie
- Komplement
- ukończenia
- kompleks
- kompleksowość
- spełnienie
- wykonania
- składnik
- składniki
- obejmujący
- obliczeniowy
- obliczać
- pojęcie
- Troska
- Prowadzenie
- prowadzenia
- prowadzi
- systemu
- Skontaktuj się
- łączy
- za
- składa się
- skonstruować
- Konsumenci
- Pojemnik
- zawiera
- zawartość
- Generowanie treści
- kontekst
- nieustannie
- ciągły
- kontrast
- konwersacyjny
- rozmowy
- konwertować
- skorygowania
- Koszty:
- oszczędności
- kosztowny
- Koszty:
- pokrywa
- Stwórz
- stworzony
- Tworzenie
- tworzenie
- Kryteria
- krytyczny
- istotny
- zwyczaj
- Klientów
- DZIEŃ
- dane
- Przygotowywanie danych
- naukowiec danych
- bezpieczeństwo danych
- zbiór danych
- manipulowanie danymi
- zbiory danych
- data i godzina
- zdecydować
- Podejmowanie decyzji
- Decyzje
- dedykowane
- głęboko
- głębokie nurkowanie
- Domyślnie
- określić
- definicje
- dostarcza
- Kreowanie
- Zależności
- zależy
- rozwijać
- wdrażane
- wdrażanie
- Wdrożenie
- głębokość
- opisane
- wyznaczony
- zaprojektowany
- projektowanie
- projekty
- pragnienie
- życzenia
- szczegółowe
- detale
- rozwijać
- rozwinięty
- rozwijanie
- oprogramowania
- Różnice
- różne
- kierować
- skierowany
- nurkować
- inny
- do
- Nie
- domena
- domeny
- napęd
- podczas
- dynamicznie
- e
- każdy
- z łatwością
- łatwo
- redaktor
- Efektywne
- skuteczność
- wydajny
- skutecznie
- wysiłek
- bądź
- Elementy
- więcej
- zatrudniony
- umożliwiać
- Umożliwia
- umożliwiając
- koniec końców
- Punkt końcowy
- energia
- Inżynierowie
- wzmacniać
- zapewnić
- zapewnia
- zapewnienie
- Enterprise
- przedsiębiorstwa
- epoka
- Równie
- szczególnie
- niezbędny
- itp
- EU
- oceniać
- oceniane
- oceny
- ewaluację
- Parzyste
- ostatecznie
- przykład
- przykłady
- wykonawczy
- Przede wszystkim system został opracowany
- oczekiwania
- spodziewany
- przyśpieszyć coś
- wykorzystywanie
- rozciągać się
- dużym
- zewnętrzny
- ekstrakcja
- f1
- Twarz
- ułatwienie
- Czynniki
- uczciwość
- Spada
- fałszywy
- sławny
- FAST
- szybciej
- Cecha
- Wyposażony w
- informacja zwrotna
- kilka
- pole
- Postać
- Postacie
- filet
- finał
- W końcu
- finansować
- budżetowy
- Sektor finansowy
- i terminów, a
- Elastyczność
- Skupiać
- koncentruje
- koncentruje
- następnie
- następujący
- następujący sposób
- W razie zamówieenia projektu
- Nasz formularz
- Fundacja
- Fundamenty
- założyciele
- Framework
- Ramy
- często
- od
- spełnianie
- pełny
- funkcjonalności
- Funkcjonalność
- fundamentalny
- Ponadto
- przyszłość
- zebranie
- Ogólne
- ogólny cel
- Generować
- wygenerowane
- generuje
- generujący
- generacja
- generatywny
- generatywna sztuczna inteligencja
- otrzymać
- dany
- Globalne
- Go
- przyznać
- wykres
- Zarządzanie
- Grupy
- Rozwój
- ręka
- szkodliwy
- Wykorzystywanie
- Have
- mający
- he
- Zdrowie
- ciężko
- pomoc
- pomoc
- pomaga
- Wysoki
- wysokie ryzyko
- zawiasy
- jego
- przytrzymanie
- gospodarz
- W jaki sposób
- How To
- Jednak
- HTML
- HTTPS
- człowiek
- i
- zidentyfikowane
- identyfikuje
- zidentyfikować
- if
- ilustruje
- zdjęcia
- wdrożenia
- wykonawczych
- narzędzia
- importować
- znaczenie
- poprawa
- ulepszenia
- in
- zawierać
- obejmuje
- Włącznie z
- Rejestrowy
- włączenie
- wskaźniki
- przemysłowa
- Informacja
- poinformowany
- Infrastruktura
- początkowy
- wprowadzać innowacje
- Innowacja
- Innowacyjny
- wkład
- Wejścia
- integrować
- integracja
- celowo
- Interakcje
- wewnętrzny
- najnowszych
- przedstawiać
- przywołany
- angażować
- zaangażowany
- z udziałem
- ISO
- IT
- Włoski
- Włochy
- szt
- iteracja
- JEGO
- Praca
- podróż
- jpg
- Trzymać
- trzymane
- Klawisz
- wiedza
- język
- duży
- większe
- Nazwisko
- w końcu
- Utajenie
- prowadzić
- tablice
- prowadzący
- nauka
- uczy się
- lewo
- niech
- lewarowanie
- Biblioteka
- wifecycwe
- lubić
- Ograniczony
- LINK
- Lama
- LLM
- lokalizacja
- logika
- niski
- maszyna
- uczenie maszynowe
- Główny
- utrzymać
- utrzymuje
- zarządzane
- manipulowanie
- manipulacje
- podręcznik
- wiele
- Może..
- W międzyczasie
- zmierzyć
- środków
- Mechanizmy
- Metadane
- metoda
- metody
- metryczny
- Metryka
- minut
- Mylna informacja
- Złagodzić
- łagodzenie
- ML
- MLOps
- model
- modele
- Moduł
- monitor
- monitorowanie
- jeszcze
- większość
- zmotywowani
- Sporty motorowe
- dużo
- wielokrotność
- musi
- Nazwa
- niezbędny
- Potrzebować
- wymagania
- Holandia
- Nowości
- Nowe technologie
- Następny
- nie-eksperci
- noty
- notatnik
- zacienienie
- numer
- of
- oferta
- często
- on
- pewnego razu
- ONE
- trwający
- tylko
- open source
- operacyjny
- działanie
- operacje
- Opinie
- optymalizacja
- or
- OS
- Inne
- ludzkiej,
- na zewnątrz
- Wynik
- wyniki
- wydajność
- Wyjścia
- wybitny
- koniec
- ogólny
- własny
- właściciele
- Parallel
- parametry
- szczególny
- szczególnie
- partnerem
- wzmacniacz
- pasja
- namiętny
- ścieżka
- wzory
- Ludzie
- wykonać
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- spektakle
- wykonuje
- faza
- rurociąg
- Miejsce
- zastępczy
- plato
- Analiza danych Platona
- PlatoDane
- PoC
- Podcast
- punkt
- basen
- Baseny
- Post
- potencjał
- power
- powered
- praktyki
- Detaliczność
- przygotowanie
- przygotowanie
- obecność
- zapobiec
- poprzedni
- pierwotny
- Główny
- Zasady
- prywatność
- prywatny
- Problem
- procedura
- wygląda tak
- procesów
- przetwarzanie
- Produkcja
- progresja
- rozgłos
- obietnica
- promować
- monity
- dowód
- dowód koncepcji
- niska zabudowa
- własność
- chronić
- Udowodnij
- zapewniać
- dostawców
- zapewnia
- że
- publiczny
- publicznie
- cel
- Python
- jakościowy
- jakość
- ilościowy
- pytanie
- zasięg
- Kurs
- ocena
- real
- Prawdziwy świat
- w czasie rzeczywistym
- zmniejszyć
- Zredukowany
- redukcja
- odnosić się
- odniesienie
- zarejestrowany
- Rejestracja
- rejestr
- regularny
- regulowane
- branże regulowane
- regulamin
- związane z
- mających znaczenie
- niezawodność
- powtarzalne
- raport
- Raportowanie
- Raporty
- składnica
- przedstawiciel
- wymagany
- Wymaga
- Badania naukowe
- Badacze
- zasobochłonne
- Zasoby
- odpowiedzialność
- odpowiedzialny
- wynikły
- Efekt
- detaliczny
- zachować
- powrót
- ponownie
- przeglądu
- Rewolucjonizujący
- prawo
- rygorystyczny
- Wzrosła
- Ryzyko
- ryzyko
- mapa drogowa
- krzepki
- krzepkość
- Rola
- role
- run
- bieganie
- działa
- s
- "bezpiecznym"
- zabezpieczenia
- sagemaker
- Rurociągi SageMaker
- Oszczędności
- Skalowalność
- skalowalny
- Skala
- scenariusz
- scenariusze
- Naukowiec
- Naukowcy
- zakres
- wynik
- scenariusz
- Sdk
- płynnie
- działy
- sektor
- bezpieczne
- bezpieczeństwo
- zagrożenia bezpieczeństwa
- wybierać
- wybrany
- wybierając
- wybór
- senior
- sentyment
- służyć
- usługa
- Usługi
- służąc
- Sesja
- zestaw
- modelacja
- Share
- pokazać
- pokazane
- Targi
- bok
- znaczący
- podobny
- upraszcza
- po prostu
- ponieważ
- pojedynczy
- mały
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- kilka
- Źródło
- rozpiętość
- specjalista
- specyficzny
- swoiście
- spędził
- inscenizacja
- interesariusze
- normalizująca
- standardy
- Stanford
- Startowy
- rozpocznie
- startup
- Rynek
- Ewolucja krok po kroku
- Cel
- Nadal
- przechowywanie
- sklep
- historie
- przechowywania
- bezpośredni
- zbudowany
- Studiował
- studio
- styl
- Następnie
- taki
- PODSUMOWANIE
- wsparcie
- system
- systemy
- krawiectwo
- Zadanie
- zadania
- zespół
- Zespoły
- Techniczny
- Techniki
- techniczny
- Technologies
- Technologia
- Szablony
- test
- testerzy
- Testowanie
- Testy
- XNUMX
- niż
- że
- Połączenia
- Przyszłość
- ich
- Im
- następnie
- teoretyczny
- a tym samym
- w związku z tym
- Te
- one
- to
- tych
- trzy
- Przez
- poprzez
- czas
- do
- razem
- narzędzie
- narzędzia
- śledzić
- Pociąg
- przeszkolony
- Trening
- pociągi
- Transformacja
- przejście
- przejście
- Tłumaczenie
- Trendy
- wyzwalać
- prawdziwy
- godny zaufania
- drugiej
- typy
- typowy
- Ostatecznie
- Nieupoważniony
- zrozumieć
- zrozumienie
- bez precedensu
- zbliżających
- posługiwać się
- przypadek użycia
- używany
- Użytkownik
- Użytkownicy
- zastosowania
- za pomocą
- zazwyczaj
- wykorzystać
- UPRAWOMOCNIĆ
- Cenny
- różnorodny
- wersja
- Wersje
- przez
- istotny
- Luki w zabezpieczeniach
- chcieć
- ciepły
- we
- sieć
- usługi internetowe
- DOBRZE
- były
- Co
- jeśli chodzi o komunikację i motywację
- który
- Podczas
- KIM
- szeroki
- Szeroki zasięg
- Wikipedia
- będzie
- w
- w ciągu
- bez
- Praca
- workflow
- pracujący
- świat
- jamla
- lat
- Wydajność
- You
- Twój
- zefirnet