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 öğretici, Azure App Service'te Phi-4 sepet uzantısıyla tümleştirilmiş FastAPI tabanlı bir sohbet botu uygulaması dağıtma konusunda size yol gösterir. Adımları izleyerek ölçeklenebilir bir web uygulaması ayarlamayı, gelişmiş konuşma özellikleri için yapay zeka destekli bir sepet eklemeyi ve sohbet botunun işlevselliğini test etmeyi öğreneceksiniz.
Kendi küçük dil modelinizi (SLM) barındırmak çeşitli avantajlar sunar:
- Verileriniz üzerinde tam denetim. Hassas bilgiler, katı uyumluluk gereksinimleri olan sektörler için kritik öneme sahip olan dış hizmetlere sunulmaz.
- Kendi kendine barındırılan modeller, belirli kullanım durumlarını veya alanına özgü gereksinimleri karşılamak için ince ayar yapılabilir.
- Daha iyi bir kullanıcı deneyimi için en düşük ağ gecikme süresi ve daha hızlı yanıt süreleri.
- Kaynak ayırma üzerinde tam denetim sağlayarak uygulamanız için en iyi performansı elde edin.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı .
- Bir GitHub hesabı.
Örnek uygulamayı dağıtma
Tarayıcıda örnek uygulama deposuna gidin.
Depodan yeni bir Codespace başlatın.
Azure hesabınızla oturum açın:
az loginCodespace'ta terminali açın ve aşağıdaki komutları çalıştırın:
cd use_sidecar_extension/fastapiapp az webapp up --sku P3MV3 az webapp config set --startup-file "gunicorn -w 4 -k uvicorn.workers.UvicornWorker app.main:app"
Bu başlangıç komutu, FastAPI uygulamalarını Azure App Service'e dağıtmaya yönelik yaygın bir kurulumdur. Daha fazla bilgi için bkz . Hızlı Başlangıç: Azure App Service'e Python (Django, Flask veya FastAPI) web uygulaması dağıtma.
Phi-4 sidecar uzantısını ekle
Bu bölümde, Azure App Service'te barındırılan ASP.NET Core uygulamanıza Phi-4 sepet uzantısını ekleyeceksiniz.
- Azure portalına gidin ve uygulamanızın yönetim sayfasına gidin.
- Sol taraftaki menüde Dağıtım>Dağıtım Merkezi'ni seçin.
- Kapsayıcılar sekmesindeSepet uzantısı> seçin.
- Sepet genişletme seçeneklerinde AI: phi-4-q4-gguf (Deneysel) seçeneğini belirleyin.
- Sidecar uzantısı için bir ad belirtin.
- Değişiklikleri uygulamak için Kaydet seçeneğini seçin.
- Sidecar uzantısının dağıtılması için birkaç dakika bekleyin. Durum sütununda Çalışıyor ifadesi görene kadar Yenile'yi seçmeye devam edin.
Bu Phi-4 sepet uzantısı, OpenAI gibi bir sohbet tamamlama API'si kullanır ve bu API, adresinden sohbet tamamlama yanıtlarına yanıt verebilir. API ile etkileşim kurma hakkında daha fazla bilgi için bkz:
Sohbet botunu test edin
Uygulamanızın yönetim sayfasındaki sol taraftaki menüde Genel Bakış'ı seçin.
Varsayılan etki alanı'nın altında, web uygulamanızı tarayıcıda açmak için URL'yi seçin.
Sohbet botu uygulamasının çalıştığını ve kullanıcı girişlerine yanıt verdiğini doğrulayın.
Örnek uygulama nasıl çalışır?
Örnek uygulama, FastAPI tabanlı bir hizmetin SLM sepet uzantısıyla nasıl tümleştirüleceklerini gösterir. sınıfı, SLMService SLM API'sine istek gönderme ve akışa alınan yanıtları işleme mantığını kapsüller. Bu tümleştirme, uygulamanın dinamik olarak konuşma yanıtları oluşturmasını sağlar.
use_sidecar_extension/fastapiapp/app/services/slm_service.py baktığınızda şunları görürsünüz:
Hizmet, SLM uç noktasına
http://localhost:11434/v1/chat/completionsbir POST isteği gönderir.self.api_url = 'http://localhost:11434/v1/chat/completions'POST yükü, seçilen üründen ve kullanıcı sorgusundan oluşturulan sistem iletisini ve istemi içerir.
request_payload = { "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt} ], "stream": True, "cache_prompt": False, "n_predict": 2048 # Increased token limit to allow longer responses }POST isteği , yanıtı satır satır aktarır. Oluşturulan içeriği (veya belirteci) ayıklamak için her satır ayrıştırılır.
async with httpx.AsyncClient() as client: async with client.stream( "POST", self.api_url, json=request_payload, headers={"Content-Type": "application/json"}, timeout=30.0 ) as response: async for line in response.aiter_lines(): if not line or line == "[DONE]": continue if line.startswith("data: "): line = line.replace("data: ", "").strip() try: json_obj = json.loads(line) if "choices" in json_obj and len(json_obj["choices"]) > 0: delta = json_obj["choices"][0].get("delta", {}) content = delta.get("content") if content: yield content
Sıkça sorulan sorular
- Fiyatlandırma katmanı SLM sidecar performansını nasıl etkiler?
- Kendi SLM yan aracımı nasıl kullanabilirim?
Fiyatlandırma seviyesi SLM sidecar performansını nasıl etkiler?
Yapay zeka modelleri önemli miktarda kaynak tükettiğinden, size belirli bir modeli çalıştırmak için yeterli vCPU ve bellek sağlayan fiyatlandırma katmanını seçin. Bu nedenle yerleşik yapay zeka sepet uzantıları yalnızca uygulama uygun bir fiyatlandırma katmanında olduğunda görünür. Kendi SLM sepet kapsayıcınızı oluşturuyorsanız App Service fiyatlandırma katmanları yalnızca CPU katmanları olduğundan CPU için iyileştirilmiş bir model de kullanmanız gerekir.
Örneğin, Hugging Face'den 4K bağlam uzunluğuna sahip Phi-3 mini modeli sınırlı kaynaklarla çalışacak şekilde tasarlanmıştır ve birçok yaygın senaryo için güçlü matematik ve mantıksal akıl yürütme sağlar. Ayrıca CPU için iyileştirilmiş bir sürümle birlikte gelir. App Service'te modeli tüm premium katmanlarda test ettik ve P2mv3 katmanında veya daha yüksek bir katmanda iyi performans göstermiş olduğunu bulduk. Gereksinimleriniz izin verirse, bunu daha düşük bir katmanda çalıştırabilirsiniz.
Kendi SLM yan birimimi nasıl kullanabilirim?
Örnek depo, sepet olarak kullanabileceğiniz örnek bir SLM kapsayıcısı içerir. Dockerfile'da belirtildiği gibi 8000 numaralı bağlantı noktasını dinleyen bir FastAPI uygulaması çalıştırır. Uygulama, Phi-3 modelini yüklemek için ONNX Çalışma Zamanı'nı kullanır, ardından HTTP POST verilerini modele iletir ve yanıtı modelden istemciye geri aktarır. Daha fazla bilgi için bkz . model_api.py.
Yan araba imajını kendiniz oluşturmak için Docker Desktop'ı makinenize yerel olarak yüklemeniz gerekir.
Depoyu yerel olarak kopyalayın.
git clone https://github.com/Azure-Samples/ai-slm-in-app-service-sidecar cd ai-slm-in-app-service-sidecarPhi-3 görüntüsünün kaynak dizinine geçin ve Huggingface CLI kullanarak modeli yerel olarak indirin.
cd bring_your_own_slm/src/phi-3-sidecar huggingface-cli download microsoft/Phi-3-mini-4k-instruct-onnx --local-dir ./Phi-3-mini-4k-instruct-onnxDockerfile modeli ./Phi-3-mini-4k-instruct-onnx dosyasından kopyalanacak şekilde yapılandırılmıştır.
Docker görüntüsü oluşturun. Örneğin:
docker build --tag phi-3 .Dağıtım Merkezi>Kapsayıcıları (yeni) sekmesindeÖzel kapsayıcı> seçin ve yeni kapsayıcıyı aşağıdaki gibi yapılandırın:
- Ad: phi-3
- Görüntü kaynağı: Azure Container Registry
- Kayıt defteri: kayıt defteriniz
- Resim: Yüklenen resim
- Etiket: İstediğiniz resim etiketi
- Bağlantı noktası: 8000
seçin, sonra daUygula'yı seçin.
bring_your_own_slm/src/webapp konumunda, bu özel sidecar kapsayıcı ile etkileşim sağlayan örnek bir uygulama bulabilirsiniz.
Sonraki Adımlar
Öğretici: Azure App Service'te Linux uygulaması için sepet kapsayıcısı yapılandırma