Inbäddningsfärdighet för Azure OpenAI
Azure OpenAI-inbäddningsfärdigheten ansluter till en distribuerad inbäddningsmodell på din Azure OpenAI-resurs för att generera inbäddningar under indexering. Dina data bearbetas i geo-området där din modell distribueras.
Förutsättningar
Azure OpenAI-tjänsten måste ha en associerad anpassad underdomän. Om tjänsten skapades via Azure Portal genereras den här underdomänen automatiskt som en del av tjänstkonfigurationen. Se till att tjänsten innehåller en anpassad underdomän innan du använder den med Azure AI Search-integreringen.
Azure OpenAI-tjänstresurser (med åtkomst till inbäddningsmodeller) som skapades i AI Studio stöds inte. Endast De Azure OpenAI-tjänstresurser som skapats i Azure Portal är kompatibla med integreringen av Azure OpenAI-inbäddningsfärdighet.
Guiden Importera och vektorisera data i Azure Portal använder Azure OpenAI-inbäddningsfärdigheten för att vektorisera innehåll. Du kan köra guiden och granska den genererade kompetensuppsättningen för att se hur guiden skapar kunskaper för inbäddningsmodeller.
Kommentar
Den här färdigheten är bunden till Azure OpenAI och debiteras till det befintliga betala per användning-priset för Azure OpenAI.
@odata.type
Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill
Databegränsningar
Den maximala storleken för en textinmatning ska vara 8 000 token. Om indata överskrider det högsta tillåtna antalet genererar modellen ett ogiltigt begärandefel. Mer information finns i nyckelkonceptet för token i Azure OpenAI-dokumentationen. Överväg att använda färdigheten Textdelning om du behöver segmentering av data.
Kompetensparametrar
Parametrar är skiftlägeskänsliga.
Indata | beskrivning |
---|---|
resourceUri |
URI:n för modellprovidern, i det här fallet en Azure OpenAI-resurs. Den här parametern stöder endast URL:er med domänen openai.azure.com , till exempel https://<resourcename>.openai.azure.com . Om Azure OpenAI-slutpunkten har en URL med domänen cognitiveservices.azure.com , till exempel https://<resourcename>.cognitiveservices.azure.com , måste en anpassad underdomän med openai.azure.com skapas först för Azure OpenAI-resursen och i stället användas https://<resourcename>.openai.azure.com . |
apiKey |
Den hemliga nyckel som används för att komma åt modellen. Om du anger en nyckel lämnar du authIdentity tom. Om du anger både apiKey och authIdentity apiKey används den för anslutningen. |
deploymentId |
Namnet på den distribuerade Inbäddningsmodellen för Azure OpenAI. Modellen ska vara en inbäddningsmodell, till exempel textinbäddning-ada-002. Se Listan över Azure OpenAI-modeller för modeller som stöds. |
authIdentity |
En användarhanterad identitet som används av söktjänsten för att ansluta till Azure OpenAI. Du kan använda antingen en system- eller användarhanterad identitet. Lämna och authIdentity tom om du vill använda en systemhanterad identitetapiKey . Den systemhanterade identiteten används automatiskt. En hanterad identitet måste ha Behörighet för Cognitive Services OpenAI-användare att skicka text till Azure OpenAI. |
modelName |
Den här egenskapen krävs om din kompetensuppsättning skapas med rest-API:et 2024-05-01-preview eller 2024-07-01. Ange den här egenskapen till distributionsnamnet för en Azure OpenAI-inbäddningsmodell som distribueras på den provider som anges via resourceUri och identifieras via deploymentId . För närvarande är text-embedding-ada-002 de värden som stöds , text-embedding-3-large och text-embedding-3-small . |
dimensions |
(Valfritt, introducerat i REST API för förhandsversion 2024-05-01). Dimensionerna för inbäddningar som du vill generera om modellen har stöd för att minska inbäddningsdimensionerna. Intervall som stöds visas nedan. Standardvärdet är de maximala dimensionerna för varje modell om de inte anges. För kompetensuppsättningar som skapats med hjälp av förhandsversionen 2023-10-01 fastställs dimensionerna till 1536. |
Dimensioner som stöds av modelName
Vilka dimensioner som stöds för en Azure OpenAI-inbäddningsfärdighet beror på vilken modelName
som är konfigurerad.
modelName |
Minsta mått | Maximala dimensioner |
---|---|---|
text-embedding-ada-002 | 1536 | 1536 |
text-embedding-3-large | 1 | 3072 |
text-embedding-3-small | 1 | 1536 |
Kunskapsindata
Indata | beskrivning |
---|---|
text |
Den indatatext som ska vektoriseras. Om du använder datasegmentering kan källan vara /document/pages/* . |
Kunskapsutdata
Output | beskrivning |
---|---|
embedding |
Vektoriserad inbäddning för indatatexten. |
Exempeldefinition
Överväg en post som har följande fält:
{
"content": "Microsoft released Windows 10."
}
Då kan din kompetensdefinition se ut så här:
{
"@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
"description": "Connects a deployed embedding model.",
"resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
"deploymentId": "my-text-embedding-ada-002-model",
"modelName": "text-embedding-ada-002",
"dimensions": 1536,
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "embedding"
}
]
}
Exempelutdata
För den angivna indatatexten skapas en vektoriserad inbäddningsutdata.
{
"embedding": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
Utdata finns i minnet. Om du vill skicka utdata till ett fält i sökindexet måste du definiera en outputFieldMapping som mappar de vektoriserade inbäddningsutdata (som är en matris) till ett vektorfält. Förutsatt att kunskapsutdata finns i dokumentets inbäddningsnod och content_vector är fältet i sökindexet bör outputFieldMapping i indexeraren se ut så här:
"outputFieldMappings": [
{
"sourceFieldName": "/document/embedding/*",
"targetFieldName": "content_vector"
}
]
Bästa praxis
Följande är några metodtips som du behöver tänka på när du använder den här färdigheten:
Om du når gränsen för Azure OpenAI TPM (token per minut) bör du överväga rekommendationen om kvotgränser så att du kan åtgärda detta. Mer information om azure OpenAI-instansprestanda finns i dokumentationen för Azure OpenAI-övervakning .
Den Azure OpenAI-inbäddningsmodelldistribution som du använder för den här färdigheten bör helst vara separat från distributionen som används för andra användningsfall, inklusive frågevektoriseraren. Detta hjälper varje distribution att skräddarsys efter sitt specifika användningsfall, vilket gör det enkelt att optimera prestanda och identifiera trafik från indexeraren och indexets inbäddningsanrop.
Din Azure OpenAI-instans bör finnas i samma region eller åtminstone geografiskt nära den region där din AI-tjänsten Search finns. Detta minskar svarstiden och förbättrar dataöverföringshastigheten mellan tjänsterna.
Om du har en större gräns än standardgränsen för Azure OpenAI TPM (token per minut) som publicerats i dokumentationen om kvoter och gränser öppnar du ett supportärende med Azure AI Search-teamet, så att detta kan justeras i enlighet med detta. Detta hjälper din indexeringsprocess att inte i onödan saktas ned av den dokumenterade TPM-standardgränsen om du har högre gränser.
Exempel och fungerande kodexempel som använder den här färdigheten finns i följande länkar:
Fel och varningar
Villkor | Result |
---|---|
Null eller ogiltig URI | Fel |
Null eller ogiltigt deploymentID | Fel |
Texten är tom | Varning |
Texten är större än 8 000 token | Fel |