Azure SQL Veritabanı ile akıllı uygulamalar

Şunlar için geçerlidir:Azure SQL Veritabanı

Bu makalede, Azure SQL Veritabanı ile akıllı uygulamalar oluşturmak için OpenAI ve vektörler gibi yapay zeka (AI) seçeneklerinin kullanımına genel bir bakış sunulmaktadır.

Örnekler ve örnekler için lütfen SQL AI Örnekleri deposunu ziyaret edin.

Yapay zekaya hazır bir uygulama oluşturmaya yönelik kısa bir genel bakış için bu videoyu Azure SQL Veritabanı temel parçalar serisinde izleyin:

Genel bakış

Büyük dil modelleri (LLM' ler), geliştiricilerin tanıdık bir kullanıcı deneyimiyle yapay zeka destekli uygulamalar oluşturmasını sağlar.

Uygulamalarda LLM'lerin kullanılması, modellerin uygulamanızın veritabanından doğru verilere doğru zamanda erişebildiği durumlarda daha fazla değer ve geliştirilmiş bir kullanıcı deneyimi sağlar. Bu işlem, Alma Artırılmış Nesil (RAG) olarak bilinir ve Azure SQL Veritabanı bu yeni düzeni destekleyen birçok özelliğe sahiptir ve bu da akıllı uygulamalar oluşturmak için harika bir veritabanıdır.

Aşağıdaki bağlantılar, akıllı uygulamalar oluşturmak için çeşitli Azure SQL Veritabanı seçeneklerinin örnek kodunu sağlar:

AI Seçeneği Açıklama
Azure OpenAI RAG için eklemeler oluşturun ve Azure OpenAI tarafından desteklenen tüm modellerle tümleştirin.
Vektör vektörleri Azure SQL Veritabanı depolamayı ve sorgulamayı öğrenin.
Azure AI Arama LLM'yi verileriniz üzerinde eğitmek için Azure AI Search ile birlikte Azure SQL Veritabanı kullanın.
Akıllı uygulamalar Herhangi bir senaryoda çoğaltılabilir ortak bir desen kullanarak uçtan uca çözüm oluşturmayı öğrenin.
Azure SQL Veritabanı için Copilot Azure SQL Veritabanı tabanlı uygulamaların tasarımını, çalışmasını, iyileştirmesini ve sistem durumunu kolaylaştırmak için tasarlanan yapay zeka destekli deneyimler kümesi hakkında bilgi edinin.

Temel kavramlar

Bu bölüm, Azure SQL Veritabanı ve Azure OpenAI ile RAG uygulamak için kritik öneme sahip temel kavramları içerir.

Alma Artırılmış Nesil (RAG)

RAG, LLM'nin dış kaynaklardan ek veri alarak ilgili ve bilgilendirici yanıtlar üretme becerisini geliştiren bir tekniktir. Örneğin RAG, kullanıcının sorusu veya istemiyle ilgili etki alanına özgü bilgiler içeren makaleleri veya belgeleri sorgulayabilir. LLM daha sonra yanıtını oluştururken bu alınan verileri başvuru olarak kullanabilir. Örneğin, Azure SQL Veritabanı kullanan basit bir RAG deseni şöyle olabilir:

  1. Azure SQL Veritabanı tablosuna veri ekleme.
  2. Azure SQL Veritabanı Azure AI Search'e bağlayın.
  3. Bir Azure OpenAI GPT4 modeli oluşturun ve bunu Azure AI Search'e bağlayın.
  4. Uygulamanızdaki ve Azure SQL Veritabanı eğitilmiş Azure OpenAI modelini kullanarak verilerinizle ilgili sohbet edin ve sorular sorun.

HıZLı mühendislik ile RAG deseni, modele daha bağlamsal bilgiler sunarak yanıt kalitesini geliştirme amacına hizmet eder. RAG, modelin, ilgili dış kaynakları oluşturma sürecine ekleyerek daha kapsamlı ve bilinçli yanıtlar elde ederek daha geniş bir bilgi tabanı uygulamasına olanak tanır. LLM'lerin topraklanması hakkında daha fazla bilgi için bkz. LLM'leri topraklama - Microsoft Community Hub.

İstemler ve istem mühendisliği

İstem, LLM'ye yönerge olarak veya LLM'nin üzerinde oluşturabileceği bağlamsal veriler olarak hizmet veren belirli metin veya bilgileri ifade eder. İstem, soru, deyim ve hatta kod parçacığı gibi çeşitli formlar alabilir.

LLM'den yanıt oluşturmak için kullanılabilecek örnek istemler:

  • Yönergeler: LLM'ye yönergeler sağlama
  • Birincil içerik: İşlenmek üzere LLM'ye bilgi verir
  • Örnekler: modeli belirli bir göreve veya işleme göre koşula yardımcı olun
  • ipuçları: LLM'nin çıkışını doğru yönde yönlendirme
  • Destekleyici içerik: LLM'nin çıkış oluşturmak için kullanabileceği ek bilgileri temsil eder

Senaryo için iyi istemler oluşturma işlemine istem mühendisliği adı verilir. İstemler ve istem mühendisliği için en iyi yöntemler hakkında daha fazla bilgi için bkz . Azure OpenAI Hizmeti.

Belirteçler

Belirteçler, giriş metni daha küçük parçalara bölünerek oluşturulan küçük metin öbekleridir. Bu segmentler, tek bir karakterden sözcüğün tamamına kadar değişen sözcükler veya karakter grupları olabilir. Örneğin, sözcüğü hamburger , burve ger gibi hambelirteçlere bölünürken gibi pear kısa ve ortak bir sözcük tek bir belirteç olarak kabul edilir.

Azure OpenAI'de, API'ye sağlanan giriş metni belirteçlere (belirteçli) dönüştürülür. Her API isteğinde işlenen belirteçlerin sayısı giriş, çıkış ve istek parametrelerinin uzunluğu gibi faktörlere bağlıdır. İşlenen belirteçlerin miktarı, modellerin yanıt süresini ve aktarım hızını da etkiler. Her modelin Azure OpenAI'den tek bir istek/yanıtta alabildiği belirteç sayısı sınırları vardır. Daha fazla bilgi edinmek için bkz . Azure OpenAI Hizmeti kotaları ve sınırları.

Vektör

Vektörler, bazı veriler hakkındaki bilgileri temsil eden sıralı sayı dizileridir (genellikle kayan sayılar). Örneğin, bir görüntü piksel değerlerinin vektöru olarak gösterilebilir veya bir metin dizesi vektör veya ASCII değerleri olarak gösterilebilir. Verileri vektöre dönüştürme işlemine vektörleştirme adı verilir.

Eklemeler

Eklemeler, verilerin önemli özelliklerini temsil eden vektörlerdir. Eklemeler genellikle derin öğrenme modeli kullanılarak öğrenilir ve makine öğrenmesi ve yapay zeka modelleri bunları özellik olarak kullanır. Eklemeler, benzer kavramlar arasındaki anlamsal benzerliği de yakalayabilir. Örneğin, ve humansözcükleri person için bir ekleme oluştururken sözcüklerin de benzer olması nedeniyle eklemelerinin (vektör gösterimi) değer olarak benzer olmasını bekleriz.

Azure OpenAI, metin verilerinden eklemeler oluşturmak için modeller sunar. Hizmet, metinleri belirteçlere ayırır ve OpenAI tarafından önceden eğitilen modelleri kullanarak eklemeler oluşturur. Daha fazla bilgi edinmek için bkz . Azure OpenAI ile ekleme oluşturma.

Vektör araması, bir veri kümesindeki belirli bir sorgu vektörine benzer tüm vektörleri bulma işlemini ifade eder. Bu nedenle, sözcüğün human sorgu vektörleri sözlüğün tamamında benzer sözcükler arar ve sözcüğü person yakın bir eşleşme olarak bulmalıdır. Bu yakınlık veya uzaklık, kosinüs benzerliği gibi bir benzerlik ölçümü kullanılarak ölçülür. Daha yakın vektörler benzerlik gösterir, aralarındaki mesafe o kadar küçüktür.

Verilerinizdeki en benzer belgeleri bulmak için milyonlarca belge üzerinde sorgu çalıştırdığınız bir senaryo düşünün. Azure OpenAI kullanarak verileriniz için eklemeler oluşturabilir ve belgeleri sorgulayabilirsiniz. Ardından, veri kümenizdeki en benzer belgeleri bulmak için bir vektör araması gerçekleştirebilirsiniz. Ancak, birkaç örnek arasında vektör araması yapmak basit bir işlemdir. Aynı aramayı binlerce veya milyonlarca veri noktasında gerçekleştirmek zorlaşır. Ayrıca, kapsamlı arama ile gecikme süresi, aktarım hızı, doğruluk ve maliyet gibi en yakın komşu (ANN) arama yöntemleri arasında da dengeler vardır ve bunların tümü uygulamanızın gereksinimlerine bağlıdır.

Azure SQL Veritabanı ekleme işlemleri columnstore dizin desteği kullanılarak verimli bir şekilde depolanabildiği ve sorgulanabildiği için, mükemmel performansla en yakın komşu aramasına izin verebilirsiniz, doğruluk ve hız arasında karar vermeniz gerekmez: her ikisine de sahip olabilirsiniz. Vektör ekleme işlemlerinin verilerin yanı sıra tümleşik bir çözümde depolanması, veri eşitlemesini yönetme gereksinimini en aza indirir ve yapay zeka uygulaması geliştirme için pazara çıkış sürenizi hızlandırır.

Azure OpenAI

Ekleme, gerçek dünyayı veri olarak temsil etme işlemidir. Metinler, resimler veya sesler eklemelere dönüştürülebilir. Azure OpenAI modelleri, gerçek dünyadaki bilgileri eklemelere dönüştürebilir. Modeller REST uç noktaları olarak kullanılabilir ve bu nedenle sistem saklı yordamı kullanılarak sp_invoke_external_rest_endpoint Azure SQL Veritabanı kolayca kullanılabilir:

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

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

EXEC @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;

SELECT CAST([key] AS INT) AS [vector_value_id],
    CAST([value] AS FLOAT) AS [vector_value]
FROM OPENJSON(JSON_QUERY(@response, '$.result.data[0].embedding'));

Eklemeleri almak için REST hizmetine çağrı kullanmak, SQL Veritabanı ve OpenAI ile çalışırken sahip olduğunuz tümleştirme seçeneklerinden yalnızca biridir. Aşağıdaki örnek gibi, kullanıcılarınızın verilerle etkileşim kurabileceği çözümler oluşturmak için kullanılabilir modellerden herhangi birinin Azure SQL Veritabanı depolanan verilere erişmesini sağlayabilirsiniz.

Azure SQL Veritabanı depolanan verileri kullanarak soruyu yanıtlayan yapay zeka botunun ekran görüntüsü.

SQL Veritabanı ve OpenAI kullanma hakkında ek örnekler için aşağıdaki makalelere bakın:

Vektör

Azure SQL Veritabanı yerel vektör türü olmasa da, vektör sıralı bir tanımlama grubundan başka bir şey değildir ve ilişkisel veritabanları tanımlama listelerini yönetmede harikadır. Tanımlama grubu, tablodaki bir satırın resmi terimi olarak düşünebilirsiniz.

Azure SQL Veritabanı ayrıca columnstore dizinlerini ve toplu iş modu yürütmeyi destekler. Toplu iş modu işlemesi için vektör tabanlı bir yaklaşım kullanılır; başka bir deyişle bir toplu işteki her sütunun vektör olarak depolandığı kendi bellek konumu vardır. Bu, verilerin toplu olarak daha hızlı ve daha verimli işlenmesini sağlar.

Aşağıdaki örnekte vektörlerin SQL Veritabanı nasıl depolanabileceği gösterilmektedir:

CREATE TABLE [dbo].[wikipedia_articles_embeddings_titles_vector]
(
    [article_id] [int] NOT NULL,
    [vector_value_id] [int] NOT NULL,
    [vector_value] [float] NOT NULL
)
GO

CREATE CLUSTERED COLUMNSTORE INDEX ixc
    ON dbo.wikipedia_articles_embeddings_titles_vector
    ORDER (article_id);
GO

OpenAI kullanılarak önceden oluşturulmuş eklemelerle Wikipedia makalelerinin ortak bir alt kümesini kullanan bir örnek için bkz. Azure SQL Veritabanı ve OpenAI ile vektör benzerliği araması.

Azure SQL veritabanında Vektör Arama'dan yararlanmaya yönelik bir diğer seçenek de tümleşik vektörleştirme özelliklerini kullanarak Azure AI ile tümleştirmedir: Azure SQL Veritabanı ile Vektör Arama ve Azure AI Arama

Azure SQL Veritabanı ve Azure AI Search ile RAG desenleri uygulayın. Azure AI Search'ün Azure OpenAI ve Azure SQL Veritabanı tümleştirmesi sayesinde modelleri eğitmek veya ince ayar yapmak zorunda kalmadan desteklenen sohbet modellerini Azure SQL Veritabanı depolanan verilerde çalıştırabilirsiniz. Verilerinizde modelleri çalıştırmak, verilerinizi daha yüksek doğruluk ve hız ile sohbet edip analiz etmenizi sağlar.

Akıllı uygulamalar

Azure SQL Veritabanı, aşağıdaki diyagramda gösterildiği gibi, önerilenler ve Alma Artırılmış Nesli (RAG) gibi yapay zeka özelliklerini içeren akıllı uygulamalar oluşturmak için kullanılabilir:

Azure SQL Veritabanı ile akıllı uygulamalar oluşturmak için farklı yapay zeka özelliklerinin diyagramı.

Örnek veri kümesi olarak soyut oturumları kullanarak yapay zeka özellikli bir uygulama derlemek için uçtan uca örnek için bkz:

LangChain tümleştirmesi

LangChain, dil modelleri tarafından desteklenen uygulamalar geliştirmeye yönelik iyi bilinen bir çerçevedir.

LangChain'in kendi verileriniz üzerinde sohbet botu oluşturmak için nasıl kullanılabileceğini gösteren bir örnek için bkz . Azure OpenAI GPT-4 ile Azure SQL için kendi DB Copilot'ınızı oluşturma.

Semantik Çekirdek tümleştirmesi

Semantik Çekirdek, mevcut kodunuzu çağırabilen aracıları kolayca oluşturmanıza olanak tanıyan bir açık kaynak SDK'dır . Son derece genişletilebilir bir SDK olarak, OpenAI, Azure OpenAI, Hugging Face ve daha birçok modelle Anlam Çekirdeği'ni kullanabilirsiniz! Mevcut C#, Python ve Java kodunuzu bu modellerle birleştirerek soruları yanıtlayan aracılar oluşturabilir ve işlemleri otomatikleştirebilirsiniz.

Azure SQL Veritabanı için Copilot (önizleme)

Azure SQL Veritabanı 'de Copilot (önizleme), Azure SQL Veritabanı tabanlı uygulamaların tasarımını, çalışmasını, iyileştirilmesini ve sistem durumunu kolaylaştırmak için tasarlanmış bir dizi yapay zeka destekli deneyimdir. Copilot, SQL dönüştürmeye doğal dil ve veritabanı yönetimi için kendi kendine yardım sunarak üretkenliği artırabilir.

Copilot kullanıcı sorularına ilgili yanıtlar sağlayarak veritabanı bağlamı, belgeler, dinamik yönetim görünümleri, Sorgu Deposu ve diğer bilgi kaynaklarından yararlanarak veritabanı yönetimini basitleştirir. Örneğin:

  • Veritabanı yöneticileri veritabanlarını bağımsız olarak yönetebilir ve sorunları çözebilir veya veritabanınızın performansı ve özellikleri hakkında daha fazla bilgi edinebilir.
  • Geliştiriciler, T-SQL sorgusu oluşturmak için metin veya konuşmada olduğu gibi verileri hakkında sorular sorabilir. Geliştiriciler, oluşturulan sorgunun ayrıntılı açıklamaları aracılığıyla sorguları daha hızlı yazmayı da öğrenebilir.

Not

Azure SQL Veritabanı'deki Copilot şu anda sınırlı sayıda erken benimseyen için önizleme aşamasındadır. Bu programa kaydolmak için Azure SQL Veritabanı: Önizleme'de Copilot'a Erişim İsteme'yi ziyaret edin. Azure SQL Veritabanı için Copilot önizlemesi iki Azure portalı deneyimi içerir:

Portal konumu Deneyim
Azure portal Sorgu Düzenleyicisi SQL'e doğal dil: Azure SQL Veritabanı için Azure portalı sorgu düzenleyicisindeki bu deneyim, doğal dil sorgularını SQL'e çevirerek veritabanı etkileşimlerini daha sezgisel hale getirir. Öğretici ve SQL özelliklerine doğal dil örnekleri için bkz . Azure portalı Sorgu düzenleyicisinde (önizleme) Doğal dilden SQL'e.
Azure için Microsoft Copilot Azure Copilot tümleştirmesi: Bu deneyim Azure için Microsoft Copilot'a Azure SQL becerileri ekleyip müşterilere kendi kendine rehberlik eden yardım sağlar, veritabanlarını yönetmelerine ve sorunları bağımsız olarak çözmelerine olanak sağlar.

Daha fazla bilgi için bkz . Microsoft Azure SQL'de Copilot hakkında sık sorulan sorular (önizleme).