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
- Uç 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ı
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 vetransform_input_fn
değeriniendpoint_name
belirtin. - ChatModel sınıfını içeri aktarın
ChatDatabricks
ve belirtinendpoint
.
Aşağıdaki örnek, Temel Model API'leri belirteç başına ödeme uç noktasını databricks-dbrx-instruct
sorgulamak 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 endpoint
belirtir.
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 ChatSession
için ile aynı bağımsız değişken ChatCompletion
kü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ı
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ı
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.
Ek kaynaklar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin