ARTIFICIAL INTELLIGENCE
Generatywna AI i analityka danych: od pytań do zapytań SQL

Globalny lider technologii online zwrócił się do CIeNET (część Grupy ALTEN) o stworzenie niezawodnych ram do testowania i usprawniania możliwości dużych modeli językowych (LLM) oraz o zapewnienie precyzyjnego i wydajnego generowania zapytań SQL na podstawie zapytań w języku naturalnym dla złożonych zbiorów danych. Efektem była znacząca poprawa zdolności modeli do generowania dokładnych zapytań na podstawie danych wejściowych w języku naturalnym.
CIeNET, należący do Grupy ALTEN, jest wiodącym dostawcą usług programistycznych. Firma została zaangażowana przez jedną z największych na świecie firm technologicznych działających w internecie w celu wsparcia rozwoju możliwości dużych modeli językowych (LLM) w zakresie precyzyjnego przetwarzania zapytań w języku naturalnym na strukturalny język zapytań SQL.
Aby przezwyciężyć ograniczenia istniejących modeli, CIeNET przeprowadził benchmark wydajności LLM, zidentyfikował błędy oraz udoskonalił generowane wyniki przy wykorzystaniu niestandardowych zbiorów danych.
Wyzwanie
Poprawa zdolności modeli LLM do generowania zapytań SQL, które poprawnie odpowiadają na zapytania w języku naturalnym dla określonego zbioru danych.

Rozwiązanie
Modele LLM umożliwiające dokładne tłumaczenie zapytań w języku naturalnym na język SQL (język naturalny → SQL, tzw. NL2SQL).
Korzyści
- Niestandardowe zbiory danych do trenowania i doskonalenia modeli LLM
- Dokładne zapytania SQL odpowiadające zapytaniom w języku naturalnym
- Wzmocnienie reputacji biznesowej
- Zwiększona efektywność operacyjna
Problemy związane z danymi
Generowanie nieprawidłowych zapytań SQL na podstawie zapytań w języku naturalnym może prowadzić do poważnych problemów. Należą do nich między innymi dostarczanie błędnych informacji klientom lub interesariuszom. Nieprawidłowe dane mogą również negatywnie wpływać na kluczowe procesy decyzyjne, a w skrajnych przypadkach prowadzić do strat finansowych.
Niespójne lub błędne dane mogą podważać wiarygodność baz danych lub prowadzić do niezamierzonego ujawnienia informacji wrażliwych bądź poufnych. Ponadto błędnie sformułowane zapytania SQL mogą powodować awarie systemów bazodanowych, skutkować naruszeniem wymogów regulacyjnych, a – w zależności od charakteru przetwarzanych danych – prowadzić do komplikacji prawnych.
Język naturalny → SQL
Celem CIeNET była analiza wydajności i dokładności modeli LLM oraz rozwiązań firm trzecich w zakresie generowania zapytań SQL na podstawie zapytań w języku naturalnym dla określonych zbiorów danych.
Proces rozpoczął się od zaprojektowania i wdrożenia zautomatyzowanego systemu benchmarkowego, którego zadaniem była ocena dokładności, wydajności oraz jakości generowanych zapytań SQL. Ocenie podlegały zarówno modele LLM, jak i rozwiązania firm trzecich, a wyniki porównywano w czasie oraz zestawiano z rezultatami uzyskiwanymi przez inne modele i autorskie zbiory danych.
Na potrzeby testów utworzono zestawy przypadków testowych umożliwiające ocenę skuteczności i jakości generowanego SQL. Kolejnym etapem był trening oraz dalsze doskonalenie modeli, obejmujące tworzenie i przegląd par: zapytanie w języku naturalnym – zapytanie SQL. Pozwoliło to na identyfikację oraz korektę błędnych danych treningowych.
Równolegle zaprojektowano niestandardowe schematy baz danych i wypełniono je danymi, które posłużyły do tworzenia nowych par zapytań język naturalny → SQL.
Narzędzia
W analizie uwzględniono m.in. modele LLM takie jak Google Gemini, OpenAI ChatGPT oraz Anthropic Claude 3.
Wykorzystane systemy baz danych i narzędzia typu data warehouse obejmowały: Google BigQuery, Amazon Redshift, Databricks, Snowflake, MySQL oraz PostgreSQL.
CIeNET opracował własny system do realizacji benchmarków, nazwany Generative AI beNchmark System (GAINS). Zespół odpowiadał za inżynierię promptów, ze szczególnym naciskiem na poprawę wydajności modeli oraz analizę wyników benchmarków w celu identyfikacji problemów, z wykorzystaniem publicznie dostępnych zbiorów danych.
Na końcowym etapie CIeNET tworzył, przeglądał oraz korygował zbiory danych NL2SQL przeznaczone do trenowania i dalszego doskonalenia modeli LLM, zapewniając wysoką jakość i skuteczność procesu uczenia.
