この記事は WebAssembly Advent Calendar 2023 16日目の記事です。 はじめに 先日、次のブログでWasmEdgeを使ってLLMを動かすことができることを知りました。 以前RustでWasm Runtimeを実装した身として、どのような仕組みで動いているのか気になって調べたので、その仕組について解説してきます。 前提知識について 解説するまえに、いくつかの前提知識について解説していきます。 Wasmでの関数呼び出し Wasmではモジュール内に定義した関数を呼ぶことはもちろんできますが、モジュール外部の関数をimportして呼び出すこともできます。 たとえば、次のWATはcalcというモジュールからdoubleという関数をimportして使うことができます。 (module (import "calc" "double" ;; importするモジュールと関数