Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.
Karşılıklı Rank Fusion (RRF), tek bir birleşik sonuç kümesi oluşturmak için önceden derecelenmiş birden çok sonuçtan arama puanlarını değerlendiren bir algoritmadır. Azure Yapay Zeka Arama'de karma sorgular ve birden çok vektör sorgusu gibi iki veya daha fazla sorgu paralel olarak yürütürken RRF kullanılır. Her sorgu bir dereceli sonuç kümesi oluşturur ve RRF bu derecelendirmeleri sorgu yanıtı için tek bir sonuç kümesinde birleştirir ve homojenleştirir.
RRF, arama sonuçları listesindeki ilk ilgili belgenin derecesinin tersi olan karşılıklı derece kavramını temel alır. Tekniğin amacı, öğelerin özgün derecelendirmelerdeki konumunu dikkate almak ve birden çok listede daha yüksek dereceye sahip öğelere daha yüksek önem vermektir. Bu yaklaşım, nihai sıralamanın genel kalitesini ve güvenilirliğini artırmaya yardımcı olabilir, bu sayede birden çok sıralı arama sonucunu birleştirme görevi için daha kullanışlı hale gelebilir.
RRF derecelendirmesi nasıl çalışır?
RRF, birden çok yöntemden arama sonuçlarını alarak, sonuçlardaki her belgeye karşılıklı bir derecelendirme puanı atayarak ve ardından puanları birleştirerek yeni bir derecelendirme oluşturarak çalışır. Kavram, birden çok arama yönteminde en üst konumlarda görünen belgelerin daha ilgili olması ve birleştirilmiş sonuçta daha yüksek sırada yer alması gerektiğidir.
RRF işleminin basit bir açıklaması aşağıdadır:
Paralel olarak çalışan birden çok sorgudan dereceli arama sonuçları alın.
Dereceli listelerin her birinde sonuçlar için karşılıklı derecelendirme puanları atayın. RRF, her sonuç kümesindeki her eşleşme için yeni bir
@search.scoreoluşturur. Arama sonuçlarındaki her belge için motor, listedeki konumuna göre bir ters sıra puanı atar. Puan olarak1/(rank + k)hesaplanır; buradarankbelgenin listedeki konumudur veksabittir. Denemeler, 60 gibi küçük bir değere ayarladığınızdakalgoritmanın en iyi performansı gösterdiğini gösterir. Bukdeğer, RRF algoritmasındaki bir sabittir ve en yakın komşu sayısını denetleyen değerinden tamamen ayrıdırk.Puanları birleştirin. Altyapı, her belge için her arama sisteminden alınan karşılıklı derecelendirme puanlarını toplar ve her belge için birleştirilmiş bir puan oluşturur.
Motor, belgeleri birleşik puanlara göre derecelendirir ve ardından sıralar. Sonuçta elde edilen liste, birleştirilmiş derecelendirmedir.
Puanlama için yalnızca dizinde searchable olarak veya sorguda searchFields olarak işaretlenen alanlar kullanılır. Yalnızca retrievable olarak işaretlenen alanlar veya sorguda select içinde belirtilen alanlar, arama puanlarıyla birlikte arama sonuçlarında döndürülür.
Paralel sorgu yürütme
RRF, birden fazla sorgu yürütme olduğunda kullanılır. Aşağıdaki örneklerde paralel sorgu yürütmenin gerçekleştiği sorgu desenleri gösterilmektedir:
- Bir tam metin sorgusu ve bir vektör sorgusu (basit karma senaryo), iki sorgu yürütmeye eşittir.
- Tam metin sorgusu ve iki vektör alanını hedefleyen bir vektör sorgusu, üç sorgu yürütmeye eşittir.
- Tam metin sorgusu ve beş vektör alanını hedefleyen iki vektör sorgusu, 11 sorgu yürütmeye eşittir.
Karma arama sonuçlarında puanlar
Sonuçlar her derecelendirildiğinde, @search.score özelliği sonuçları sıralamak için kullanılan değeri içerir. Puanlar, her yöntem için değişen derecelendirme algoritmaları tarafından oluşturulur. Her algoritmanın kendi aralığı ve büyüklüğü vardır.
Aşağıdaki tablo, her bir ilgi derecelendirme algoritması için her eşleşme, algoritma ve puan aralığında döndürülen puanlama özelliğini tanımlar. Puanlama iş akışının diyagramı ve daha fazla bilgi için bkz. Azure Yapay Zeka Arama'te ilgi.
| Arama yöntemi | Parameter | Puanlama algoritması | Range |
|---|---|---|---|
| tam metin arama | @search.score |
BM25 algoritması | Üst sınır yok. |
| vector search | @search.score |
HNSW yapılandırmasında belirtilen benzerlik ölçümünü kullanan HNSW algoritması. | 0,333 - 1,00 (Kosinüs), Öklid ve DotProduct için 0-1. |
| karma arama | @search.score |
RRF algoritması | Üst sınır, birleştirilmekte olan sorgu sayısıyla sınırlıdır ve her sorgu RRF puanına yaklaşık olarak 1/k değerine kadar katkıda bulunur (bu, vektör sorgusunda değil, RRF algoritmasındaki k parametresidir). Örneğin, üç sorgu birleştirildiğinde yalnızca iki arama sonucu birleştirildiğinden daha yüksek RRF puanı elde edilir. |
| anlamsal derecelendirme | @search.rerankerScore |
Anlamsal derecelendirme | 0.00 - 4.00 |
Anlamsal derecelendirme, sonuçların RRF birleştirilmesinden sonra gerçekleşir. Puanı (@search.rerankerScore) her zaman sorgu yanıtında ayrı olarak bildirilir. Anlam dereceleyicisi, bu sonuçların semantik açıdan zengin içeriğe sahip alanlar içerdiği varsayılarak tam metin ve karma arama sonuçlarını yeniden düzenleyebilir. Arama belgelerinde görsel olarak ilgili içerik içeren metin alanları varsa saf vektör sorgularını yeniden düzenleyebilir.
Arama puanını alt puanlara ayrıştırma
Arama puanını alt puanlarına ayırarak görüntüleyebilirsiniz. Vektör sorguları için, bu bilgiler vektör ağırlıklama veya minimum eşikleri ayarlama için uygun bir değer belirlemenize yardımcı olabilir.
Alt puanları almak için:
Belge Ara REST API'sini veya özelliği sağlayan bir Azure SDK paketini kullanın.
Bir sorgu isteğini değiştirerek, değeri
debug, semantik sıralayıcı kullanılıyorsavectorveyasemanticolarak ayarlanmış yeni birallparametresi ekleyin.
İşte hata ayıklama modunda alt puanlar döndüren bir karma sorgu örneği:
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2026-04-01
{
"vectorQueries": [
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"exhaustive": true,
"k": 10
},
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"exhaustive": true,
"k": 10
}
],
"search": "historic hotel walk to restaurants and shopping",
"select": "HotelName, Description, Address/City",
"debug": "vector",
"top": 10
}
Ağırlıklı puanlar
Ayrıca, karma sorguda önemini artırmak veya azaltmak için vektör sorgularını ağırlıklayabilirsiniz .
Hatırlayacağınız gibi, belirli bir belge için RRF hesaplanırken arama altyapısı, göründüğü her sonuç kümesi için bu belgenin derecesine bakar. Bir belgenin, sonuçların iki vektör sorgusundan ve bir metin BM25 dereceli sorgudan geldiği üç ayrı arama sonucunda gösterildiğini varsayın. Belgenin konumu her sonuçta farklılık gösterir.
| Eşleşme bulundu | Sonuçlardaki konum | @search.score | ağırlık çarpanı | @search.score (ağırlıklı) |
|---|---|---|---|---|
| vektör sonuçları bir | konum 1 | 0.8383955 | 0.5 | 0.41919775 |
| vektör sonuçları 2 | konum 5 | 0.81514114 | 2.0 | 1.63028228 |
| BM25 sonuçları | konum 10 | 0.8577363 | NA | 0.8577363 |
Belgenin her sonuç kümesindeki konumu, söz konusu belge için son RRF puanını oluşturmak üzere eklenen bir başlangıç puanına karşılık gelir.
Vektör ağırlığı eklerseniz, başlangıç puanları puanı artıran veya azaltan bir ağırlıklandırma çarpanına tabi olur. Varsayılan değer 1,0'dır, yani ağırlıklama yoktur ve ilk puan RRF puanlamada olduğu gibi kullanılır. Ancak, 0,5 ağırlık eklerseniz puan azalır ve bu sonuç birleşik derecelendirmede daha az önemli hale gelir. Buna karşılık, 2,0 değerinde bir ağırlık eklerseniz, puan toplam RRF puanında daha belirleyici bir etken olur.
Bu örnekte, @search.score (ağırlıklı) değerler RRF derecelendirme modeline gider.
Karma sorgu yanıtında dereceli sonuç sayısı
Varsayılan olarak, sayfalandırma kullanmıyorsanız, arama altyapısı tam metin araması için en yüksek 50 derecelendirme eşleşmesini ve vektör araması için en benzer k eşleşmeleri döndürür. Karma sorguda yanıttaki top sonuç sayısını belirler. Varsayılan değerlere bağlı olarak, birleştirilmiş sonuç kümesinin en yüksek dereceli 50 eşleşmesi döndürülür.
Arama motoru çoğu zaman top ve k değerlerinden daha fazla sonuç bulur. Daha fazla sonuç döndürmek için top, skip ve next sayfalama parametrelerini kullanın. Sayfalama, her mantıksal sayfadaki sonuç sayısını belirleme ve tam yükte gezinme yöntemidir.
Karma sorgunun metin tarafından daha fazla sonuç döndürmek için daha büyük değerlere (varsayılan değer 1.000'dir) ayarlayabilirsinizmaxTextRecallSize.
Varsayılan olarak, tam metin araması en fazla 1.000 eşleşme sınırına tabidir (bkz. API yanıt sınırları). 1.000 eşleşme bulunduktan sonra arama motoru artık daha fazlasını aramaz.
Daha fazla bilgi için Arama sonuçlarıyla çalışma konusuna bkz.
İlgili içerik
- Azure Yapay Zeka Arama içinde vektörleri ve tam metni kullanarak hibrit arama
- Azure Yapay Zeka Arama'te Vektör araması