Model fondasi kueri
Dalam artikel ini, Anda mempelajari cara memformat permintaan kueri untuk model fondasi dan mengirimkannya ke titik akhir penyajian model Anda.
Untuk permintaan kueri model ML atau Python tradisional, lihat Kueri yang melayani titik akhir untuk model kustom.
Databricks Model Serving mendukung API Model Foundation dan model eksternal untuk mengakses model fondasi dan menggunakan API dan SDK yang kompatibel dengan OpenAI terpadu untuk mengkuerinya. Hal ini memungkinkan untuk bereksperimen dengan dan menyesuaikan model fondasi untuk produksi di seluruh cloud dan penyedia yang didukung.
Databricks Model Serving menyediakan opsi berikut untuk mengirim permintaan penilaian ke model fondasi:
Metode | Detail |
---|---|
Klien OpenAI | Mengkueri model yang dihosting oleh titik akhir Penyajian Model Databricks menggunakan klien OpenAI. Tentukan nama titik akhir penyajian model model sebagai input. Didukung untuk model obrolan, penyematan, dan penyelesaian yang disediakan oleh API Model Foundation atau model eksternal. |
Melayani UI | Pilih Titik akhir kueri dari halaman Titik akhir penayangan . Sisipkan data input model format JSON dan klik Kirim Permintaan. Jika model memiliki contoh input yang dicatat, gunakan Tampilkan Contoh untuk memuatnya. |
REST API | Panggil dan kueri model menggunakan REST API. Lihat POST /serving-endpoints/{name}/invocations untuk detailnya. Untuk permintaan penilaian ke titik akhir yang melayani beberapa model, lihat Mengkueri model individual di belakang titik akhir. |
SDK Penyebaran MLflow | Gunakan fungsi predict() MLflow Deployments SDK untuk mengkueri model. |
Databricks GenAI SDK | Databricks GenAI SDK adalah lapisan di atas REST API. Ini menangani detail tingkat rendah, seperti autentikasi dan pemetaan ID model ke URL titik akhir, sehingga lebih mudah untuk berinteraksi dengan model. SDK dirancang untuk digunakan dari dalam notebook Databricks. |
Fungsi SQL | Panggil inferensi model langsung dari SQL menggunakan ai_query fungsi SQL. Lihat Mengkueri model yang dilayani dengan ai_query(). |
Persyaratan
- Model yang melayani titik akhir.
- Ruang kerja Databricks di wilayah yang didukung.
- Untuk mengirim permintaan penilaian melalui klien OpenAI, REST API, atau SDK Penyebaran MLflow, Anda harus memiliki token API Databricks.
Penting
Sebagai praktik terbaik keamanan untuk skenario produksi, Databricks merekomendasikan agar Anda menggunakan token OAuth mesin-ke-mesin untuk autentikasi selama produksi.
Untuk pengujian dan pengembangan, Databricks merekomendasikan penggunaan token akses pribadi milik perwakilan layanan alih-alih pengguna ruang kerja. Untuk membuat token untuk perwakilan layanan, lihat Mengelola token untuk perwakilan layanan.
Memasang paket
Setelah memilih metode kueri, Anda harus terlebih dahulu menginstal paket yang sesuai ke kluster Anda.
Klien OpenAI
Untuk menggunakan klien OpenAI, openai
paket perlu diinstal pada kluster Anda. Jalankan hal berikut ini di buku catatan atau terminal lokal Anda:
!pip install openai
Berikut ini hanya diperlukan saat menginstal paket pada Buku Catatan Databricks
dbutils.library.restartPython()
REST API
Akses ke Rest API Penyajian tersedia di Databricks Runtime untuk Pembelajaran Mesin.
SDK Penyebaran MLflow
!pip install mlflow
Berikut ini hanya diperlukan saat menginstal paket pada Buku Catatan Databricks
dbutils.library.restartPython()
Databricks GenAI SDK
Untuk digunakan databricks-genai-inference
dengan beban kerja throughput yang disediakan, Anda harus menggunakan versi 0.2.2 atau lebih tinggi.
!pip install databricks-genai-inference
Berikut ini hanya diperlukan saat menginstal paket pada Buku Catatan Databricks
dbutils.library.restartPython()
Mengkueri model penyelesaian obrolan
Berikut ini adalah contoh untuk mengkueri model obrolan.
Untuk contoh inferensi batch, lihat Inferensi batch menggunakan API Model Foundation.
Klien OpenAI
Berikut ini adalah permintaan obrolan untuk model Instruksi DBRX yang disediakan oleh API Model Foundation titik akhir bayar per token, databricks-dbrx-instruct
di ruang kerja Anda.
Untuk menggunakan klien OpenAI, tentukan model yang melayani nama titik akhir sebagai model
input. Contoh berikut mengasumsikan Anda memiliki token Databricks API dan openai
diinstal pada komputasi Anda. Anda juga memerlukan instans ruang kerja Databricks untuk menghubungkan klien OpenAI ke Databricks.
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
Penting
Contoh berikut menggunakan parameter REST API untuk mengkueri titik akhir penyajian yang melayani model fondasi. Parameter ini adalah Pratinjau Publik dan definisinya mungkin berubah. Lihat POST /serving-endpoints/{name}/invocations.
Berikut ini adalah permintaan obrolan untuk model Instruksi DBRX yang disediakan oleh API Model Foundation titik akhir bayar per token, databricks-dbrx-instruct
di ruang kerja Anda.
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 \
SDK Penyebaran MLflow
Penting
Contoh berikut menggunakan predict()
API dari SDK Penyebaran MLflow.
Berikut ini adalah permintaan obrolan untuk model Instruksi DBRX yang disediakan oleh API Model Foundation titik akhir bayar per token, databricks-dbrx-instruct
di ruang kerja Anda.
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
Berikut ini adalah permintaan obrolan untuk model Instruksi DBRX yang disediakan oleh API Model Foundation titik akhir bayar per token, databricks-dbrx-instruct
di ruang kerja Anda.
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
Untuk mengkueri titik akhir model fondasi menggunakan LangChain, Anda bisa melakukan salah satu hal berikut ini:
Databricks
Impor kelas LLM dan tentukanendpoint_name
dantransform_input_fn
.ChatDatabricks
Impor kelas ChatModel dan tentukanendpoint
.
Contoh berikut menggunakan Databricks
kelas LLM di LangChain untuk mengkueri titik akhir pay-per-token API Model Foundation, databricks-dbrx-instruct
. API Model Foundation mengharapkan dalam kamus messages
permintaan, sementara LangChain Databricks LLM secara default menyediakan prompt
dalam kamus permintaan. transform_input
Gunakan fungsi untuk menyiapkan kamus permintaan ke dalam format yang diharapkan.
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?")
Contoh berikut menggunakan ChatDatabricks
kelas ChatModel dan menentukan endpoint
.
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
Penting
Contoh berikut menggunakan fungsi SQL bawaan, ai_query. Fungsi ini adalah Pratinjau Publik dan definisinya mungkin berubah. Lihat Mengkueri model yang dilayani dengan ai_query().
Berikut ini adalah permintaan obrolan untuk llama-2-70b-chat
disediakan oleh API Model Yayasan titik akhir bayar per token, databricks-llama-2-70b-chat
di ruang kerja Anda.
Catatan
Fungsi ai_query()
ini tidak mendukung titik akhir kueri yang melayani model DBRX atau DBRX Instruct.
SELECT ai_query(
"databricks-llama-2-70b-chat",
"Can you explain AI in ten words?"
)
Berikut ini adalah format permintaan yang diharapkan untuk model obrolan. Untuk model eksternal, Anda dapat menyertakan parameter tambahan yang valid untuk penyedia dan konfigurasi titik akhir tertentu. Lihat Parameter kueri tambahan.
{
"messages": [
{
"role": "user",
"content": "What is a mixture of experts model?"
}
],
"max_tokens": 100,
"temperature": 0.1
}
Berikut ini adalah format respons yang diharapkan:
{
"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
}
Sesi obrolan
Databricks GenAI SDK menyediakan ChatSession
kelas untuk mengelola percakapan obrolan multi-putaran. WDS menyediakan fungsi-fungsi berikut:
Fungsi | Tampilkan | Deskripsi |
---|---|---|
reply (string) |
Mengambil pesan pengguna baru | |
last |
string | Pesan terakhir dari asisten |
history |
daftar dict | Pesan dalam riwayat obrolan, termasuk peran. |
count |
int | Jumlah putaran obrolan yang dilakukan sejauh ini. |
Untuk menginisialisasi ChatSession
, Anda menggunakan sekumpulan argumen yang sama dengan ChatCompletion
, dan argumen tersebut digunakan di seluruh sesi obrolan.
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?"}
# ]
Mengkueri model penyematan
Berikut ini adalah permintaan penyematan untuk model yang bge-large-en
disediakan oleh API Model Foundation.
Klien OpenAI
Untuk menggunakan klien OpenAI, tentukan model yang melayani nama titik akhir sebagai model
input. Contoh berikut mengasumsikan Anda memiliki token Databricks API dan openai
diinstal pada kluster Anda.
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
Penting
Contoh berikut menggunakan parameter REST API untuk mengkueri titik akhir penyajian yang melayani model fondasi. Parameter ini adalah Pratinjau Publik dan definisinya mungkin berubah. Lihat 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
SDK Penyebaran MLflow
Penting
Contoh berikut menggunakan predict()
API dari SDK Penyebaran MLflow.
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
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
Untuk menggunakan model API Model Databricks Foundation di LangChain sebagai Model Penyematan, impor DatabricksEmbeddings
kelas dan tentukan endpoint
parameter sebagai berikut:
from langchain.embeddings import DatabricksEmbeddings
embeddings = DatabricksEmbeddings(endpoint="databricks-bge-large-en")
embeddings.embed_query("Can you explain AI in ten words?")
SQL
Penting
Contoh berikut menggunakan fungsi SQL bawaan, ai_query. Fungsi ini adalah Pratinjau Publik dan definisinya mungkin berubah. Lihat Mengkueri model yang dilayani dengan ai_query().
SELECT ai_query(
"databricks-bge-large-en",
"Can you explain AI in ten words?"
)
Berikut ini adalah format permintaan yang diharapkan untuk model penyematan. Untuk model eksternal, Anda dapat menyertakan parameter tambahan yang valid untuk penyedia dan konfigurasi titik akhir tertentu. Lihat Parameter kueri tambahan.
{
"input": [
"embedding text"
]
}
Berikut ini adalah format respons yang diharapkan:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": []
}
],
"model": "text-embedding-ada-002-v2",
"usage": {
"prompt_tokens": 2,
"total_tokens": 2
}
}
Mengkueri model penyelesaian teks
Berikut ini adalah permintaan penyelesaian untuk model yang databricks-mpt-30b-instruct
disediakan oleh API Model Foundation. Untuk parameter dan sintaks, lihat Tugas penyelesaian.
Klien OpenAI
Untuk menggunakan klien OpenAI, tentukan model yang melayani nama titik akhir sebagai model
input. Contoh berikut mengasumsikan Anda memiliki token Databricks API dan openai
diinstal pada kluster Anda.
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
Penting
Contoh berikut menggunakan parameter REST API untuk mengkueri titik akhir penyajian yang melayani model fondasi. Parameter ini adalah Pratinjau Publik dan definisinya mungkin berubah. Lihat 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
SDK Penyebaran MLflow
Penting
Contoh berikut menggunakan predict()
API dari SDK Penyebaran MLflow.
import os
import mlflow.deployments
# Only required when running this example outside of a Databricks Notebook
os.environ['DATABRICKS_HOST'] = "https://<workspace_host>.databricks.com"
os.environ['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
}
)
# Print the response
print(completions_response)
Databricks GenAI SDK
import os
from databricks_genai_inference import Completion
# Only required when running this example outside of a Databricks Notebook
os.environ['DATABRICKS_HOST'] = "https://<workspace_host>.databricks.com"
os.environ['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
Penting
Contoh berikut menggunakan fungsi SQL bawaan, ai_query. Fungsi ini adalah Pratinjau Publik dan definisinya mungkin berubah. Lihat Mengkueri model yang dilayani dengan ai_query().
SELECT ai_query(
"databricks-mpt-30b-instruct",
"Can you explain AI in ten words?"
)
Berikut ini adalah format permintaan yang diharapkan untuk model penyelesaian. Untuk model eksternal, Anda dapat menyertakan parameter tambahan yang valid untuk penyedia dan konfigurasi titik akhir tertentu. Lihat Parameter kueri tambahan.
{
"prompt": "What is mlflow?",
"max_tokens": 100,
"temperature": 0.1,
"stop": [
"Human:"
],
"n": 1,
"stream": false,
"extra_params":{
"top_p": 0.9
}
}
Berikut ini adalah format respons yang diharapkan:
{
"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
}
}
Mengobrol dengan LLM yang didukung menggunakan AI Playground
Anda dapat berinteraksi dengan model bahasa besar yang didukung menggunakan AI Playground. AI Playground adalah lingkungan seperti obrolan tempat Anda dapat menguji, meminta, dan membandingkan LLM dari ruang kerja Azure Databricks Anda.
Sumber Daya Tambahan:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk