Aracılığıyla paylaş


Sorgu temeli modelleri

Bu makalede, temel modeller için sorgu isteklerini biçimlendirmeyi ve bunları model sunum uç noktanıza göndermeyi öğreneceksiniz.

Geleneksel ML veya Python modelleri sorgu istekleri için bkz . Özel modeller için uç noktaları sunan sorgu.

Databricks Model Sunma, temel modellere erişmek için Temel Model API'lerini ve dış modelleri destekler ve bunları sorgulamak için birleştirilmiş OpenAI uyumlu BIR API ve SDK kullanır. Bu, desteklenen bulutlarda ve sağlayıcılarda üretim için temel modellerle denemeler yapıp özelleştirmeyi mümkün kılar.

Databricks Model Sunma, temel modellere puanlama istekleri göndermek için aşağıdaki seçenekleri sağlar:

Yöntem Ayrıntılar
OpenAI istemcisi OpenAI istemcisini kullanarak Databricks Model Sunum uç noktası tarafından barındırılan bir modeli sorgulama. Giriş olarak model uç nokta adını sunan modeli belirtin. Temel Model API'leri veya dış modeller tarafından sağlanan sohbet, ekleme ve tamamlama modelleri için desteklenir.
Kullanıcı arabirimi sunma Sunum uç noktası sayfasından Sorgu uç noktası'nı seçin. JSON biçim modeli giriş verilerini ekleyin ve İstek Gönder'e tıklayın. Modelin günlüğe kaydedilmiş bir giriş örneği varsa, yüklemek için Örneği Göster'i kullanın.
REST API REST API kullanarak modeli çağırın ve sorgular. Ayrıntılar için post /serving-endpoints/{name}/invocations bölümüne bakın. Birden çok model sunan uç noktalara yönelik istekleri puanlama için bkz . Bir uç noktanın arkasındaki tek tek modelleri sorgulama.
MLflow Dağıtımları SDK'sı Modeli sorgulamak için MLflow Dağıtımları SDK'sının predict() işlevini kullanın.
Databricks GenAI SDK'sı Databricks GenAI SDK'sı, REST API'nin üzerindeki bir katmandır. Kimlik doğrulaması ve model kimliklerini uç nokta URL'lerine eşleme gibi alt düzey ayrıntıları işleyip modellerle etkileşim kurmayı kolaylaştırır. SDK, Databricks not defterlerinin içinden kullanılacak şekilde tasarlanmıştır.
SQL işlevi SQL işlevini kullanarak model çıkarımını doğrudan SQL'den çağırın ai_query . Bkz. ai_query() ile sunulan modeli sorgulama.

Gereksinim -leri

  • nokta sunan bir model.
  • Desteklenen bir bölgedeki Databricks çalışma alanı.
  • OpenAI istemcisi, REST API veya MLflow Dağıtım SDK'sı aracılığıyla puanlama isteği göndermek için databricks API belirtecine sahip olmanız gerekir.

Önemli

Databricks, üretim senaryoları için en iyi güvenlik uygulaması olarak üretim sırasında kimlik doğrulaması için makineden makineye OAuth belirteçleri kullanmanızı önerir.

Databricks, test ve geliştirme için çalışma alanı kullanıcıları yerine hizmet sorumlularına ait bir kişisel erişim belirteci kullanılmasını önerir. Hizmet sorumlularına yönelik belirteçler oluşturmak için bkz . Hizmet sorumlusu için belirteçleri yönetme.

Paketleri yükleme

Bir sorgulama yöntemi seçtikten sonra, önce kümenize uygun paketi yüklemeniz gerekir.

Openai istemcisi

OpenAI istemcisini kullanmak için paketin openai kümenize yüklenmesi gerekir. Not defterinizde veya yerel terminalinizde aşağıdakileri çalıştırın:

!pip install openai

Aşağıdakiler yalnızca paketi databricks not defterine yüklerken gereklidir

dbutils.library.restartPython()

Rest API

Sunum REST API'sine erişim, Machine Learning için Databricks Runtime'da kullanılabilir.

Mlflow dağıtımları sdk'sı

!pip install mlflow

Aşağıdakiler yalnızca paketi databricks not defterine yüklerken gereklidir

dbutils.library.restartPython()

Databricks genai sdk'sı

 !pip install databricks-genai

Aşağıdakiler yalnızca paketi databricks not defterine yüklerken gereklidir

 dbutils.library.restartPython()

Sohbet tamamlama modelini sorgulama

Sohbet modelini sorgulamaya yönelik örnekler aşağıda verilmiştir.

Toplu çıkarım örneği için bkz . Temel Model API'lerini kullanarak toplu çıkarım.

Openai istemcisi

Aşağıda, çalışma alanınızda Temel Model API'leri belirteç başına ödeme uç noktası databricks-dbrx-instruct tarafından sağlanan DBRX Yönergesi modeline yönelik bir sohbet isteği yer alır.

OpenAI istemcisini kullanmak için giriş olarak model uç nokta adını sunan modeli belirtin. Aşağıdaki örnekte, bir Databricks API belirteciniz olduğu ve openai işleminizde yüklü olduğu varsayılır. OpenAI istemcisini Databricks'e bağlamak için Databricks çalışma alanı örneğinize de ihtiyacınız vardır.


import os
import openai
from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

response = client.chat.completions.create(
    model="databricks-dbrx-instruct",
    messages=[
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "What is a mixture of experts model?",
      }
    ],
    max_tokens=256
)

Rest API

Önemli

Aşağıdaki örnek, temel modellere hizmet veren hizmet uç noktalarını sorgulamak için REST API parametrelerini kullanır. Bu parametreler Genel Önizlemedir ve tanım değişebilir. Bkz . POST /serving-endpoints/{name}/invocations.

Aşağıda, çalışma alanınızda Temel Model API'leri belirteç başına ödeme uç noktası databricks-dbrx-instruct tarafından sağlanan DBRX Yönergesi modeline yönelik bir sohbet isteği yer alır.

curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": " What is a mixture of experts model?"
    }
  ]
}' \
https://<workspace_host>.databricks.com/serving-endpoints/databricks-dbrx-instruct/invocations \

Mlflow dağıtımları sdk'sı

Önemli

Aşağıdaki örnek, MLflow Dağıtımları SDK'sından API'yi kullanırpredict().

Aşağıda, çalışma alanınızda Temel Model API'leri belirteç başına ödeme uç noktası databricks-dbrx-instruct tarafından sağlanan DBRX Yönergesi modeline yönelik bir sohbet isteği yer alır.


import mlflow.deployments

# Only required when running this example outside of a Databricks Notebook
export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"

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

chat_response = client.predict(
    endpoint="databricks-dbrx-instruct",
    inputs={
        "messages": [
            {
              "role": "user",
              "content": "Hello!"
            },
            {
              "role": "assistant",
              "content": "Hello! How can I assist you today?"
            },
            {
              "role": "user",
              "content": "What is a mixture of experts model??"
            }
        ],
        "temperature": 0.1,
        "max_tokens": 20
    }
)

Databricks genai sdk'sı

Aşağıda, çalışma alanınızda Temel Model API'leri belirteç başına ödeme uç noktası databricks-dbrx-instruct tarafından sağlanan DBRX Yönergesi modeline yönelik bir sohbet isteği yer alır.

from databricks_genai_inference import ChatCompletion

# Only required when running this example outside of a Databricks Notebook
export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"

response = ChatCompletion.create(model="databricks-dbrx-instruct",
                                messages=[{"role": "system", "content": "You are a helpful assistant."},
                                          {"role": "user","content": "What is a mixture of experts model?"}],
                                max_tokens=128)
print(f"response.message:{response.message}")

Langchain

LangChain kullanarak temel model uç noktasını sorgulamak için aşağıdakilerden birini yapabilirsiniz:

  • LLM sınıfını içeri aktarın Databricks ve ve transform_input_fndeğerini endpoint_name belirtin.
  • ChatModel sınıfını içeri aktarın ChatDatabricks ve belirtin endpoint.

Aşağıdaki örnek, Temel Model API'leri belirteç başına ödeme uç noktasını databricks-dbrx-instructsorgulamak için LangChain'deki LLM sınıfını kullanırDatabricks. Temel Model API'leri messages istek sözlüğünde beklerken, LangChain Databricks LLM varsayılan olarak istek sözlüğünde sağlar prompt . İstek sözlüğü beklenen transform_input biçimde hazırlamak için işlevini kullanın.

from langchain.llms import Databricks
from langchain_core.messages import HumanMessage, SystemMessage

def transform_input(**request):
  request["messages"] = [
    {
      "role": "user",
      "content": request["prompt"]
    }
  ]
  del request["prompt"]
  return request

llm = Databricks(endpoint_name="databricks-dbrx-instruct", transform_input_fn=transform_input)
llm("What is a mixture of experts model?")

Aşağıdaki örnek ChatModel sınıfını ChatDatabricks kullanır ve öğesini endpointbelirtir.

from langchain.chat_models import ChatDatabricks
from langchain_core.messages import HumanMessage, SystemMessage

messages = [
    SystemMessage(content="You're a helpful assistant"),
    HumanMessage(content="What is a mixture of experts model?"),
]
chat_model = ChatDatabricks(endpoint="databricks-dbrx-instruct", max_tokens=500)
chat_model.invoke(messages)

SQL

Önemli

Aşağıdaki örnek, ai_query yerleşik SQL işlevini kullanır. Bu işlev Genel Önizlemedir ve tanım değişebilir. Bkz. ai_query() ile sunulan modeli sorgulama.

Aşağıda, çalışma alanınızda Temel Model API'leri belirteç başına ödeme uç noktası databricks-llama-2-70b-chat tarafından kullanıma sunulan bir sohbet isteği llama-2-70b-chat yer alır.

Not

İşlev, ai_query() DBRX'e veya DBRX Yönerge modeline hizmet veren sorgu uç noktalarını desteklemez.

SELECT ai_query(
    "databricks-llama-2-70b-chat",
    "Can you explain AI in ten words?"
  )

Sohbet modeli için beklenen istek biçimi aşağıdadır. Dış modeller için, belirli bir sağlayıcı ve uç nokta yapılandırması için geçerli olan ek parametreler ekleyebilirsiniz. Bkz. Ek sorgu parametreleri.

{
  "messages": [
    {
      "role": "user",
      "content": "What is a mixture of experts model?"
    }
  ],
  "max_tokens": 100,
  "temperature": 0.1
}

Aşağıda beklenen bir yanıt biçimi yer alır:

{
  "model": "databricks-dbrx-instruct",
  "choices": [
    {
      "message": {},
      "index": 0,
      "finish_reason": null
    }
  ],
  "usage": {
    "prompt_tokens": 7,
    "completion_tokens": 74,
    "total_tokens": 81
  },
  "object": "chat.completion",
  "id": null,
  "created": 1698824353
}

Sohbet oturumu

Databricks GenAI SDK'sı, çok yönlü sohbet konuşmalarını ChatSession yönetmek için sınıf sağlar. Aşağıdaki işlevleri sağlar:

İşlev İade Açıklama
reply (string) Yeni bir kullanıcı iletisi alır
last Dize Yardımcıdan gelen son ileti
history dikte listesi Roller dahil olmak üzere sohbet geçmişindeki iletiler.
count int Şimdiye kadar gerçekleştirilen sohbet turlarının sayısı.

uygulamasını başlatmak ChatSessioniçin ile aynı bağımsız değişken ChatCompletionkümesini kullanırsınız ve bu bağımsız değişkenler sohbet oturumu boyunca kullanılır.


from databricks_genai_inference import ChatSession

chat = ChatSession(model="llama-2-70b-chat", system_message="You are a helpful assistant.", max_tokens=128)
chat.reply("Knock, knock!")
chat.last # return "Hello! Who's there?"
chat.reply("Guess who!")
chat.last # return "Okay, I'll play along! Is it a person, a place, or a thing?"

chat.history
# return: [
#     {'role': 'system', 'content': 'You are a helpful assistant.'},
#     {'role': 'user', 'content': 'Knock, knock.'},
#     {'role': 'assistant', 'content': "Hello! Who's there?"},
#     {'role': 'user', 'content': 'Guess who!'},
#     {'role': 'assistant', 'content': "Okay, I'll play along! Is it a person, a place, or a thing?"}
# ]

Ekleme modelini sorgulama

Aşağıda, Temel Model API'leri tarafından kullanıma sunulan model için bge-large-en bir ekleme isteği yer alır.

Openai istemcisi

OpenAI istemcisini kullanmak için giriş olarak model uç nokta adını sunan modeli belirtin. Aşağıdaki örnekte bir Databricks API belirteciniz olduğu ve openai kümenizde yüklü olduğu varsayılır.


import os
import openai
from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

response = client.embeddings.create(
  model="databricks-bge-large-en",
  input="what is databricks"
)

Rest API

Önemli

Aşağıdaki örnek, temel modellere hizmet veren hizmet uç noktalarını sorgulamak için REST API parametrelerini kullanır. Bu parametreler Genel Önizlemedir ve tanım değişebilir. Bkz . POST /serving-endpoints/{name}/invocations.


curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d  '{ "input": "Embed this sentence!"}' \
https://<workspace_host>.databricks.com/serving-endpoints/databricks-bge-large-en/invocations

Mlflow dağıtımları sdk'sı

Önemli

Aşağıdaki örnek, MLflow Dağıtımları SDK'sından API'yi kullanırpredict().


import mlflow.deployments

export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"

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

embeddings_response = client.predict(
    endpoint="databricks-bge-large-en",
    inputs={
        "input": "Here is some text to embed"
    }
)

Databricks genai sdk'sı


from databricks_genai_inference import Embedding

# Only required when running this example outside of a Databricks Notebook
export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"

response = Embedding.create(
    model="bge-large-en",
    input="3D ActionSLAM: wearable person tracking in multi-floor environments")
print(f'embeddings: {response.embeddings}')

Langchain

Ekleme Modeli olarak LangChain'de Databricks Foundation Model API'leri modeli kullanmak için sınıfı içeri aktarın DatabricksEmbeddings ve parametresini endpoint aşağıdaki gibi belirtin:

from langchain.embeddings import DatabricksEmbeddings

embeddings = DatabricksEmbeddings(endpoint="databricks-bge-large-en")
embeddings.embed_query("Can you explain AI in ten words?")

SQL

Önemli

Aşağıdaki örnek, ai_query yerleşik SQL işlevini kullanır. Bu işlev Genel Önizlemedir ve tanım değişebilir. Bkz. ai_query() ile sunulan modeli sorgulama.


SELECT ai_query(
    "databricks-bge-large-en",
    "Can you explain AI in ten words?"
  )

Aşağıdaki, ekleme modeli için beklenen istek biçimidir. Dış modeller için, belirli bir sağlayıcı ve uç nokta yapılandırması için geçerli olan ek parametreler ekleyebilirsiniz. Bkz. Ek sorgu parametreleri.


{
  "input": [
    "embedding text"
  ]
}

Beklenen yanıt biçimi aşağıdadır:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": []
    }
  ],
  "model": "text-embedding-ada-002-v2",
  "usage": {
    "prompt_tokens": 2,
    "total_tokens": 2
  }
}

Metin tamamlama modelini sorgulama

Aşağıda, Temel Model API'leri tarafından kullanıma sunulan model için databricks-mpt-30b-instruct tamamlama isteği yer alır. Parametreler ve söz dizimi için bkz . Tamamlama görevi.

Openai istemcisi

OpenAI istemcisini kullanmak için giriş olarak model uç nokta adını sunan modeli belirtin. Aşağıdaki örnekte bir Databricks API belirteciniz olduğu ve openai kümenizde yüklü olduğu varsayılır.


import os
import openai
from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

completion = client.completions.create(
  model="databricks-mpt-30b-instruct",
  prompt="what is databricks",
  temperature=1.0
)

Rest API

Önemli

Aşağıdaki örnek, temel modellere hizmet veren hizmet uç noktalarını sorgulamak için REST API parametrelerini kullanır. Bu parametreler Genel Önizlemedir ve tanım değişebilir. Bkz . POST /serving-endpoints/{name}/invocations.


curl \
 -u token:$DATABRICKS_TOKEN \
 -X POST \
 -H "Content-Type: application/json" \
 -d '{"prompt": "What is a quoll?", "max_tokens": 64}' \
https://<workspace_host>.databricks.com/serving-endpoints/databricks-mpt-30b-instruct/invocations

Mlflow dağıtımları sdk'sı

Önemli

Aşağıdaki örnek, MLflow Dağıtımları SDK'sından API'yi kullanırpredict().


import mlflow.deployments

# Only required when running this example outside of a Databricks Notebook
export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"

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

completions_response = client.predict(
    endpoint="databricks-mpt-30b-instruct",
    inputs={
        "prompt": "What is the capital of France?",
        "temperature": 0.1,
        "max_tokens": 10,
        "n": 2
    }
)

Databricks genai sdk'sı


from databricks_genai_inference import Completion

# Only required when running this example outside of a Databricks Notebook
export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"

response = Completion.create(
    model="databricks-mpt-30b-instruct",
    prompt="Write 3 reasons why you should train an AI model on domain specific data sets.",
    max_tokens=128)
print(f"response.text:{response.text:}")

SQL

Önemli

Aşağıdaki örnek, ai_query yerleşik SQL işlevini kullanır. Bu işlev Genel Önizlemedir ve tanım değişebilir. Bkz. ai_query() ile sunulan modeli sorgulama.

SELECT ai_query(
    "databricks-mpt-30b-instruct",
    "Can you explain AI in ten words?"
  )

Tamamlama modeli için beklenen istek biçimi aşağıdadır. Dış modeller için, belirli bir sağlayıcı ve uç nokta yapılandırması için geçerli olan ek parametreler ekleyebilirsiniz. Bkz. Ek sorgu parametreleri.

{
  "prompt": "What is mlflow?",
  "max_tokens": 100,
  "temperature": 0.1,
  "stop": [
    "Human:"
  ],
  "n": 1,
  "stream": false,
  "extra_params":{
    "top_p": 0.9
  }
}

Beklenen yanıt biçimi aşağıdadır:

{
  "id": "cmpl-8FwDGc22M13XMnRuessZ15dG622BH",
  "object": "text_completion",
  "created": 1698809382,
  "model": "gpt-3.5-turbo-instruct",
  "choices": [
    {
    "text": "MLflow is an open-source platform for managing the end-to-end machine learning lifecycle. It provides tools for tracking experiments, managing and deploying models, and collaborating on projects. MLflow also supports various machine learning frameworks and languages, making it easier to work with different tools and environments. It is designed to help data scientists and machine learning engineers streamline their workflows and improve the reproducibility and scalability of their models.",
    "index": 0,
    "logprobs": null,
    "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 83,
    "total_tokens": 88
  }
}

AI Playground kullanarak desteklenen LLM'lerle sohbet edin

AI Playground'i kullanarak desteklenen büyük dil modelleriyle etkileşim kurabilirsiniz. AI Playground, Azure Databricks çalışma alanınızdaki LLM'leri test edebileceğiniz, sorabileceğiniz ve karşılaştırabileceğiniz sohbet benzeri bir ortamdır.

Yapay zeka oyun alanı

Ek kaynaklar