Naukowcy Weaviate wprowadzają funkcję wywoływania dla LLM: Lepsza dokładność i wydajność zapytań bez potrzeby SQL
Nowa metoda zapytań do baz danych bez SQL – skuteczniejsza i bardziej elastyczna
Bazy danych stanowią fundament przechowywania i przetwarzania uporządkowanych informacji, wspierając analizy biznesowe, badania naukowe oraz aplikacje korporacyjne. Tradycyjnie zapytania do baz danych wymagają znajomości języka SQL, którego składnia i dialekty różnią się w zależności od systemu zarządzania bazami danych (DBMS). To sprawia, że automatyzacja zapytań przy użyciu dużych modeli językowych (LLM) jest trudna i podatna na błędy. Nowym, bardziej niezawodnym podejściem okazuje się wykorzystanie funkcji API, które umożliwiają modelom LLM efektywne operowanie na uporządkowanych danych bez konieczności translacji zapytań na SQL.
Wyzwania związane z automatycznym generowaniem zapytań SQL
Obecnie stosowane rozwiązania oparte na tłumaczeniu języka naturalnego na SQL często napotykają na liczne trudności, które ograniczają ich skuteczność. Do najważniejszych problemów należą:
– Różnice w dialektach SQL – różne systemy DBMS stosują własne wersje SQL, co utrudnia modelom LLM generalizację zapytań dla różnych platform.
– Złożoność rzeczywistych zapytań – wiele zapytań wymaga filtrowania, agregacji i transformacji wyników, co nie jest łatwe do odwzorowania w standardowych modelach.
– Poprawne kierowanie zapytań – w przypadku baz danych z wieloma kolekcjami kluczowe jest skierowanie zapytania do właściwej kolekcji.
– Skuteczność modeli zależna od złożoności zapytań – im bardziej skomplikowane zapytanie, tym większe ryzyko błędu w wygenerowanym kodzie SQL.
Obecne benchmarki, takie jak WikiSQL, Spider czy BIRD, oceniają skuteczność tłumaczenia tekstu na SQL, ale nie mierzą efektywności interakcji modeli z bazami danych. Wraz z rosnącą różnorodnością struktur baz danych konieczne jest bardziej elastyczne podejście, które pozwoli na efektywną obsługę zapytań bez opierania się wyłącznie na SQL.
Nowa metoda: API oparte na funkcjach zamiast SQL
Zespół badaczy z Weaviate, Contextual AI i Morningstar zaproponował nowatorskie rozwiązanie – zamiast tłumaczyć język naturalny na SQL, modele LLM mogą korzystać z wcześniej zdefiniowanych funkcji API. Nowa metoda obejmuje funkcje do wyszukiwania, filtrowania, agregacji i grupowania danych, co poprawia dokładność i eliminuje błędy związane z translacją SQL. Aby ocenić skuteczność tego podejścia, opracowano benchmark DBGorilla, który umożliwia testowanie różnych modeli LLM pod kątem interakcji z danymi w ustrukturyzowany sposób.
Testowanie nowego podejścia – benchmark DBGorilla
DBGorilla to syntetyczny zbiór danych zawierający 315 zapytań w pięciu schematach baz danych, z których każdy obejmuje trzy powiązane kolekcje. Testowane zapytania obejmują filtrowanie wartości numerycznych, tekstowych i logicznych oraz funkcje agregacyjne, takie jak SUM, AVG i COUNT. Skuteczność modeli oceniano na podstawie trzech kluczowych metryk:
1. Dokładność dopasowania (Exact Match Score) – mierzy zgodność wygenerowanych odpowiedzi z oczekiwanymi wynikami.
2. Zgodność z drzewem składni abstrakcyjnej (AST Alignment) – ocenia poprawność struktury zapytania.
3. Dokładność kierowania zapytań do właściwych kolekcji (Collection Routing Accuracy) – sprawdza, czy model poprawnie wybiera kolekcję w bazie danych.
Wyniki testów – który model radzi sobie najlepiej?
W badaniu porównano osiem różnych modeli LLM, w tym GPT-4o, Claude 3.5 Sonnet i Gemini 1.5 Pro. Najwyższą skuteczność osiągnął Claude 3.5 Sonnet, uzyskując wynik 74,3% w kategorii dokładności dopasowania. Tuż za nim znalazł się GPT-4o Mini z wynikiem 73,7%, a następnie GPT-4o (71,8%) i Gemini 1.5 Pro (70,2%).
Najlepiej modele radziły sobie z filtrowaniem wartości logicznych (dokładność na poziomie 87,5%), natomiast filtrowanie wartości tekstowych sprawiało im największe trudności – modele często myliły filtry z zapytaniami wyszukiwania. Dokładność kierowania zapytań do właściwych kolekcji była bardzo wysoka i wynosiła od 96% do 98% dla najlepszych modeli.
Analiza wpływu złożoności zapytań na skuteczność wykazała, że GPT-4o osiągał 87,5% dokładności w przypadku prostych zapytań, wymagających jednego parametru, jednak skuteczność spadała do 72,1% dla bardziej złożonych zapytań zawierających wiele parametrów.
Eksperymenty z różnymi konfiguracjami funkcji
Dodatkowe eksperymenty przeprowadzone przez badaczy miały na celu ocenę wpływu różnych konfiguracji wywołań funkcji API na skuteczność modeli. Pozwolenie modelom na równoległe wywołania funkcji nieznacznie obniżyło dokładność – wynik Exact Match Score spadł do 71,2%. Natomiast podział wywołań funkcji na oddzielne kolekcje bazy danych miał niewielki wpływ na skuteczność, osiągając wynik 72,3%. Z kolei zastąpienie funkcji API generowaniem ustrukturyzowanych odpowiedzi dało podobne rezultaty – 72,8% dokładności.
Wnioski – przyszłość zapytań do baz danych
Badania jednoznacznie wykazały, że wykorzystanie wywołań funkcji API jest skuteczniejszą alternatywą dla metod opartych na tłumaczeniu tekstu na SQL. Kluczowe wnioski z tego badania to:
– Wyższa dokładność generowania zapytań – najlepsze modele osiągnęły ponad 74% skuteczności, przewyższając wiele benchmarków SQL.
– Lepsza skuteczność w kierowaniu zapytań – dokładność kierowania zapytań do właściwych kolekcji przekroczyła 96%.
– Problemy z filtrowaniem wartości tekstowych – modele miały trudności z odróżnieniem filtrów od zapytań wyszukiwania, co wskazuje na obszar do dalszej optymalizacji.
– Minimalny wpływ różnych konfiguracji wywołań funkcji – niezależnie od sposobu wywoływania funkcji API, skuteczność pozostawała na podobnym poziomie.
Nowe podejście oparte na funkcjach API otwiera drogę do bardziej elastycznych i niezawodnych metod interakcji z bazami danych, co może znacząco uprościć automatyzację procesów analizy danych i zarządzania informacjami.