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 Spring Boot-alapú csevegőrobot-alkalmazás üzembe helyezésén, amely integrálva van a Phi-4 sidecar bővítményével 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/springapp ./mvnw clean package az webapp up --sku P3MV3 --runtime "JAVA:21-java21" --os-type linux
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. Amíg az Állapot oszlop nem mutatja, hogy Fut, kattintson a Frissítés gombra.
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 Java-szolgáltatás az SLM oldalkocsi-bővítménnyel. Az ReactiveSLMService 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.
A use_sidecar_extension/springapp/src/main/java/com/example/springapp/service/ReactiveSLMService.java nézetben a következőt látja:
A szolgáltatás beolvassa az URL-címet
fashion.assistant.api.url, amely az application.properties fájlban van beállítva, és amelynek értékehttp://localhost:11434/v1/chat/completions.public ReactiveSLMService(@Value("${fashion.assistant.api.url}") String apiUrl) { this.webClient = WebClient.builder() .baseUrl(apiUrl) .build(); }A POST hasznos terhe tartalmazza a rendszerüzenetet, valamint a kiválasztott termékből és a felhasználói lekérdezésből összeállított kérdést.
JSONObject requestJson = new JSONObject(); JSONArray messages = new JSONArray(); JSONObject systemMessage = new JSONObject(); systemMessage.put("role", "system"); systemMessage.put("content", "You are a helpful assistant."); messages.put(systemMessage); JSONObject userMessage = new JSONObject(); userMessage.put("role", "user"); userMessage.put("content", prompt); messages.put(userMessage); requestJson.put("messages", messages); requestJson.put("stream", true); requestJson.put("cache_prompt", false); requestJson.put("n_predict", 2048); String requestBody = requestJson.toString();A reaktív POST-kérelem sorról sorra streameli a választ. Minden sort elemzünk, hogy kinyerjük a létrehozott tartalmat (vagy tokent).
return webClient.post() .contentType(MediaType.APPLICATION_JSON) .body(BodyInserters.fromValue(requestBody)) .accept(MediaType.TEXT_EVENT_STREAM) .retrieve() .bodyToFlux(String.class) .filter(line -> !line.equals("[DONE]")) .map(this::extractContentFromResponse) .filter(content -> content != null && !content.isEmpty()) .map(content -> content.replace(" ", "\u00A0"));
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, érdemes processzoroptimalizált modellt használni, 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