Aracılığıyla paylaş


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:

Yönetilen çıkarıma dağıtılan modeller:

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-throughayarlayarak, 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.