PRZEWODNIK techniczny

Równoległe wywoływanie funkcji

Równoległe wywołanie funkcji ma miejsce, gdy model języka żąda kilku wywołań narzędzi w jednej odpowiedzi, dzięki czemu aplikacja może je uruchomić w tym samym czasie i zwrócić wszystkie wyniki razem.

Posłuchaj tego przewodnikaOpowiadane przez sztuczną inteligencję · ~3 min

Na tej stronie3 minuty czytania
  1. Przegląd
  2. Głębokie nurkowanie
  3. Implementacja w świecie rzeczywistym
  4. Przyszłość wywoływania funkcji równoległych
  5. Wdrażanie tego w praktykę
  6. Odkrywaj dalej
  7. Często zadawane pytania

Przegląd

Ma to znaczenie, ponieważ zmniejsza liczbę podróży w obie strony i opóźnienia w przypadku niezależnych wyszukiwań, ale jest bezpieczne tylko wtedy, gdy wywołania nie są od siebie zależne i gdy aplikacja poprawnie obsługuje porządkowanie, skutki uboczne i częściowe awarie.

Głębokie nurkowanie

W przypadku podstawowego użycia narzędzia model prosi o jedno narzędzie, aplikacja je uruchamia, zwraca wynik i model kontynuuje działanie. Każdy krok kosztuje pełną podróż w obie strony modelu. Dzięki równoległemu wywoływaniu funkcji model może emitować wiele żądań wywołań narzędzi w jednej odpowiedzi, każde z własnym identyfikatorem, nazwą i argumentami. Aplikacja wykonuje je, często jednocześnie, i odsyła jeden wynik na każde wywołanie, każdy powiązany ze swoim identyfikatorem, dzięki czemu model wie, który wynik należy do którego żądania. Pod koniec 2023 r. OpenAI dodał do swojego API funkcję równoległego wywoływania, a inni główni dostawcy obsługują wiele wywołań narzędzi w jednej turze. Niektóre interfejsy API udostępniają ustawienie umożliwiające wyłączenie tego zachowania, gdy aplikacja potrzebuje tylko jednego wywołania na raz. Wywołania równoległe są bezpieczne, jeśli są niezależne: odczyty, które nie wpływają na siebie nawzajem, np. wyszukiwanie kilku rekordów lub przeprowadzanie kilku wyszukiwań. Są one ryzykowne, gdy jedno wywołanie wymaga danych wyjściowych innego lub gdy wywołania mają interakcyjne skutki uboczne, takie jak dwa zapisy w tym samym rekordzie lub opłata, po której następuje zwrot pieniędzy. Kolejność, w jakiej model wyświetla wywołania, nie jest gwarantowaną kolejnością wykonania i aplikacja może je zakończyć w dowolnej kolejności. Powszechnym błędnym przekonaniem jest to, że model uruchamia narzędzia równolegle. Tak nie jest; tylko ich żąda. Za współbieżność, przekroczenia limitu czasu i ponowne próby odpowiada aplikacja. Innym błędnym przekonaniem jest to, że jeśli jedno wywołanie nie powiedzie się, cała partia zakończy się niepowodzeniem. Dobrze zbudowana aplikacja zwraca każdy wynik indywidualnie, łącznie z błędami, dzięki czemu model może kontynuować to, co się udało. Dla kroków zależnych model powinien wywołać pierwsze narzędzie, poczekać na jego wynik i następnie wywołać kolejne. Dobre opisy narzędzi i instrukcje systemowe mogą pomóc w określeniu, kiedy należy wykonywać partie, a kiedy sekwencyjnie.

Implementacja w świecie rzeczywistym

Asystent podróży zapytany o pogodę w Paryżu, Rzymie i Madrycie podaje trzy komunikaty o pogodzie w jednej turze, a aplikacja uruchamia je jednocześnie.

Agent panelu sprzedaży pobiera zamówienia klienta, otwiera zgłoszenia do pomocy technicznej i notatki dotyczące konta w jednej równoległej partii przed napisaniem podsumowania.

Agent poproszony o utworzenie folderu, a następnie zapisanie w nim pliku nie może wykonywać obu wywołań równolegle, ponieważ zapis zależy od istniejącego folderu.

Agent badawczy wysyła równolegle pięć zapytań; upłynie dwa razy, a aplikacja zwróci trzy wyniki i dwa wyraźne komunikaty o błędach, dzięki czemu model będzie mógł ponawiać tylko te zakończone niepowodzeniem.

Przyszłość wywoływania funkcji równoległych

W miarę jak agenci podejmują się większych zadań, korzystanie z narzędzi równoległych staje się rutynowym sposobem na zmniejszenie opóźnień, a modele są szkolone w zakresie rozpoznawania, które wywołania są niezależne. Harnessy dodają także funkcje, takie jak planowanie uwzględniające zależności i blokowanie zasobów, dzięki czemu można bezpiecznie wykonywać żądania wsadowe. Ocena modelu na temat zależności prawdopodobnie ulegnie poprawie, ale aplikacja pozostanie odpowiedzialna za egzekwowanie bezpieczeństwa w przypadku skutków ubocznych, przekroczeń limitu czasu i ponownych prób, ponieważ zależą one od rzeczywistych systemów, których model nie widzi.

Wdrażanie tego w praktykę

Dlaczego to ma znaczenie

  • Koszt i budżet. Decyzje dotyczące architektury wpływają na wydajność i koszty operacyjne przez lata.
  • Jaśniejsze decyzje. Edukacja techniczna pomaga zespołom wybrać odpowiedni stos, a nie tylko najnowszy.
  • Kontrola jakości. Lepsze wybory inżynieryjne zmniejszają liczbę incydentów związanych z niezawodnością w produkcji.

Uważaj na

  • Optymalizacja jednego testu porównawczego może ukryć szersze słabości systemu.
  • Koszty infrastruktury i utrzymania są często niedoszacowane.
  • W miarę jak systemy stają się coraz bardziej złożone, luki w bezpieczeństwie i obserwowalności mogą się zwiększać.

Kolejne kroki

  1. Przed wdrożeniem zdefiniuj docelowe opóźnienia, jakość i koszty.
  2. Test porównawczy w realistycznych warunkach obciążenia i danych.
  3. Monitorowanie przyrządu pod kątem błędów, dryftu i wpływu użytkownika.
  4. Przed skalowaniem przygotuj ścieżki wycofywania zmian i reakcji na incydenty.

Odkrywaj dalej

Darmowy newsletter

Otrzymuj codzienne podsumowanie AI

Trzy zweryfikowane historie AI każdego poranka w dni robocze, napisane prostym angielskim. Bezpłatne na zawsze, bez reklam.

Jedno e‑mail każdego dnia roboczego. Wypisz się jednym kliknięciem. Nigdy nie sprzedajemy ani nie udostępniamy Twojego adresu.

Sprawdź się

Take the Parallel Function Calling quiz

Natychmiastowa informacja zwrotna na każde pytanie oraz udostępnialny certyfikat z weryfikowalnym ID po zaliczeniu kursu.

Rozpocznij quiz

Wspieraj darmową edukację AI. AI Understanding jest organizacją non-profit 501(c)(3) — bez reklam, bez płatnej ściany, zawsze. Przekaż darowiznę

Często zadawane pytania

Co to jest wywoływanie funkcji równoległych?

Równoległe wywołanie funkcji ma miejsce, gdy model języka żąda kilku wywołań narzędzi w jednej odpowiedzi, dzięki czemu aplikacja może je uruchomić w tym samym czasie i zwrócić wszystkie wyniki razem. Ma to znaczenie, ponieważ zmniejsza liczbę podróży w obie strony i opóźnienia w przypadku niezależnych wyszukiwań, ale jest bezpieczne tylko wtedy, gdy wywołania nie są od siebie zależne i gdy aplikacja poprawnie obsługuje porządkowanie, skutki uboczne i częściowe awarie.

Co model zwraca w jednej odpowiedzi w równoległym wywołaniu funkcji?

Model emituje wiele żądań wywołań narzędzi w jednej turze, które aplikacja może uruchomić razem.

Kto faktycznie wykonuje narzędzia jednocześnie?

Model żąda tylko połączeń; współbieżność, przekroczenia limitu czasu i ponowne próby to zadanie aplikacji.

Której pary wywołań NIE należy wydawać równolegle?

Zapis pliku zależy od istniejącego folderu, więc wywołania muszą być uruchamiane po kolei.

Jak wyniki powinny być dopasowywane do wywołań narzędzi?

Równoległe wywołania kończą się w nieprzewidywalnej kolejności, więc identyfikator jest niezawodnym łączem.

Upłynął limit czasu dwóch z pięciu równoległych wyszukiwań. Jaka jest najlepsza odpowiedź?

Zwrócenie każdego wyniku indywidualnie, łącznie z błędami, umożliwia kontynuację modelu i selektywne ponawianie prób.