Azure AI Model Çıkarım API'si | Azure AI Studio
Önemli
Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.
Azure AI Model Çıkarımı, temel modeller için ortak bir özellik kümesini kullanıma sunan ve geliştiriciler tarafından çeşitli modellerden gelen tahminleri tekdüzen ve tutarlı bir şekilde kullanmak için kullanılabilen bir API'dir. Geliştiriciler, kullandıkları temel kodu değiştirmeden Azure AI Studio'da dağıtılan farklı modellerle konuşabilir.
Sosyal haklar
Dil modelleri gibi temel modeller, son yıllarda gerçekten önemli adımlar atmış durumdadır. Bu gelişmeler doğal dil işleme ve görüntü işleme gibi çeşitli alanlarda devrim yaptı ve sohbet botları, sanal yardımcılar ve dil çevirisi hizmetleri gibi uygulamaları etkinleştirdi.
Temel modeller belirli etki alanlarında başarılı olsa da, tekdüzen bir özellik kümesine sahip değildir. Bazı modeller belirli görevlerde ve hatta aynı görevde daha iyidir, bazı modeller soruna bir şekilde, diğerleri ise başka bir yolla yaklaşabilir. Geliştiriciler, doğru iş için doğru modeli kullanarak bu çeşitlilikten yararlanabilir ve şunları yapabilir:
- Belirli bir aşağı akış görevinde performansı geliştirin.
- Daha basit görevler için daha verimli modeller kullanın.
- Belirli görevlerde daha hızlı çalışabilen daha küçük modeller kullanın.
- Akıllı deneyimler geliştirmek için birden çok model oluşturma.
Temel modelleri kullanmanın tekdüzen bir yolu olması, geliştiricilerin taşınabilirlikten ödün vermeden veya temel kodu değiştirmeden tüm bu avantajları gerçekleştirmesine olanak tanır.
Kullanılabilirlik
Azure AI Model Çıkarımı API'sini aşağıdaki modellerde bulabilirsiniz:
Sunucusuz API uç noktalarına dağıtılan modeller:
- Embed V3 model ailesini bir arada kullanma
- Command R model ailesini uyumlu yapma
- Meta Llama 2 sohbet model ailesi
- Meta Llama 3 model ailesini eğitme
- Mistral-Small
- Mistral-Large
- Jais model ailesi
- Jamba model ailesi
- Phi-3 model ailesi
Yönetilen çıkarıma dağıtılan modeller:
- Meta Llama 3 model ailesini eğitme
- Phi-3 model ailesi
- Mistral ve Mixtral model ailesi.
API, Azure OpenAI model dağıtımlarıyla uyumludur.
Not
Azure AI modeli çıkarım API'sini, 24 Haziran 2024'te dağıtılan modeller için yönetilen çıkarım (Yönetilen Çevrimiçi Uç Noktalar) olarak kullanabilirsiniz. API'nin ilerlemesini sağlamak için, model bu tarihten önce dağıtıldıysa uç noktanızı yeniden dağıtın.
Özellikler
Aşağıdaki bölümde API'nin kullanıma sunduğu bazı özellikler açıklanmaktadır. API'nin tam belirtimi için başvuru bölümünü görüntüleyin.
Kalıcılıklar
API, geliştiricilerin aşağıdaki modaliteler için tahminleri nasıl kullanabileceğini gösterir:
- Bilgi alma: Uç nokta altında dağıtılan model hakkındaki bilgileri döndürür.
- Metin eklemeler: Giriş metnini temsil eden bir ekleme vektöru oluşturur.
- Metin tamamlamaları: Sağlanan istem ve parametreler için bir tamamlama oluşturur.
- Sohbet tamamlamaları: Verilen sohbet konuşması için bir model yanıtı oluşturur.
- Resim ekleme: Giriş metnini ve görüntüsünü temsil eden bir ekleme vektöru oluşturur.
Çıkarım SDK'sı desteği
Azure AI modeli çıkarım API'sini çalıştıran modellerden tahminleri kullanmak için tercih ettiğiniz dilde kolaylaştırılmış çıkarım istemcilerini kullanabilirsiniz.
Paket yöneticinizi kullanarak pip azure-ai-inference
gibi bir paket yükleyin:
pip install azure-ai-inference
Ardından, modeli kullanmak için paketini kullanabilirsiniz. Aşağıdaki örnekte, sohbet tamamlamalarını kullanmak için nasıl istemci oluşturulacağı gösterilmektedir:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
model = ChatCompletionsClient(
endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)
Entra Id desteğine sahip bir uç nokta kullanıyorsanız istemcinizi aşağıdaki gibi oluşturabilirsiniz:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import AzureDefaultCredential
model = ChatCompletionsClient(
endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
credential=AzureDefaultCredential(),
)
Başlamak için örneklerimizi inceleyin ve API başvuru belgelerini okuyun.
Genişletilebilirlik
Azure AI Model Çıkarımı API'sinde modellerin abone olabileceği bir dizi modalite ve parametre belirtilir. Ancak bazı modellerde, API'nin gösterdiği özellikler daha fazla olabilir. Bu durumlarda API, geliştiricinin bunları yükte ek parametreler olarak geçirmesine olanak tanır.
bir üst bilgi extra-parameters: pass-through
ayarlayarak, API bilinmeyen herhangi bir parametreyi doğrudan temel alınan modele geçirmeye çalışır. Model bu parametreyi işleyebilirse istek tamamlar.
Aşağıdaki örnekte, Azure AI Model Çıkarım API'sinde belirtilmemiş olan Mistral-Large tarafından desteklenen parametreyi safe_prompt
geçiren bir istek gösterilmektedir.
from azure.ai.inference.models import SystemMessage, UserMessage
response = model.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
model_extras={
"safe_mode": True
}
)
print(response.choices[0].message.content)
İpucu
Azure AI Çıkarım SDK'sını kullanırken kullanarak model_extras
isteği extra-parameters: pass-through
sizin için ile otomatik olarak yapılandırılır.
Not
için varsayılan değer, error
yükte fazladan bir parametre belirtilirse hata döndüren değerdirextra-parameters
. Alternatif olarak, bilinmeyen herhangi bir parametreyi istekte bırakmak için ayarlayabilirsiniz extra-parameters: drop
. Modelin desteklemeyeceğini bildiğiniz ancak isteğin yine de tamamlanmasını istediğiniz ek parametreler içeren istekler gönderiyor olmanız durumunda bu özelliği kullanın. Bunun tipik bir örneği parametreyi gösterir seed
.
Farklı özellik kümesine sahip modeller
Azure AI Model Çıkarımı API'si genel bir özellik kümesini gösterir, ancak modellerin her biri bunları uygulamaya karar verebilir veya uygulamayabilir. Modelin belirli bir parametreyi destekleyemediği durumlarda belirli bir hata döndürülür.
Aşağıdaki örnekte, parametresini reponse_format
gösteren ve biçiminde bir yanıt isteyen bir sohbet tamamlama isteğinin yanıtı JSON
gösterilmektedir. Örnekte model bu özelliği desteklemediğinden kullanıcıya 422 hatası döndürülür.
import json
from azure.ai.inference.models import SystemMessage, UserMessage, ChatCompletionsResponseFormatJSON
from azure.core.exceptions import HttpResponseError
try:
response = model.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
response_format=ChatCompletionsResponseFormatJSON()
)
except HttpResponseError as ex:
if ex.status_code == 422:
response = json.loads(ex.response._content.decode('utf-8'))
if isinstance(response, dict) and "detail" in response:
for offending in response["detail"]:
param = ".".join(offending["loc"])
value = offending["input"]
print(
f"Looks like the model doesn't support the parameter '{param}' with value '{value}'"
)
else:
raise ex
İpucu
Özelliği inceleyerek details.loc
sorunlu parametrenin konumunu anlayabilir ve details.input
istekte geçirilen değeri görebilirsiniz.
İçerik güvenliği
Azure AI modeli çıkarım API'si, Azure AI İçerik Güvenliği'ni destekler. Azure AI Content Safety ile dağıtımları kullanırken, girişler ve çıkışlar zararlı içeriğin çıkışını algılamayı ve önlemeyi hedefleyen sınıflandırma modellerinden oluşan bir grup içinden geçer. İçerik filtreleme (önizleme) sistemi, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek içeriğin belirli kategorilerini algılar ve bu kategoriler üzerinde işlem gerçekleştirir.
Aşağıdaki örnekte, içerik güvenliğini tetikleyen bir sohbet tamamlama isteğinin yanıtı gösterilmektedir.
from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage
from azure.core.exceptions import HttpResponseError
try:
response = model.complete(
messages=[
SystemMessage(content="You are an AI assistant that helps people find information."),
UserMessage(content="Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."),
]
)
print(response.choices[0].message.content)
except HttpResponseError as ex:
if ex.status_code == 400:
response = json.loads(ex.response._content.decode('utf-8'))
if isinstance(response, dict) and "error" in response:
print(f"Your request triggered an {response['error']['code']} error:\n\t {response['error']['message']}")
else:
raise ex
else:
raise ex
Başlarken
Azure AI Model Çıkarım API'si şu anda Sunucusuz API uç noktaları ve Yönetilen Çevrimiçi Uç Noktalar olarak dağıtılan bazı modellerde desteklenmektedir. Desteklenen modellerden herhangi birini dağıtın ve tahminlerini kullanmak için tam olarak aynı kodu kullanın.
İstemci kitaplığı azure-ai-inference
, Azure AI Studio ve Azure Machine Learning Studio tarafından dağıtılan yapay zeka modelleri için sohbet tamamlamaları da dahil olmak üzere çıkarım yapar. Sunucusuz API uç noktalarını ve Yönetilen İşlem uç noktalarını (eski adıyla Yönetilen Çevrimiçi Uç Noktalar) destekler.
Başlamak için örneklerimizi inceleyin ve API başvuru belgelerini okuyun.