Udostępnij za pośrednictwem


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.

0. Wymagania wstępne

  • Zbierz wymagania do oceny dopasowania do sztucznej inteligencji generatywnej i identyfikacji ograniczeń.
  • Projektowanie architektury rozwiązania. Zobacz Wzorce projektowe systemu agenta

1. Kompilowanie

  • Przygotuj źródła danych i utwórz niezbędne narzędzia.
  • Skompiluj i zweryfikuj początkowy prototyp (POC).
  • Wdrażanie w środowisku przedprodukcyjnym.

2. Ocena & Iterować

  • 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.

3. Produkcyjne

  • 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?
  • 🟡 [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
  • Modalność interakcji.
  • Typowe przykłady zapytań użytkownika.
  • Oczekiwany format odpowiedzi i styl.
  • Obsługa niejednoznacznych lub nieistotnych zapytań.
  • Interfejs czatu zintegrowany z usługą Slack.
  • Przykładowe zapytania: "Jak skrócić czas uruchamiania klastra?" "Jakiego rodzaju plan pomocy technicznej mam?"
  • Jasne, techniczne odpowiedzi z fragmentami kodu i linki do odpowiedniej dokumentacji tam, gdzie jest to konieczne.
  • W razie potrzeby podaj sugestie kontekstowe i eskaluj do inżynierów pomocy technicznej.
Logika agenta
  • Interpretacja i klasyfikacja zapytań.
  • Wieloetapowe planowanie i podejmowanie decyzji.
  • Autonomiczne wybieranie narzędzi i wykonywanie zadań.
  • Zarządzanie stanem i kontekstem między interakcjami.
  • Mechanizmy obsługi błędów i mechanizmy awaryjne.
  • Planowanie z wykorzystaniem technologii LLM z deterministycznymi rozwiązaniami awaryjnymi.
  • Integracja z zestawem wstępnie zdefiniowanych narzędzi (takich jak narzędzie do pobierania dokumentów lub narzędzie do pobierania danych z Salesforce).
  • Zachowaj stan konwersacji, aby zapewnić spójne interakcje obejmujące wiele obrotu i niezawodne odzyskiwanie błędów.
Dane
  • Liczba i typ źródeł danych.
  • Format danych i lokalizacja.
  • Rozmiar danych i częstotliwość aktualizacji.
  • Jakość i spójność danych.
  • Cztery źródła danych.
  • Dokumentacja firmy (HTML, PDF).
  • Rozwiązane zgłoszenia wsparcia technicznego (JSON).
  • Wpisy na forum społeczności (Tabela Delta).
  • Konektor Salesforce.
  • Dane przechowywane w katalogu Unity i aktualizowane co tydzień.
  • Całkowity rozmiar danych: 5 GB.
  • Spójna struktura danych i jakość utrzymywana przez dedykowane zespoły ds. dokumentów i pomocy technicznej.
Wydajność
  • Maksymalne dopuszczalne opóźnienie.
  • Ograniczenia kosztów.
  • Oczekiwane użycie i współbieżność.
  • Wymaganie dotyczące maksymalnego opóźnienia.
  • Ograniczenia kosztów.
  • Oczekiwano szczytowego obciążenia.
Ocena
  • Dostępność zestawu danych oceny.
  • Metryki jakości.
  • Zbieranie opinii użytkowników.
  • Eksperci z poszczególnych obszarów produktów pomagają przeglądać dane wyjściowe i dostosowywać niepoprawne odpowiedzi, aby utworzyć zestaw danych oceny.
  • Wskaźniki KPI biznesowe.
  • Zwiększenie współczynnika rozwiązywania zgłoszeń pomocy technicznej.
  • Zmniejszenie czasu użytkownika na zgłoszenie wsparcia.
  • Metryki jakości.
  • Oceniana przez LLM poprawność i istotność odpowiedzi.
  • LLM ocenia precyzję wyszukiwania.
  • Głosuj za lub przeciw użytkownikowi.
  • Zbieranie opinii.
  • Usługa Slack zostanie wzbogacona funkcjonalnością umożliwienia oceny.
Bezpieczeństwo
  • Obsługa danych poufnych.
  • Wymagania dotyczące kontroli dostępu.
  • Żadne poufne dane klienta nie powinny znajdować się w źródle pobierania.
  • Uwierzytelnianie użytkownika poprzez jednokrotne logowanie Wspólnoty Databricks.
Wdrażania
  • Integracja z istniejącymi systemami.
  • Wdrażanie i przechowywanie wersji.
  • Integracja z systemem zgłoszeń do wsparcia technicznego.
  • Agent wdrożony jako punkt końcowy obsługujący model usługi Databricks.

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 funkcji http_request z biblioteki databricks-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:

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.

schemat blokowy przedstawiający kroki przygotowywania, kompilowania i wdrażania.

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

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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 .
  3. Ś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ń.

  1. 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.
  2. 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?
  3. 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.
  4. 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.

  1. 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.
  2. Tabele wnioskowania
    • Framework agenta automatycznie przechowuje żądania, odpowiedzi i ślady wraz z metadanymi w tabeli wnioskowania w katalogu Unity dla każdego obsługiwanego punktu końcowego.
  3. 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.

  1. 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.
  2. Użyj interfejsu monitorowania, aby przejrzeć dzienniki

    • Śledzenie głosów za/głosów przeciw lub opinii tekstowych w interfejsie monitorowania , aby sprawdzić, które odpowiedzi testerzy uznali za szczególnie przydatne (lub nieprzydatne).
  3. 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.
  4. 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.
  5. 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.

schemat blokowy przedstawiający kroki przygotowywania, kompilowania, wdrażania i naprawiania.

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.

Schemat blokowy przedstawiający kroki przygotowania, kompilacji, wdrażania i naprawy z zestawem ewaluacyjnym.

Zestaw oceny można utworzyć za pomocą kilku uzupełniających metod:

  1. 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.
  2. 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.
  3. Ręcznie redagować zapytania

    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, guidelinesi 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.

interfejs użytkownika LLM z modułem oceny stylu i tonu.

Łą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, guidelinesi 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:

  1. 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ą.
  2. 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.
  3. Rozpocznij od prostego: Rozpocznij od podstawowego zestawu kryteriów i rozwijaj się w miarę rozwoju rozumienia potrzeb dotyczących jakości.
  4. Pokrycie salda: Uwzględnij kryteria spełniające różne aspekty jakości (na przykład dokładność faktów, styl i bezpieczeństwo).
  5. 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:

  1. 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.
  2. 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.

Interfejs użytkownika LLM przedstawiający oceny sędziowskie.

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ń.

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.

dostosowani sędziowie LLM

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.

metryki niestandardowe

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:

  1. 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.
  2. 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.
  3. Uzgodnienie z interesariuszami
    • Użyj aplikacji Przegląd, aby zweryfikować ulepszenia za pomocą MŚP.
      • Przekazywanie zmian recenzentom przy użyciu instrukcji recenzenta .
    • 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.

Schemat blokowy przedstawiający pełny przebieg tworzenia sztucznej inteligencji generatywnej, w tym monitorowanie i dzienniki.

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:

  1. Zaloguj i zarejestruj swojego agenta jako model MLflow w Unity Catalog.
  2. Wdrażanie agenta przy użyciu platformy Agent Framework.
  3. Skonfiguruj uwierzytelnianie dla wszystkich zasobów zależnych, do których agent musi uzyskać dostęp.
  4. 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:

  1. Utwórz monitor dla wdrożonego agenta.
  2. Skonfiguruj częstotliwość próbkowania i częstotliwość na podstawie potrzeb dotyczących ilości ruchu i monitorowania.
  3. 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:

  1. Metryki operacyjne

    • Żądaj woluminu i wzorców.
    • Opóźnienie odpowiedzi.
    • Współczynniki błędów i typy.
    • Użycie tokenu i koszty.
  2. metryki jakości

    • Istotność zapytań użytkowników.
    • Zakotwiczenie w pobranym kontekście.
    • Przestrzeganie bezpieczeństwa i wytycznych.
    • Ogólna szybkość przekazywania jakości.
  3. 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:

  1. Identyfikowanie problemów za pomocą metryk monitorowania i opinii użytkowników.
  2. Eksportuj problematyczne przykłady do zestawu ewaluacyjnego.
  3. 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ć).
  4. Opracuj i przetestuj ulepszenia w rozszerzonym zestawie ewaluacyjnym.
  5. 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ść.