Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 izleme, yük günlüğü, korumalar ve hız sınırları gibi idare özellikleri eklemek için Unity AI Gateway'in yapılandırılmasını ö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. Bkz. Unity AI Gateway ile yapay zeka idaresi.
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 izlemeyi, yük günlüğünü veya korumaları yapılandırmak için Unity AI Gateway'i kullanın. Unity AI Gateway aracılığıyla hız sınırlarını yapılandırmak hem sorgu tabanlı (QPM) hem de belirteç tabanlı (TPM) sınırları destekler ve kullanıcı başına, grup başına ve uç nokta genelinde sınırlar ayarlamanıza olanak tanır.
Uç noktayı hız sınırları ve diğer Unity AI Gateway özellikleri eklemek için güncelleyen programatik bir örnek için Model hizmet veren uç noktalarda yönetişimi (miras ) yapılandırı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 AI 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)