このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

LLaMAモデル GGMLフォーマット(llama.cpp)をRustフレームワーク Leptosを用いて M1MacMiniでサクッと動かす。

Rust

2024.01.11

この記事は最終更新日から1年以上が経過しています。

どもです。

タイトル悩みました。

今回は、Rustのフルスタックフレームワーク 「Leptos」用いて、Meta社が開発した大規模言語モデル(LLM)LLaMAのGGMLフォーマット(llama.cpp)を、M1 MacMiniのローカル環境で動かそうといったところになります。(長い)

一から作成するわけではなく、既に作成された方がGitHubにアップされていますのでそちらを扱っていこうといった感じになります。

そのレポジトリはこちらになります。

MoonKraken/rusty_llama

なので、比較的サクッと動かせるかなと思います。

 

準備

まずは、準備としてRustのtoolをインストールしていきます。

rustup toolchain install nightly
rustup target add wasm32-unknown-unknown
cargo install trunk cargo-leptos

完了しましたら、レポジトリをgit clone。

git clone git@github.com:MoonKraken/rusty_llama.git

こちらのソースですが、CSSにTailwindCSSを使用していますので、TailwindCSSのnodeモジュールをインストールします。

npm install -D tailwindcss

cssを出力しないといけないので、プロジェクトのルートにて以下のコマンドでcssを出力します。

npx tailwindcss -i ./input.css -o ./style/output.css --watch

 

モデルの準備

使用するモデル、LLaMAのGGMLフォーマット(llama.cpp)をダウンロードします。

今回は、Wizard-Vicuna-7B-Uncensored.ggmlv3.q4_K_S.binを使用しました。

こちらから使用するモデルをダウンロードします。

対象のモデルをダウンロード

 

Leptos側で、モデルのimportが必要となるので「.env」ファイルのMODEL_PATHをダウンロードしたモデルのパスに変更します。該当ファイルはこちら

それでは準備が完了しましたので起動。

 

起動

それでは起動。

cargo leptos watch

http://localhost:3000/ を開いて、プロンプト入力画面が表示したら優勝です。

実行した環境は、M1 MacMiniでしたが、結構サクサクに返信も返ってきて良い感じでした。

日本語もいけそうな様子だったので日本語解説を求めたのですが、当たり前ですが精度は良くない様子でした。

実装方法と共に、コードの解説もyoutubeに上がってはいますが、GitHubにあがっているソースとかなり異なりそのまま作成しても起動しません。解説として見て頂く形が良いかと思います。

比較的サクッと、ローカルPCでLLaMAのGGMLフォーマット(llama.cpp)をLeptosで扱うことができたかと思います。

実は、「Leptos」を扱おうと調べていたらこちらを発見したので試した次第でした。

おかげで、「Leptos」自身の仕様やAPIなどの把握がまだちゃんとできていないです。

これからLeptos扱っていこうと思います。

ではでは。

またまたぁ。

 

 

 

Comment

Related Article

Rustでつくる ふっかつのじゅもん

2025.04.29

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その5

2025.04.14

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その4

2025.04.10

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その3

2025.04.08

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その2

2025.04.07

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その1

2025.04.05

keyring-rsで、Macのキーチェーンに登録する。

2025.04.04

RustとWebAssemblyによるゲーム開発 Webpack5対応

2025.03.27

Rustで創る MOS 6502 CPU その3 (Cursorと共に)

2025.02.24

Rust-SDL2 examplesをすべて試す

2024.09.01

CATEGORY LIST

LATEST NEWS

Rustでつくる ふっかつのじゅもん

Rust

2025.04.29

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その5

Rust

2025.04.14

う、動くぞ! Mac mini Apple M4 Pro で PS3ソフトを遊ぶ。RPCS3 Mac版を起動

Game

2025.04.12

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その4

Rust

2025.04.10

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その3

Rust

2025.04.08

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その2

Rust

2025.04.07

時代を先取りし過ぎた ニューラルネットワークが導入されたゲーム『がんばれ森川君2号』を令和に嗜んでみる。

Game

2025.04.06

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その1

Rust

2025.04.05

keyring-rsで、Macのキーチェーンに登録する。

Rust

2025.04.04

RustとWebAssemblyによるゲーム開発 Webpack5対応

Rust

2025.03.27

Rustで創る MOS 6502 CPU その3 (Cursorと共に)

Rust

2025.02.24

あけましておめでとうございます(24日経過)

イベント

2025.01.24

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US