脱クラウド!Nexa AI SDKを使ってローカル環境でLlama 3やGemmaを動かそう
ドラえもん「もう、のび太くんたら。そんなこともあろうかと……『NexaAI/nexa-sdk』〜!!(チャラララッチャラー)」
のび太「なにこれ?四次元ポケットの最新道具?」
ドラえもん「これはね、『ローカル環境』で最新のAIをサクサク動かすための魔法の道具だよ。普通、AIを動かすには高価なサーバーが必要だけど、これを使えば君のPCの GPU(画像処理) や NPU(AI専用チップ)、さらには普通の CPU までフル活用して、爆速でAIが動くんだ。」
ハードウェアを使い倒す
NVIDIAのGPUはもちろん、Apple SiliconのMLXや、最新PCに載っているNPUにも対応。
最新モデルがすぐ動く
Llama 3、Gemma 3、Qwen、さらに画像とテキストを理解するVLM(マルチモーダル)まで対応してるんだ。
OpenAI互換
APIの形がOpenAIと同じだから、既存のプログラムを少し書き換えるだけでローカルAIに差し替えられるよ。
のび太「でも、インストールが大変なんでしょ?」
ドラえもん「そんなことないよ。まずはPythonがあれば一瞬さ!」
ターミナルを開いて、この呪文を唱えるだけ!
pip install nexa-sdk
例えば、最新の軽量モデルを動かしたいときはこうだ!
nexa run llama3.2
これだけで、君のPCの中でAIとの内緒話が始められるんだよ。
のび太「僕は将来エンジニアになって、Go言語でかっこいいアプリを作りたいんだ。どうやって使うの?」
ドラえもん「おっ、意気込みはいいね! nexa serve でローカルサーバーを立てておけば、Goの標準的なHTTPクライアントやOpenAI用ライブラリから簡単に呼び出せるよ。」
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
// Nexa SDKがローカルで立てたサーバーのURL
url := "http://localhost:8000/v1/chat/completions"
// 送るデータ(OpenAI形式と同じ!)
payload := map[string]interface{}{
"model": "llama3",
"messages": []map[string]string{
{"role": "user", "content": "ドラえもんの道具で一番便利なのは?"},
},
}
jsonData, _ := json.Marshal(payload)
resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
if err != nil {
fmt.Println("エラーだよ:", err)
return
}
defer resp.Body.Close()
fmt.Println("AIからの回答が届いたよ!")
}
のび太「なるほど!これがあれば、インターネットがなくても、僕のパソコンがスーパーコンピュータになるんだね!」
ドラえもん「そうだよ!エンジニアにとっては、こんなメリットがあるんだ。」
プライバシー
データが外に出ないから、秘密のコードも書き放題!
コストゼロ
クラウドの従量課金におびえなくて済むよ。
モバイル対応
AndroidやiOSでも動くから、スマホアプリにAIを組み込むのも夢じゃない!
のび太「よし、僕もこれで宿題を自動化するアプリを作るぞ〜!」 ドラえもん「……結局そこに行き着くんだね(苦笑)」
次は、特定のモデル(例えば画像認識のQwen-VLなど)をGoから呼び出す具体的な構成について、もっと詳しく調べてみようか?