Azure الذكاء الاصطناعي Model Inference API | Azure التعلم الآلي

Azure الذكاء الاصطناعي Model Inference هو واجهة برمجة تطبيقات تعرض مجموعة مشتركة من القدرات للنماذج الأساسية والتي يمكن استخدامها من قبل المطورين لاستهلاك التنبؤات من مجموعة متنوعة من النماذج بطريقة موحدة ومتسقة. يمكن للمطورين التحدث مع نماذج مختلفة تم نشرها في Azure الذكاء الاصطناعي Studio دون تغيير التعليمات البرمجية الأساسية التي يستخدمونها.

المزايا

لقد خطت النماذج التأسيسية، مثل نماذج اللغة، خطوات ملحوظة في السنوات الأخيرة. أحدثت هذه التطورات ثورة في مختلف المجالات، بما في ذلك معالجة اللغة الطبيعية ورؤية الكمبيوتر، ومكنت تطبيقات مثل روبوتات الدردشة والمساعدين الظاهريين وخدمات ترجمة اللغات.

في حين أن النماذج التأسيسية تتفوق في مجالات محددة، فإنها تفتقر إلى مجموعة موحدة من القدرات. بعض النماذج أفضل في مهمة محددة وحتى عبر نفس المهمة، قد تتعامل بعض النماذج مع المشكلة بطريقة ما بينما البعض الآخر في آخر. يمكن للمطورين الاستفادة من هذا التنوع باستخدام النموذج الصحيح للوظيفة المناسبة التي تسمح لهم بما يلي:

  • تحسين الأداء في مهمة محددة في المراحل النهائية.
  • استخدم نماذج أكثر كفاءة لمهام أبسط.
  • استخدم نماذج أصغر يمكن تشغيلها بشكل أسرع في مهام معينة.
  • إنشاء نماذج متعددة لتطوير تجارب ذكية.

وجود طريقة موحدة لاستهلاك النماذج الأساسية يسمح للمطورين بتحقيق جميع هذه الفوائد دون التضحية بقابلية النقل أو تغيير التعليمات البرمجية الأساسية.

التوافر

تتوفر واجهة برمجة تطبيقات استدلال نموذج Azure الذكاء الاصطناعي في النماذج التالية:

النماذج المنشورة في نقاط نهاية واجهة برمجة التطبيقات بلا خادم:

النماذج المنشورة للاستدلال المدار:

واجهة برمجة التطبيقات متوافقة مع عمليات نشر نموذج Azure OpenAI.

إشعار

تتوفر واجهة برمجة تطبيقات استدلال نموذج Azure الذكاء الاصطناعي في الاستدلال المدار (نقاط النهاية المدارة عبر الإنترنت) للنماذج التي تم نشرها بعد 24 يونيو 2024. للتقدم بواجهة برمجة التطبيقات، أعد نشر نقطة النهاية إذا تم نشر النموذج قبل مثل هذا التاريخ.

القدرات

يصف القسم التالي بعض القدرات التي تعرضها واجهة برمجة التطبيقات. للحصول على مواصفات كاملة لواجهة برمجة التطبيقات، اعرض القسم المرجعي.

طرائق

تشير واجهة برمجة التطبيقات إلى كيفية استهلاك المطورين للتنبؤات للطرائق التالية:

  • الحصول على المعلومات: إرجاع المعلومات حول النموذج الذي تم نشره ضمن نقطة النهاية.
  • تضمينات النص: إنشاء متجه تضمين يمثل نص الإدخال.
  • إكمال النص: ينشئ إكمالا للمطالبة والمعلمات المتوفرة.
  • إكمال الدردشة: ينشئ استجابة نموذجية لمحادثة الدردشة المحددة.
  • تضمينات الصور: إنشاء متجه تضمين يمثل نص الإدخال والصورة.

دعم SDK للاستدلال

يمكنك استخدام عملاء الاستدلال المبسطين باللغة التي تختارها لاستهلاك التنبؤات من النماذج التي تشغل واجهة برمجة تطبيقات استدلال نموذج Azure الذكاء الاصطناعي.

تثبيت الحزمة azure-ai-inference باستخدام مدير الحزمة الخاصة بك، مثل pip:

pip install azure-ai-inference

ثم يمكنك استخدام الحزمة لاستهلاك النموذج. يوضح المثال التالي كيفية إنشاء عميل لاستهلاك إكمال الدردشة:

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، يمكنك إنشاء العميل الخاص بك كما يلي:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import AzureDefaultCredential

model = ChatCompletionsClient(
    endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
    credential=AzureDefaultCredential(),
)

استكشف عيناتنا واقرأ الوثائق المرجعية لواجهة برمجة التطبيقات لتبدأ بنفسك.

إمكانية التوسعة

تحدد واجهة برمجة تطبيقات الاستدلال النموذجي Azure الذكاء الاصطناعي مجموعة من الطرائق والمعلمات التي يمكن للنماذج الاشتراك فيها. ومع ذلك، قد يكون لبعض النماذج قدرات إضافية تشير إلى واجهة برمجة التطبيقات. في هذه الحالات، تسمح واجهة برمجة التطبيقات للمطور بتمريرها كمعلمات إضافية في الحمولة.

من خلال تعيين عنوان extra-parameters: pass-through، ستحاول واجهة برمجة التطبيقات تمرير أي معلمة غير معروفة مباشرة إلى النموذج الأساسي. إذا كان النموذج يمكنه التعامل مع هذه المعلمة، يكتمل الطلب.

يوضح المثال التالي طلبا يمرر المعلمة safe_prompt المدعومة من Mistral-Large، والتي لم يتم تحديدها في Azure الذكاء الاصطناعي Model Inference API:

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)

تلميح

عند استخدام Azure الذكاء الاصطناعي Inference SDK، يؤدي استخدام model_extras إلى تكوين الطلب تلقائيا extra-parameters: pass-through نيابة عنك.

إشعار

القيمة الافتراضية ل extra-parameters هي error التي ترجع خطأ إذا تمت الإشارة إلى معلمة إضافية في الحمولة. بدلا من ذلك، يمكنك تعيين extra-parameters: drop لإسقاط أي معلمة غير معروفة في الطلب. استخدم هذه الإمكانية في حالة قيامك بإرسال طلبات بمعلمات إضافية تعرف أن النموذج لن يدعمها ولكنك تريد اكتمال الطلب على أي حال. ومن الأمثلة النموذجية على ذلك الإشارة إلى المعلمة seed .

نماذج ذات مجموعة متباينة من القدرات

تشير Azure الذكاء الاصطناعي Model Inference API إلى مجموعة عامة من القدرات ولكن يمكن لكل نموذج أن يقرر تنفيذها أم لا. يتم إرجاع خطأ معين في تلك الحالات حيث لا يمكن للنموذج دعم معلمة معينة.

يوضح المثال التالي الاستجابة لطلب إكمال دردشة يشير إلى المعلمة reponse_format ويطلب ردا JSON بتنسيق . في المثال، نظرا لأن النموذج لا يدعم هذه الإمكانية، يتم إرجاع الخطأ 422 إلى المستخدم.

import json
from azure.ai.inference.models import SystemMessage, UserMessage, ChatCompletionsResponseFormat
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={ "type": ChatCompletionsResponseFormat.JSON_OBJECT }
    )
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

تلميح

يمكنك فحص الخاصية detail.loc لفهم موقع المعلمة المخالفة ورؤية detail.input القيمة التي تم تمريرها في الطلب.

أمان المحتوى

تدعم واجهة برمجة تطبيقات استدلال نموذج Azure الذكاء الاصطناعي Azure الذكاء الاصطناعي Content Safety. عند استخدام عمليات النشر مع Azure الذكاء الاصطناعي Content Safety على، تمر المدخلات والمخرجات عبر مجموعة من نماذج التصنيف التي تهدف إلى الكشف عن إخراج المحتوى الضار ومنعه. يكتشف نظام تصفية المحتوى ويتخذ إجراء بشأن فئات معينة من المحتوى الذي يحتمل أن يكون ضارا في كل من مطالبات الإدخال وإكمال الإخراج.

يوضح المثال التالي الاستجابة لطلب إكمال دردشة أدى إلى تشغيل أمان المحتوى.

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

الشروع في العمل

يتم دعم Azure الذكاء الاصطناعي Model Inference API حاليا في نماذج معينة تم نشرها كنقاط نهاية API بلا خادم ونقاط نهاية مدارة عبر الإنترنت. نشر أي من النماذج المدعومة واستخدام نفس التعليمات البرمجية بالضبط لاستهلاك تنبؤاتهم.

تقوم مكتبة azure-ai-inference العميل بالاستدلال، بما في ذلك إكمال الدردشة، لنماذج الذكاء الاصطناعي التي تم نشرها بواسطة Azure الذكاء الاصطناعي Studio وAzure التعلم الآلي Studio. وهو يدعم نقاط نهاية واجهة برمجة التطبيقات بلا خادم ونقاط نهاية الحوسبة المدارة (المعروفة سابقا باسم نقاط النهاية المدارة عبر الإنترنت).

استكشف عيناتنا واقرأ الوثائق المرجعية لواجهة برمجة التطبيقات لتبدأ بنفسك.