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 arcfelismerő DApp 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.
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:
Operációs rendszer : Windows telepített Windows alrendszerrel Linuxhoz (WSL). Kérjük, olvassa el ezt az útmutatót a telepítéshez.
Tudás :
A JavaScript , a React.js , a Rust és a WebAssembly alapvető ismerete.
Webfejlesztési koncepciók ismerete.
Eszközök :
📥A fejlesztői környezet beállítása:
sh -ci "$(curl -fsSL https://smartcontracts.org/install.sh)"
👉 A telepítés megerősítéséhez:
dfx –version
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
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
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 itt tudod ellenőrizni.
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
Megjegyzés: A Linux alrendszer fájljaihoz úgy érheti el, hogy \\wsl$
kifejezésre keres a Fájlkezelőben vagy a Windows operációs rendszer közvetlen keresési funkciójában.
📥Töltsön le modelleket az arcfelismeréshez
Az arcfelismerő modell az arcok felismerésére szolgál a képen. Fut:
./download-face-detection-model.sh
A modellt ONNX formátumba kell exportálnia PyTorch
és facenet-pytorch
segítségével. Kezdje az alábbi Python-könyvtárak telepítésével:
pip install torch facenet-pytorch onnx
Megjegyzés: 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: https://packaging.python.org/en/latest/tutorials/installing-packages/ .
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 face-recognition.onnx
fájl. Másolja a tárhely gyökerébe.
📥 É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.
Megjegyzés: Ha valamilyen hibába ütközik az ügyfél hiánya miatt, próbálja meg globálisan telepíteni webpack
és webpack-cli
az npm használatával:
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 upload-models-to-canister.sh
parancsfájlt ./upload-models-to-canister.sh
futtatásával a terminálon a modellek feltöltéséhez. Ez a szkript a következő lépéseket hajtja végre:
dfx canister call backend clear_face_detection_model_bytes dfx canister call backend clear_face_recognition_model_bytes
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
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 dfx deploy
parancsot adta ki (1. ábra).
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 „ Személy hozzáadása ” gombra kattintva a modell betanításához.
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 „ Felismerés ” lehetőségre. Lássuk csak; sikeresen azonosította Nikola Tesla arcát az eredetihez képest kis eltéréssel.
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:
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.
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.
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
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 a Toastr , vagy egyéni pirítósértesítéseket.
<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.
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.