タグ

wasmに関するsh19910711のブックマーク (99)

  • [Rust] ortでonnxモデルを使って推論したりWASMにしたりしてみる | DevelopersIO

    Introduction 以前、BurnというRust機械学習フレームワークで ONNXファイルを変換して使うという記事を書きました。 問題なく変換して推論までできましたが、onnxファイルをそのまま使いたいケースもあります。 というわけで、今回はONNX RuntimeのRustラッパー「ort」を使ってみます。 また、wasmpackを使ってWASMにしてChrome Extensionから使ってみます。 [補足] ONNX? ONNXは、さまざまな機械学習フレームワーク間で使用できる共通フォーマットです。 これを使うことにより、PytorchでトレーニングしたモデルをTensorFlowで使う みたいなことが容易にできます。 ort? ortは、ONNXランタイム用のRustバインディングです。 ここで紹介されていますが、ortとONNX Runtimeを併用することで、 さまざま

    [Rust] ortでonnxモデルを使って推論したりWASMにしたりしてみる | DevelopersIO
    sh19910711
    sh19910711 2024/06/07
    "ort: ONNXランタイム用のRustバインディング / GenAIで「フリーハンドでキャンバスに数値書いてjpgにして、そのデータをwasmに渡すChrome Extension作って」と言ったらほとんど生成してくれます"
  • ruby.wasm 最前線 2024 - wasmでMockServerをつくる #rubykaigi

    After RubyKaigi 2024の登壇資料です。 https://findy.connpass.com/event/315981/ RubyKaigi 2024 のruby.wasm関連セッションの紹介と、 発表内容を活かして作ってみたMockServerの解説をしています。 Demoはこちら: https://ruby-wasm-oas-mock.lnilab.net/boot.html #rubykaigi #kaigieffect 参考資料:

    ruby.wasm 最前線 2024 - wasmでMockServerをつくる #rubykaigi
    sh19910711
    sh19910711 2024/06/02
    "RubyGems対応: Pure Rubyなgemはビルド時にインストール可能に (Pre-installation) / Mastodonがブラウザー内で動く + Service Worker内でRailsその他諸々を動かす / Rubyで作るフロントエンドフレームワークについての話"
  • WebAssemblyコンポーネントモデルを調べる

    Rustの相互運用ABI(interoperable_abi)の提案 について調べるはずが、いつのまにかWebAssembly Interface Types (WIT) について調べていたのでとりあえずまとめておきます。 2023/2/11現在Interface Typesの提案はWebAssembly component modelに統合されています。 WebAssemblyコンポーネントを使うとき このプロジェクトで目標としているユースケースにはサーバーレス等のいくつかの場合があがっていますが、今回はCPythonからwasmのコンポーネントを読み込んでその中にある実装を利用するケースを考えましょう。これはCPythonにとっては共有ライブラリを読み込んでその中の関数を呼び出しているのと似ています。これを実現するためにコンポーネントモデルはwasmのコア言語の上に インターフェース定

    WebAssemblyコンポーネントモデルを調べる
    sh19910711
    sh19910711 2024/05/23
    "Rustの相互運用ABI(interoperable_abi)の提案について調べるはずが、いつのまにかWebAssembly Interface Types (WIT)について調べていた / IDL: データ構造を記述 + バイナリフォーマットでそれをwasmの線形メモリ上にどう保持するか" 2023
  • Yewを使ってRustでフロントエンド入門してみた - Qiita

    概要 最近趣味Rustをやっています。 そのなかで、WASM(WebAssembly)の技術を使ってRustフロントエンド開発が行えると知ったので少し試しました。 今回はYewというフレームワークのチュートリアルを参考に、環境の立ち上げから簡単なカウンターボタンを表示するところまでやってみます。 執筆者について 普段はGoでバックエンド開発をしています。 フロントエンドはたまにAngularをやる程度であまり詳しくありません。 むしろ、昔ながらのPHPのテンプレートエンジンとjQueryをつかった開発の方が長いです。 Rustについても経験浅なので不正確な記述などあればご指摘ください。 なぜブラウザでRustが動かせるのか WebAssemblyのおかげ https://webassembly.org/ 当初はWebブラウザ上でJavaScriptで行うには負荷が高い処理を高速で実行さ

    Yewを使ってRustでフロントエンド入門してみた - Qiita
    sh19910711
    sh19910711 2024/05/21
    "trunk: RustでWebAssemblyアプリケーションを作るときに利用するビルドツール + ローカルサーバーもついてて便利、ホットリロードもしてくれます / コンパイラの親切さはYewを使っていても健在" 2023
  • Web ブラウザ上で Wasmを使ってOpen Policy Agent (OPA) を実行 - Qiita

    はじめに 汎用ポリシーエンジンである Open Policy Agent では、WebAssembly 形式でポリシーを配布可能です。記事では、WebAssembly 形式で出力された Open Policy Agent のポリシーを Web ブラウザで評価することを試してみた内容を紹介します。 Open Policy Agent とは Open Policy Agent (OPA) は OSS の軽量で汎用的なポリシーエンジンです。開発時や運用時におけるルール(ポリシー)を事前に定義することで、ポリシーに反する情報を検出できます。OPA はポリシーを定義するための宣言型言語 Rego と、ポリシー評価のためのシンプルな API を提供しています。 WebAssembly とは WebAssembly とは、 Web ブラウザ上で実行可能なバイナリコードの仕様です。C/C++, Rust

    Web ブラウザ上で Wasmを使ってOpen Policy Agent (OPA) を実行 - Qiita
    sh19910711
    sh19910711 2024/05/08
    "OPA; Open Policy Agent: 開発時や運用時におけるルールを事前に定義 + ポリシーを WebAssembly 形式で出力する機能があり + さまざまなプラットフォーム上で OPA のポリシーを評価できる" 2021
  • Proxy-Wasm: エッジでのWasm研究開発最先端

    @ Infra Study Meetup #8 「インフラと研究開発」 https://forkwell.connpass.com/event/193256/

    Proxy-Wasm: エッジでのWasm研究開発最先端
    sh19910711
    sh19910711 2024/05/06
    "Wasm = ブラウザと言う時代は終わり + VMとして優秀&コンパイラ基盤->ブラウザの外でも使いたい / Proxy-Wasm: WasmのVMをEnvoyの中で動かしてWasmのプログラムで拡張 + Envoy/Wasm VM間のABIだけ決めれば任意の言語で拡張できる" 2020
  • moonbit で json パーサーを書いてみた 感想

    エアプにならないために、実際に moonbit を使ってコードを書いてみた感想を書く。 JSON Parser を書いた パッケージレジストリである https://mooncakes.io を見た限り、使いやすい json parser がなさそうなので、とりあえず自分用のをでっち上げた。 mooncakes.io に publish してあるので、 moon add mizchi/json で使える。品質が良くなくても ネームスペース付きで publish するので別に邪魔にならない気がした。 なんで作ったかというと、公式 example の cloudflare workers の example は単純なフィボナッチを計算するだけで、構造的なデータを返すことができない。 moonbit と js 間の文字列の受け渡しについては、あとで別の記事を書く。 使い方 fn main { l

    moonbit で json パーサーを書いてみた 感想
    sh19910711
    sh19910711 2024/04/21
    "Moonbit: TypeScript を Rust の文法で書いてる感覚 + moon test が十分使いやすい / Copliot: usage.mbt として vscode にピン留め + copilot は補完に開いているファイルをみる + Rust との差分を教えている"
  • LiLM 小規模言語モデル TinyLlama 1.1B の日本語追加事前学習(incremental pretrain) を試したメモ

    背景 日語性能のよい軽量 LLM, LiLM, Lightweight Language Model ほしい... スマホで動かしたり, ブラウザで動かしたり... ドメインは知識応答系. Code 生成とか数学とかのドメインは今は考えない. Chinese LLaMa https://zenn.dev/syoyo/scraps/6c3e92402e6fd0 でいい感じに incremental pretrain(追加事前学習) するといけるっぽいことがわかった! ん-, でも 7B or 14 B 規模で試して当にうまくいくのかわからん... (後日 たぶん似たような方法で rinna ちゃんが Youri 7B, ELYZA ちゃんが Japanese LLaMa 7B 出してきた! それなりにいい感じになったようだよ) あと 7B だとやっぱりまだちょっと大きい. 量子化してギリ

    LiLM 小規模言語モデル TinyLlama 1.1B の日本語追加事前学習(incremental pretrain) を試したメモ
    sh19910711
    sh19910711 2024/04/20
    "追加事前学習: CPU mem は 160 GB くらい + 192 GB or 256 GB あると安心 + 学習は 225 W に powerlimit した 3090 x 2 でおよそ 100 日 / WASM でブラウザ動作デモできるようにやっぱりどこかの時点で公開するかも" 2023
  • Pyodideは今どれくらいできるのか - Qiita

    Pyodide Pyodideは、CPythonWebAssembly/Emscriptenに移植したものです。ブラウザ向けのPythonランタイムとも言えます。 2019年にMozillaが発表し、2021年に独立したプロジェクトになりました。 発音 https://github.com/pyodide/pyodide/discussions/1954 https://www.youtube.com/watch?v=iUqVgykaF-k 以上を参考にカタカナにすると「パイアダイド」? Pyodideを使う目的 RustGoなどソースコードをコンパイルしてWebAssemblyバイナリを生成するものは高いパフォーマンスが期待できます。 一方でPyodideはコンパイルをせず実行環境をWebAssemblyに持ってきている方式なので、パフォーマンス面の恩恵は大きくないと思われます。Py

    Pyodideは今どれくらいできるのか - Qiita
    sh19910711
    sh19910711 2024/04/03
    "Pyodide: ブラウザ向けのPythonランタイム + CPythonをWebAssembly/Emscriptenに移植したもの / pandas, numpy, scikit-learnのパッケージはmicropip.install()で追加でき / Pyodideでビルドされたwheelか、pure Pythonで書かれたwheelしか読み込めません"
  • BigQuery Emulator をアップデートしました - Route54

    BigQuery Emulator の v0.6.0 をリリースしました。 今回のリリースでは、Recidiviz社 の @ohaibbq さんが多大な貢献をしてくださいました。Recidiviz社ではかなり前から BigQuery Emulator を使ってくれているようで、以前から Issue や DM などでそのことを伝えてくれていましたが、@ohaibbq さんが今Qエミュレータの改善にコミットできるということで、 Recidiviz社側で fork して使っていたものに加えていた patch をたくさん送ってくれました。 かなり多くの改善が入っているので、以前エミュレータを試して動かなかったクエリを再度試す良い機会かなと思っています。 @ohaibbq さんからは、嬉しいことに今後も貢献してくださると言っていただけているので、今後の改善も速いペースで進んでいくと思います。素晴らし

    BigQuery Emulator をアップデートしました - Route54
    sh19910711
    sh19910711 2024/03/12
    "BigQuery: Google はエミュレータの開発に4年前くらいにやる気は見せていますが、その後何もアクションをとっていません / go-zetasql の cgo 依存をやめて、WebAssembly ベースのバインディングに移行しようとしています"
  • [WASM] CheerpJ 3.0を使ってブラウザでJavaアプリを動かす [アプレット] | DevelopersIO

    Introduction つい先日、CheerpjJ 3.0というブラウザでJavaアプリを実行可能にする コンパイラ/ランタイムがリリースされました。 これを使えば古のアプレットやSwingで作ったJavaアプリケーションが 最新ブラウザでpluginなしで動きます。 また、ライブラリ用のjarファイルもそのまま動かすことができるので、 稿ではJavaライブラリをブラウザ上で使ってみます。 CheerpjJ 3.0? こことかで紹介されてますが、CheerpjJ 3.0について簡単に解説します。 CheerpJ 3.0は、Leaning Technologiesによって開発された、 ブラウザで動作するWASMベースのJavaランタイムです。 JavaバイトコードをJavascriptにJIT compileして実行できます。 何かを追加でインストールしたりする必要はありません。 現在は

    [WASM] CheerpJ 3.0を使ってブラウザでJavaアプリを動かす [アプレット] | DevelopersIO
    sh19910711
    sh19910711 2024/02/09
    便利そう👀 / "CheerpjJ 3.0: ブラウザで動作するWASMベースのJavaランタイム / 昔のJavaコードがそのままブラウザで動く / Java8が動くので昔つくったアプレットも動く / ライブラリ用のjarファイルもそのまま動かすことができる"
  • ヒューリスティックコンテストでビジュアライザを開発する方法に関するメモ - yunix_kyopro’s blog

    はじめに AtCoderなどの競技プログラミングのコンテストに参加しているyunixです。 来年に開催されるマスターズ選手権、楽しみですね。マスターズ選手権は28歳以上の2~3人の団体戦で、時間が6時間のヒューリスティックコンテストになるそうです。 このコンテストの大きな特徴の一つはビジュアライザが提供されないことが明言されていることです。 ヒューリスティックコンテストではビジュアライザを使用して考察することがとても大事なステップになります。 従って、参加者自身でビジュアライザを開発することになると思うのですが、ビジュアライザの開発の準備をしていなければ 開発に時間がかかってしまう 使用感や機能がいまいち などの点で辛い戦いになってしまいそうです。 そこで、 いつものAHCと同じような使用感でビジュアライザを使える コンテストの問題に合わせて最低限のところだけを編集すれば使えるようになる

    ヒューリスティックコンテストでビジュアライザを開発する方法に関するメモ - yunix_kyopro’s blog
    sh19910711
    sh19910711 2024/01/23
    "ヒューリスティックコンテストではビジュアライザを使用して考察することがとても大事 / ビジュアライザ筋トレ: ビジュアライザを短期間のコンテストで開発するとなると、相応に準備と練習をしておいた方が良い" / 2023
  • ruby.wasm で await を使う - tmtms のメモ

    最近はずっと ruby.wasm で遊んでます。 2023/5/19 に ruby.wasm 2.0 が出ました。 ruby.wasm 1.0 では await がうまく動かないことがあったけど、2.0 でちゃんと動くようになったんで、記念に前の記事以降にやったこと等をまとめてみた。 await ruby.wasm で await を使うには2つ問題がある。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある。 スタックサイズが小さくてすぐに SystemStackError エラーが出てしまう。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある HTML 内で <script type="text/ruby"> で気軽に Ruby スクリプトを書いたときに await を使うとエラーになってしまう。(ruby.wasm

    ruby.wasm で await を使う - tmtms のメモ
    sh19910711
    sh19910711 2023/07/21
    "ruby.wasm 1.0 では await がうまく動かないことがあったけど、2.0 でちゃんと動くように / JavaScript の値は Ruby からは JS::Object として見える / 値の型に応じて JS::Object#to_i や JS::Object#to_s みたいにして使うことになる"
  • Cloud Native Wasm Day EU 2023 参加レポート - Qiita

    はじめに 2023年4月の KubeCon + CloudNativeCon Europe 2023 の Co-Located Events として開催された Cloud Native Wasm Day の参加レポートです。Wasm Day は Cloud Native エコシステム全体で注目度が高まっている WebAssembly にフォーカスしたイベントとなっています。 Welcome + Opening Remarks - Kelsey Hightower, Google Kubernetes をはじめとした Cloud Native コミュニティで著名な Kelsey Hightower さんによるオープニングです。オープニングの冒頭に「Wasm は新しいユニバーサルコンピューターを構築できると思いますか?」と参加者に質問していたのが印象的でした。Kelsey さんは Wasm

    Cloud Native Wasm Day EU 2023 参加レポート - Qiita
    sh19910711
    sh19910711 2023/06/17
    "Docker Desktop 4.15 から Docker+Wasm の機能がベータ版として含まれている / asm.js: 2015年の設計時点で既にユースケースとしてサーバーサイドでの実行が挙げられていた / SQLite を Wasm として動かす際に得た教訓を紹介する LT"
  • RustでWasm Runtimeを実装してみた

    はじめに 最近Wasmの勢いがすごくて、ブラウザでPostgreSQLを動かせたり、DockerWasmを動かせたりできます。 以前からWasm自体に興味があって、動作原理を知りたいと思ってchibiwasmというRuntimeを実装してみました。 Rustを選んだのは、最近Rustを勉強していてそれに慣れるためです。 苦労しましたが、*.wasmがどのようにして実行されるのかを理解できたので良かったです。 今回はWasmのバージョン1の仕様を満たすように実装して、テストスイートは正常系と実行時異常系のテストは通しましたが、バリデーションなどのテストはスキップしています。 また、少しだけバージョン2の命令とWASIを実装していて、RustからビルドしたHello Worldを標準出力するwasmバイナリも動きます。 記事は実装したWasm Runtimeの概要と、実装を通して学んだこと

    RustでWasm Runtimeを実装してみた
    sh19910711
    sh19910711 2023/04/26
    "RustでWasm Runtimeを実装してみた / 関数呼出し周りの実装が一番おもしろかった / スタックはこんな感じで管理すればいいんだなや、フレームはこういうときに必要なんだと腑に落ちました"
  • ruby.wasm で MySQL Parameters を作り直した

    プライベートでは基的に誰の役にも立たないプログラムを作ってるんだけど、たまにうっかり MySQL Parameters みたいな役に立つものを作ってしまう。 MySQL Parameters は5年くらい前に Vue.js の勉強のために作ってみたんだけど、結局そのまま Vue.js は触らず放置状態だった。MySQL の新しいバージョンが出るたびにデータは更新してたけど。 ruby.wasmRubyWebAssembly 上で動くようになり、ブラウザ上で JavaScript の代わりに使えるようになったんで、MySQL Parameters を Ruby で作り直してみた。 ruby.wasm ruby.wasm のページに載ってるけど、これだけでブラウザ上で Ruby が動く。簡単。 <html> <script src="https://cdn.jsdelivr.ne

    ruby.wasm で MySQL Parameters を作り直した
    sh19910711
    sh19910711 2023/02/25
    "Promise も JavaScript オブジェクトなので、Ruby から使うことができる / そのままだと then で Ruby の Object#then が呼ばれちゃうので削除 / 処理に時間が掛かる場合にはイルカをくるくる回す"
  • WebAssembly 版 ImageMagick 〜 magick-wasm の紹介 - Qiita

    はじめに サーバでなくブラウザ側で画像処理が動く WebAssembly 版 ImageMagick 〜 magick-wasm の使い方と 2023年初頭での状況報告です。 https://github.com/dlemstra/magick-wasm magick-wasm 体にまだブラックボックス要素があるので、体自体の解説はせず、今回は、実際に magick-wasm を使う事ができた。でも機能的に物足りなく感じた。それだけの解説エントリです。 4月20日に開発者のアナウンスにて、次リリース(恐らく 0.0.20)から wasm を js ファイルに含めないとの宣言がありました。 https://twitter.com/MagickNET/status/1648982963491618817 この記事で説明した手順では動かせなくなるかもしれません。少なくとも index.mjs

    WebAssembly 版 ImageMagick 〜 magick-wasm の紹介 - Qiita
    sh19910711
    sh19910711 2023/01/20
    "magick-wasm: 入出力できる画像形式は充実している一方、画像処理の対応は控えめ + API はほぼ Magick++ / WebAssembly 版 ImageMagick はずっと前から色んな人が公開しているのですが、いずれもメンテナンスが止まってます"
  • 「The Art of WebAssembly」を読んだ - dackdive's blog

    The Art of WebAssembly: Build Secure, Portable, High-Performance Applications 作者:Battagline, RickNo Starch PressAmazon 読んだので簡単なまとめを。 このについて 前半は WebAssembly の基的なしくみや Node.js・ブラウザで動かす方法、後半はパフォーマンス測定やデバッグ方法について学べる。 また、特定の言語やツールチェイン(たとえば Rust だったら wasm-pack とか)に依存した内容ではなく、WAT と呼ばれる WebAssembly のテキスト表現を書きながら実装する。 構成 ざっくり Chapter ごとにやってることを書く。 Chapter 1: Introduction to WebAssembly WebAssemblyとは何か、その

    「The Art of WebAssembly」を読んだ - dackdive's blog
    sh19910711
    sh19910711 2022/11/10
    2021 / "前半は WebAssembly の基本的なしくみ + 後半はパフォーマンス測定やデバッグ方法について / 特定の言語やツールチェインに依存した内容ではなく、WAT と呼ばれる WebAssembly のテキスト表現を書きながら実装"
  • Postgres WASMを支える技術

    Intro 10月3日にWebAssemblyを用いてWebブラウザにx86の仮想マシンを構成することで、PostgreSQLをWebブラウザ上で実行可能にした「Postgres WASM」がオープンソースで公開されました。 以前から気になっていたSupabaseが公開していたこと、最初にSnapletという企業がOSSで公開しておりそれをフォークして完成させたこと、色々気になることばかりでしたので自分なりに調べて深掘りしてみました。

    Postgres WASMを支える技術
    sh19910711
    sh19910711 2022/11/09
    "Postgres WASM: Supabaseが公開 + 最初にSnapletという企業がOSSで公開 / ファイルシステムやネットワーク関係で非常に開発が難航していたことがブログからも読み取れ / WebAssembly(v86)とBuildroot(i686)があれば何でもできる"
  • Running R and Debian Linux in the Browser Via WASM

    sh19910711
    sh19910711 2022/10/10
    R言語 on wasmにトライしてる人いるっぽい / "georgestagg/webR, an R distribution compiled to WASM that runs completely in the browser. The environment is served from a simple webserver, and requires no installation of R onto a back-end server or onto your own desktop."