Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag végigvezeti egy Express.js-alapú csevegőrobot-alkalmazás üzembe helyezésén, amely a Phi-4 oldalkocsis bővítményrel van integrálva az Azure App Service-ben. A lépések végrehajtásával megtanulhatja, hogyan állíthat be skálázható webalkalmazást, hogyan adhat hozzá mesterséges intelligenciával működő oldalkocsit a továbbfejlesztett beszélgetési képességekhez, és hogyan tesztelheti a csevegőrobot funkcióit.
A saját kis nyelvi modell (SLM) üzemeltetése számos előnnyel jár:
- Teljes körű vezérlés az adatok felett. A bizalmas információk nem kerülnek ki a külső szolgáltatásokba, ami kritikus fontosságú a szigorú megfelelőségi követelményekkel rendelkező iparágak számára.
- A saját üzemeltetésű modellek finomhangolhatók, hogy megfeleljenek bizonyos használati eseteknek vagy tartományspecifikus követelményeknek.
- Minimális hálózati késés és gyorsabb válaszidő a jobb felhasználói élmény érdekében.
- Az erőforrás-kiosztás teljes körű vezérlése az alkalmazás optimális teljesítményének biztosításával.
Előfeltételek
- Aktív előfizetéssel rendelkező Azure-fiók .
- Egy GitHub-fiók.
A mintaalkalmazás üzembe helyezése
A böngészőben keresse meg a mintaalkalmazás-adattárat.
Indítsa el az új Codespace-t az adattárból.
Jelentkezzen be az Azure-fiókjával:
az loginNyissa meg a terminált a Codespace-ben, és futtassa a következő parancsokat:
cd use_sidecar_extension/expressapp az webapp up --sku P3MV3
Ez az indítási parancs gyakori beállítás az Express.js-alkalmazások Azure App Service-ben való üzembe helyezéséhez. További információ: Node.js-webalkalmazás üzembe helyezése az Azure-ban.
A Phi-4 oldalkocsi-bővítmény hozzáadása
Ebben a szakaszban hozzáadja a Phi-4 oldalkocsis bővítményt az Azure App Service-ben üzemeltetett ASP.NET Core-alkalmazáshoz.
- Lépjen az Azure Portalra, és nyissa meg az alkalmazás felügyeleti oldalát.
- A bal oldali menüben válassza az Üzembe helyezési>központ lehetőséget.
- A Tárolók lapon válassza aSidecar bővítmény> lehetőséget.
- Az oldalkocsi bővítmény beállításai között válassza az AI: phi-4-q4-gguf (Kísérleti) lehetőséget.
- Adja meg az oldalkocsi-bővítmény nevét.
- Válassza a Mentés lehetőséget a módosítások alkalmazásához.
- Várjon néhány percet, amíg az oldalkocsi-bővítmény üzembe helyezése megtörténik. Válassza a Frissítés lehetőséget addig, amíg az Állapot oszlop a Fut állapotot nem mutatja.
Ez a Phi-4 oldalkocsis bővítmény egy olyan csevegés-befejezési API-t használ, mint az OpenAI, amely válaszolhat a csevegés befejezési kérésére a következő helyen: http://localhost:11434/v1/chat/completions. Az API-val való interakcióval kapcsolatos további információkért lásd:
A csevegőrobot tesztelése
Az alkalmazás felügyeleti lapján, a bal oldali menüben válassza az Áttekintés lehetőséget.
Az Alapértelmezett tartomány területen válassza ki az URL-címet a webalkalmazás böngészőben való megnyitásához.
Ellenőrizze, hogy a csevegőrobot-alkalmazás fut-e, és válaszol-e a felhasználói bemenetekre.
A mintaalkalmazás működése
A mintaalkalmazás bemutatja, hogyan integrálható egy Express.js-alapú szolgáltatás az SLM oldalkocsi-bővítménnyel. Az SLMService osztály beágyazza az SLM API-nak küldött kérések és a streamelt válaszok feldolgozásának logikáját. Ez az integráció lehetővé teszi, hogy az alkalmazás dinamikusan hozzon létre beszélgetési válaszokat.
Az use_sidecar_extension/expressapp/src/services/slm_service.js megtekintésekor ezt látja:
A szolgáltatás POST kérést küld az SLM-végpontnak
http://127.0.0.1:11434/v1/chat/completions.this.apiUrl = 'http://127.0.0.1:11434/v1/chat/completions';A POST adat tartalmazza a rendszerüzenetet és azt az utasítást, amelyet a kiválasztott termékből és a felhasználói lekérdezésből hoztak létre.
const requestPayload = { 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 };A POST-kérelem sorról sorra streameli a válaszsort. A rendszer minden sort elemez a létrehozott tartalom (vagy token) kinyeréséhez.
// Set up Server-Sent Events headers res.setHeader('Content-Type', 'text/event-stream'); res.setHeader('Cache-Control', 'no-cache'); res.setHeader('Connection', 'keep-alive'); res.flushHeaders(); const response = await axios.post(this.apiUrl, requestPayload, { headers: { 'Content-Type': 'application/json' }, responseType: 'stream' }); response.data.on('data', (chunk) => { const lines = chunk.toString().split('\n').filter(line => line.trim() !== ''); for (const line of lines) { let parsedLine = line; if (line.startsWith('data: ')) { parsedLine = line.replace('data: ', '').trim(); } if (parsedLine === '[DONE]') { return; } try { const jsonObj = JSON.parse(parsedLine); if (jsonObj.choices && jsonObj.choices.length > 0) { const delta = jsonObj.choices[0].delta || {}; const content = delta.content; if (content) { // Use non-breaking space to preserve formatting const formattedToken = content.replace(/ /g, '\u00A0'); res.write(`data: ${formattedToken}\n\n`); } } } catch (parseError) { console.warn(`Failed to parse JSON from line: ${parsedLine}`); } } });
Gyakori kérdések
- Hogyan befolyásolja a tarifacsomag az SLM oldalkocsi teljesítményét?
- Hogyan használhatom a saját SLM oldalkocsimat?
Hogyan befolyásolja a tarifacsomag az SLM oldalkocsi teljesítményét?
Mivel az AI-modellek jelentős erőforrásokat használnak fel, válassza ki azt a tarifacsomagot, amely elegendő virtuális processzort és memóriát biztosít az adott modell futtatásához. Ezért a beépített AI-oldalkocsi-bővítmények csak akkor jelennek meg, ha az alkalmazás megfelelő tarifacsomagban van. Ha saját SLM-oldalkocsis tárolót hoz létre, akkor CPU optimalizált modellt is érdemes használnia, mivel az App Service tarifacsomagjai csak CPU alapú szintek.
A 4K-s környezethosszúságú Phi-3 minimodell például úgy lett kialakítva, hogy korlátozott erőforrásokkal fusson, és számos gyakori forgatókönyvhöz biztosít erős matematikai és logikai érvelést. Emellett processzoroptimalizált verziót is tartalmaz. Az App Service-ben teszteltük a modellt az összes prémium szinten, és azt találtuk, hogy a P2mv3 vagy annál magasabb szinten is jól működik. Ha a követelmények megengedik, alacsonyabb szinten is futtathatja.
Hogyan használhatom a saját SLM oldalkocsimat?
A mintaadattár tartalmaz egy minta SLM-tárolót, amelyet oldalkocsiként használhat. Egy FastAPI-alkalmazást futtat, amely a Dockerfile-ban megadott 8000-es porton figyel. Az alkalmazás AZ ONNX Runtime használatával tölti be a Phi-3 modellt, majd továbbítja a HTTP POST-adatokat a modellnek, és a modell válaszát visszaküldi az ügyfélnek. További információ: model_api.py.
Az oldalkocsi lemezképének létrehozásához helyileg kell telepítenie a Docker Desktopot a gépére.
Klónozza az adattárat helyileg.
git clone https://github.com/Azure-Samples/ai-slm-in-app-service-sidecar cd ai-slm-in-app-service-sidecarVáltson a Phi-3 rendszerkép forráskönyvtárára, és töltse le a modellt helyileg a Huggingface parancssori felület használatával.
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-onnxA Dockerfile úgy van konfigurálva, hogy másolja a modellt a ./Phi-3-mini-4k-instruct-onnx fájlból.
Állítsa össze a Docker-rendszerképet. Például:
docker build --tag phi-3 .Töltse fel az épített rendszerképet az Azure Container Registrybe az első rendszerkép leküldésével az Azure Container Registrybe a Docker CLI használatával.
Az Üzembehelyezési központ>tárolói (új) lapon válassza azEgyéni tároló> lehetőséget, és konfigurálja az új tárolót az alábbiak szerint:
- Név: phi-3
- Kép forrása: Azure Container Registry
- Beállításjegyzék: a te beállításjegyzéked
- Kép: a feltöltött kép
- Címke: a kívánt képcímke
- Port: 8000
Válassza az Alkalmazás lehetőséget.
Lásd a bring_your_own_slm/src/webapp mappa tartalmát egy mintaalkalmazásért, amely kapcsolatba lép ezzel az egyéni oldalkocsi konténerrel.
Következő lépések
Útmutató: Sidecar konténer konfigurálása Linux alkalmazáshoz az Azure App Service-ben