Öğretici: OpenAI modellerini sorgulamak için dış model uç noktaları oluşturma

Bu sayfa, tamamlamalar, sohbet ve eklemeler için OpenAI modellerine hizmet veren bir dış model uç noktasını yapılandırmaya ve sorgulamaya yönelik adım adım yönergeler sağlar. Uç noktayı MLflow Dağıtımları SDK'sı ile oluşturur ve OpenAI istemcisiyle sorgularsınız. Daha fazla bilgi için bkz. dış modeller.

Bir uç nokta oluşturduktan sonra Databricks, kullanım takibi, istek yükü günlüğü, güvenlik önlemleri ve oran sınırları gibi yönetişim özelliklerini eklemek için bu uç noktada Unity Gateway’i yapılandırmanızı önerir. Model Sunma aracılığıyla sunulan tüm dış modeller OpenAI uyumlu API kullanılarak sorgulanır, böylece sağlayıcılar arasında tek bir istemci kullanabilirsiniz. Unity Gateway ile yapay zeka yönetişimine bakınız.

Tavsiye

Genie Code'a (Aracı modu) bunu sizin için gerçekleştirmesini söyleyin:

Create a new notebook that uses the MLflow Deployments SDK to create an external model endpoint named openai-completions-endpoint that serves OpenAI's gpt-3.5-turbo-instruct model for completions, reading my OpenAI API key from a Databricks secret scope. Then send a test completion request to the endpoint and display the response.

Bu görevi gerçekleştirmek için Sunma kullanıcı arabirimini kullanmayı tercih ediyorsanız Dış model sunma uç noktası oluşturma kısmına bakın.

Gereksinimler

  • Databricks Runtime 13.0 ML veya üzeri.
  • MLflow 2.9 veya üzeri.
  • OpenAI API anahtarları.
  • Databricks CLI sürüm 0.205 veya üzerini yükleyin.

(İsteğe bağlı) 0. Adım: OpenAI API anahtarını Databricks Sırları CLI'sını kullanarak depolayın.

API anahtarlarınızı 3. Adımda düz metin dizeleri olarak veya Azure Databricks Gizli Dizileri kullanarak sağlayabilirsiniz.

OpenAI API anahtarını gizli dizi olarak depolamak için Databricks Gizli Dizileri CLI'sını (sürüm 0.205 ve üzeri) kullanabilirsiniz. Gizli bilgiler için REST API'yi de kullanabilirsiniz.

Aşağıdaki, my_openai_secret_scopeadlı gizli dizi kapsamını oluşturur ve ardından bu kapsamda gizli diziyi openai_api_key oluşturur.

databricks secrets create-scope my_openai_secret_scope
databricks secrets put-secret my_openai_secret_scope openai_api_key

1. Adım: MLflow'u dış modeller desteğiyle yükleme

Dış model desteğine sahip bir MLflow sürümü yüklemek için aşağıdakileri kullanın:

%pip install mlflow[genai]>=2.9.0

2. Adım: Dış model uç noktası oluşturma ve yönetme

Important

Bu bölümdeki kod örneklerinde Genel Önizleme MLflow Dağıtımları CRUD SDK'sının kullanımı gösterilmektedir.

Büyük bir dil modeli (LLM) için dış model uç noktası oluşturmak için MLflow Dağıtımları SDK'sından yöntemini kullanın create_endpoint() . Sunum kullanıcı arabiriminde dış model uç noktaları da oluşturabilirsiniz.

Aşağıdaki kod parçacığı, yapılandırmanın gpt-3.5-turbo-instruct bölümünde belirtildiği gibi OpenAI için bir tamamlamalar uç noktası served_entities oluşturur. Uç noktanızda, name ve openai_api_key değerlerini her alan için benzersiz değerlerinizle doldurduğunuzdan emin olun.

import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")
client.create_endpoint(
    name="openai-completions-endpoint",
    config={
        "served_entities": [{
            "name": "openai-completions",
            "external_model": {
                "name": "gpt-3.5-turbo-instruct",
                "provider": "openai",
                "task": "llm/v1/completions",
                "openai_config": {
                    "openai_api_key": "{{secrets/my_openai_secret_scope/openai_api_key}}"
                }
            }
        }]
    }
)

Aşağıdaki kod parçacığında, openAI API anahtarınızı düz metin dizesi olarak sağlayabileceğiniz ve yukarıdakiyle aynı tamamlama uç noktasını oluşturmanın alternatif bir yolu gösterilmektedir.

import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")
client.create_endpoint(
    name="openai-completions-endpoint",
    config={
        "served_entities": [{
            "name": "openai-completions",
            "external_model": {
                "name": "gpt-3.5-turbo-instruct",
                "provider": "openai",
                "task": "llm/v1/completions",
                "openai_config": {
                    "openai_api_key_plaintext": "sk-yourApiKey"
                }
            }
        }]
    }
)

Azure OpenAI kullanıyorsanız yapılandırma bölümünde Azure OpenAI dağıtım adını, uç nokta URL'sini openai_config ve API sürümünü de belirtebilirsiniz.

client.create_endpoint(
    name="openai-completions-endpoint",
    config={
        "served_entities": [
          {
            "name": "openai-completions",
            "external_model": {
                "name": "gpt-3.5-turbo-instruct",
                "provider": "openai",
                "task": "llm/v1/completions",
                "openai_config": {
                    "openai_api_type": "azure",
                    "openai_api_key": "{{secrets/my_openai_secret_scope/openai_api_key}}",
                    "openai_api_base": "https://my-azure-openai-endpoint.openai.azure.com",
                    "openai_deployment_name": "my-gpt-35-turbo-deployment",
                    "openai_api_version": "2023-05-15"
                },
            },
          }
        ],
    },
)

Uç noktada hız sınırlarını, kullanım takibi, yük kaydını veya koruma korkuluklarını yapılandırmak için Unity Gateway kullanabilirsiniz. Unity Gateway üzerinden hız sınırlarını yapılandırmak, hem sorgu tabanlı (QPM) hem de token tabanlı (TPM) sınırları destekler ve kullanıcı başı, grup ve uç nokta genelinde sınırlar belirlemenize olanak tanır.

Bir uç noktayı oran sınırları ve diğer Unity Gateway özelliklerini eklemek üzere güncelleyen programatik bir örnek için Model sunma uç noktalarında yönetişimi yapılandırma (eski) bölümüne bakın.

Note

Daha önce en üst düzey client.update_endpoint() alanla belgelenen rate_limits desen kullanım dışıdır. Bunun yerine uç noktada Unity Gateway yapılandırmasını kullanın.

3. Adım: Dış model uç noktasına istek gönderme

Databricks, OpenAI istemcisini kullanarak dış model uç noktalarını sorgulamanızı önerir. Model Sunma, sağlayıcılar arasında birleştirilmiş, OpenAI uyumlu bir API'yi kullanıma sunduğundan, temel alınan model OpenAI, Anthropic, Cohere, Amazon Bedrock, Google Cloud Vertex AI veya özel bir sağlayıcıdan geliyor olsun, aynı istemci kodu çalışır.

OpenAI istemcisini bilgi işlem kaynağınıza yükleyin:

%pip install openai

Aşağıdakiler, OpenAI sohbet modeli sunan bir uç noktaya sohbet tamamlama isteği gönderir. base_url değerini Azure Databricks çalışma alanı URL’nizle değiştirin ve için api_key sağlayın. parametresini model model sunum uç noktanızın adına ayarlayın.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("DATABRICKS_TOKEN"),
    base_url="https://<workspace-name>.cloud.databricks.com/serving-endpoints"
)

response = client.chat.completions.create(
    model="openai-chat-endpoint",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is the capital of France?"}
    ],
    max_tokens=128,
    temperature=0.1,
)
print(response.choices[0].message.content)

Görev için yapılandırılmış bir uç noktaya tamamlama isteği göndermek için llm/v1/completions kullanın client.completions.create():

response = client.completions.create(
    model="openai-completions-endpoint",
    prompt="What is the capital of France?",
    max_tokens=10,
    temperature=0.1,
    n=2,
)
print(response)

Görev için yapılandırılmış bir uç noktaya ekleme isteği göndermek için llm/v1/embeddings kullanın client.embeddings.create():

response = client.embeddings.create(
    model="openai-embeddings-endpoint",
    input="Databricks is a unified analytics platform.",
)
print(response.data[0].embedding)

OpenAI istemcisini bir Azure Databricks not defterinin içinden çalıştırırsanız, kimlik doğrulamasını ve çalışma alanı temel URL'sini otomatik olarak yapılandıran databricks-openai yardımcısını kullanabilirsiniz. Ayrıntılar için bkz. Temel modelleri kullanma .

4. Adım: Farklı bir sağlayıcının modellerini karşılaştırma

Model sunma, Open AI, Anthropic, Cohere, Amazon Bedrock, Google Cloud Vertex AI ve daha fazlası dahil olmak üzere birçok dış model sağlayıcısını destekler. AI Playgroundkullanarak sağlayıcıların LLM'lerini karşılaştırarak uygulamalarınızın doğruluğunu, hızını ve maliyetini iyileştirmenize yardımcı olabilirsiniz.

Aşağıdaki örnek, Antropik claude-2 için bir uç nokta oluşturur ve yanıtını OpenAI gpt-3.5-turbo-instructkullanan bir soruyla karşılaştırır. Her iki yanıt da aynı standart biçime sahiptir ve bu da karşılaştırmayı kolaylaştırır.

Antropik Claude-2 için bitiş noktası oluşturma

import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")

client.create_endpoint(
    name="anthropic-completions-endpoint",
    config={
        "served_entities": [
            {
                "name": "claude-completions",
                "external_model": {
                    "name": "claude-2",
                    "provider": "anthropic",
                    "task": "llm/v1/completions",
                    "anthropic_config": {
                        "anthropic_api_key": "{{secrets/my_anthropic_secret_scope/anthropic_api_key}}"
                    },
                },
            }
        ],
    },
)

Her uç noktadan gelen yanıtları karşılaştırma

Tüm dış model uç noktaları OpenAI uyumlu bir API'yi kullanıma sunduğundan, parametresini ilgili uç nokta adına geçirerek model her iki uç noktayı da aynı OpenAI istemcisiyle sorgulayabilirsiniz.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("DATABRICKS_TOKEN"),
    base_url="https://<workspace-name>.cloud.databricks.com/serving-endpoints"
)

prompt = "How is Pi calculated? Be very concise."

openai_response = client.completions.create(
    model="openai-completions-endpoint",
    prompt=prompt,
)
anthropic_response = client.completions.create(
    model="anthropic-completions-endpoint",
    prompt=prompt,
)

print("OpenAI:", openai_response.choices[0].text)
print("Anthropic:", anthropic_response.choices[0].text)

Ek kaynaklar