Megosztás:


Intelligens alkalmazások és AI

A következőkre vonatkozik: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Database a Microsoft Fabricben

Ez a cikk áttekintést nyújt a mesterségesintelligencia- (AI-) lehetőségek, például az OpenAI és a vektorok használatával intelligens alkalmazások létrehozására az SQL Database Engine használatával az SQL Serverben és a felügyelt Azure SQL-példányban.

Az Azure SQL Database esetében tekintse át az intelligens alkalmazásokat és az AI-t.

Példákért és példákért látogasson el az SQL AI-minták adattárába.

Áttekintés

A nagyméretű nyelvi modellek (LLM-ek) lehetővé teszik a fejlesztők számára, hogy jól ismert felhasználói felülettel hozzanak létre mesterséges intelligenciával rendelkező alkalmazásokat.

Az LLM-ek alkalmazásokban való használata nagyobb értéket és jobb felhasználói élményt eredményez, ha a modellek a megfelelő időben férhetnek hozzá a megfelelő adatokhoz az alkalmazás adatbázisából. Ez a folyamat a Retrieveal Augmented Generation (RAG) néven ismert, és az SQL Database Engine számos olyan funkcióval rendelkezik, amelyek támogatják ezt az új mintát, így nagyszerű adatbázissá teszi intelligens alkalmazások létrehozását.

Az alábbi hivatkozások különböző lehetőségek mintakódját biztosítják az intelligens alkalmazások létrehozásához:

AI-beállítás Description
Azure OpenAI Beágyazásokat hozhat létre a RAG-hoz, és integrálható az Azure OpenAI által támogatott modellekkel.
Vektorok Megtudhatja, hogyan tárolhat vektorokat, és hogyan használhat vektorfüggvényeket az adatbázisban.
Azure AI Search Az adatbázis és az Azure AI Search együttes használatával betaníthatja az LLM-et az adataira.
Intelligens alkalmazások Megtudhatja, hogyan hozhat létre végpontok közötti megoldást egy olyan közös mintával, amely bármilyen forgatókönyvben replikálható.

A RAG és az Azure OpenAI implementálásának főbb fogalmai

Ez a szakasz olyan kulcsfontosságú fogalmakat tartalmaz, amelyek kritikus fontosságúak a RAG és az Azure OpenAI sql database engine-ben való implementálásához.

Lekérdezéssel bővített generálás (RAG)

A RAG egy olyan technika, amely javítja az LLM azon képességét, hogy releváns és informatív válaszokat állítsunk elő további adatok külső forrásokból való lekérésével. A RAG például lekérdezheti azokat a cikkeket vagy dokumentumokat, amelyek a felhasználó kérdésével vagy kérdésével kapcsolatos tartományspecifikus ismereteket tartalmaznak. Az LLM ezután hivatkozásként használhatja ezeket a beolvasott adatokat a válasz létrehozásakor. Az SQL Database Engine-t használó egyszerű RAG-minta például a következő lehet:

  1. Adatok beszúrása táblázatba.
  2. Kapcsolja össze a példányt az Azure AI Search szolgáltatással.
  3. Hozzon létre egy Azure OpenAI GPT4-modellt, és csatlakoztassa az Azure AI Searchhöz.
  4. Az alkalmazásból és a példány adataiból származó betanított Azure OpenAI-modellel cseveghet és tehet fel kérdéseket az adataival kapcsolatban.

A RAG-minta gyors tervezéssel a válaszminőség növelését szolgálja azáltal, hogy több környezeti információt kínál a modellnek. A RAG lehetővé teszi, hogy a modell szélesebb körű tudásbázist alkalmazzon a releváns külső forrásoknak a létrehozási folyamatba való beépítésével, így átfogóbb és tájékozottabb válaszokat eredményez. Az LLM-ekkel kapcsolatos további információkért lásd: Földi LLM-ek – Microsoft Community Hub.

"Utánzás és prompt mérnökség"

A parancssor olyan konkrét szövegre vagy információra hivatkozik, amely utasításként szolgál egy LLM-nek, vagy olyan környezetfüggő adatokra, amelyekre az LLM építhet. Egy támpont különböző formátumokat ölthet, mint például kérdés, állítás vagy akár kódrészlet.

Mintaüzenetek, amelyek egy LLM-ből származó válasz létrehozásához használhatók:

  • Utasítások: irányelvek megadása az LLM-nek
  • Elsődleges tartalom: információt ad az LLM-nek feldolgozásra
  • Példák: segítség a modell adott tevékenységhez vagy folyamathoz való kondicionálásához
  • Cues: irányítsa az LLM kimenetét a megfelelő irányba
  • Támogató tartalom: olyan kiegészítő információkat jelöl, amelyekkel az LLM kimenetet hozhat létre

A forgatókönyvre vonatkozó jó kérések létrehozásának folyamatát parancssori tervezésnek nevezzük. A parancssori mérnöki eljárásokról és az ajánlott eljárásokról további információt a Parancssori mérnöki technikák című témakörben talál.

tokenek

A tokenek a bemeneti szöveg kisebb szegmensekre való felosztásával létrehozott kis szövegrészek. Ezek a szegmensek lehetnek szavak vagy karaktercsoportok, egy karaktertől a teljes szóig változó hosszúságúak. A szó hamburger például olyan jogkivonatokra oszlik, mint hama , burés ger míg egy rövid és gyakori szó, mint pear egy jogkivonat.

Az Azure OpenAI-ban az API-nak megadott bemeneti szöveg jogkivonatokká (jogkivonatossá) alakul. Az egyes API-kérésekben feldolgozott tokenek száma olyan tényezőktől függ, mint a bemenet, a kimenet és a kérelem paramétereinek hossza. A feldolgozott jogkivonatok mennyisége a modellek válaszidejének és átviteli sebességének is befolyásolja. Az egyes modellek által az Azure OpenAI-tól érkező egyetlen kérésben/válaszban megengedett jogkivonatok száma korlátozott. Tudjon meg többet a Azure OpenAI című szakaszban az Azure AI Foundry Models kvótáiról és korlátairól.

Vectors

A vektorok számokat tartalmazó rendezett tömbök (általában lebegőpontosak), amelyek bizonyos adatokkal kapcsolatos információkat képviselnek. Egy kép például a képpontértékek vektoraként is megjeleníthető, vagy egy szöveges sztring az ASCII-értékek vektoraként is megjeleníthető. Az adatok vektorossá alakításának folyamatát vektorizálásnak nevezzük. További információ: Vektoros példák.

A vektoradatok használata egyszerűbb a vektoradat-típus és a vektorfüggvények bevezetésével.

Beágyazások

A beágyazások olyan vektorok, amelyek az adatok fontos jellemzőit képviselik. A beágyazásokat gyakran mélytanulási modell használatával tanulják meg, és a gépi tanulási és AI-modellek funkcióként használják őket. A beágyazások a hasonló fogalmak szemantikai hasonlóságát is rögzíthetik. Például a person és humanszavak beágyazásának létrehozásakor elvárnánk, hogy a beágyazásuk (vektorábrázolás) értéke hasonló legyen, mivel a szavak szemantikailag is hasonlóak.

Az Azure OpenAI olyan modelleket kínál, amelyekkel beágyazásokat hozhat létre szöveges adatokból. A szolgáltatás tokenekre bontja a szöveget, és beágyazásokat hoz létre az OpenAI által előre betanított modellek használatával. További információ: Az Azure OpenAI-beli beágyazások ismertetése az Azure AI Foundry-modellekben.

A vektorkeresés egy adathalmaz összes vektorának megkeresésére utal, amely szemantikailag hasonlít egy adott lekérdezésvektorhoz. Ezért a szó human egy lekérdezésvektora szemantikailag hasonló szavakat keres a teljes szótárban, és szoros egyezésként kell megtalálnia a szót person . Ezt a közelséget vagy távolságot egy hasonlósági metrika, például a koszinusz hasonlósága alapján mérik. A közelebbi vektorok hasonlóak, minél kisebb a távolság közöttük.

Fontolja meg azt a forgatókönyvet, amikor több millió dokumentumon futtat lekérdezést, hogy megtalálja az adatokban a leginkább hasonló dokumentumokat. Az Azure OpenAI használatával beágyazásokat hozhat létre az adatokhoz és lekérdezheti a dokumentumokat. Ezután vektorkereséssel megkeresheti az adathalmazból a leginkább hasonló dokumentumokat. A vektorkeresés végrehajtása azonban néhány példa alapján triviális. Ez a keresés több ezer vagy több millió adatponton is kihívást jelent. A teljes körű keresés és a legközelebbi szomszéd (ANN) keresési módszerek között is vannak kompromisszumok, beleértve a késést, az átviteli sebességet, a pontosságot és a költségeket, amelyek mindegyike az alkalmazás követelményeitől függ.

Az SQL Database Engine vektorai hatékonyan tárolhatók és kérdezhetők le a következő szakaszokban leírtak szerint, így a legközelebbi szomszédkeresés nagy teljesítménnyel érhető el. Nem kell a pontosság és a sebesség között döntenie: mindkettőt használhatja. A vektoros beágyazások és az adatok integrált megoldásban való tárolása minimálisra csökkenti az adatszinkronizálás szükségességét, és felgyorsítja az AI-alkalmazások fejlesztéséhez szükséges időt.

Azure OpenAI

A beágyazás a valós világ adatokként való ábrázolásának folyamata. A szöveg, a képek vagy a hangok beágyazásokká alakíthatók. Az Azure OpenAI-modellek a valós információkat beágyazásokká alakíthatják. A modellek REST-végpontokként érhetők el, így az SQL Database Engine-ből könnyen felhasználhatók a sp_invoke_external_rest_endpoint rendszer eljárásával, amely az SQL Server 2025 (17.x) és a mindig naprakész frissítési szabályzattal konfigurált Felügyelt Azure SQL-példányban érhető el.

DECLARE @retval AS INT,
        @response AS NVARCHAR (MAX),
        @payload AS NVARCHAR (MAX);

SET @payload = JSON_OBJECT('input':@text);

EXECUTE
    @retval = sp_invoke_external_rest_endpoint
    @url = 'https://<openai-url>/openai/deployments/<model-name>/embeddings?api-version = 2023-03-15-preview',
    @method = 'POST',
    @credential = [https://<openai-url>/openai/deployments/<model-name>],
    @payload = @payload,
    @response = @response OUTPUT;

DECLARE @e AS VECTOR(1536) = JSON_QUERY(@response, '$.result.data[0].embedding');

A REST-szolgáltatás hívásának használata beágyazások lekéréséhez csak egyike azoknak az integrációs lehetőségeknek, amelyek a felügyelt SQL-példány és az OpenAI használatakor állnak rendelkezésre. Bármely elérhető modell hozzáférhet az SQL Database Engine-ben tárolt adatokhoz, hogy olyan megoldásokat hozzon létre, amelyekben a felhasználók kezelhetik az adatokat, például az alábbi példában:

Képernyőkép egy AI-robotról, amely az SQL Serverben tárolt adatokkal válaszol a kérdésre.

Az Azure SQL és az OpenAI használatával kapcsolatos további példákért tekintse meg a következő cikkeket, amelyek az SQL Serverre és a felügyelt Azure SQL-példányra is vonatkoznak:

Vektoros példák

A dedikált vektoradat-típus lehetővé teszi a vektoradatok hatékony és optimalizált tárolását, és számos funkcióval rendelkezik, amelyek segítenek a fejlesztőknek leegyszerűsíteni a vektorok és hasonlóságok keresésének megvalósítását. Két vektor közötti távolság kiszámítása egy kódsorban végezhető el az új VECTOR_DISTANCE függvény használatával. További információkért és példákért tekintse át a vektorkeresési és vektorindexeket az SQL Database Engine-ben.

Például:

CREATE TABLE [dbo].[wikipedia_articles_embeddings_titles_vector]
(
    [article_id] [int] NOT NULL,
    [embedding] [vector](1536) NOT NULL,
)
GO

SELECT TOP(10)
    *
FROM
    [dbo].[wikipedia_articles_embeddings_titles_vector]
ORDER BY
    VECTOR_DISTANCE('cosine', @my_reference_vector, embedding)

RAG-mintákat valósít meg az SQL Database Engine és az Azure AI Search használatával. Az Azure AI Search és az Azure OpenAI és az SQL Database Engine integrációjának köszönhetően támogatott csevegőmodelleket futtathat az SQL Database Engine-ben tárolt adatokon anélkül, hogy be kellene tanítania vagy finomhangolnia a modelleket. Az adatokon futó modellek lehetővé teszik, hogy nagyobb pontossággal és sebességgel csevegjen és elemezze az adatokat.

Az Azure AI Search és az Azure OpenAI és az SQL Database Engine integrációjáról az alábbi cikkekben olvashat, amelyek az SQL Serverre és a felügyelt Azure SQL-példányra is vonatkoznak:

Intelligens alkalmazások

Az SQL Database Engine olyan intelligens alkalmazások létrehozására használható, amelyek AI-funkciókat, például ajánlókat és lekéréses kiterjesztett generációt (RAG) tartalmaznak, ahogy az alábbi ábrán látható:

Az intelligens alkalmazások Azure SQL Database-sel való létrehozásához használható különböző AI-funkciók diagramja.

Az AI-kompatibilis alkalmazások AI-kompatibilis, absztrakt munkamenetek mintaadatkészletként való használatával történő létrehozásához a következő cikkben talál egy végpontok közötti mintát:

Megjegyzés:

A LangChain-integráció és a szemantikus kernel integráció támaszkodik a vektoros adattípusra, amely az SQL Server 2025 (17.x) verziójától és az Always-up-to-date frissítési irányelvvel konfigurált Azure SQL Felügyelt Példánytól érhető el.

LangChain-integráció

A LangChain egy jól ismert keretrendszer a nyelvi modelleken alapuló alkalmazások fejlesztéséhez. Példák arra, hogy a LangChain hogyan használható csevegőrobot létrehozására a saját adatain:

Néhány példa az Azure SQL LangChainnel való használatára:

Végpontok közötti példák:

Szemantikus kernelintegráció

A Szemantic Kernel egy nyílt forráskódú SDK , amellyel egyszerűen létrehozhat olyan ügynököket, amelyek meghívhatják a meglévő kódot. Rendkívül bővíthető SDK-ként használhatja a Szemantic Kernelt az OpenAI, az Azure OpenAI, az Ölelés arc stb. modelljeivel. A meglévő C#-, Python- és Java-kód ezen modellekkel való kombinálásával olyan ügynököket hozhat létre, amelyek megválaszolják a kérdéseket, és automatizálják a folyamatokat.

Itt látható egy példa arra, hogy a Szemantic Kernel milyen könnyen segít az AI-kompatibilis megoldások létrehozásában:

  • A végső csevegőrobot?: Hozzon létre egy csevegőrobotot a saját adataira NL2SQL és RAG minták használatával a végső felhasználói élmény érdekében.