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 eğitimde, Unity AI Gateway ile temel model harcamalarınızı neyin tetiklediğini analiz ediyorsunuz. Yönettiğiniz model servisleri arasında kullanıcı maliyetini atayırsınız, ardından sistem tabloları kullanarak takım, proje veya kullanım durumu bazında harcamaları takip etmek için etiketler eklersiniz:
-
system.billing.usage: Azure Databricks tarafından sağlanan modeller için, Databricks birimleri (DBU'lar) cinsinden Azure Databricks kullanımı. -
system.billing.list_prices: DBU'ları dolara dönüştürmek için fiyatları listeleyin. -
system.ai_gateway.usage: her istek için istek ve token kullanımı. -
system.ai_gateway.external_model_spend: dış sağlayıcı modelleri için USD cinsinden tahmini maliyet.
Prerequisites
- Trafik alan bir veya daha fazla Unity AI Gateway model hizmeti. Bkz. Model API'leri (model hizmetleri) oluştur ve yönet.
- Faturalandırılabilir kullanım sistemi tablosu hesabınız için etkinleştirildi. Bkz. Sistem tablolarını etkinleştirme.
- Yukarıda listelenen sistem tablolarına erişim, bu da varsayılan olarak hem hesap hem de metastore yöneticisi rollerini gerektirir. Bkz . Sistem tablolarına erişim izni verme.
Note
Bu eğitimdeki dolar tahminleri liste fiyatına dayanır. Pazarlık edilen indirimler ve faturalandırma kredileri hariç tutuluyor. Bunları atıf ve trend analizi için, fatura tablonuzu ise uzlaştırma için kullanın.
Adım 1: Hangi kullanıcıların harcamayı yönlendirdiğini görün
Tip
Genie Code (Aracı modu) bunu sizin için yapabilir. Şu örnek istemi deneyin:
Query system.billing.usage for MODEL_SERVING records from the past 30 days where usage_metadata.ai_gateway.endpoint_name is set. Convert DBUs to list-price USD using system.billing.list_prices at the price effective for each record, break down by model service, destination model, and requesting user, and sort by cost.
AI Gateway > Govern > Usage Dashboard >Maliyet Analizi'ne gidin; bu sayfa, harcamaları SQL yazmadan Databricks tarafından sağlanan veya harici sağlayıcı modeli, uç nokta ve kullanıcı bazında ayırıyor. Maliyet Dağılımı bölümündeki Maliyete Göre En Üst Düzey Kullanıcılar (USD) grafiği, en çok harcayanları sıralar.
Alternatif olarak, sistem tablolarını doğrudan sorgulayıp kimin en çok ve nerede tükettiğini görebilirsiniz. Sorguladığınız tablo model türüne bağlıdır:
Databricks tarafından sağlanan modeller
DBU kullanımını dolara dönüştürmek için system.billing.usage sorgulayın ve system.billing.list_prices birleştirin. Alan, identity_metadata.run_by her talebi veren müdürü belirler:
SELECT
u.usage_metadata.ai_gateway.endpoint_name AS model_service_name,
u.usage_metadata.ai_gateway.destination_model AS destination_model,
u.identity_metadata.run_by AS run_by,
SUM(u.usage_quantity * lp.pricing.effective_list.default) AS list_cost_usd
FROM system.billing.usage u
JOIN system.billing.list_prices lp
ON u.sku_name = lp.sku_name
AND u.cloud = lp.cloud
AND u.usage_unit = lp.usage_unit
AND u.usage_end_time >= lp.price_start_time
AND (lp.price_end_time IS NULL OR u.usage_end_time < lp.price_end_time)
WHERE u.billing_origin_product = 'MODEL_SERVING'
AND u.usage_metadata.ai_gateway.endpoint_name IS NOT NULL
AND u.identity_metadata.run_by IS NOT NULL
AND u.usage_unit = 'DBU'
AND lp.currency_code = 'USD'
AND u.usage_date >= current_date() - INTERVAL 30 DAYS
GROUP BY model_service_name, destination_model, run_by
ORDER BY list_cost_usd DESC;
Dış modeller
Model sağlayıcı hizmetleri aracılığıyla dış sağlayıcılara yönlendirilen istekler için Azure Databricks, system.ai_gateway.external_model_spend içinde kaydedilen token kullanımı ve sağlayıcının yayımladığı fiyatlara dayanarak maliyeti ABD doları cinsinden tahmin eder. Bu sorgu, model sağlayıcı hizmetleri için Azure Databricks tarafından sağlanan sorgu ile aynı dağılımı verir:
SELECT
usage_metadata.endpoint_name AS model_provider_service_name,
identity_metadata.run_by AS run_by,
SUM(usage_quantity) AS estimated_provider_cost_usd
FROM system.ai_gateway.external_model_spend
WHERE identity_metadata.run_by IS NOT NULL
AND usage_start_time >= current_timestamp() - INTERVAL 30 DAYS
GROUP BY run_by, model_provider_service_name
ORDER BY estimated_provider_cost_usd DESC;
Adım 2: Ekip veya proje bazında kullanım ve harcama takibi ayarlayın
Kullanıcı bazında harcama size kimin olduğunu gösterir, ancak hangi takım veya proje olduğunu belirtmez. Token kullanımını bir ekibe veya projeye atfetmek için, model hizmetlerinizin ekiplere veya projelere nasıl eşlendiğine göre trafiğinizi etiketleyin:
- Hizmet (uç nokta) etiketleri: her takımın veya projenin kendi model hizmetine sahip olduğu zaman. Etiket, o model hizmetinden yönlendirilen her isteğe uygulanıyor, yani bir kez ayarlıyorsunuz.
- İstek etiketleri: birçok ekip veya proje aynı model hizmeti paylaştığında. Çağrıyı yapan taraf, etiketi her istek için ayarlar; böylece kullanımı paylaşılan bir hizmet içinde ilişkilendirebilirsiniz.
Hizmet etiketleri
Model servisine team veya project gibi bir etiket ekleyin. Üzerinden yönlendirilen her istek bu etiketi devralır.
- İş alanı arayüzünde AI Gateway'e gidin ve model servisini açın.
- Model servisi Genel Bakış sayfasında, Etiketler bölümü altında, şu gibi
team=ml-platformbir etiket ekleyin.
Hizmet etiketleri, endpoint_tags içindeki system.ai_gateway.usage alanında görünür ve custom_tags içindeki system.billing.usage alanına aktarılır. Model hizmetlerinin oluşturulması ve yapılandırması hakkında detaylar için bkz. Model API'leri (model hizmetleri) oluştur ve yönetin.
İstek etiketleri
project HTTP üstbilgisi ile, dize anahtarlarını dize değerleriyle eşleyen bir JSON nesnesi olan Databricks-Ai-Gateway-Request-Tags gibi bir etiketi tek tek isteklere ekleyin:
Databricks-Ai-Gateway-Request-Tags: {"project": "chatbot", "team": "ml-platform"}
İstek etiketleri, request_tags içindeki system.ai_gateway.usage alanında görünür. OpenAI SDK, Anthropic SDK ve REST API ile başlığı ayarlayan örnekler için Kullanım takibi için etiket talepleri sayfasına bakınız.
Note
Maliyet atfişi için hangi etiketin kullanılacağı modele bağlıdır:
-
Azure Databricks tarafından sağlanan modeller: hizmet etiketlerini kullanın. Yalnızca servis etiketleri
system.billing.usageöğesine yayılır. -
Harici sağlayıcı modelleri: hizmet veya istek etiketlerini kullanın. Her ikisi de harici model harcama tahminlerini yakalayan
system.ai_gateway.external_model_spendöğesine iletilir.
Adım 3: Ekip veya proje bazında kullanımı analiz edin
Tip
Genie Code (Aracı modu) bunu sizin için yapabilir. Şu örnek istemi deneyin:
Query system.ai_gateway.usage for the past 30 days to show request count and total tokens by the 'team' service tag in endpoint_tags, model service, and destination model. Sort by total tokens, highest first.
Etiketler uygulandığında, system.ai_gateway.usage içindeki toplu kullanım, Azure Databricks tarafından sağlanan modellere ve harici sağlayıcı modellerine yönlendirilen her istek için istek ve belirteç metriklerini yakalar. Hizmet etiketlerine göre endpoint_tags['team'] veya istek etiketlerine göre request_tags['project'] gruplayın:
Hizmet etiketleri
SELECT
endpoint_tags['team'] AS team,
endpoint_name,
destination_model,
COUNT(*) AS request_count,
SUM(total_tokens) AS total_tokens
FROM system.ai_gateway.usage
WHERE endpoint_tags['team'] IS NOT NULL
GROUP BY endpoint_tags['team'], endpoint_name, destination_model
ORDER BY total_tokens DESC;
İstek etiketleri
SELECT
request_tags['project'] AS project,
endpoint_name,
destination_model,
COUNT(*) AS request_count,
SUM(total_tokens) AS total_tokens
FROM system.ai_gateway.usage
WHERE request_tags['project'] IS NOT NULL
GROUP BY request_tags['project'], endpoint_name, destination_model
ORDER BY total_tokens DESC;
SQL olmadan herhangi bir ayrımı keşfetmek için Maliyet analizi sayfasındaki etiket filtrelerini kullanın.
Adım 4: Takım veya proje bazında dolar harcamalarını analiz edin
Tip
Genie Code (Aracı modu) bunu sizin için yapabilir. Şu örnek istemi deneyin:
Query system.billing.usage for MODEL_SERVING records from the past 30 days where usage_metadata.ai_gateway.endpoint_name is set. Convert DBUs to list-price USD using system.billing.list_prices at the price effective for each record, group by the 'team' service tag in custom_tags, and sort by cost.
Etiketler yerindeyken, USD cinsinden harcamayı bir takımla veya projeyle ilişkilendirin. SQL yazmadan harcamaları etikete göre gruplamak için AI Gateway > Govern > Usage Dashboard >Maliyet Analizi sayfasına gidin ve Etiket tabanlı Maliyet Analizi bölümünü kullanın. Uç nokta etiketi veya istek etiketine göre filtreleyin, Uç noktası Etiket Gruplarına Göre Maliyet ve İstek Etiketi Gruplarına Göre Tahmini Maliyeti görebilirsiniz.
SQL ile harcamayı öznitelendirmek için, sorguladığınız tablo model türüne bağlıdır:
Databricks tarafından sağlanan modeller
Hizmet etiketleri, custom_tags içindeki system.billing.usage alanına yansıtılır; böylece USD cinsinden liste fiyatı harcamasını, 1. Adım'da kullanıcıları sıraladığınız şekilde bir ekiple ilişkilendirebilirsiniz. DBU kullanımını dolara dönüştürmek için katılın system.billing.list_prices :
SELECT
u.custom_tags['team'] AS team,
SUM(u.usage_quantity * lp.pricing.effective_list.default) AS list_cost_usd
FROM system.billing.usage u
JOIN system.billing.list_prices lp
ON u.sku_name = lp.sku_name
AND u.cloud = lp.cloud
AND u.usage_unit = lp.usage_unit
AND u.usage_end_time >= lp.price_start_time
AND (lp.price_end_time IS NULL OR u.usage_end_time < lp.price_end_time)
WHERE u.billing_origin_product = 'MODEL_SERVING'
AND u.usage_metadata.ai_gateway.endpoint_name IS NOT NULL
AND u.custom_tags['team'] IS NOT NULL
AND u.usage_unit = 'DBU'
AND lp.currency_code = 'USD'
AND u.usage_date >= current_date() - INTERVAL 30 DAYS
GROUP BY team
ORDER BY list_cost_usd DESC;
Dış modeller
Harici modeller için, system.ai_gateway.external_model_spend tahmini maliyeti USD cinsinden kaydeder ve hem servis etiketlerini hem de istek etiketlerini dahil custom_tagseder, böylece proje veya ekip bazında hizmetler arasında harcamaları gruplayabilirsincustom_tags.request_tags:
SELECT
custom_tags.request_tags['team'] AS team,
SUM(usage_quantity) AS estimated_provider_cost_usd
FROM system.ai_gateway.external_model_spend
WHERE custom_tags.request_tags['team'] IS NOT NULL
AND usage_date >= current_date() - INTERVAL 30 DAYS
GROUP BY team
ORDER BY estimated_provider_cost_usd DESC;
Adım 5: Ekip veya projeye göre token başına maliyeti analiz edin
Tip
Genie Code (Aracı modu) bunu sizin için yapabilir. Şu örnek istemi deneyin:
Query system.billing.usage and system.ai_gateway.usage for the past 30 days to show list-price USD per million tokens by model service, destination model, and the 'team' service tag. Convert DBUs to dollars using system.billing.list_prices at the price effective for each record, and join the two tables on usage date.
Toplam harcama bütçenin nereye gittiğini gösterir, ama adil bir oran ödeyip ödemediğinizi göstermez. 1 milyon token başına maliyet olarak çıkarım harcamalarını takip etmek, hedef modelleri karşılaştırmaya, rota değişikliğinden sonra regresyonları tespit etmeye veya trafiği daha ucuz bir modele taşımayı haklı çıkarmanıza olanak tanır. Maliyet tablosunu system.ai_gateway.usage model hizmeti, hedef model ve ekip üzerine ekleyin. Her iki sekme de hizmet etiketine göre gruplanır team , böylece sonuçlar Adım 3 ile örtüşür:
Databricks tarafından sağlanan modeller
Liste fiyatı harcamasını ve tokenları tüm pencere boyunca toplayın, ardından model hizmeti, hedef model ve ekip bazında birleştirin. DBU kullanımını dolara dönüştürmek için katılın system.billing.list_prices :
WITH cost AS (
SELECT
u.usage_metadata.ai_gateway.endpoint_name AS endpoint_name,
u.usage_metadata.ai_gateway.destination_model AS destination_model,
u.custom_tags['team'] AS team,
SUM(u.usage_quantity * lp.pricing.effective_list.default) AS list_cost_usd
FROM system.billing.usage u
JOIN system.billing.list_prices lp
ON u.sku_name = lp.sku_name
AND u.cloud = lp.cloud
AND u.usage_unit = lp.usage_unit
AND u.usage_end_time >= lp.price_start_time
AND (lp.price_end_time IS NULL OR u.usage_end_time < lp.price_end_time)
WHERE u.billing_origin_product = 'MODEL_SERVING'
AND u.usage_metadata.ai_gateway.endpoint_name IS NOT NULL
AND u.custom_tags['team'] IS NOT NULL
AND u.usage_unit = 'DBU'
AND lp.currency_code = 'USD'
AND u.usage_date >= current_date() - INTERVAL 30 DAYS
GROUP BY ALL
),
tokens AS (
SELECT
endpoint_name,
destination_model,
endpoint_tags['team'] AS team,
SUM(total_tokens) AS total_tokens
FROM system.ai_gateway.usage
WHERE endpoint_tags['team'] IS NOT NULL
AND endpoint_name IS NOT NULL
AND event_time >= current_timestamp() - INTERVAL 30 DAYS
GROUP BY ALL
)
SELECT
c.endpoint_name,
c.destination_model,
c.team,
c.list_cost_usd,
t.total_tokens,
1000000 * c.list_cost_usd / NULLIF(t.total_tokens, 0) AS list_cost_usd_per_1m_tokens
FROM cost c
JOIN tokens t
ON c.endpoint_name = t.endpoint_name
AND c.destination_model = t.destination_model
AND c.team = t.team
ORDER BY list_cost_usd_per_1m_tokens DESC;
Dış modeller
Harcamaları ve tokenları tam pencere boyunca toplayın, ardından model sağlayıcı hizmeti, hedef model ve takıma katılın. Her iki tablo da aynı isteği kapsar, bu yüzden dönem düzeyinde toplam için birleştirmede zaman anahtarı gerekmez:
WITH spend AS (
SELECT
usage_metadata.endpoint_name AS endpoint_name,
usage_metadata.model AS destination_model,
custom_tags.endpoint_tags['team'] AS team,
SUM(usage_quantity) AS estimated_provider_cost_usd
FROM system.ai_gateway.external_model_spend
WHERE custom_tags.endpoint_tags['team'] IS NOT NULL
AND usage_date >= current_date() - INTERVAL 30 DAYS
GROUP BY ALL
),
tokens AS (
SELECT
endpoint_name,
destination_model,
endpoint_tags['team'] AS team,
SUM(total_tokens) AS total_tokens
FROM system.ai_gateway.usage
WHERE endpoint_tags['team'] IS NOT NULL
AND destination_model IS NOT NULL
AND event_time >= current_timestamp() - INTERVAL 30 DAYS
GROUP BY ALL
)
SELECT
s.endpoint_name,
s.destination_model,
s.team,
s.estimated_provider_cost_usd,
t.total_tokens,
1000000 * s.estimated_provider_cost_usd / NULLIF(t.total_tokens, 0) AS estimated_cost_usd_per_1m_tokens
FROM spend s
JOIN tokens t
ON s.endpoint_name = t.endpoint_name
AND s.destination_model = t.destination_model
AND s.team = t.team
ORDER BY estimated_cost_usd_per_1m_tokens DESC;
Takım ilişkilendirmesi için istek etiketleri kullanıyorsanız, token rollup içinde custom_tags.endpoint_tags['team'] yerine custom_tags.request_tags['team'] ve endpoint_tags['team'] yerine request_tags['team'] yazın.
Note
Unity AI Gateway, 1 MiB'den büyük yayın yapmayan, gömülenmeyen yanıtlar için token kullanımını kaydetmez, bu yüzden bu yanıtların yaygın olduğu yerlerde token başına maliyet yüksek okunabilir. İş yükü içinde oranları karşılaştırın, alakasız yükler arasında değil.