Slide 1

Slide 1 text

ELYA-japanese-Llama-2-7bを Rust(WASM)で動かしてみた。 生成AI新年会2024@GMO Yours・フクラス 2024/01/30 #生成AI新年会 1

Slide 2

Slide 2 text

About us Soushi Hiruta 2 https://www.totalsolution.biz/ X(twitter) web_se Bluesky clouddevcode.bsky.social github clouddev-code Zenn clouddevcode コンテナを中心にマイクロサービス基盤の構築、運用を行いつつ、 GenAIのキャッチアップを行っています。 Container、eBPF、GenAI

Slide 3

Slide 3 text

Zennにも検証したことをアップしています 3

Slide 4

Slide 4 text

Agenda ▸ LLMはGPUなどのComputeリソースを消費する ▸ WASM Runtimeのパフォーマンス ▹ Java等との違い ▹ 初期化プロセスとの違い ▸ WasmEdgeについて ▸ WASM-NN plugin ▸ ELYZA-japanese-Llhma-2-7b Model ▸ 上記モデルをRustで動かす点の注意点 ▸ デモ ▸ まとめ ▸ Q&A 4

Slide 5

Slide 5 text

5 LLMはComputeリソースを消費する https://xtech.nikkei.com/atcl/nxt/column/18/00989/091300127/

Slide 6

Slide 6 text

Python performance 6 There’s plenty of room at the Top: What will drive computer performance after Moore’s law? https://www.science.org/doi/10.1126/science.aam9744

Slide 7

Slide 7 text

java, Python との違い 7 ● Ahead-of-Time (AOT)は、実行前にバイトコードをマシンコードに変換 して最適化する ● Java は実行中にコンパイルされる。一度しか利用されないケースと かには向かない 対比されるものとしてDocker Engineはどうか

Slide 8

Slide 8 text

Docker Engineの初期化プロセス 8 ● コントロールグループ (cgroup) ● Rootfsのセットアップ これを終わらせたあとでないとアプリケーションを実行する ことができない

Slide 9

Slide 9 text

Performance advantages of WASM 9

Slide 10

Slide 10 text

初期化プロセス 10 ● WASM Runtimeは主にアプリケーションバイナリを実行し、不要なファ イルシステム全体をマウントすることを回避する

Slide 11

Slide 11 text

11 WasmEdge Bring the cloud-native and serverless application paradigms to Edge Computing ● High performance ● WASI-like Extensions ● JavaScript Support ● Cloud Native Management Orchestration ● Cross-platform Support ● Eas Extensibility ● Easy to Embed into a Host Application

Slide 12

Slide 12 text

12 WasmEdge https://www.youtube.com/watch?v=BIgVM18UVIE

Slide 13

Slide 13 text

WASM-NN plugin 13 WasmEdge runtimes supports open-source LLMs through its GGML plugin

Slide 14

Slide 14 text

ELYZA-japanese-Llama-2-7b 14 GPT-3.5 (text-davinci-003)に匹敵、日本語の公開モデル野中では最高 水準 約180億トークンの日本語テキストを追加 OSCARやWikipedia等に含まれる日本語テキストデータ

Slide 15

Slide 15 text

wasmedgeを動かすまでのポイント 15 https://github.com/second-state/LlamaEdge/blob/main/models.md ● llama-api-server.wasmは最新のものを利用 ○ 1/4にggmal pluginがリリースされている ● メモリ8G程度だと、—ctx-size オプション必須

Slide 16

Slide 16 text

デモ 16

Slide 17

Slide 17 text

まとめ 17 ● WASMはDocker Engineと比較してもオーバーヘッドが少ない ● GGMAL pluginは使って、OSS LLMなOpenAI ChatCompletion 互換なAPIを 構築できる ● LlamaEdge 0.2.9が4h前にリリース(Phi-2などに対応)されるなど、アップ デートも活発です

Slide 18

Slide 18 text

Appendix 18 ● WasmEdgeRuntime https://wasmedge.org/ ● WasmEdge Provides a Better Way to Run LLMs on the Edge https://www.secondstate.io/articles/wasmedge-ggml-plugin/ ● WASM Runtimes vs. Containers: Cold Start Deplays (Part 1) https://levelup.gitconnected.com/wasm-runtimes-vs-containers-per formance-evaluation-part-1-454cada7da0b ● Metaの「Llama 2」をベースとした商用利用な日本語LLMを公開しまし た。 https://note.com/elyza/n/na405acaca130 ● GGUF Models ● https://github.com/second-state/LlamaEdge/blob/main/models.md ● ELYZA-japanese-Llama-2-7bをM1 Mac上でRustで動かす