Kopia z użyciem ML

Gdy upewnisz się, że problem najlepiej rozwiązać z wykorzystaniem prognozującej, lub generatywnej AI, możesz odnieść się do tego problemu w kontekście systemów uczących się. Rozwiązujesz problem w kontekście systemów uczących się, wykonując te zadania:

  • Zdefiniuj idealny wynik i cel modelu.
  • Zidentyfikuj dane wyjściowe modelu.
  • Określenie wskaźników sukcesu.

Zdefiniuj idealny wynik i cel modelu

Jaki jest idealny wynik, niezależnie od modelu systemów uczących się? Innymi słowy, jakiego dokładnie zadania oczekujesz od produktu lub funkcji? Jest to samo polecenie zdefiniowane w sekcji Określ cel.

Połącz cel modelu z idealnym wynikiem, wyraźnie określając, co ma on zrobić. W tabeli poniżej znajdziesz idealne wyniki i cel modelu w przypadku aplikacji hipotetycznych:

Aplikacja Idealny wynik Cel modelu
Aplikacja Pogoda Obliczanie opadów w odstępach 6-godzinnych dla danego regionu geograficznego. Prognozowanie opadów w ciągu 6 godzin w określonych regionach geograficznych.
Aplikacja modowa Wygenerować różne projekty koszul. Utwórz 3 odmiany projektu koszulki na podstawie tekstu i obrazu, gdzie tekst określa styl i kolor, a obraz to rodzaj koszulki (koszulka, guziki, polo).
Aplikacja z wideo polecać przydatne filmy, Przewidują, czy użytkownik kliknie film.
Aplikacja pocztowa Wykrywaj spam. przewidywanie, czy e-mail jest spamem;
Aplikacja finansowa Podsumowuj informacje finansowe z różnych źródeł wiadomości. Wygeneruj 50-słowe podsumowanie najważniejszych trendów finansowych z ostatnich 7 dni.
Aplikacja do map Oblicz czas podróży. Prognozowanie czasu potrzebnego między dwoma punktami.
Aplikacja bankowa Wykrywaj fałszywe transakcje. Przewidywać, czy transakcja została dokonana przez właściciela karty.
Aplikacja Restauracje Identyfikuj rodzaj dań na podstawie menu restauracji. Przewiduj typ restauracji.
Aplikacja e-commerce Generuj odpowiedzi obsługi klienta dotyczące produktów firmy. Generuj odpowiedzi, korzystając z analizy nastawienia i bazy wiedzy organizacji.

Zidentyfikuj potrzebne dane wyjściowe

Wybór typu modelu zależy od konkretnego kontekstu i ograniczeń problemu. Dane wyjściowe modelu powinny zrealizować zadanie określone w idealnym wyniku. Pierwszym pytaniem, na jakie należy odpowiedzieć, jest pytanie: „Jakiego typu dane wyjściowe są potrzebne, aby rozwiązać problem?”.

Jeśli musisz coś sklasyfikować lub utworzyć prognozę liczbową, prawdopodobnie będziesz korzystać z systemów uczących się prognozujących. Jeśli chcesz tworzyć nowe treści lub tworzyć materiały związane ze rozumieniem języka naturalnego, prawdopodobnie będziesz używać generatywnej AI.

Te tabele zawierają dane wyjściowe prognozowanych systemów uczących się i generatywnej AI:

Tabela 1. Systemy uczące się prognozujące
System ML Przykładowe dane wyjściowe
Klasyfikacja Binarne klasyfikować e-maile jako spam lub nie spam,
Wieloklasowa, pojedyncza etykieta Klasyfikuj zwierzę na obrazie.
Wieloklasowa wartość z wieloma etykietami Sklasyfikuj wszystkie zwierzęta na obrazie.
Liczbowa Regresja jednowymiarowa Przewidywać liczbę wyświetleń filmu.
Regresja wielowymiarowa Prognozowanie ciśnienia krwi, tętna i poziomu cholesterolu u osoby.
Tabela 2. Generatywna AI
Typ modelu Przykładowe dane wyjściowe
Tekst
Streść artykuł.

Odpowiadaj na opinie klientów.

Tłumaczenie dokumentów z języka angielskiego na mandaryński.

Twórz opisy produktów.

Analizowanie dokumentów prawnych
Obraz
Tworzenie obrazów marketingowych.

Dodaj efekty wizualne do zdjęć.

Wygeneruj odmiany projektu produktu.
Audio
Utworzenie dialogów z określonym akcentem.

Utwórz krótką kompozycję muzyczną z określonego gatunku, takiego jak jazz.
Wideo
Generuj realistycznie wyglądające filmy.

Analizowanie nagrań wideo i stosowanie efektów wizualnych.
Wielomodalne Twórz różne materiały, np. filmy z napisami.

Klasyfikacja

Model klasyfikacji prognozuje, do której kategorii należą dane wejściowe, np. czy należy je sklasyfikować jako A, B lub C.

Model klasyfikacji generuje prognozy.

Rysunek 1. Model klasyfikacji tworzący prognozy.

Na podstawie prognozy modelu Twoja aplikacja może podjąć decyzję. Jeśli na przykład prognoza należy do kategorii A, zrób X. Jeśli prognoza należy do kategorii B, wpisz Y. Jeśli prognoza należy do kategorii C, zrób Z. W niektórych przypadkach prognoza to dane wyjściowe aplikacji.

Podejmując decyzję, kod produktu korzysta z danych wyjściowych modelu.

Rysunek 2. Dane wyjściowe modelu klasyfikacji używane w kodzie produktu do podejmowania decyzji.

Regresja

Model regresji prognozuje wartość liczbową.

Model regresji przygotowuje prognozę.

Rysunek 3. Model regresji generujący prognozę liczbową.

Na podstawie prognozy modelu Twoja aplikacja może podjąć decyzję. Jeśli na przykład prognoza mieści się w zakresie A, wykonaj X. Jeśli prognoza mieści się w zakresie B, wykonaj Y, a jeśli mieści się w zakresie C, wykonaj Z. W niektórych przypadkach prognoza to dane wyjściowe aplikacji.

Podejmując decyzję, kod produktu korzysta z danych wyjściowych modelu.

Rysunek 4. Dane wyjściowe modelu regresji używane w kodzie produktu do podejmowania decyzji.

Weź pod uwagę taki scenariusz:

Filmy chcesz umieszczać w pamięci podręcznej według przewidywanej popularności. Inaczej mówiąc, jeśli model przewiduje, że film będzie popularny, musisz szybko go udostępnić użytkownikom. W tym celu musisz skorzystać z efektywniejszej i droższej pamięci podręcznej. W przypadku innych filmów użyjesz innej pamięci podręcznej. Kryteria buforowania są następujące:

  • Jeśli prognozy wskazują, że film będzie miał co najmniej 50 wyświetleń, wykorzystasz kosztowną pamięć podręczną.
  • Jeśli przewiduje się, że film będzie mieć od 30 do 50 wyświetleń, wykorzystasz tańszą pamięć podręczną.
  • Jeśli według prognozy film będzie mieć mniej niż 30 wyświetleń, nie zostanie zapisany w pamięci podręcznej.

Uważasz, że model regresji to właściwe podejście, ponieważ przewidujesz wartość liczbową, czyli liczbę wyświetleń. Jednak podczas trenowania modelu regresji okazuje się, że w przypadku filmów, które mają 30 wyświetleń, daje on taki sam strata w przypadku prognozy na poziomie 28 i 32. Innymi słowy, chociaż aplikacja będzie działać zupełnie inaczej, jeśli prognoza to 28 i 32, model uzna obie prognozy za równie dobre.

Trenowany model i oceniana jego strata.

Rysunek 5. Trenowanie modelu regresji.

Modele regresji nie rozpoznają progów zdefiniowanych produktów. Dlatego jeśli zachowanie aplikacji znacznie się zmienia z powodu niewielkich różnic w prognozach modelu regresji, rozważ wdrożenie modelu klasyfikacji.

W tym scenariuszu model klasyfikacji wywołałby prawidłowe zachowanie, ponieważ model klasyfikacji wygenerowałby większą stratę przy prognozie wartości 28 niż 32. W pewnym sensie modele klasyfikacji domyślnie generują progi.

Ten scenariusz dotyczy dwóch ważnych kwestii:

  • przewidywać decyzję, Jeśli to możliwe, przewiduj decyzję, jaką podejmie Twoja aplikacja. W tym przykładzie model klasyfikacji przewidywałby decyzję, jeśli do kategorii, w które zaklasyfikował filmy, należą: „brak pamięci podręcznej”, „tania pamięć podręczna” i „droga pamięć podręczna”. Ukrywanie działania aplikacji przed modelem może spowodować, że aplikacja będzie działać w niewłaściwy sposób.

  • Poznaj ograniczenia problemu. Jeśli aplikacja podejmuje różne działania w zależności od różnych progów, ustal, czy progi te są stałe czy dynamiczne.

    • Progi dynamiczne: jeśli progi są dynamiczne, użyj modelu regresji i ustaw limity w kodzie aplikacji. W ten sposób możesz łatwo aktualizować progi, a jednocześnie mieć pewność, że model będzie formułował rozsądne prognozy.
    • Stałe progi: jeśli progi są stałe, użyj modelu klasyfikacji i oznacz zbiory danych etykietami zgodnie z limitami progowymi.

    Ogólnie rzecz biorąc, udostępnianie pamięci podręcznej jest dynamiczne, a progi zmieniają się z upływem czasu. Dlatego, ponieważ jest to problem z pamięcią podręczną, najlepszym wyborem jest model regresji. W przypadku wielu problemów wartości progowe zostaną jednak ustalone, dzięki czemu model klasyfikacji będzie najlepszym rozwiązaniem.

Przeanalizujmy inny przykład. Jeśli tworzysz aplikację pogodową, której najlepszym rozwiązaniem będzie poinformowanie użytkowników o opadach deszczu w ciągu najbliższych 6 godzin, możesz użyć modelu regresji, który prognozuje etykietę precipitation_amount..

Idealny wynik Idealna etykieta
Poinformuj użytkowników, że w ich okolicy będzie padać w ciągu najbliższych 6 godzin. precipitation_amount

W przykładzie aplikacji pogodowej etykieta bezpośrednio odnosi się do idealnego wyniku. Jednak w niektórych przypadkach relacja jeden do jednego między idealnym wynikiem a wytwórnią nie jest oczywista. Na przykład w aplikacji wideo idealnym efektem jest polecanie przydatnych filmów. W zbiorze danych nie ma jednak etykiety useful_to_user.

Idealny wynik Idealna etykieta
Polecać przydatne filmy. ?

Dlatego należy znaleźć etykietę serwera proxy.

Etykiety serwera proxy

Etykiety serwera proxy zastępują etykiety, których nie ma w zbiorze danych. Etykiety proxy są potrzebne, gdy nie możesz bezpośrednio zmierzyć tego, co chcesz prognozować. W aplikacji wideo nie możemy bezpośrednio określić, czy dany film będzie przydatny dla użytkownika. Świetnie byłoby, gdyby zbiór danych miał funkcję useful i użytkownicy oznaczyli wszystkie filmy, które uznali za przydatne. Jednak ponieważ zbiór danych tego nie robi, potrzebujemy etykiety serwera proxy, która zastępuje użyteczność.

Etykieta pośrednicząca może wskazywać, czy użytkownik udostępni film, czy go polubi.

Idealny wynik Etykieta serwera proxy
Polecać przydatne filmy. shared OR liked

Zachowaj ostrożność w przypadku etykiet serwerów proxy, ponieważ nie mierzą one bezpośrednio tego, co chcesz prognozować. W tabeli poniżej znajdziesz na przykład problemy z potencjalnymi etykietami pośrednimi w polecaniu przydatnych filmów:

Etykieta serwera proxy Problem
Przewidywać, czy użytkownik kliknie przycisk „Podoba mi się”. Większość użytkowników nigdy nie klika linku „Podoba mi się”.
Przewidywać, czy film będzie popularny. Dane nie są spersonalizowane. Niektórzy użytkownicy mogą nie lubić popularnych filmów.
Przewidywać, czy użytkownik udostępni film. Niektórzy użytkownicy nie udostępniają filmów. Czasami ludzie udostępniają filmy, bo nie im się podobają.
Prognozowanie, czy użytkownik kliknie przycisk odtwarzania. Maksymalizuje liczbę kliknięć clickbait
Przewidywać, jak długo oglądają film. W przeciwieństwie do krótkich filmów faworyzują długie filmy.
Przewidują, ile razy użytkownik ponownie obejrzy film. Preferują filmy, które nadają się do wielokrotnego oglądania, a nie te, których nie da się ponownie obejrzeć.

Żadna etykieta proxy nie może zastąpić idealnego wyniku. Wszyscy będą mieć potencjalne problemy. Wybierz ten, który w Twoim przypadku użycia ma najmniej problemów.

Sprawdź swoją wiedzę

Pewna firma chce wykorzystać systemy uczące się w swojej aplikacji do dbania o zdrowie i równowagę, aby pomóc ludziom poczuć się lepiej. Czy uważasz, że będą musieli używać etykiet proxy, aby osiągnąć swoje cele?
Tak, ta firma będzie musiała znaleźć etykiety serwerów proxy. Nie można bezpośrednio mierzyć takich kategorii jak szczęście czy dobre samopoczucie. Zamiast tego należy ujednolicić je w odniesieniu do innych cech, np. tygodniowych godzin spędzonych na ćwiczeniach lub spędzania czasu na zajmowaniu się hobby lub znajomymi.
Nie, ta firma nie musi używać etykiet proxy. Szczęście i samopoczucie można zmierzyć bezpośrednio.

Generowanie

W większości przypadków nie będziesz trenować własnego modelu generatywnego, ponieważ wymaga to ogromnych ilości danych treningowych i zasobów obliczeniowych. Zamiast tego dostosujesz wytrenowany model generatywny. Aby uzyskać model generatywny do wygenerowania oczekiwanych wyników, konieczne może być użycie co najmniej jednej z tych metod:

  • Dysylacja. Aby utworzyć mniejszą wersję większego modelu, wygeneruj syntetyczny zbiór danych oznaczony etykietami z większego modelu, którego użyjesz do wytrenowania mniejszego modelu. Modele generatywne są zwykle ogromne i zużywają znaczne zasoby (takie jak pamięć i energia elektryczna). Destylacja umożliwia mniejszemu modelowi, który zużywa mniej zasobów, przybliżenie wydajności większego modelu.

  • Dostrajanie lub dostrajanie z wykorzystaniem parametrów. Aby zwiększyć wydajność modelu podczas wykonywania określonego zadania, musisz jeszcze bardziej dotrenować model na zbiorze danych zawierającym przykłady typu danych wyjściowych, które chcesz uzyskać.

  • Szybciej działa. Aby model wykonał konkretne zadanie lub wygenerował dane wyjściowe w określonym formacie, powiedz mu, jakie zadanie ma wykonać, lub wyjaśnij, jak mają być sformatowane dane wyjściowe. Innymi słowy, komunikat może zawierać instrukcje w języku naturalnym dotyczące wykonania zadania lub przykładowe obrazy z wymaganymi wynikami.

    Jeśli na przykład chcesz otrzymywać krótkie streszczenia artykułów, możesz wpisać:

    Produce 100-word summaries for each article.
    

    Jeśli chcesz, by model generował tekst dla określonego poziomu języka, możesz wpisać te wartości:

    All the output should be at a reading level for a 12-year-old.
    

    Jeśli model ma podawać dane wyjściowe w określonym formacie, możesz wyjaśnić sposób formatowania danych wyjściowych – na przykład „sformatować wyniki w tabeli” – lub zademonstrować zadanie, podając jego przykłady. Możesz na przykład wpisać:

    Translate words from English to Spanish.
    
    English: Car
    Spanish: Auto
    
    English: Airplane
    Spanish: Avión
    
    English: Home
    Spanish:______
    

Destylacja i dostrajanie aktualizują parametry modelu. Inżynierowie promptów nie aktualizują parametrów modelu. Zamiast tego pomaga modelowi nauczyć się, jak uzyskać pożądane wyniki na podstawie kontekstu promptu.

W niektórych przypadkach potrzebujesz też testowego zbioru danych, aby oceniać dane wyjściowe modelu generatywnego względem znanych wartości, na przykład sprawdzając, czy podsumowania modelu są podobne do tych wygenerowanych przez ludzi lub czy użytkownicy oceniają podsumowania modelu jako dobre.

Generatywna AI może również służyć do implementacji prognozujących rozwiązań ML, takich jak klasyfikacja lub regresja. Na przykład dzięki dogłębnej znajomości języka naturalnego duże modele językowe (LLM) często wykonują zadania w zakresie klasyfikacji tekstu lepiej niż systemy uczące się prognozujące wytrenowane pod kątem konkretnych zadań.

Określenie wskaźników sukcesu

Określ wskaźniki, które posłużą do określenia, czy implementacja systemów uczących się powiodła się. Wskaźniki sukcesu określają, na czym Ci zależy, np. zaangażowanie lub pomaganie użytkownikom w podjęciu odpowiednich działań, takich jak obejrzenie interesujących filmów. Wskaźniki sukcesu różnią się od wskaźników oceny modelu, takich jak dokładność, precyzja, czułość lub AUC.

Na przykład wskaźniki sukcesu i niepowodzeń aplikacji pogodowej można zdefiniować w taki sposób:

Sukces Użytkownicy otwierają funkcję „Czy będzie padać?” o 50% częściej niż wcześniej.
Błąd Użytkownicy otwierają funkcję „Czy będzie padać?” nie częściej niż wcześniej.

Dane aplikacji wideo można zdefiniować następująco:

Sukces Użytkownicy spędzają w witrynie średnio o 20% więcej czasu.
Błąd Użytkownicy spędzają w witrynie średnio nie więcej czasu niż wcześniej.

Zalecamy określenie ambitnych wyznaczników sukcesu. Określone ambicje mogą jednak powodować luki pomiędzy sukcesem a porażką. Na przykład to, że użytkownicy spędzają w witrynie średnio 10% więcej czasu niż wcześniej, nie odnoszą się ani sukcesy, ani porażek. Nieokreślona przerwa nie jest ważna.

Najważniejsza jest zdolność Twojego modelu do zbliżenia się do siebie lub przekroczenia definicji sukcesu. Podczas analizy wydajności modelu zastanów się na przykład, czy ulepszenie modelu zbliży Cię do zdefiniowanych kryteriów sukcesu. Na przykład model może mieć świetne wskaźniki oceny, ale nie przybliża Cię do kryteriów sukcesu. Oznacza to, że nawet w przypadku idealnego modelu nie uda Ci się spełnić zdefiniowanych przez Ciebie kryteriów sukcesu. Z drugiej strony model może mieć słabe wskaźniki oceny, ale przybliża Cię do kryteriów sukcesu, ponieważ poprawa modelu przybliża Cię do sukcesu.

Oto wymiary, które trzeba wziąć pod uwagę podczas określania, czy model warto ulepszyć:

  • Nie dość dobrze, ale kontynuuj. Modelu nie należy używać w środowisku produkcyjnym, ale z czasem może on zostać znacznie lepszy.

  • Wystarczająco dobre – kontynuuj. Model można użyć w środowisku produkcyjnym, ale można go jeszcze bardziej ulepszyć.

  • Jest wystarczająco dobry, ale nie może być lepszy Model jest w środowisku produkcyjnym, ale prawdopodobnie jest wystarczająco dobry.

  • za mało dobre i nigdy nie będzie. Modelu nie należy używać w środowisku produkcyjnym i prawdopodobnie nie uda się go w ten sposób zdobyć żadnemu modelowi.

Decydując się na ulepszenie modelu, ponownie oceń, czy wzrost zasobów, takich jak czas pracy inżynierów i koszty obliczeniowe, uzasadnia prognozowaną poprawę modelu.

Po zdefiniowaniu wskaźników sukcesu i niepowodzenia musisz określić, jak często będziesz je mierzyć. Możesz np. mierzyć wskaźniki skuteczności po 6 dniach, 6 tygodniach lub 6 miesiącach od wdrożenia systemu.

Analizując wskaźniki błędów, spróbuj ustalić, dlaczego wystąpił błąd. Model może na przykład przewidywać, które filmy klikną użytkownicy, ale może zacząć proponować tytuły, które są „przynętą na kliknięcia”, które powodują spadek zaangażowania użytkowników. W przypadku aplikacji pogodowej model może dokładnie przewidzieć, kiedy będzie padać, ale w przypadku zbyt dużego regionu geograficznego.

Sprawdź swoją wiedzę

Firma modowa chce sprzedawać więcej ubrań. Ktoś sugeruje wykorzystanie systemów uczących się do określenia, jakie ubrania powinna produkować firma. Sądzą, że mogą wytrenować model, aby mógł określić, jaki rodzaj ubrań jest w danej modzie. Po wytrenowaniu modelu klient chce zastosować go w katalogu, aby podjąć decyzję, którą odzież wyprodukować.

Jak powinna postrzegać swój problem w kontekście systemów uczących się?

Idealny wynik: określ, które produkty chcesz wytwarzać.

Cel modelu: przewiduj, które artykuły ubrań są modne.

Dane wyjściowe modelu: klasyfikacja binarna, in_fashion, not_in_fashion

Dane sukcesu: sprzedaż co najmniej 70% ubrań.

Idealny wynik: ustal, ile tkanin i materiałów chcesz zamówić.

Cel modelu: przewiduj, jaką część każdego produktu chcesz wyprodukować.

Dane wyjściowe modelu: klasyfikacja binarna, make, do_not_make

Dane sukcesu: sprzedaż co najmniej 70% ubrań.

Idealny rezultat nie polega na określeniu, ile tkanin i materiałów należy zamówić. Służy ono do określenia, czy dany produkt powinien być wytwarzany. Dzięki temu cel modelu odnosi się do niewłaściwego celu.