Przepływ pracy dewelopera aplikacji generatywnej sztucznej inteligencji
Opracowanie solidnej generatywnej aplikacji AI (aplikacji gen AI) wymaga celowego planowania, szybkiej pętli rozwoju, opinii zwrotnej i oceny oraz skalowalnej infrastruktury produkcyjnej. Ten przepływ pracy przedstawia zalecaną sekwencję kroków, które przeprowadzą Cię od początkowego weryfikacji koncepcji (POC) do wdrożenia produkcyjnego.
- Zbierz wymagania do oceny dopasowania do sztucznej inteligencji generatywnej i identyfikacji ograniczeń.
- Projektowanie architektury rozwiązania. Zobacz Wzorce projektowe systemu agenta
- Przygotuj źródła danych i utwórz niezbędne narzędzia.
- Skompiluj i zweryfikuj początkowy prototyp (POC).
- Wdrażanie w środowisku przedprodukcyjnym.
- Zbieranie opinii użytkowników i mierzenie jakości
- Rozwiąż problemy z jakością, udoskonalając logikę agenta i narzędzia w oparciu o wyniki oceny.
- Uwzględnij wkład ekspertów merytorycznych, aby stale poprawiać jakość systemu agentowego.
- Wdróż aplikację sztucznej inteligencji generacyjnej w środowisku produkcyjnym.
- Monitorowanie wydajności i jakości.
- Utrzymywanie i ulepszanie na podstawie rzeczywistego użycia.
Ten przepływ pracy powinien być iteracyjny: po każdym cyklu wdrażania lub oceny wróć do wcześniejszych kroków w celu doprecyzowania potoków danych lub aktualizacji logiki agenta. Na przykład monitorowanie produkcji może ujawnić nowe wymagania, co prowadzi do aktualizacji projektu agenta i kolejnej rundy oceny. Wykonując te kroki systematycznie i korzystając ze śledzenia MLflow firmy Databricks, struktury agentów oraz możliwości oceny agentów, można tworzyć wysokiej jakości aplikacje generatywnej sztucznej inteligencji, które niezawodnie spełniają potrzeby użytkowników, przestrzegają wymagań bezpieczeństwa i zgodności oraz mogą być ulepszane z czasem.
0. Warunki wstępne
Przed rozpoczęciem opracowywania generatywnej aplikacji AI nie da się przecenić, jak ważne jest poświęcenie czasu na właściwe wykonanie następujących czynności: zebranie wymagań i projektowanie rozwiązania.
Zbieranie wymagań obejmuje następujące kroki:
- Sprawdź, czy sztuczna inteligencja generatywna nadaje się do twojego przypadku użycia.
- Zdefiniuj środowisko użytkownika.
- Określanie zakresu źródeł danych.
- Ustawianie ograniczeń wydajności.
- Rejestrowanie ograniczeń zabezpieczeń.
Projekt rozwiązania obejmuje następujące elementy:
- Mapuj potoki danych.
- Identyfikowanie niezbędnych narzędzi.
- Konspekt ogólnej architektury systemu.
Kładąc te podstawy, wyznaczasz jasny kierunek dla kolejnych etapów Build, Evaluatei Production.
Gromadzenie wymagań
Definiowanie jasnych i kompleksowych wymagań przypadków użycia jest kluczowym pierwszym krokiem w tworzeniu udanej aplikacji sztucznej inteligencji gen. Te wymagania służą następującym celom:
- Pomagają określić, czy podejście do generatywnej sztucznej inteligencji jest odpowiednie dla Twojego przypadku użycia.
- Prowadzą one decyzje dotyczące projektowania, implementacji i oceny rozwiązań.
Inwestowanie czasu na początku w celu zebrania szczegółowych wymagań może zapobiec istotnym wyzwaniom w dalszej części procesu opracowywania i zapewnić, że wynikowe rozwiązanie spełnia potrzeby użytkowników końcowych i uczestników projektu. Dobrze zdefiniowane wymagania stanowią podstawę dla kolejnych etapów cyklu życia aplikacji.
Czy scenariusz użycia dobrze pasuje do sztucznej inteligencji generatywnej?
Przed zobowiązaniem się do rozwiązania z zakresu generatywnej sztucznej inteligencji należy rozważyć, czy jej wrodzone zalety są zgodne z wymaganiami. Oto kilka przykładów, w których rozwiązanie do generowania sztucznej inteligencji jest dobrym rozwiązaniem:
- generowanie zawartości: Zadanie wymaga wygenerowania nowej lub twórczej zawartości, której nie można osiągnąć za pomocą szablonów statycznych ani prostej logiki opartej na regułach.
- Obsługa zapytań dynamicznych: Zapytania użytkowników są otwarte lub złożone i wymagają elastycznych, uwzględniających kontekst odpowiedzi.
- Synteza informacji: Przypadek użycia korzysta z łączenia lub podsumowywania różnych źródeł informacji w celu uzyskania spójnych danych wyjściowych.
-
Systemy agentów: Aplikacja wymaga więcej niż generowania tekstu w odpowiedzi na monit. Może wymagać zdolności do:
- Planowanie i podejmowanie decyzji: Formułowanie strategii wieloetapowej w celu osiągnięcia określonego celu.
- Wykonywanie akcji: wyzwalanie procesów zewnętrznych lub wywoływanie różnych narzędzi do wykonywania zadań (na przykład pobieranie danych, wykonywanie wywołań interfejsu API, uruchamianie zapytań SQL, wykonywanie kodu).
- Utrzymanie stanu: Śledzenie historii konwersacji lub kontekstu zadania w wielu interakcjach w celu zapewnienia ciągłości.
- Tworzenie adaptacyjnych danych wyjściowych: Generowanie odpowiedzi, które ewoluują na podstawie poprzednich akcji, zaktualizowanych informacji lub zmieniających się warunków.
Z drugiej strony podejście oparte na generatywnej sztucznej inteligencji może nie być idealne w następujących sytuacjach:
- Zadanie jest wysoce deterministyczne i można je skutecznie rozwiązać przy użyciu wstępnie zdefiniowanych szablonów lub systemów opartych na regułach.
- Cały zestaw wymaganych informacji jest już statyczny lub mieści się w prostej, zamkniętej strukturze.
- Wymagane są odpowiedzi z bardzo niskim opóźnieniem (milisekundowym), a narzut związany z przetwarzaniem generatywnym nie może być uwzględniany.
- Proste, szablonowe odpowiedzi są wystarczające dla zamierzonego przypadku użycia.
Ważny
Poniższe sekcje używają etykiet P0, P1i etykiet P2, aby wskazać względny priorytet.
- 🟢 [P0] elementy są krytyczne lub niezbędne. Należy je natychmiast rozwiązać.
- 🟡 [P1] elementy są ważne, ale mogą występować po wymaganiach P0.
- ⚪ [P2] elementy są zagadnieniami o niższym priorytecie lub ulepszeniami, które mogą zostać rozwiązane, gdy pozwolą czas i zasoby.
Etykiety te ułatwiają zespołom szybkie sprawdzenie, które wymagania wymagają natychmiastowej uwagi, a które można odroczyć.
Środowisko użytkownika
Zdefiniuj sposób interakcji użytkowników z aplikacją sztucznej inteligencji generacji i jakiego rodzaju odpowiedzi są oczekiwane.
- 🟢 [P0] Typowe żądanie: Jak będzie wyglądać typowe żądanie użytkownika? Zbierz przykłady od uczestników projektu.
- 🟢 [P0] Oczekiwane odpowiedzi: Jakiego typu odpowiedzi powinien wygenerować system (na przykład krótkie odpowiedzi, wyjaśnienia długie, twórcze narracje)?
- 🟡 [P1] Modalność interakcji: Jak użytkownicy będą korzystać z aplikacji (na przykład interfejs czatu, pasek wyszukiwania, asystent głosowy)?
- 🟡 [P1] Ton, styl, struktura: Jaki ton, styl i struktura powinny przyjąć wygenerowane dane wyjściowe (formalne, konwersacyjne, techniczne, punktowane lub ciągłej prozy)?
- 🟡 [P1]Obsługa błędów: Jak aplikacja powinna obsługiwać niejednoznaczne, niekompletne lub nietrafne zapytania? Czy powinna przekazać opinię lub poprosić o wyjaśnienie?
- ⚪ [P2] Wymagania dotyczące formatowania: Czy istnieją jakieś konkretne wytyczne dotyczące formatowania lub prezentacji dla danych wyjściowych (w tym metadanych lub dodatkowych informacji)?
Dane
Określ charakter, źródła i jakość danych, które będą używane w aplikacji sztucznej inteligencji generacji.
-
🟢
[P0] Źródła danych: Jakie źródła danych są dostępne?
- Dla każdego źródła określ:
- Czy dane są ustrukturyzowane, czy nieustrukturyzowane?
- Jaki jest format źródłowy (na przykład PDF, HTML, JSON, XML)?
- Gdzie znajdują się dane?
- Ile danych jest dostępnych?
- Jak należy uzyskiwać dostęp do danych?
- Dla każdego źródła określ:
- 🟡 [P1] Aktualizacje danych: Jak często są aktualizowane dane? Jakie mechanizmy są dostępne do obsługi aktualizacji?
-
🟡
[P1] Jakość danych: Czy istnieją znane problemy z jakością lub niespójności?
- Rozważ, czy wymagane będzie monitorowanie jakości źródeł danych.
Rozważ utworzenie tabeli spisu, aby skonsolidować te informacje, na przykład:
Źródło danych | Źródło | Typy plików | Rozmiar | Częstotliwość aktualizacji |
---|---|---|---|---|
Źródło danych 1 | Unity Catalog wolumin | JSON | 10 GB | Codzienny |
Źródło danych 2 | Publiczne API | XML | NA (API) | Czas rzeczywisty |
Źródło danych 3 | SharePoint | PDF, .docx | 500 MB | Miesięczny |
Ograniczenia wydajności
Zbierz wymagania dotyczące wydajności i zasobów dla aplikacji generatywnej AI.
opóźnienia
-
🟢
[P0] Czas do pierwszego tokenu: Jakie jest maksymalne dopuszczalne opóźnienie przed dostarczeniem pierwszego tokenu danych wyjściowych?
- Uwaga: Opóźnienie jest zwykle mierzone przy użyciu p50 (mediana) i p95 (95. percentyl), aby uchwycić zarówno średnią, jak i wydajność w najgorszym przypadku.
- 🟢 [P0] Czas ukończenia: Jaki jest akceptowalny (czas ukończenia) czas odpowiedzi dla użytkowników?
- 🟢 [P0] Opóźnienie przesyłania strumieniowego: Jeśli odpowiedzi są przesyłane strumieniowo, czy dopuszczalne jest większe ogólne opóźnienie?
skalowalność
-
🟡
[P1]Równoczesnych użytkowników i żądań: Ilu równoczesnych użytkowników lub żądań powinno obsługiwać system?
- Uwaga: skalowalność jest często mierzona pod względem QPS (zapytań na sekundę) lub QPM (zapytania na minutę).
- 🟡 [P1] Wzorce użycia: Jakie są oczekiwane wzorce ruchu, szczytowe obciążenia lub wzrosty użycia oparte na czasie?
ograniczenia kosztów
- 🟢 [P0] Ograniczenia kosztów wnioskowania: Jakie są ograniczenia kosztów lub ograniczenia budżetowe dotyczące zasobów obliczeniowych wnioskowania?
Ocena
Ustal, w jaki sposób aplikacja sztucznej inteligencji generacji będzie oceniana i ulepszana w czasie.
- 🟢 [P0] Wskaźniki KPI biznesowe: który cel biznesowy lub kluczowy wskaźnik wydajności powinien mieć wpływ na aplikację? Zdefiniuj wartości i cele punktu odniesienia.
- 🟢 [P0] Opinie uczestników projektu: Kto przekaże początkową i bieżącą opinię na temat wydajności i danych wyjściowych aplikacji? Zidentyfikuj określone grupy użytkowników lub ekspertów z dziedziny.
-
🟢
[P0] Pomiar jakości: Jakie metryki (na przykład dokładność, istotność, bezpieczeństwo, wyniki ludzkie) będą używane do oceny jakości wygenerowanych danych wyjściowych?
- W jaki sposób te metryki będą obliczane podczas opracowywania (na przykład w odniesieniu do danych syntetycznych, zestawów danych ręcznie wyselekcjonowanych)?
- Jak jakość będzie mierzona w środowisku produkcyjnym (na przykład rejestrowanie i analizowanie odpowiedzi na rzeczywiste zapytania użytkownika)?
- Jaka jest ogólna tolerancja błędu? (na przykład zaakceptować pewien procent drobnych niedokładności faktycznych lub wymagać prawie 100% poprawności dla krytycznych przypadków użycia).
- Celem jest utworzenie zestawu ewaluacyjnego na podstawie rzeczywistych zapytań użytkownika, syntetycznych danych lub kombinacji obu tych elementów. Ten zestaw zapewnia spójny sposób oceny wydajności w miarę rozwoju systemu.
-
🟡
[P1] Pętle opinii: Jak należy zbierać opinie użytkowników (na przykład kciuki w górę/w dół, formularze ankiety) i używać ich do wprowadzania ulepszeń iteracyjnych?
- Zaplanuj częstotliwość przeglądania i włączania opinii.
Bezpieczeństwo
Zidentyfikuj wszelkie zagadnienia dotyczące zabezpieczeń i prywatności.
- 🟢 [P0] Poufność danych: Czy istnieją poufne lub poufne elementy danych, które wymagają specjalnej obsługi?
- 🟡 [P1] Kontrola dostępu: Czy należy zaimplementować mechanizmy kontroli dostępu w celu ograniczenia określonych danych lub funkcji?
- 🟡 [P1] Ocena zagrożeń i środki zaradcze &: Czy aplikacja będzie musiała chronić przed typowymi zagrożeniami związanymi z generatywną AI, takimi jak wstrzyknięcie polecenia lub złośliwe dane wejściowe użytkownika?
Wdrażania
Dowiedz się, w jaki sposób rozwiązanie sztucznej inteligencji generacji będzie zintegrowane, wdrożone, monitorowane i utrzymywane.
-
🟡
[P1] Integracja: Jak rozwiązanie sztucznej inteligencji generacji powinno zostać zintegrowane z istniejącymi systemami i przepływami pracy?
- Zidentyfikuj punkty integracji (na przykład slack, CRM, narzędzia analizy biznesowej) i wymagane łączniki danych.
- Określ, jak żądania i odpowiedzi będą przepływać między aplikacją generatywnej sztucznej inteligencji a systemami podrzędnymi (na przykład interfejsami API REST, webhookami).
- 🟡 [P1] Wdrożenie: Jakie są wymagania dotyczące wdrażania, skalowania i przechowywania wersji aplikacji? W tym artykule opisano, jak można obsługiwać kompleksowy cykl życia na platformie Databricks przy użyciu MLflow, Unity Catalog, Agent Framework, Agent Evaluationoraz usług modelu.
-
🟡
[P1] Monitorowanie i obserwowalność produkcji: Jak będziecie monitorować aplikację po jej przejściu do środowiska produkcyjnego?
- Rejestrowanie & śladów: zapisywanie pełnych śladów wykonywania.
- Metryki jakości: stale oceniaj kluczowe metryki (takie jak dokładność, opóźnienie, istotność) w ruchu na żywo.
- Alerty i pulpity nawigacyjne: konfigurowanie alertów dla krytycznych kwestii.
- Pętla opinii: włącz opinie użytkowników w produkcji (kciuki w górę lub w dół), aby wychwycić problemy na wczesnym etapie i napędzać iteracyjne ulepszenia.
Przykład
Rozważmy na przykład, w jaki sposób te zagadnienia i wymagania odnoszą się do hipotetycznej agentowej aplikacji RAG używanej przez zespół wsparcia klienta korzystającego z usługi Databricks.
Obszar | Zagadnienia dotyczące | Wymagania |
---|---|---|
Środowisko użytkownika |
|
|
Logika agenta |
|
|
Dane |
|
|
Wydajność |
|
|
Ocena |
|
|
Bezpieczeństwo |
|
|
Wdrażania |
|
|
Projekt rozwiązania
Aby uzyskać więcej informacji o dodatkowych rozważaniach projektowych, zobacz Wzorce projektowe systemu agenta.
Narzędzia źródeł danych &
Podczas projektowania aplikacji sztucznej inteligencji generacji ważne jest zidentyfikowanie i zamapowywanie różnych źródeł danych i narzędzi wymaganych do napędzania rozwiązania. Mogą one obejmować zestawy danych ze strukturą, potoki przetwarzania danych bez struktury lub wykonywanie zapytań względem zewnętrznych interfejsów API. Poniżej przedstawiono zalecane metody dołączania różnych źródeł danych lub narzędzi do aplikacji sztucznej inteligencji gen:
Dane ustrukturyzowane
Dane ustrukturyzowane zwykle znajdują się w dobrze zdefiniowanych formatach tabelarycznych (na przykład tabeli delty lub pliku CSV) i są idealne dla zadań, w których zapytania są wstępnie określone lub muszą być generowane dynamicznie na podstawie danych wejściowych użytkownika. Aby uzyskać zalecenia dotyczące dodawania danych ustrukturyzowanych do swojej aplikacji AI, zobacz narzędzia agenta sztucznej inteligencji do strukturalnego wyszukiwania .
Dane bez struktury
Dane bez struktury obejmują nieprzetworzone dokumenty, pliki PDF, wiadomości e-mail, obrazy i inne formaty, które nie są zgodne ze stałym schematem. Takie dane wymagają dodatkowego przetwarzania, zazwyczaj za pomocą kombinacji analizowania, fragmentowania i osadzania, aby efektywnie wykonywać zapytania i używać ich w aplikacji sztucznej inteligencji generacji. Zobacz narzędzia agenta AI do wyszukiwania nieustrukturyzowanego, aby uzyskać zalecenia dotyczące dodawania danych ustrukturyzowanych do aplikacji AI.
Zewnętrzne interfejsy API i akcje
W niektórych scenariuszach aplikacja z generatywną sztuczną inteligencją może wymagać interakcji z systemami zewnętrznymi w celu pobrania danych lub wykonania czynności. W przypadkach, gdy aplikacja wymaga wywołania narzędzi lub interakcji z zewnętrznymi interfejsami API, zalecamy wykonanie następujących czynności:
- pl-PL: Zarządzanie poświadczeniami interfejsu API za pomocą połączenia z katalogiem Unity: Użyj połączenia z katalogiem Unity, aby bezpiecznie zarządzać poświadczeniami interfejsu API. Ta metoda gwarantuje, że tokeny i sekrety są centralnie zarządzane z kontrolą dostępu.
-
Wywołanie za pośrednictwem zestawu SDK Databricks:
Wysyłanie żądań HTTP do usług zewnętrznych przy użyciu funkcjihttp_request
z bibliotekidatabricks-sdk
. Ta funkcja korzysta z połączenia Unity Catalog do celów uwierzytelniania i obsługuje standardowe metody HTTP. -
Wykorzystanie funkcji Unity Catalog:
Owiń połączenia zewnętrzne w funkcji Unity Catalog, aby dodać niestandardową logikę przetwarzania wstępnego lub końcowego. -
narzędzie wykonawcze Python:
Aby dynamicznie wykonywać kod na potrzeby transformacji danych lub interakcji interfejsu API przy użyciu funkcji języka Python, użyj wbudowanego narzędzia wykonawczego języka Python.
przykład:
Wewnętrzna aplikacja analityczna pobiera dane rynku na żywo z zewnętrznego interfejsu API finansowego. Aplikacja używa:
- Zewnętrzne połączenie Unity Catalog w celu bezpiecznego przechowywania poświadczeń API.
- Niestandardowa funkcja w Unity Catalog opakowuje wywołanie API, aby dodać przetwarzanie wstępne (np. normalizacja danych) oraz końcowe (np. obsługa błędów).
- Ponadto aplikacja może bezpośrednio wywołać interfejs API z zestawu SDK Databricks.
Podejście implementacji
Podczas tworzenia aplikacji sztucznej inteligencji w generacji dostępne są dwie główne opcje implementowania logiki agenta: korzystanie z platformy typu open source lub tworzenie niestandardowego rozwiązania przy użyciu kodu w języku Python. Poniżej przedstawiono podział zalet i wad dla każdego podejścia.
Używanie struktury (takiej jak LangChain, LlamaIndex, CrewAI lub AutoGen)
Zalety:
- Komponenty gotowe do użycia: Frameworki zawierają gotowe narzędzia do zarządzania natychmiastowymi poleceniami, tworzenia łańcuchów wywołań i integrowania z różnymi źródłami danych, co może przyspieszyć rozwój.
- Community i dokumentacja: Skorzystaj z wsparcia społeczności, samouczków i regularnych aktualizacji.
- Typowe wzorce projektowe: Frameworki zwykle zapewniają wyraźną, modułową strukturę do organizowania typowych zadań, co może uprościć projektowanie ogólnego agenta.
wady:
- Dodano abstrakcję: struktury typu open source często wprowadzają warstwy abstrakcji, które mogą być niepotrzebne dla konkretnego przypadku użycia.
- Zależność od aktualizacji: Być może jesteś zależny od utrzymywania struktury w przypadku poprawek błędów i aktualizacji funkcji, co może spowolnić możliwość szybkiego dostosowania się do nowych wymagań.
- Potencjalne obciążenie: Ekstra abstrakcja może prowadzić do wyzwań związanych z dostosowywaniem, jeśli aplikacja wymaga bardziej szczegółowej kontroli.
Używanie czystego języka Python
Zalety:
- elastyczność: Programowanie w czystym języku Python umożliwia dostosowanie implementacji dokładnie do potrzeb bez ograniczeń decyzji projektowych platformy.
- Szybka adaptacja: Możesz szybko dostosować kod i uwzględnić zmiany zgodnie z potrzebami bez oczekiwania na aktualizacje ze struktury zewnętrznej.
- Prostota: Unikaj niepotrzebnych warstw abstrakcji, co może potencjalnie spowodować szczuplejsze, bardziej wydajne rozwiązanie.
wady:
- Zwiększone nakłady pracy programistycznej: Tworzenie od podstaw może wymagać więcej czasu i wiedzy na temat implementowania funkcji, które mogą być w przeciwnym razie zapewniane przez dedykowaną strukturę.
- odkrywanie koła na nowo: Może być konieczne samodzielne opracowanie typowych funkcji (takich jak łańcuch narzędzi lub zarządzanie monitami).
- odpowiedzialność za konserwację: Wszystkie aktualizacje i poprawki usterek stają się Twoim zadaniem, co może być trudne dla złożonych systemów.
Ostatecznie decyzja powinna kierować się złożonością projektu, potrzebami dotyczącymi wydajności i wymaganym poziomem kontroli. Żadne podejście nie jest z natury lepsze; każda z nich oferuje różne korzyści w zależności od preferencji programistycznych i priorytetów strategicznych.
1. Budowa
Na tym etapie przekształcisz projekt rozwiązania w działającą aplikację generatywnej sztucznej inteligencji. Zamiast udoskonalać wszystko z góry, zacznij od minimalnej weryfikacji koncepcji, którą można szybko przetestować. Umożliwia to wdrożenie w środowisku przedprodukcyjnym tak szybko, jak to możliwe, zebranie reprezentatywnych zapytań od rzeczywistych użytkowników lub MŚP oraz udoskonalenie na podstawie rzeczywistych opinii.
Proces kompilacji jest zgodny z następującymi kluczowymi krokami:
a. Przygotowanie danych & narzędzia: Upewnij się, że wymagane dane są dostępne, przetwarzane i gotowe do pobrania. Zaimplementuj lub zarejestruj funkcje i połączenia Unity Catalogu (na przykład interfejsy API pobierania lub zewnętrzne wywołania interfejsu API), które będą potrzebne agentowi. b. Agent kompilacji: Orkiestruj podstawową logikę, zaczynając od prostego podejścia POC. c. Sprawdzanie jakości: Zweryfikować podstawowe funkcje przed udostępnieniem aplikacji szerszemu gronu użytkowników. d. Wdróż agenta przedprodukcyjnego: Udostępnij dostępność POC użytkownikom testowym i ekspertom merytorycznym w celu uzyskania wstępnej opinii. e. Zbieranie opinii użytkowników: Użyj realnych zastosowań, aby zidentyfikować obszary wymagające ulepszeń, potrzebne dodatkowe dane lub narzędzia oraz potencjalne ulepszenia dla następnej iteracji.
a. Przygotowywanie narzędzi & danych
W fazie projektowania rozwiązania będziesz mieć wstępną koncepcję źródeł danych i narzędzi wymaganych dla aplikacji. Na tym etapie zminimalizuj: skup się na wystarczającej ilości danych, aby zweryfikować swój dowód koncepcji. Zapewnia to szybką iterację bez dużych inwestycji w złożone rurociągi.
Dane
-
Identyfikowanie reprezentatywnego podzestawu danych
- W przypadku danych ustrukturyzowanychwybierz tabele kluczy lub kolumny najbardziej istotne dla początkowego scenariusza.
- W przypadku danych bez strukturynależy opriorytetyzować indeksowanie tylko podzbioru reprezentatywnych dokumentów. Użyj podstawowego potoku fragmentowania/osadzania z Mosaic AI Vector Search, aby agent mógł w razie potrzeby pobrać odpowiednie fragmenty tekstu.
-
Konfigurowanie dostępu do danych
- Jeśli potrzebujesz, aby Twoja aplikacja wykonywała zewnętrzne wywołania interfejsu API, przechowuj poświadczenia bezpiecznie przy użyciu Unity Catalog Connection.
-
Weryfikowanie podstawowego zakresu
- Upewnij się, że wybrane podzestawy danych odpowiednio adresuje zapytania użytkownika, które planujesz przetestować.
- Zapisz wszelkie dodatkowe źródła danych lub złożone przekształcenia na potrzeby przyszłych iteracji. Aktualnym celem powinno być udowodnienie podstawowej możliwości i zebranie opinii.
Narzędzia
Po skonfigurowaniu źródeł danych, następnym krokiem jest zaimplementowanie i zarejestrowanie narzędzi, które agent wywoła w czasie wykonywania w Unity Catalog. Narzędzie to funkcja jednorazowej interakcji, na przykład zapytanie SQL lub zewnętrzne wywołanie interfejsu API, które agent może wywołać do pobierania, przekształcania lub działania.
narzędzia do pobierania danych
- ograniczone, ustrukturyzowane zapytania dotyczące danych: Jeśli zapytania są stałe, opakuj je w funkcję SQL katalogu Unity lub funkcję UDF wPythonie. Dzięki temu logika jest scentralizowana i odnajdywalna.
- Otwarte, ustrukturyzowane zapytania danych: Jeśli zapytania są bardziej otwarte, rozważ skonfigurowanie przestrzeni Genie w celu obsługi zapytań z tekstu na SQL.
- Funkcje pomocnicze dla danych niestrukturalnych: Dla danych niestrukturalnych przechowywanych w Mosaic AI Vector Search, utwórz narzędzie pobierania danych niestrukturalnych, które agent może użyć do pobierania odpowiednich fragmentów tekstu.
narzędzia do wywoływania interfejsu API
-
Wywołania zewnętrznego interfejsu API: wywołania interfejsu APImogą być wywoływane bezpośrednio przy użyciu metody
http_request
zestawu SDK usługi Databricks. - Opcjonalne opakowania: Jeśli musisz zaimplementować logikę przetwarzania wstępnego lub końcowego (taką jak normalizacja danych lub obsługa błędów), opakuj wywołanie interfejsu API w funkcję Unity Catalog .
Zachowaj minimalizm
- Zacznij tylko od podstawowych narzędzi: Skup się na pojedynczej ścieżce dostępu lub ograniczonym zestawie wywołań interfejsu API. Możesz dodać więcej podczas iteracji.
- Walidacja interaktywnie: Przetestować każde narzędzie niezależnie (na przykład w notatniku) przed dołączeniem go do systemu agenta.
Gdy narzędzia prototypu będą gotowe, przejdź do kompilowania agenta. Agent organizuje te narzędzia w celu odpowiadania na zapytania, pobierania danych i wykonywania akcji zgodnie z potrzebami.
b. Agent budujący
Po utworzeniu danych i narzędzi można utworzyć agenta, który odpowiada na przychodzące żądania, takie jak zapytania użytkowników. Aby utworzyć wstępny prototyp agenta, użyj Python lub środowiska zabawdla sztucznej inteligencji. Wykonaj następujące kroki:
-
Zacznij prosto
-
Wybierz podstawowy wzorzec projektowania: W przypadku proof of concept zacznij od podstawowego łańcucha (takiego jak ustalona sekwencja kroków) lub jednego agenta wywołującego narzędzia (gdzie LLM może dynamicznie używać jednego lub dwóch podstawowych narzędzi).
- Jeśli twój scenariusz jest zgodny z jednym z przykładowych notesów podanych w dokumentacji usługi Databricks, dostosuj ten kod jako szkielet.
- Minimalne polecenie: Oprzyj się pokusie zbytniego skomplikowania poleceń na tym etapie. Zachowaj zwięzłe instrukcje bezpośrednio związane z zadaniami początkowymi.
-
Wybierz podstawowy wzorzec projektowania: W przypadku proof of concept zacznij od podstawowego łańcucha (takiego jak ustalona sekwencja kroków) lub jednego agenta wywołującego narzędzia (gdzie LLM może dynamicznie używać jednego lub dwóch podstawowych narzędzi).
-
dołączanie narzędzi
-
Integracja narzędzi: Jeśli używasz wzorca projektowego łańcucha, kroki wywołujące każde narzędzie będą na stałe zakodowane. W agencie do wywoływania narzędzi podaj schemat, aby LLM wiedział, jak wywołać funkcję.
- Zweryfikuj, czy narzędzia w izolacji działają zgodnie z oczekiwaniami, przed dołączeniem ich do systemu agenta i testowaniem od początku do końca.
- Guardrails: Jeśli agent może modyfikować systemy zewnętrzne lub uruchamiać kod, upewnij się, że masz podstawowe kontrole bezpieczeństwa i zabezpieczenia (takie jak ograniczenie liczby wywołań lub ograniczenie niektórych akcji). Zaimplementuj je w funkcji Unity Catalog .
-
Integracja narzędzi: Jeśli używasz wzorca projektowego łańcucha, kroki wywołujące każde narzędzie będą na stałe zakodowane. W agencie do wywoływania narzędzi podaj schemat, aby LLM wiedział, jak wywołać funkcję.
-
Śledź i rejestruj agenta za pomocą MLflow
- Śledzenie każdego kroku: Używanie śledzenia MLflow do przechwytywania danych wejściowych, danych wyjściowych i czasu, który upłynął, do debugowania problemów i mierzenia wydajności.
- Zaloguj agenta: Użyj MLflow Tracking do zarejestrowania kodu i konfiguracji agenta.
Na tym etapie doskonałość nie jest celem. Potrzebujesz prostego, działającego agenta, który można wdrożyć na potrzeby wczesnej opinii użytkowników testowych i MŚP. Następnym krokiem jest uruchomienie szybkiej kontroli jakości przed udostępnieniem jej w środowisku przedprodukcyjnym.
c. Sprawdzanie jakości
Przed udostępnieniem agenta szerszej grupie odbiorców przedprodukcyjnych, uruchom kontrolę jakości offline na poziomie 'wystarczającym', aby przechwycić wszelkie poważne problemy przed wdrożeniem go w punkcie docelowym. Na tym etapie zwykle nie będziesz posiadać dużego, solidnego zestawu danych ewaluacyjnych, ale nadal możesz wykonać szybką kontrolę, aby upewnić się, że agent zachowuje się zgodnie z zamierzeniami w przypadku kilku przykładowych zapytań.
-
Przetestuj interaktywnie w notatniku
- Testowanie ręczne: Ręcznie wywołaj agenta z reprezentatywnymi żądaniami. Zwróć uwagę na to, czy pobiera odpowiednie dane, wywołuje narzędzia poprawnie i postępuj zgodnie z żądanym formatem.
- Inspekcja śladów MLflow: Jeśli włączono Śledzenie MLflow, przegląd telemetrii krok po kroku. Upewnij się, że agent wybiera odpowiednie narzędzia, obsługuje błędy bezpiecznie i nie generuje nieoczekiwanych pośrednich żądań ani wyników.
- Sprawdź opóźnienie: Zwróć uwagę, jak długo trwa uruchamianie każdego żądania. Jeśli czasy odpowiedzi lub użycie tokenu są zbyt wysokie, może być konieczne oczyszczenie kroków lub uproszczenie logiki przed kontynuowaniem.
- sprawdzanie vibe
- Można to zrobić w zeszycie lub w AI Playground.
- spójność & poprawność: Czy dane wyjściowe agenta mają sens dla przetestowanych zapytań? Czy istnieją rażące niedokładności lub brakujące szczegóły?
- Przypadki brzegowe: Jeśli próbowano wykonać kilka nietypowych zapytań, czy agent nadal odpowiadał logicznie lub przynajmniej dyskretnie zawiódł (na przykład uprzejmie odmówił odpowiedzi zamiast generować niesensowne dane wyjściowe)?
- Przestrzeganie poleceń: Jeśli podano ogólne instrukcje, takie jak żądany ton lub formatowanie, czy agent się do nich stosuje?
-
Ocenić jakość spełniającą wymagania
- Jeśli w tym momencie masz ograniczoną liczbę zapytań testowych, rozważ wygenerowanie danych syntetycznych. Zobacz Utwórz zestaw oceny.
- Rozwiązywanie poważnych problemów: Jeśli wykryjesz poważne wady (na przykład agent wielokrotnie wywołuje nieprawidłowe narzędzia lub generuje nieprawdziwe dane), napraw te problemy przed ujawnieniem ich szerszej publiczności. Zobacz Typowe problemy z jakością i sposoby ich rozwiązywania.
- Zdecydować o wykonalności: Jeśli agent spełnia podstawowy standard użyteczności i poprawności dla małego zestawu zapytań, możesz kontynuować. Jeśli nie, dopracuj komunikaty, napraw problemy z narzędziami lub danymi i przetestuj ponownie.
-
Planowanie następnych kroków
- Śledź ulepszenia: Dokumentuj wszelkie niedociągnięcia, które zdecydujesz się odroczyć. Po zebraniu rzeczywistych opinii w środowisku przedprodukcyjnym możesz je ponownie przejrzeć.
Jeśli wszystko wygląda na opłacalne w przypadku ograniczonego wdrożenia, możesz przystąpić do wdrażania agenta w środowisku przedprodukcyjnym. Szczegółowy proces oceny będzie odbywać się w późniejszych fazach, zwłaszcza po uzyskaniu więcej rzeczywistych danych, opinii ekspertów i ustrukturyzowanego zestawu do oceny. Na razie skoncentruj się na zapewnieniu, że agent niezawodnie demonstruje jego podstawowe funkcje.
d. Wdrażanie agenta przedprodukcyjnego
Po tym, jak twój agent osiągnie bazowy próg jakości, kolejnym krokiem jest jego umieszczenie w środowisku przedprodukcyjnym, dzięki czemu można zrozumieć, jak użytkownicy zgłaszają zapytania dotyczące aplikacji i zbierać ich opinie w celu dalszego rozwoju. To środowisko może być twoim środowiskiem deweloperskim w fazie POC. Głównym wymaganiem jest to, że środowisko jest dostępne do wybierania wewnętrznych testerów lub ekspertów domeny.
-
Wdrażanie agenta
- Zaloguj i zarejestruj agenta: Najpierw, zaloguj agenta jako model MLflow i zarejestruj go w Unity Catalog.
- Wdrażanie przy użyciu Agent Framework: użyj Agent Framework, aby przejąć zarejestrowanego agenta i wdrożyć go jako punkt końcowy do obsługi modelu.
- Tabele wnioskowania
-
Zabezpieczanie i konfigurowanie
- Kontrola dostępu:ogranicz dostęp do punktów końcowych do grupy testowej (MŚP, użytkownicy zasilania). Zapewnia to kontrolowane użycie i pozwala uniknąć nieoczekiwanego ujawnienia danych.
- uwierzytelnianie: Upewnij się, że wszystkie wymagane tajne dane, tokeny API lub połączenia z bazą danych są prawidłowo skonfigurowane.
Masz teraz kontrolowane środowisko do zbierania opinii na temat rzeczywistych zapytań. Jednym ze sposobów szybkiej interakcji z agentem jest w AI Playground, gdzie można wybrać nowo utworzony punkt końcowy udostępniania modelu i przesłać zapytanie do agenta.
e. Zbieranie opinii użytkowników
Po wdrożeniu agenta w środowisku przedprodukcyjnym następnym krokiem jest zebranie opinii od rzeczywistych użytkowników i MŚP w celu wykrycia luk, wykrywania niedokładności i dalszego uściślinia agenta.
Użyj aplikacji przeglądowej
- Podczas wdrażania agenta za pomocą platformy Agent Framework zostanie utworzona prosta aplikacja typu Review. Zapewnia przyjazny dla użytkownika interfejs, w którym testerzy mogą dawać pytania i natychmiast oceniać odpowiedzi agenta.
- Wszystkie żądania, odpowiedzi i opinie użytkowników (kciuki w górę/w dół, pisemne komentarze) są automatycznie rejestrowane w tabeli wnioskowania , co ułatwia późniejsze analizowanie.
Użyj interfejsu monitorowania, aby przejrzeć dzienniki
angażowanie ekspertów w dziedzinie
- Zachęcaj MŚP do przeprowadzania typowych i nietypowych scenariuszy. Wiedza na temat domeny pomaga uwidocznieć drobne błędy, takie jak błędy interpretacji zasad lub brakujące dane.
- Zachowaj rejestr problemów, od drobnych sugerowanych zmian do większych refaktoryzacji potoku danych. Zdecyduj, które poprawki należy priorytetowo uwzględnić przed kontynuowaniem.
Dobierz nowe dane oceny
- Konwertowanie znaczących lub problematycznych interakcji na przypadki testowe. Z czasem stanowią one podstawę bardziej niezawodnego zestawu danych oceny.
- Jeśli to możliwe, dodaj poprawne lub oczekiwane odpowiedzi do tych przypadków. Pomaga to zmierzyć jakość w kolejnych cyklach oceny.
iteruj na podstawie opinii
- Zastosuj szybkie poprawki, takie jak małe zmiany monitów lub nowe bariery ochronne, aby rozwiązać problemy z bezpośrednimi punktami bólu.
- W przypadku bardziej złożonych problemów, takich jak wymaganie zaawansowanej logiki wieloetapowej lub nowych źródeł danych, należy zebrać wystarczające dowody przed zainwestowaniem w poważne zmiany architektury.
Dzięki wykorzystaniu opinii z aplikacji Review, logów tabel inferencyjnych i spostrzeżeń ekspertów merytorycznych, ta faza przedprodukcyjna pomaga uwidocznić kluczowe luki i iteracyjnie uściślić agenta. Rzeczywiste interakcje zebrane w tym kroku tworzą podstawę do tworzenia ustrukturyzowanego zestawu oceny, co pozwala przejść od ulepszeń ad hoc do bardziej systematycznego podejścia do pomiaru jakości. Po rozwiązaniu powtarzających się problemów i stabilizacji wydajności będziesz dobrze przygotowany do wdrożenia produkcyjnego z niezawodną oceną.
2. Ocenić & iterować
Po przetestowaniu aplikacji sztucznej inteligencji gen w środowisku przedprodukcyjnym następnym krokiem jest systematyczne mierzenie, diagnozowanie i udoskonalanie jego jakości. Ta faza "oceny i iterowania" przekształca nieprzetworzone opinie i dzienniki w ustrukturyzowany zestaw oceny, co pozwala na wielokrotne testowanie ulepszeń i zapewnienie, że aplikacja spełnia wymagane standardy dokładności, istotności i bezpieczeństwa.
Ta faza obejmuje następujące kroki:
- Zbieranie rzeczywistych zapytań z dzienników: Konwertowanie interakcji o wysokiej wartości lub problematycznych z tabel wnioskowania do przypadków testowych.
- Dodaj etykiety ekspertów: Tam, gdzie to możliwe, dołącz obiektywne kryteria lub wytyczne dotyczące stylu i zasad do tych przypadków, aby można było mierzyć poprawność, uzasadnienie oraz inne wymiary jakości bardziej obiektywnie.
- Wykorzystanie oceny agenta: Użyj wbudowanych sędziów LLM lub niestandardowych kontroli w celu określenia jakości aplikacji.
- Iteracja: Popraw jakość, udoskonalając logikę agenta, potoki danych lub monity. Uruchom ponownie ocenę, aby potwierdzić, czy rozwiązano kluczowe problemy.
Należy pamiętać, że te możliwości działają nawet wtedy, gdy aplikacja generatywnej AI działa poza platformą Databricks. Instrumentując kod za pomocą śledzenia MLflow, można przechwytywać ślady z dowolnego środowiska i ujednolicić je na platformie analizy danych usługi Databricks w celu spójnego oceniania i monitorowania. W miarę dalszego uwzględniania nowych zapytań, opinii i spostrzeżeń ekspertów merytorycznych, zestaw danych oceny staje się żywym zasobem, który stanowi podstawę ciągłego cyklu doskonalenia, zapewniając, że generatywna aplikacja AI pozostaje solidna, niezawodna i zgodna z celami biznesowymi.
a. Oceń agenta
Gdy twój agent działa w środowisku przedprodukcyjnym, następnym krokiem jest systematyczne mierzenie jego wydajności poza próbnymi sprawdzeniami. Mosaic AI Agent Evaluation umożliwia tworzenie zestawów oceny, uruchamianie kontroli jakości z wbudowanymi lub niestandardowymi sędziami LLM oraz szybkie iterowanie nad problematycznymi obszarami.
Oceny offline i online
Podczas oceniania aplikacji sztucznej inteligencji generacji istnieją dwa podstawowe podejścia: ocena w trybie offline i ocena online. Ta faza cyklu programowania koncentruje się na ocenie offline, która odnosi się do systematycznej oceny poza interakcjami użytkowników na żywo. Ocena online zostanie omówiona później podczas omawiania monitorowania agenta w środowisku produkcyjnym.
Zespoły często zbyt długo polegają na nieformalnym "testowaniu klimatu" w przepływie pracy deweloperów, próbując kilka zapytań i subiektywnie oceniając, czy odpowiedzi wydają się uzasadnione. Chociaż zapewnia to punkt wyjścia, brakuje mu rygoru i zakresu potrzebnego do tworzenia aplikacji na poziomie produkcyjnym.
Z kolei odpowiedni proces oceny offline wykonuje następujące czynności:
- ustanawia punkt odniesienia jakości przed szerszym wdrożeniem, tworząc jasne metryki przeznaczone do poprawy.
- Identyfikuje konkretne słabe strony, które wymagają uwagi, wykraczając poza ograniczenie tylko oczekiwanych przypadków użycia.
- Wykrywa jakościowe regresje podczas ulepszania aplikacji dzięki automatycznemu porównywaniu wydajności między wersjami.
- Udostępnia ilościowe metryki, aby zademonstrować poprawę dla uczestników projektu.
- Pomaga wykrywać przypadki brzegowe i potencjalne sposoby awarii, zanim zrobią to użytkownicy.
- zmniejsza ryzyko wdrażania słabo działającego agenta w produkcyjnym wdrożeniu.
Inwestowanie czasu w ocenę offline przynosi znaczne korzyści w dłuższej perspektywie, pomagając osiągnąć stale wysoką jakość odpowiedzi.
Tworzenie zestawu oceny
Zestaw oceny służy jako podstawa do mierzenia wyników aplikacji gen AI. Podobnie jak zestaw testów w tradycyjnym tworzeniu oprogramowania, ta kolekcja reprezentatywnych zapytań i oczekiwanych odpowiedzi staje się zestawem danych testów porównawczych jakości i testowania regresji.
Zestaw oceny można utworzyć za pomocą kilku uzupełniających metod:
przekształć logi tabeli wnioskowania w przykłady oceny
Najbardziej cenne dane ewaluacyjne pochodzą bezpośrednio z rzeczywistego użycia. Twoje wdrożenie przedprodukcyjne wygenerowało dzienniki logów tabel wnioskowania, zawierające żądania, odpowiedzi agenta, wywołania narzędzi i przywołany kontekst.
Konwertowanie tych dzienników na zestaw oceny zapewnia kilka zalet:
- Zasięg w świecie rzeczywistym: Uwzględniane są nieprzewidywalne zachowania użytkowników, których nie można było wcześniej przewidzieć.
- Skoncentrowane na problemach: Możesz filtrować specjalnie pod kątem negatywnych opinii lub powolnych odpowiedzi.
- Dystrybucja reprezentatywna: Rzeczywista częstotliwość różnych typów zapytań jest przechwytywana.
Generowanie syntetycznych danych oceny
Jeśli nie masz wyselekcjonowanych zestawów zapytań użytkownika, możesz automatycznie wygenerować syntetyczny zestaw danych oceny. Ten "zestaw startowy" zapytań pomaga szybko ocenić, czy agent:
- Zwraca spójne, dokładne odpowiedzi.
- Odpowiada w odpowiednim formacie.
- Uwzględnia strukturę, tonność i wytyczne dotyczące zasad.
- Poprawnie pobiera kontekst (RAG).
Dane syntetyczne zwykle nie są idealne. Pomyśl o tym jako tymczasowy kamień krokowy. Warto również wykonać następujące czynności:
- Niech MŚP lub eksperci w swojej dziedzinie przejrzą i usuną wszelkie nieistotne lub powtarzające się zapytania.
- Zastąp lub rozszerz go później rzeczywistymi dziennikami użycia.
-
Jeśli wolisz nie polegać na danych syntetycznych lub nie masz jeszcze dzienników wnioskowania, zidentyfikuj od 10 do 15 rzeczywistych lub reprezentatywnych zapytań i utwórz zestaw oceny na podstawie tych danych. Reprezentatywne zapytania mogą pochodzić z wywiadów użytkowników lub burzy mózgów deweloperów. Nawet krótka, wyselekcjonowana lista może uwidocznić rażące wady w odpowiedziach agenta.
Te podejścia nie wykluczają się wzajemnie, ale uzupełniają. Efektywny zestaw oceny ewoluuje wraz z upływem czasu i zazwyczaj łączy przykłady z wielu źródeł, w tym następujące:
- Zacznij od ręcznie wyselekcjonowanych przykładów, aby przetestować podstawowe funkcje.
- Opcjonalnie dodaj syntetyczne dane, aby poszerzyć zakres przed posiadaniem rzeczywistych danych użytkownika.
- Stopniowo dołączaj dzienniki w świecie rzeczywistym, gdy staną się dostępne.
- Stale odświeżaj się przy użyciu nowych przykładów, które odzwierciedlają zmieniające się wzorce użycia.
Najlepsze rozwiązania dotyczące zapytań ewaluacyjnych
Podczas tworzenia zestawu ewaluacyjnych celowo uwzględnij różne typy zapytań, takie jak:
- Zarówno oczekiwane, jak i nieoczekiwane wzorce użycia (takie jak bardzo długie lub krótkie żądania).
- Potencjalne próby nieprawidłowego użycia lub ataki polegające na wstrzyknięciu polecenia (na przykład próby ujawnienia zapytania systemowego).
- Złożone zapytania wymagające wielu kroków rozumowania lub wywołań narzędzi.
- Przypadki brzegowe z minimalnymi lub niejednoznacznymi informacjami (takimi jak błędy lub niejasne zapytania).
- Przykłady reprezentujące różne poziomy umiejętności i różne pochodzenie.
- Zapytania, które testuje potencjalne uprzedzenia w odpowiedziach (na przykład "porównaj firmę A z firmą B").
Pamiętaj, że zestaw oceny powinien rosnąć i rozwijać się wraz z aplikacją. W miarę odnajdowania nowych trybów awarii lub zachowań użytkowników dodaj reprezentatywne przykłady, aby upewnić się, że agent będzie nadal ulepszany w tych obszarach.
Dodawanie kryteriów oceny
Każdy przykład oceny powinien mieć kryteria oceny jakości. Te kryteria służą jako standardy, względem których są mierzone odpowiedzi agenta, umożliwiając obiektywną ocenę w wielu wymiarach jakości.
Podstawowe fakty lub odpowiedzi referencyjne
Podczas oceniania dokładności faktów istnieją dwa główne podejścia: oczekiwane fakty lub odpowiedzi referencyjne. Każda z nich ma inny cel w strategii oceny.
Użyj oczekiwanych faktów (zalecane)
Podejście expected_facts obejmuje wyświetlenie kluczowych faktów, które powinny pojawić się w poprawnej odpowiedzi. Aby zapoznać się z przykładem, zobacz zestaw przykładowej oceny z request
, response
, guidelines
i expected_facts
.
Takie podejście zapewnia znaczne korzyści:
- Umożliwia elastyczność w sposobie wyrażenia faktów w odpowiedzi.
- Ułatwia MŚP zapewnienie podstawowej prawdy.
- Uwzględnia różne style odpowiedzi przy jednoczesnym zapewnieniu obecności podstawowych informacji.
- Umożliwia bardziej niezawodną ocenę między wersjami modelu lub ustawieniami parametrów.
Wbudowany sędzia poprawności sprawdza, czy odpowiedź agenta zawiera te podstawowe fakty, niezależnie od fraz, kolejności lub dodatkowej zawartości.
Użyj oczekiwanej odpowiedzi (alternatywnej)
Alternatywnie możesz podać pełną odpowiedź referencyjną. Takie podejście działa najlepiej w następujących sytuacjach:
- Masz złote standardowe odpowiedzi utworzone przez ekspertów.
- Dokładne sformułowanie lub struktura odpowiedzi ma znaczenie.
- Oceniasz odpowiedzi w wysoce regulowanych kontekstach.
usługa Databricks zwykle zaleca używanie expected_facts
zamiast expected_response
, ponieważ zapewnia większą elastyczność, jednocześnie zapewniając dokładność.
Wskazówki dotyczące zgodności stylu, tonu lub zasad
Poza dokładnością faktów może być konieczne sprawdzenie, czy odpowiedzi są zgodne z określonym stylem, tonem lub wymaganiami zasad.
Tylko wytyczne
Jeśli twoim podstawowym problemem jest wymuszanie wymagań dotyczących stylu lub zasad, a nie dokładność faktów, można podać wytyczne bez oczekiwanych faktów:
# Per-query guidelines
eval_row = {
"request": "How do I delete my account?",
"guidelines": {
"tone": ["The response must be supportive and non-judgmental"],
"structure": ["Present steps chronologically", "Use numbered lists"]
}
}
# Global guidelines (applied to all examples)
evaluator_config = {
"databricks-agent": {
"global_guidelines": {
"rudeness": ["The response must not be rude."],
"no_pii": ["The response must not include any PII information (personally identifiable information)."]
}
}
}
Sędzia LLM wytycznych interpretuje te instrukcje języka naturalnego i ocenia, czy odpowiedź jest z nimi zgodna. Działa to szczególnie dobrze w przypadku subiektywnych wymiarów jakości, takich jak ton, formatowanie i przestrzeganie zasad organizacyjnych.
Łączenie podstawowych prawd i wytycznych
Aby przeprowadzić kompleksową ocenę, można połączyć faktyczne kontrole dokładności z wytycznymi dotyczącymi stylu. Zobacz zestaw oceny z użyciem request
, response
, guidelines
i expected_facts
. Takie podejście zapewnia, że odpowiedzi są zarówno dokładne, jak i zgodne ze standardami komunikacyjnymi organizacji.
Używanie wstępnie przechwyconych odpowiedzi
Jeśli masz już przechwycone pary żądań-odpowiedzi z programowania lub testowania, możesz je ocenić bezpośrednio bez ponownego wywoływania agenta. Jest to przydatne w następujących celach:
- Analizowanie istniejących wzorców w zachowaniu agenta.
- Testowanie porównawcze wydajności względem poprzednich wersji.
- Oszczędność czasu i kosztów przez brak ponownego generowania odpowiedzi.
- Ocenianie agenta obsługiwanego poza programem Databricks.
Aby uzyskać szczegółowe informacje na temat udostępniania odpowiednich kolumn w ramce danych dotyczącej oceny, zobacz Przykład: Jak przekazać wcześniej wygenerowane dane wyjściowe do oceny agenta. Ocena agenta Mosaic AI wykorzystuje te wstępnie przechwycone wartości zamiast ponownie wywoływać agenta, jednocześnie stosując te same kontrole jakości i metryki.
Najlepsze rozwiązania dotyczące kryteriów oceny
Podczas definiowania kryteriów oceny:
-
Być specyficznym i obiektywnym: Zdefiniować jasne, mierzalne kryteria, które będą interpretowane w podobny sposób przez różnych ewaluatorów.
- Rozważ dodanie metryk niestandardowych w celu mierzenia kryteriów jakości, które cię interesują.
- Skoncentruj się na wartości dla użytkownika: Ustalaj priorytety dla kryteriów, które są zgodne z tym, co najważniejsze dla użytkowników.
- Rozpocznij od prostego: Rozpocznij od podstawowego zestawu kryteriów i rozwijaj się w miarę rozwoju rozumienia potrzeb dotyczących jakości.
- Pokrycie salda: Uwzględnij kryteria spełniające różne aspekty jakości (na przykład dokładność faktów, styl i bezpieczeństwo).
- Iteruj na podstawie opinii: Uściślić kryteria na podstawie opinii użytkowników i zmieniających się wymagań.
Zobacz Najlepsze rozwiązania dotyczące tworzenia zestawu oceny, aby uzyskać więcej informacji na temat tworzenia zestawów danych oceny wysokiej jakości.
Uruchamianie ocen
Po przygotowaniu zestawu oceny z zapytaniami i kryteriami możesz uruchomić ocenę przy użyciu mlflow.evaluate()
. Ta funkcja obsługuje cały proces oceny, od wywołania agenta do analizowania wyników.
Podstawowy przepływ pracy oceny
Uruchomienie podstawowej oceny wymaga tylko kilku wierszy kodu. Aby uzyskać szczegółowe informacje, zobacz Przeprowadzenie oceny.
Kiedy ocena jest uruchomiona:
- Dla każdego wiersza w zestawie ewaluacyjnym
mlflow.evaluate()
wykonuje następujące czynności:- Wywołuje agenta z pytaniem (jeśli jeszcze nie udzieliłeś odpowiedzi).
- Stosuje wbudowane mechanizmy sędziowskie LLM do oceniania wymiarów jakości.
- Oblicza metryki operacyjne, takie jak użycie tokenu i opóźnienie.
- Rejestruje szczegółowe uzasadnienie każdej oceny.
- Wyniki są automatycznie rejestrowane w usłudze MLflow, tworząc:
- Oceny jakości poszczególnych wierszy.
- Zagregowane metryki we wszystkich przykładach.
- Szczegółowe dzienniki debugowania i analizy.
Dostosowywanie oceny
Ocenę można dostosować do konkretnych potrzeb przy użyciu dodatkowych parametrów. Parametr evaluator_config
umożliwia wykonanie następujących czynności:
- Wybierz, które wbudowane moduły oceniające uruchomić.
- Ustaw globalne wytyczne, które mają zastosowanie do wszystkich przykładów.
- Konfigurowanie progów dla sędziów.
- Podaj kilka przykładów, aby kierować ocenami sędziów.
Aby uzyskać szczegółowe informacje i przykłady, zobacz przykłady .
Ocena agentów spoza usługi Databricks
Jedną z zaawansowanych funkcji Agenta Evaluation jest możliwość oceny aplikacji AI generatywnej wdrożonych w dowolnym miejscu, nie tylko na platformie Databricks.
Którzy sędziowie są zastosowani
Domyślnie ocena agenta automatycznie wybiera odpowiednich sędziów LLM na podstawie danych dostępnych w zestawie ewaluacyjnym. Aby uzyskać szczegółowe informacje na temat oceny jakości, zobacz Jak jakość jest oceniana przez sędziów LLM.
Analizowanie wyników oceny
Po uruchomieniu oceny interfejs użytkownika platformy MLflow udostępnia wizualizacje i szczegółowe informacje, aby zrozumieć wydajność aplikacji. Ta analiza ułatwia identyfikowanie wzorców, diagnozowanie problemów i określanie priorytetów ulepszeń.
Nawigowanie po wynikach oceny
Po otwarciu interfejsu użytkownika platformy MLflow po uruchomieniu mlflow.evaluate(),
znajdziesz kilka połączonych widoków. Aby uzyskać informacje na temat sposobu nawigowania po tych wynikach w interfejsie użytkownika platformy MLflow, zobacz Przeglądanie danych wyjściowych przy użyciu interfejsu użytkownika platformy MLflow.
Aby uzyskać wskazówki dotyczące interpretowania wzorców błędów, zobacz b. Ulepszanie agenta i narzędzi.
Niestandardowe narzędzia AI oceniające metryki &
Podczas gdy wbudowane mechanizmy oceny obejmują wiele typowych kontroli (takich jak poprawność, styl, zasady i bezpieczeństwo), może być konieczna ocena aspektów specyficznych dla danej domeny działania aplikacji. Własne kryteria oceny i metryki pozwalają rozszerzyć ocenę, aby spełnić szczególne wymagania dotyczące jakości.
Aby uzyskać szczegółowe informacje na temat tworzenia niestandardowego sędziego LLM na podstawie polecenia, zobacz Tworzenie sędziów sztucznej inteligencji na podstawie polecenia.
Sędziowie specjalizowani wyróżniają się w ocenie subiektywnych lub zniuansowanych aspektów jakości, które wymagają osądu zbliżonego do ludzkiego, takich jak:
- Zgodność specyficzna dla domeny (zgodność prawna, medyczna, finansowa).
- Styl komunikacji i głosu marki.
- Wrażliwość kulturowa i odpowiedniość.
- Złożona jakość rozumowania.
- Wyspecjalizowane konwencje pisania.
Wyniki sędziego pojawiają się w interfejsie użytkownika MLflow obok wbudowanych sędziów, z tymi samymi szczegółowymi uzasadnieniami wyjaśniającymi oceny.
Aby uzyskać więcej ocen programistycznych, deterministycznych, można utworzyć metryki niestandardowe przy użyciu dekoratora @metric
. Zobacz @metric
dekorator.
Metryki niestandardowe są idealne dla:
- Weryfikowanie wymagań technicznych, takich jak walidacja formatu i zgodność schematu.
- Sprawdzanie obecności lub braku określonej zawartości.
- Wykonywanie pomiarów ilościowych, takich jak długość odpowiedzi lub wyniki złożoności.
- Implementowanie reguł walidacji specyficznych dla firmy.
- Integracja z zewnętrznymi systemami walidacji.
b. Ulepszanie agenta i narzędzi
Po przeprowadzeniu oceny i zidentyfikowaniu problemów z jakością następnym krokiem jest systematyczne rozwiązywanie tych problemów w celu zwiększenia wydajności. Wyniki oceny zapewniają cenny wgląd w to, gdzie i w jaki sposób agent ponosi porażkę, dzięki czemu można wprowadzać ukierunkowane ulepszenia, a nie losowe korekty.
typowe problemy z jakością i sposoby ich rozwiązywania
Oceny sędziów LLM na podstawie wyników z przeprowadzonej oceny wskazują na określone typy błędów w systemie agenta. W tej sekcji opisano te typowe wzorce błędów i ich rozwiązania. Aby uzyskać informacje na temat interpretowania danych wyjściowych sędziego LLM, zobacz dane wyjściowe sędziego sztucznej inteligencji.
Najlepsze praktyki dotyczące iteracji jakości
Podczas iterowania ulepszeń zachowaj rygorystyczną dokumentację. Na przykład:
-
Wersjonuj swoje zmiany
- Rejestrowanie każdej znaczącej iteracji za pomocą MLflow Tracking.
- Zapisz napomnienia, konfiguracje i kluczowe parametry w centralnym pliku konfiguracyjnym. Upewnij się, że jest to zarejestrowane przez agenta.
- Dla każdego nowego wdrożonego agenta zachowaj dziennik zmian w repozytorium zawierający szczegółowe informacje o tym, co się zmieniło i dlaczego.
-
Dokument zarówno to, co działało, jak i nie działało
- Dokumentowanie zarówno pomyślnych, jak i nieudanych podejść.
- Zwróć uwagę na konkretny wpływ każdej zmiany na metryki. Połącz ponownie z zadaniem uruchomionym w MLflow oceny agenta.
-
Uzgodnienie z interesariuszami
- Użyj aplikacji Przegląd, aby zweryfikować ulepszenia za pomocą MŚP.
- Aby zobaczyć porównanie obok siebie różnych wersji agenta, rozważ utworzenie wielu punktów końcowych agenta i korzystanie z modelu w AI Playground. Dzięki temu użytkownicy mogą wysyłać to samo żądanie do oddzielnych punktów końcowych i badać odpowiedź i ślady obok siebie.
3. Produkcja
Po iteracyjnej ocenie i ulepszaniu aplikacji osiągnięto poziom jakości, który spełnia Twoje wymagania i jest gotowy do szerszego użycia. Faza produkcji obejmuje wdrożenie wyrafinowanego agenta w środowisku produkcyjnym i wdrożenie ciągłego monitorowania w celu utrzymania jakości w czasie.
Faza produkcji obejmuje:
- Wdrażanie agenta w środowisku produkcyjnym: Skonfigurować punkt końcowy gotowy do produkcji z odpowiednimi zabezpieczeniami, skalowaniem i ustawieniami uwierzytelniania.
- Monitorowanie agenta w środowisku produkcyjnym: Ustanów ciągłą ocenę jakości, śledzenie wydajności i alerty w celu zapewnienia, że agent utrzymuje wysoką jakość i niezawodność w rzeczywistym użyciu.
Spowoduje to utworzenie pętli sprzężenia zwrotnego, w której wnioski z monitorowania napędzają dalsze ulepszenia, które można testować, wdrażać i monitorować. Takie podejście zapewnia, że aplikacja pozostaje wysokiej jakości, zgodna z zmieniającymi się potrzebami biznesowymi w całym cyklu życia.
a. Wdróż agenta do środowiska produkcyjnego
Po zakończeniu dokładnej oceny i iteracyjnych ulepszeń możesz przystąpić do wdrażania agenta w środowisku produkcyjnym. [Mosaic AI Agent Framework](/generative-ai/agent-framework/build-gen AI-apps.md#agent-framework) upraszcza ten proces, automatycznie obsługując wiele problemów związanych z wdrażaniem.
Proces wdrażania
Wdrożenie agenta w środowisku produkcyjnym obejmuje następujące kroki:
- Zaloguj i zarejestruj swojego agenta jako model MLflow w Unity Catalog.
- Wdrażanie agenta przy użyciu platformy Agent Framework.
- Skonfiguruj uwierzytelnianie dla wszystkich zasobów zależnych, do których agent musi uzyskać dostęp.
- Przetestuj wdrożenie, aby zweryfikować funkcjonalność w środowisku produkcyjnym.
- Gdy punkt końcowy obsługujący model będzie gotowy, możesz wchodzić w interakcję z agentem na placu zabaw dla sztucznej inteligencji, gdzie można testować i weryfikować funkcje.
Aby uzyskać szczegółowe instrukcje implementacji, sprawdź Wdrażanie agenta dla generatywnego zastosowania AI.
Zagadnienia dotyczące wdrażania produkcyjnego
Podczas przechodzenia do środowiska produkcyjnego należy pamiętać o następujących kluczowych kwestiach:
wydajność i skalowanie
- Równoważenie kosztów i wydajności na podstawie oczekiwanych wzorców użycia.
- Rozważ włączenie przejścia na skalę zerową dla sporadycznie używanych agentów w celu zmniejszenia kosztów.
- Zapoznaj się z wymaganiami dotyczącymi opóźnień w zależności od potrzeb środowiska użytkownika aplikacji.
bezpieczeństwo i zarządzanie
- Zapewnij odpowiednie mechanizmy kontroli dostępu na poziomie Unity Catalog dla wszystkich komponentów agenta.
- Użyj wbudowanego mechanizmu przekazywania uwierzytelnienia dla zasobów Databricks tam, gdzie to możliwe.
- Skonfiguruj odpowiednie zarządzanie poświadczeniami dla zewnętrznych interfejsów API lub źródeł danych.
podejście do integracji
- Określ sposób interakcji aplikacji z agentem (na przykład przy użyciu interfejsu API lub interfejsu osadzonego).
- Rozważ sposób obsługi i wyświetlania odpowiedzi agenta w aplikacji.
- Jeśli aplikacja kliencka potrzebuje dodatkowego kontekstu (takiego jak odwołania do dokumentu źródłowego lub współczynniki ufności), zaprojektuj agenta, aby uwzględnił te metadane w odpowiedziach (na przykład przy użyciu niestandardowych danych wyjściowych).
- Zaplanuj obsługę błędów i mechanizmy rezerwowe, jeśli agent jest niedostępny.
zbieranie opinii
- Skorzystaj z aplikacji Przegląd, aby uzyskać opinie uczestników projektu podczas początkowego wdrożenia.
- Mechanizmy projektowania służące do zbierania opinii użytkowników bezpośrednio w interfejsie aplikacji.
- Punkt końcowy opinii utworzony do zbierania opinii z aplikacji recenzji może być również używany przez aplikacje zewnętrzne do przekazywania opinii na temat Twojego agenta. Zobacz Prześlij opinię na temat wdrożonego agenta.
- Upewnij się, że dane opinii przepływają do procesu oceny i ulepszania.
b. Monitoruj agenta w produkcji
Po wdrożeniu agenta w środowisku produkcyjnym niezbędne jest ciągłe monitorowanie jego wydajności, jakości i wzorców użycia. W przeciwieństwie do tradycyjnego oprogramowania, w którym funkcje są deterministyczne, aplikacje sztucznej inteligencji generacji mogą wykazywać dryf jakości lub nieoczekiwane zachowania, gdy napotykają rzeczywiste dane wejściowe. Skuteczne monitorowanie umożliwia wczesne wykrywanie problemów, zrozumienie wzorców użycia i ciągłe ulepszanie jakości aplikacji.
Konfigurowanie monitorowania agenta
Mozaika AI zapewnia wbudowane funkcje monitorowania , które umożliwiają śledzenie wydajności agenta bez tworzenia niestandardowej infrastruktury monitorowania:
- Utwórz monitor dla wdrożonego agenta.
- Skonfiguruj częstotliwość próbkowania i częstotliwość na podstawie potrzeb dotyczących ilości ruchu i monitorowania.
- Wybierz metryki jakości, aby automatycznie oceniać próbkowane żądania.
Kluczowe wymiary monitorowania
Ogólnie rzecz biorąc, skuteczne monitorowanie powinno obejmować trzy krytyczne wymiary:
Metryki operacyjne
- Żądaj woluminu i wzorców.
- Opóźnienie odpowiedzi.
- Współczynniki błędów i typy.
- Użycie tokenu i koszty.
metryki jakości
- Istotność zapytań użytkowników.
- Zakotwiczenie w pobranym kontekście.
- Przestrzeganie bezpieczeństwa i wytycznych.
- Ogólna szybkość przekazywania jakości.
opinii użytkowników
- Jawna opinia (kciuki w górę/w dół).
- Niejawne sygnały (pytania dotyczące kontynuacji, porzucone konwersacje).
- Problemy zgłaszane do kanałów pomocy technicznej.
Korzystanie z interfejsu monitorującego
Interfejs użytkownika monitorowania oferuje wizualne przedstawienie danych w obrębie tych wymiarów za pomocą dwóch zakładek.
- karta Wykresów: Przeglądaj trendy w wolumenie żądań, metrykach jakości, opóźnieniach i błędach w czasie.
- zakładka Dzienniki: Przejrzyj poszczególne żądania i odpowiedzi, łącznie z ich wynikami oceny.
Funkcje filtrowania umożliwiają użytkownikom wyszukiwanie określonych zapytań lub filtrowanie według wyniku oceny. Aby uzyskać więcej informacji, zobacz Skorzystaj z interfejsu monitorowania.
Tworzenie pulpitów nawigacyjnych i alertów
Aby uzyskać kompleksowe monitorowanie:
- Tworzenie niestandardowych pulpitów nawigacyjnych przy użyciu danych monitorowania przechowywanych w tabeli szacowanych śladów.
- Konfigurowanie alertów pod kątem krytycznej jakości lub progów operacyjnych.
- Zaplanuj regularne przeglądy jakości z kluczowymi uczestnikami projektu.
Cykl ciągłego ulepszania
Monitorowanie jest najbardziej cenne, gdy jest ono przesyłane z powrotem do procesu ulepszania:
- Identyfikowanie problemów za pomocą metryk monitorowania i opinii użytkowników.
- Eksportuj problematyczne przykłady do zestawu ewaluacyjnego.
- Diagnozowanie głównych przyczyn przy użyciu analizy śledzenia MLflow i wyników sędziego LLM (jak opisano w Typowe problemy z jakością i jak je rozwiązać).
- Opracuj i przetestuj ulepszenia w rozszerzonym zestawie ewaluacyjnym.
- Wdrażaj aktualizacje i monitoruj wpływ.
Ta metoda iteracyjna, zamknięta pętla pomaga zapewnić, że agent nadal ulepsza się w oparciu o rzeczywiste wzorce użycia, zachowując wysoką jakość, dostosowując się do zmieniających się wymagań i zachowań użytkowników. Dzięki monitorowaniu agentów możesz uzyskać wgląd w sposób działania agenta w środowisku produkcyjnym, co pozwala aktywnie rozwiązywać problemy i optymalizować jakość i wydajność.