Привет, друзья, добро пожаловать в очередной супер интересный блог, в котором представлено еще одно классное приложение на WebAssembly.
Это приложение для распознавания изображений, созданное с использованием языка Go, работает на модели Tensorflow и требует для выполнения Dapr и WasmEdge.
Небольшая справка об этих технологиях:
- Для построения микросервисов Dapr является универсальным фреймворком. Для инициализации Dapr необходимы контейнеры, здесь мы используем Docker.
- WebAssembly VM, например, WasmEdge, обеспечивает безопасную и высокопроизводительную среду выполнения для микросервисов.
- Микросервисы на основе WebAssembly могут быть написаны на нескольких языках программирования, включая Rust, C/C++, Swift и JavaScript.
- Программы WebAssembly встраиваются в приложения Dapr sidecar, поэтому они переносимы и не зависят от окружения хоста Dapr.
- WasmEdge SDK упрощает создание микросервисов для выводов Tensorflow.
- WasmEdge является совместимой с Kubernetes средой исполнения и может сыграть важную роль в качестве легковесной контейнерной альтернативы для запуска микросервисов.
Давайте приступим:
1) Нам нужно установить Go, Docker, Dapr, WasmEdge.
- Go
sudo apt install golang-go
- WasmEdge
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash
- Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
- Dapr
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash
- Инициализировать Dapr
dapr init
- Проверьте свой Docker для верификации
docker ps
2) Создайте каталог, для меня это imgpro_wasm
.
mkdir imgpro_wasm
cd imgpro_wasm/
3) Клонируйте эту git-репо, созданную Second Stage.
git clone https://github.com/second-state/dapr-wasm.git
4) Перейдите в fuctions/classify и создайте функцию классификации
cd functions/classify
./build.sh
5) Запустите веб-сервис для пользовательского GUI:
cd web-port
go build
./run_web.sh
6) Постройте и запустите микросервис для классификации изображений на основе тензорного потока:
cd image-api-go
go build --tags "tensorflow image"
./run_api_go.sh
cd ../
7) Приложение готово к работе
- Откройте браузер по умолчанию и перейдите в него:
http://localhost:8080/static/home.html
Таким образом, модель будет выделять объекты на изображениях, которые будут загружены в приложение.
Wasm – это возможность создавать более эффективные, мощные, быстрые приложения. Ежедневно многие участники делают действительно хороший прогресс. Давайте создавать более интересные и крутые приложения, используя WebAssembly, чтобы сделать это более увлекательным!
Эта ML-модель была создана командой Second State. Ознакомьтесь с их крутыми разработками на github.
Ссылки:
- https://wasmedge.org/book/en/start/install.html
- https://docs.dapr.io/
- https://github.com/second-state/dapr-wasm
- https://www.infoq.com/articles/webassembly-dapr-wasmedge/
- https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04
Оставляйте свои мысли и предложения, связанные с этим блогом, и поделитесь, если вы нашли его полезным.