Az elmúlt néhány év különleges volt a központosított szerver alapú mesterséges intelligencia modellek számára, mint a ChatGPT, a Google Gemini, a Microsoft Copilot stb. Kétségtelen, hogy az ilyen mesterséges intelligencia modellek oly sok szempontot átalakítottak. De másrészt van néhány árnyoldaluk. Valószínűleg Ön is hallott a . ChatGPT több kimaradásáról A központosított szerver alapú modellek óriási kockázatnak vannak kitéve, hogy egyetlen ponton meghibásodnak. De most megváltozott az idő. A blokklánc technológia számos területet is forradalmasít, köztük a mesterséges intelligenciát (AI). A Dfinity által kifejlesztett Internet Computer Protocol (ICP) a mesterséges intelligencia decentralizálásán dolgozik azáltal, hogy lehetővé teszi az AI-alkalmazások futtatását egy teljesen decentralizált felhő infrastruktúrán. Az egyedülálló dolog az, hogy az ICP lehetővé teszi az AI modellek és szolgáltatások független adatközpontok hálózatán keresztül történő telepítését. Ez a fajta decentralizációs megközelítés biztosítja, hogy az AI-műveletek átláthatóak, cenzúraállóak legyenek, és kevésbé hajlamosak egyetlen hibapontra. Ez a cikk ellentétben áll az ICP-n alapuló, gyakorlati teszttel. Megvizsgáljuk, hogy az AI decentralizációja hogyan működik objektíven az egyes lépések finom demonstrációival. Megpróbáltuk az összetett technikai fogalmakat könnyen érthető oktatóanyagokra bontani, ezért kezdjük. arcfelismerő DApp A teljes projektfejlesztési és tesztelési folyamat Windows alapú gépen történt, ezért itt egy Linux alrendszert hozunk létre, mivel számos ICP fejlesztőeszköz és szkript Linux alapú környezetre van optimalizálva. 📥Feltételek: : Windows telepített Windows alrendszerrel Linuxhoz (WSL). Kérjük, olvassa el ezt az a telepítéshez. Operációs rendszer útmutatót : Tudás , , és alapvető ismerete. A JavaScript a React.js a Rust a WebAssembly Webfejlesztési koncepciók ismerete. : Eszközök . DFX SDK (ICP fejlesztési keretrendszer) Node.js és npm. Telepítse a Rust szerszámláncot. Rozsda: Szüksége van rá a tár klónozásához. Kérjük, a telepítéshez használja . Git: az ő útmutatójukat Eszköz a WASI-függő Wasm modul ICP-n történő futtatására való átalakítására. wasi2ic: A WebAssembly optimalizáló. wasm-opt: 📥A fejlesztői környezet beállítása: Nyissa meg a WSL terminált, és futtassa a következő parancsot a DFX telepítéséhez: sh -ci "$(curl -fsSL https://smartcontracts.org/install.sh)" 👉 A telepítés megerősítéséhez: dfx –version Telepítse a Rust-ot a következő parancs futtatásával: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env 👉A telepítés ellenőrzéséhez futtassa: rustc –version 3. Telepítse a Node.js fájlt a következő parancs futtatásával: curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install -y nodejs 👉A telepítés ellenőrzéséhez futtassa: node -v npm -v A wasi2ic telepítése: Először klónozzuk a GitHub-tárhelyüket. git clone https://github.com/wasm-forge/wasi2ic.git cd wasi2ic cargo install --path . 👉A telepítés ellenőrzéséhez futtassa: echo $PATH wasi2ic –help A wasm-opt telepítése: cargo install wasm-opt 📥A projekt klónozása: Tesztelési célokra a projekt GitHub tárházát használjuk. Az adattárukat tudod ellenőrizni. itt 1. Klónozza a tárat, és navigáljon az arcfelismerő projekthez: git clone https://github.com/dfinity/examples.git cd examples/rust/face-recognition A Linux alrendszer fájljaihoz úgy érheti el, hogy kifejezésre keres a Fájlkezelőben vagy a Windows operációs rendszer közvetlen keresési funkciójában. Megjegyzés: \\wsl$ 📥Töltsön le modelleket az arcfelismeréshez Töltse le az arcfelismerő modellt: Az arcfelismerő modell az arcok felismerésére szolgál a képen. Fut: ./download-face-detection-model.sh Töltse le az arcfelismerő modellt: A modellt ONNX formátumba kell exportálnia és segítségével. Kezdje az alábbi Python-könyvtárak telepítésével: PyTorch facenet-pytorch pip install torch facenet-pytorch onnx Ha a Python még nincs telepítve az alrendszerében, próbálja meg a Python és a pip telepítését innen: . Megjegyzés: https://packaging.python.org/en/latest/tutorials/installing-packages/ Az ONNX modell exportálása: Python fájlban vagy shellben futtassa a következőt: Írja be a python3 parancsot a terminálba, majd futtassa a következő kódot. A végrehajtás után írja be az exit() parancsot. import torch import facenet_pytorch resnet = facenet_pytorch.InceptionResnetV1(pretrained='vggface2').eval() input = torch.randn(1, 3, 160, 160) torch.onnx.export(resnet, input, "face-recognition.onnx", verbose=False, opset_version=11) Ezzel létrejön a fájl. Másolja a tárhely gyökerébe. face-recognition.onnx 📥 Építeni Most itt az ideje a projekt felépítésének. Fut: dfx start --background dfx deploy Ha minden jól megy, láthatja a frontend URL-címét a terminálban. Ha valamilyen hibába ütközik az ügyfél hiánya miatt, próbálja meg globálisan telepíteni és az npm használatával: Megjegyzés: webpack webpack-cli sudo npm install -g webpack webpack-cli És a helyi függőségek: npm install 📥Hozza létre a tartályt, futtassa: dfx canister create backend A terminálon a következő üzenet látható. 👉Most ellenőrizheti a tartály háttérrendszerének állapotát: dfx canister status backend Valami ilyesmit láthat a terminálban. 📥Modellek darabos feltöltése Mivel az AI modellek jellemzően nagyok. Nem ágyazhatók be közvetlenül az intelligens szerződés WebAssembly (Wasm) binárisába. Ehelyett ezeket a modelleket külön kell feltölteni. Ennek kezelésére a DecideAI kifejlesztett egy eszközt a modellek fokozatos feltöltésére. Az eszközt itt találod: . ic-file-uploader 👉Az eszköz telepítéséhez használja a következő parancsot: cargo install ic-file-uploader A telepítés után használhatja az parancsfájlt futtatásával a terminálon a modellek feltöltéséhez. Ez a szkript a következő lépéseket hajtja végre: upload-models-to-canister.sh ./upload-models-to-canister.sh Törli a meglévő AI modelleket a tartályból: dfx canister call backend clear_face_detection_model_bytes dfx canister call backend clear_face_recognition_model_bytes Fokozatosan tölti fel az új modelleket: ic-file-uploader backend append_face_detection_model_bytes version-RFB-320.onnx ic-file-uploader backend append_face_recognition_model_bytes face-recognition.onnx Végül a szkript beállítja a feltöltött modelleket: dfx canister call backend setup_models Mostantól interakcióba léphet a Frontenddel a terminálban kapott URL-cím használatával, miközben parancsot adta ki (1. ábra). dfx deploy Miután feltöltött egy képet az ICP logójára kattintva, próbálja meg hozzáadni egy személy nevét a „ ” gombra kattintva a modell betanításához. Személy hozzáadása Automatikus téglalapjellel érzékeli az arcot. Miután beállította a nevet, megjelenik egy üzenet a sikeres hozzáadásról, az alábbiak szerint: A mesterséges intelligencia megjegyzi az archoz beállított nevet, így ellenőrizheti, hogy felismeri-e ugyanazon személy különböző fényképeinek arcát. Itt különböző fotók készülnek Nikola Tesláról. Ha másik fényképet szeretne feltölteni arcfelismerésre, töltse be újra az oldalt, majd kattintson a „ ” lehetőségre. Lássuk csak; sikeresen azonosította Nikola Tesla arcát az eredetihez képest kis eltéréssel. Felismerés Itt egy mesterséges intelligencia által generált fotót küldenek be Nikola Tesláról a modellnek, és meglepő módon pontosan észlelte az arcot, lássuk itt: Sikeresen ellenőrizte, hogy az ICP Face Recognizing DApp tökéletesen működik, mivel sikeresen észlelte Nikola Tesla arcát. Kipróbálhatod egyedül. Mivel tesztelési célokat szolgál, a felhasználói felület és a funkciók korlátozottak. Hozzáadhat további funkciókat és szolgáltatásokat, ha az arcfelismerés céljából ICP-n gyártásra kész dApp-ot szeretne felépíteni. A következő funkciókat kódpéldákkal próbálhatja ki. Kérjük, vegye figyelembe, hogy igénye szerint kell hozzáadnia vagy testreszabnia a kódokat. 📥Íme néhány tipp: Felhasználói hitelesítés hozzáadása internetes azonosítóval Ha hozzáadja ezt a funkciót ehhez a dApp-hoz, csak regisztrált felhasználók férhetnek hozzá a DApp-hoz. Így adhat hozzá hitelesítést az Internet Identity használatával. Az Internet Identity integrálható az Internet Identity bejelentkezés gomb hozzáadásával a kezdőlapon. Miután a felhasználó bejelentkezik, jelenítsen meg egy személyre szabott műszerfalat. Hozzáadás módja: 👉Internet Identity függőségek telepítése: npm install @dfinity/agent @dfinity/auth-client 👉Adja hozzá a következő kódot a felhasználói felülethez a hitelesítés engedélyezéséhez: import { AuthClient } from "@dfinity/auth-client"; async function init() { const authClient = await AuthClient.create(); if (await authClient.isAuthenticated()) { // Display dashboard or personalized content } else { authClient.login({ identityProvider: "https://identity.ic0.app/#authorize", onSuccess: () => { // Once authenticated, display personalized features }, }); } } init(); 👉Bejelentkezés után a felhasználó láthatja a felismert arcok előzményeit vagy más személyre szabott adatait. Képfeltöltés fogd és vidd funkcióval Tegye gördülékenyebbé a képfeltöltési funkciót és az élményt azáltal, hogy lehetővé teszi a felhasználók számára, hogy áthúzzák a képeket az arcfelismeréshez. : Hogyan kell hozzáadni 👉Használja a HTML5 fogd és vidd funkcióját: <div id="drop-area"> <p>Drag and drop an image here or click to select</p> <input type="file" id="file-input" hidden /> </div> 👉Adjon hozzá JavaScriptet a fogd és vidd művelet kezeléséhez: const dropArea = document.getElementById("drop-area"); dropArea.addEventListener("dragover", (event) => { event.preventDefault(); }); dropArea.addEventListener("drop", (event) => { event.preventDefault(); const files = event.dataTransfer.files; // Process the uploaded image }); 👉Győződjön meg arról, hogy zökkenőmentesen integrálható a meglévő arcfelismerő funkciójával. Folyamat sáv az arcfelismeréshez Lebilincselő funkció lesz a folyamatjelző sáv megjelenítése egy kép feltöltésekor, amely tájékoztatja a felhasználókat arról, hogy a rendszer feldolgozza a képet. Hozzáadás módja: 👉Használjon egyszerű HTML folyamatjelző sávot: <div id="progress-bar"> <div id="progress-fill" style="width: 0%;"></div> </div> 👉A folyamatjelző sáv dinamikus frissítése a kép feldolgozása közben: const progressFill = document.getElementById("progress-fill"); let progress = 0; const interval = setInterval(() => { progress += 10; progressFill.style.width = `${progress}%`; if (progress === 100) { clearInterval(interval); } }, 100); // Simulate progress every 100ms Értesítések az arcfelismerési eredményekről Hozzáadhat egy funkciót, amellyel valós idejű értesítéseket küldhet, ha az arcfelismerés befejeződött, akár modális, akár pirítós értesítésen keresztül. : Hogyan kell hozzáadni 👉Használhat olyan könnyű könyvtárat, mint , vagy egyéni pirítósértesítéseket. a Toastr <div id="notification" class="hidden">Face Recognition Complete!</div> 👉A JavaScriptben jelenítse meg az értesítést, amikor a háttérprogram visszaadja az eredményt: function showNotification(message) { const notification = document.getElementById("notification"); notification.innerHTML = message; notification.classList.remove("hidden"); setTimeout(() => { notification.classList.add("hidden"); }, 3000); // Hide notification after 3 seconds } // Call this after face recognition is done showNotification("Face detected and recognized!"); 📥Utolsó lépések: Újraépítés és üzembe helyezés Az új funkciók bevezetése után: 👉A projekt újjáépítése: dfx build 👉 Telepítés a testnetre: először tesztelni kell, mielőtt a mainnetre rohanna. dfx deploy --network ic Íme néhány példa és ötlet demonstrációs célokra. Tesztelheti őket egyedül, és tudassa velünk a fejlődést a megjegyzés részben. Ezenkívül többet is tehet vele az AI decentralizálása az ICP-n. Következtetés: Sikeresen teszteltük az arcfelismerő DApp-t ICP-n, amely valódi kísérlet az AI (DeAI) decentralizálására. Tesztelésünk szerint a DApp válaszai gyorsak voltak, és az arcok észlelése pontos volt. Az ICP egyedülálló infrastruktúrája segíthet komplex feladatok elvégzésében, például arcfelismerésben anélkül, hogy központi rendszerekre támaszkodnánk. Nemcsak a biztonságot és a magánélet védelmét javítja, hanem a decentralizált AI (DeAI) alkalmazások gyors fejlődésének lehetőségét is mutatja. Ahogy az ICP folyamatosan fejlődik, a nagy modellek telepítésének és a láncon belüli mesterséges intelligencia-következtetésnek a képessége új lehetőségeket nyithat meg az innováció előtt. Arra számíthatunk, hogy a decentralizált AI kulcsszerepet játszik a megbízható és méretezhető megoldások jövőjében. A fejlesztők új lehetőségeket is kínálnak arra, hogy több terméket és szolgáltatást hozzanak létre az ICP-n.