🎯 Definicja
SQL Server 2025 wprowadza natywne wsparcie dla sztucznej inteligencji, integrując wyszukiwanie wektorowe i mechanizmy RAG (Retrieval-Augmented Generation) bezpośrednio z silnikiem bazy danych. Umożliwia to programistom wykonywanie zapytań semantycznych (opartych na znaczeniu, a nie słowach kluczowych) przy użyciu Transact-SQL (T-SQL) na danych przechowywanych lokalnie (on-premise).
🔑 Kluczowe punkty
-
Wprowadzenie natywnego typu danych
vectororaz indeksuDiskANNdo ultra-szybkiego, semantycznego przeszukiwania wektorowego. -
Możliwość budowania rozwiązań RAG (Retrieval-Augmented Generation) bezpośrednio w SQL Server, pozwalając na zadawanie pytań w języku naturalnym do lokalnych danych.
-
Integracja z T-SQL: Wyszukiwanie wektorowe jest dostępne z poziomu standardowych zapytań SQL, co eliminuje potrzebę przepisywania istniejących aplikacji (np. na Pythona).
-
Elastyczność modeli: Możliwość łączenia się z modelami embeddingowymi w chmurze (np. przez Azure AI Foundry) lub używania modeli lokalnych (np. Llama), co zapewnia pełną suwerenność danych.
-
Pełna integracja z istniejącymi funkcjami bezpieczeństwa SQL Server (Row-Level Security, szyfrowanie, dynamiczne maskowanie, audyt).
📚 Szczegółowe wyjaśnienie
Tradycyjne wyszukiwanie tekstowe w SQL (np. za pomocą operatora LIKE) jest nieefektywne i bazuje na dopasowaniu bajtów, a nie na faktycznym znaczeniu tekstu. Full-Text Search jest lepszy, ale nadal ograniczony do słów kluczowych. SQL Server 2025 rozwiązuje ten problem, wprowadzając koncepcje znane z modeli GenAI.
Podstawą są embeddingi (wektoryzacja). Proces ten polega na przekształceniu dowolnych danych (tekstu, obrazu) za pomocą modelu LLM w wektor – wielowymiarową reprezentację liczbową jego znaczenia. Dwa teksty o podobnym znaczeniu, nawet jeśli używają różnych słów, będą miały podobne wektory w tej przestrzeni.
Aby błyskawicznie przeszukiwać miliony takich wektorów, Microsoft zaimplementował nowy typ indeksu o nazwie DiskANN. Jest to struktura opracowana przez Microsoft Research, zoptymalizowana pod kątem dysków SSD, która pozwala na bardzo szybkie znajdowanie wektorów “najbliższych” (najbardziej podobnych) do wektora zapytania. Podobieństwo mierzone jest zazwyczaj za pomocą miary cosinusowej (cosine similarity).
Architektura RAG działa wewnątrz SQL Server. Gdy użytkownik zadaje pytanie w języku naturalnym (np. “szukam odzieży sportowej”), jest ono najpierw przekształcane w wektor (embedding) za pomocą wybranego modelu (lokalnego lub w chmurze). Następnie indeks DiskANN jest używany do błyskawicznego znalezienia najbardziej podobnych semantycznie rekordów (wektorów) w bazie danych. Na koniec te rekordy są zwracane jako wynik zapytania T-SQL. Co ważne, to nie jest “trenowanie” modelu – jest to zaawansowane, inteligentne wyszukiwanie.
💡 Przykład zastosowania
Chcemy stworzyć semantyczną wyszukiwarkę produktów w sklepie internetowym, która rozumie intencje użytkownika.
-
Struktura: Do tabeli
Productsdodajemy nową kolumnęDescriptionVector vector(1536). Rozmiar1536jest typowy dla modeli takich jaktext-embedding-ada-002od OpenAI. -
Embedding: Tworzymy proces (np. trigger lub zadanie wsadowe), który dla każdego produktu wysyła jego opis (
Description) do modelu embeddingowego. Zwrócony wektor zapisuje w kolumnieDescriptionVector. -
Indeks: Tworzymy indeks wektorowy na tej kolumnie:
CREATE VECTOR INDEX idx_vector_desc
ON Products(DescriptionVector)
WITH (ALGORITHM = DISKANN, METRIC = COSINE);Zapytanie: Użytkownik wpisuje w wyszukiwarkę frazę “coś na wycieczkę w góry”. Aplikacja tworzy embedding dla tej frazy (@query_vector) i wykonuje zapytanie T-SQL, które wyszukuje najbardziej podobne produkty.