Parancssori folyamat integrálása LLM-alapú devOps-alkalmazással
Ebben a cikkben megismerheti a parancssori folyamat integrációját az LLM-alapú DevOps alkalmazással az Azure Machine Tanulás. A prompt flow egy fejlesztőbarát és könnyen használható kódelső felületet kínál a folyamatfejlesztéshez és az iteráláshoz a teljes LLM-alapú alkalmazásfejlesztési munkafolyamattal.
Gyors folyamat SDK-t és parancssori felületet, VS-kódbővítményt, valamint a folyamatmappa-kezelő új felhasználói felületét biztosítja a folyamatok helyi fejlesztésének, a folyamatfuttatások és a kiértékelési futtatások helyi aktiválásának, valamint a folyamatok helyiről felhőbeli (Azure Machine Tanulás-munkaterületi) környezetek közötti áttűnésére.
Ez a dokumentáció az LLM-alapú alkalmazásfejlesztési munkafolyamatok továbbfejlesztése érdekében a gyors folyamatkód-élmény és a DevOps képességeinek hatékony kombinálására összpontosít.
A kód első verziójának bemutatása a parancssori folyamatban
Az LLM-et használó alkalmazások fejlesztésekor gyakran előfordul, hogy szabványosított alkalmazástervezési folyamattal rendelkezik, amely kódtárakat és CI/CD-folyamatokat tartalmaz. Ez az integráció egyszerűbb fejlesztési folyamatot, verziókövetést és együttműködést tesz lehetővé a csapattagok között.
A kódfejlesztésben jártos fejlesztők számára, akik hatékonyabb LLMOps-iterációs folyamatot keresnek, az alábbi főbb funkciók és előnyök érhetők el a gyors folyamatkód-élményből:
- Folyamat verziószámozása a kódtárban. A folyamatot YAML formátumban határozhatja meg, amely igazodhat a mappaszerkezet hivatkozott forrásfájljaihoz.
- Integrálja a folyamatfuttatást a CI/CD-folyamattal. A folyamatfuttatásokat a parancssori parancssori felülettel vagy az SDK-val indíthatja el, amely zökkenőmentesen integrálható a CI/CD-folyamatba és a kézbesítési folyamatba.
- Zökkenőmentes átmenet a helyiről a felhőbe. A folyamatmappát egyszerűen exportálhatja a helyi vagy kódtárba verziókövetés, helyi fejlesztés és megosztás céljából. Hasonlóképpen, a folyamatmappát könnyedén vissza lehet importálni a felhőbe további létrehozás, tesztelés és üzembe helyezés céljából a felhőbeli erőforrásokban.
A parancssori folyamat kóddefiníciójának elérése
Minden egyes folyamat egy folyamatmappa-struktúrához van társítva, amely alapvető fájlokat tartalmaz a folyamat kódmappa-struktúrában való meghatározásához. Ez a mappastruktúra rendszerezi a folyamatot, megkönnyítve a zökkenőmentesebb áttűnést.
Az Azure Machine Tanulás megosztott fájlrendszert kínál minden munkaterület-felhasználó számára. Folyamat létrehozásakor a rendszer automatikusan létrehozza és tárolja a megfelelő folyamatmappát a Users/<username>/promptflow
könyvtárban.
Folyamatmappa-struktúra
A folyamatmappa szerkezetének és a benne található kulcsfájloknak az áttekintése:
- flow.dag.yaml: Ez az elsődleges folyamatdefiníciós fájl YAML formátumban tartalmazza a folyamathoz használt bemenetekkel, kimenetekkel, csomópontokkal, eszközökkel és változatokkal kapcsolatos információkat. A parancssori folyamat létrehozása és definiálása szerves része.
- Forráskódfájlok (.py, .jinja2): A folyamatmappa felhasználó által felügyelt forráskódfájlokat is tartalmaz, amelyekre a folyamat eszközei/csomópontjai hivatkoznak.
- A Python (.py) formátumú fájlokra a Python-eszköz hivatkozhat egyéni Python-logika meghatározásához.
- A Jinja 2 (.jinja2) formátumú fájlokra a parancssori eszköz vagy az LLM eszköz hivatkozhat a parancssori környezet definiálása érdekében.
- Nem forrásfájlok: A folyamatmappa olyan nem forrásfájlokat is tartalmazhat, mint a segédprogramfájlok és a forrásfájlokban található adatfájlok.
A folyamat létrehozása után a Folyamatkészítő lapra lépve megtekintheti és kezelheti a folyamatfájlokat a megfelelő fájlkezelőben. Ez lehetővé teszi a fájlok megtekintését, szerkesztését és kezelését. A fájlok módosításai közvetlenül megjelennek a fájlmegosztási tárolóban.
Ha a "Nyers fájl mód" be van kapcsolva, megtekintheti és szerkesztheti a fájlok nyers tartalmát a fájlszerkesztőben, beleértve a folyamatdefiníciós fájlt flow.dag.yaml
és a forrásfájlokat.
Másik lehetőségként az összes folyamatmappát közvetlenül az Azure Machine Tanulás jegyzetfüzetében érheti el.
Verziószámozási parancssori folyamat a kódtárban
A folyamat kódtárba való beadásához egyszerűen exportálhatja a folyamatmappát a folyamatkészítő oldalról a helyi rendszerbe. Ez letölt egy csomagot, amely tartalmazza az összes fájlt az Explorerből a helyi gépre, amelyet ezután be lehet jelentkezni a kódtárba.
További információ az Azure Machine Tanulás DevOps-integrációjáról: Git-integráció az Azure Machine Tanulás
Futtatások elküldése a felhőbe a helyi adattárból
Előfeltételek
Ha még nem rendelkezik Azure Machine-Tanulás-munkaterületpel, végezze el az erőforrások létrehozása műveletet az első lépésekhez.
Egy Python-környezet, amelyben az Azure Machine Tanulás Python SDK v2-t telepítette – telepítési utasítások. Ez a környezet az Azure Machine Tanulás erőforrásainak meghatározására és szabályozására szolgál, és elkülönül a futtatókörnyezetben használt környezettől. További információkért tekintse meg , hogyan kezelheti a futtatókörnyezetet a gyors folyamatkezeléshez.
Prompt Flow SDK telepítése
pip install -r ../../examples/requirements.txt
Csatlakozás az Azure Machine Tanulás-munkaterületre
az login
Készítse elő a run.yml
felhőben futó folyamat konfigurációjának definiálását.
$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: <path_to_flow>
data: <path_to_flow>/data.jsonl
column_mapping:
url: ${data.url}
# define cloud resource
# if omitted, it will use the automatic runtime, you can also specify the runtime name, specify automatic will also use the automatic runtime.
runtime: <runtime_name>
# define instance type only work for automatic runtime, will be ignored if you specify the runtime name.
# resources:
# instance_type: <instance_type>
# overrides connections
connections:
classify_with_llm:
connection: <connection_name>
deployment_name: <deployment_name>
summarize_text_content:
connection: <connection_name>
deployment_name: <deployment_name>
Megadhatja a kapcsolat és az üzembe helyezés nevét a folyamat egyes eszközeihez. Ha nem adja meg a kapcsolat és az üzembe helyezés nevét, az egyetlen kapcsolatot és üzembe helyezést használja a flow.dag.yaml
fájlon. Kapcsolatok formázása:
...
connections:
<node_name>:
connection: <connection_name>
deployment_name: <deployment_name>
...
pfazure run create --file run.yml
Készítse elő a run_evaluation.yml
konfigurációt a kiértékelési folyamat felhőben való futtatásához.
$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: <path_to_flow>
data: <path_to_flow>/data.jsonl
run: <id of web-classification flow run>
column_mapping:
groundtruth: ${data.answer}
prediction: ${run.outputs.category}
# define cloud resource
# if omitted, it will use the automatic runtime, you can also specify the runtime name, specif automatic will also use the automatic runtime.
runtime: <runtime_name>
# define instance type only work for automatic runtime, will be ignored if you specify the runtime name.
# resources:
# instance_type: <instance_type>
# overrides connections
connections:
classify_with_llm:
connection: <connection_name>
deployment_name: <deployment_name>
summarize_text_content:
connection: <connection_name>
deployment_name: <deployment_name>
pfazure run create --file run_evaluation.yml
Futtatási eredmények megtekintése az Azure Machine Tanulás-munkaterületen
A folyamatfuttatás felhőbe való elküldése a futtatás portáljának URL-címét adja vissza. A portálon megnyithatja az URI-t a futtatási eredmények megtekintéséhez.
A futtatások eredményeinek megtekintéséhez az alábbi parancsot is használhatja.
Naplók streamelése
pfazure run stream --name <run_name>
Futtatási kimenetek megtekintése
pfazure run show-details --name <run_name>
A kiértékelési futtatás metrikáinak megtekintése
pfazure run show-metrics --name <evaluation_run_name>
Fontos
További információkért tekintse meg az Azure parancssori parancssori felületének dokumentációját.
Iteratív fejlesztés finomhangolásból
Helyi fejlesztés és tesztelés
Az iteratív fejlesztés során a folyamat vagy a kérések pontosítása és finomhangolása során hasznos lehet több iteráció helyi végrehajtása a kódtárban. A közösségi verzió, a parancssori folyamat VS Code-bővítménye és a prompt flow helyi SDK > PARANCSSOR biztosítja a tiszta helyi fejlesztést és tesztelést azure-kötés nélkül.
Parancssori folyamat VS Code-bővítménye
A parancssori folyamat VS Code-bővítményének telepítésével egyszerűen létrehozhatja a folyamatot helyileg a VS Code-szerkesztőből, és hasonló felhasználói felületet biztosít, mint a felhőben.
A bővítmény használata:
- Nyisson meg egy parancssori folyamatot tartalmazó mappát a VS Code Desktopban.
- Nyissa meg a ''flow.dag.yaml' fájlt jegyzetfüzet nézetben.
- A vizualizációszerkesztő használatával elvégezheti a folyamat szükséges módosításait, például módosíthatja a kéréseket változatokban, vagy további eszközöket adhat hozzá.
- A folyamat teszteléséhez válassza a Folyamat futtatása gombot a vizualizációszerkesztő tetején. Ez elindít egy folyamattesztet.
Folyamat helyi SDK és parancssori felületének kérése
Ha inkább a Jupytert, a PyCharmot, a Visual Studiót vagy más azonosítókat szeretné használni, közvetlenül módosíthatja a YAML-definíciót a flow.dag.yaml
fájlban.
Ezután a parancssori parancssori felület vagy az SDK használatával egyetlen futtatási folyamatot indíthat a teszteléshez.
Feltételezve, hogy a munkakönyvtárban dolgozik <path-to-the-sample-repo>/examples/flows/standard/
pf flow test --flow web-classification # "web-classification" is the directory name
Így gyorsan elvégezheti és tesztelheti a módosításokat anélkül, hogy minden alkalommal frissítenie kellene a fő kódtárat. Ha elégedett a helyi tesztelés eredményeivel, átviheti a felhőbe a helyi adattárból a kísérletfuttatások felhőben történő végrehajtásához.
A helyi verziók használatával kapcsolatos további részletekért és útmutatásért tekintse meg a GitHub-közösség parancssori folyamatát.
Térjen vissza a studio felhasználói felületére a folyamatos fejlesztés érdekében
Másik lehetőségként visszatérhet a stúdió felhasználói felületére a felhőbeli erőforrások és a felhasználói felület használatával, hogy a folyamaton módosításokat hajthat végre a folyamat szerzői oldalán.
A folyamatfájlok legújabb verziójának fejlesztéséhez és használatához hozzáférhet a jegyzetfüzet termináljához, és lekérheti a folyamatfájlok legújabb módosításait az adattárból.
Emellett, ha továbbra is a studio felhasználói felületén szeretne dolgozni, közvetlenül importálhat egy helyi folyamatmappát új vázlatfolyamatként. Így zökkenőmentesen válthat a helyi és a felhőbeli fejlesztés között.
CI/CD-integráció
CI: Triggerfolyamatok futnak a CI-folyamatban
Miután sikeresen kifejlesztette és tesztelte a folyamatot, és a kezdeti verzióként bejelentkezett, készen áll a következő hangolási és tesztelési iterációra. Ebben a szakaszban elindíthatja a folyamatfuttatásokat, beleértve a kötegelt tesztelést és a kiértékelési futtatásokat a parancssori parancssori felület használatával. Ez automatizált munkafolyamatként szolgálhat a folyamatos integrációs (CI) folyamatban.
A folyamat iterációinak életciklusa során több művelet is automatizálható:
- Parancssori folyamat futtatása lekéréses kérelem után
- A folyamat gyors kiértékelése annak biztosítása érdekében, hogy az eredmények kiváló minőségűek legyenek
- Gyorsfolyamat-modellek regisztrálása
- Parancssori folyamatmodellek üzembe helyezése
A webbesorolási folyamatot végrehajtó teljes körű MLOps-folyamat átfogó útmutatóját lásd : A teljes körű LLMOps beállítása a folyamat és a GitHub parancssori folyamatával, valamint a GitHub bemutató projektje.
CD: Folyamatos üzembe helyezés
Az éles üzembe helyezés utolsó lépése a folyamat online végpontként való üzembe helyezése az Azure Machine Tanulás. Így integrálhatja a folyamatot az alkalmazásba, és elérhetővé teheti azt használatra.
A folyamat üzembe helyezésével kapcsolatos további információkért lásd: Folyamatok üzembe helyezése az Azure Machine Tanulás felügyelt online végponton valós idejű következtetés céljából a parancssori felülettel és az SDK-val.
Együttműködés a folyamatfejlesztésben az éles környezetben
A parancssori folyamattal rendelkező LLM-alapú alkalmazások fejlesztésének kontextusában a csapattagok közötti együttműködés gyakran elengedhetetlen. Előfordulhat, hogy a csapattagok ugyanabban a folyamatkészítésben és tesztelésben vesznek részt, a folyamat különböző aspektusait dolgoznak, vagy egyidejűleg iteratív módosításokat és fejlesztéseket végeznek.
Az ilyen együttműködés megköveteli a kód megosztásának, a módosítások nyomon követésének, a verziók kezelésének és a módosítások végleges projektbe való integrálásának hatékony és korszerű megközelítését.
A prompt flow SDK/CLI és a Visual Studio Code-bővítmény bevezetése a gyors folyamat kódélménye részeként megkönnyíti a folyamatfejlesztéssel kapcsolatos egyszerű együttműködést a kódtárban. Javasoljuk, hogy egy felhőalapú kódtárat ( például GitHub vagy Azure DevOps) használjon a változások nyomon követéséhez, a verziók kezeléséhez és a módosítások végső projektbe való integrálásához.
Ajánlott eljárások együttműködésen alapuló fejlesztéshez
A folyamat helyi létrehozása és egyszeri tesztelése – Kódtár és VSC-bővítmény
- Az együttműködési folyamat első lépése egy kódtár használata a projektkód alapjaként, amely tartalmazza a parancssori folyamat kódját.
- Ez a központosított adattár lehetővé teszi a hatékony szervezést, az összes kódmódosítás nyomon követését és a csapattagok közötti együttműködést.
- Az adattár beállítása után a csapattagok használhatják a VSC bővítményt a helyi létrehozáshoz és a folyamat egyszeri bemeneti teszteléséhez.
- Az együttműködési folyamat első lépése egy kódtár használata a projektkód alapjaként, amely tartalmazza a parancssori folyamat kódját.
Felhőalapú kísérleti kötegtesztelés és -kiértékelés – parancssori folyamat cli/SDK és munkaterületi portál felhasználói felülete
- A helyi fejlesztési és tesztelési fázist követően a folyamatfejlesztők a pfazure CLI vagy az SDK használatával küldhetnek kötegelt futtatásokat és kiértékelési futtatásokat a helyi folyamatfájlokból a felhőbe.
- Ez a művelet lehetővé teszi a felhőbeli erőforrások használatát, az eredmények állandó tárolását és hatékony kezelését egy portál felhasználói felületén az Azure Machine Tanulás-munkaterületen. Ez a lépés lehetővé teszi a felhőbeli erőforrások használatát, beleértve a számítást és a tárolást, valamint az üzembe helyezés további végpontjait.
- A felhőbe történő beküldések után a csapattagok hozzáférhetnek a felhőportál felhasználói felületéhez az eredmények megtekintéséhez és a kísérletek hatékony kezeléséhez.
- Ez a felhőalapú munkaterület központi helyet biztosít az összes futtatás előzményeinek, naplóinak, pillanatképeinek, átfogó eredményeinek, beleértve a példányszintű bemeneteket és kimeneteket.
- A fejlesztés során az összes futtatási előzményt tartalmazó futtatási listán a csapattagok egyszerűen összehasonlíthatják a különböző futtatások eredményeit, elősegítve a minőségelemzést és a szükséges módosításokat.
- A helyi fejlesztési és tesztelési fázist követően a folyamatfejlesztők a pfazure CLI vagy az SDK használatával küldhetnek kötegelt futtatásokat és kiértékelési futtatásokat a helyi folyamatfájlokból a felhőbe.
Helyi iteratív fejlesztés vagy egylépéses felhasználói felület üzembe helyezése éles környezetben
- A kísérletek elemzését követően a csapattagok visszatérhetnek a kódtárba egy másik fejlesztéshez és finomhangoláshoz. A későbbi futtatások ezután iteratív módon küldhetők el a felhőbe.
- Ez az iteratív megközelítés biztosítja a konzisztens fejlesztést, amíg a csapat nem elégedett az éles üzemre kész minőséggel.
- Ha a csapat teljes mértékben biztos a folyamat minőségében, zökkenőmentesen üzembe helyezhető egy felhasználói felületi varázslóval online végpontként az Azure Machine Tanulás. Miután a csapat teljes mértékben biztos a folyamat minőségében, zökkenőmentesen át lehet váltani az éles környezetbe egy felhasználói felület üzembe helyezési varázslójával, mint online végpont egy robusztus felhőkörnyezetben.
- A kísérletek elemzését követően a csapattagok visszatérhetnek a kódtárba egy másik fejlesztéshez és finomhangoláshoz. A későbbi futtatások ezután iteratív módon küldhetők el a felhőbe.
Miért javasoljuk a kódtár használatát együttműködésen alapuló fejlesztéshez?
Az iteratív fejlesztéshez a helyi fejlesztési környezet és a verziókövetési rendszer, például a Git kombinációja általában hatékonyabb. Módosíthatja és helyileg tesztelheti a kódot, majd véglegesítheti a módosításokat a Gitben. Ez létrehoz egy folyamatos rekordot a módosításokról, és lehetővé teszi, hogy szükség esetén visszatérjen a korábbi verziókra.
Ha különböző környezetekben kell megosztani a folyamatokat , ajánlott felhőalapú kódtárat használni, például a GitHubot vagy az Azure Repost. Ez lehetővé teszi, hogy a kód legújabb verzióját bárhonnan elérhesse, és eszközöket biztosít az együttműködéshez és a kódkezeléshez.
Az ajánlott eljárás követésével a csapatok zökkenőmentes, hatékony és hatékony együttműködési környezetet hozhatnak létre a gyors folyamatfejlesztéshez.