top of page
スクリーンショット 2024-01-25 15.42.00.png
検索

MacStudio 512GBでLlama4 MLXを動かす

  • 執筆者の写真: Ryo Shimizu
    Ryo Shimizu
  • 4月8日
  • 読了時間: 4分

MacStudio 512GBでLlama4を動かすMLXが出ていたので試してみました。

しかし、色々ハマりどころがあるので、いますぐ試してみたい人向けです。





ちなみに環境としてはPython3.12で、Anaconda。mlxのパッケージはこんな感じ


% pip list|grep mlx
mlx                                      0.24.2
mlx-lm                                   0.22.4   
mlx-vlm                                  0.1.21
mlx-whisper                              0.4.2

まず、このプルリクを反映させなくてはなりません。


そこで、一旦はMLX-LMをgit cloneしてプルリクを取得するところからやります。


% git clone https://github.com/ml-explore/mlx-lm.git
% cd mlx-lm
% git fetch origin pull/74/head:pr74
% git checkout pr74
% pip install -e .

これでllama4に対応したMLX-LMをインストールできました。

使い方としては以下のようになります。


% python -m mlx_lm.generate --model mlx-community/meta-llama-Llama-4-Scout-17B-16E-Instruct-bf16 --max-tokens 10000 --prompt "日本の戦国時代の有名武将をJSON形式でくれ" 
<frozen runpy>:128: RuntimeWarning: 'mlx_lm.generate' found in sys.modules after import of package 'mlx_lm', but prior to execution of 'mlx_lm.generate'; this may result in unpredictable behaviour
Calling `python -m mlx_lm.generate...` directly is deprecated. Use `mlx_lm.generate...` or `python -m mlx_lm generate ...` instead.
Fetching 58 files: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 58/58 [00:00<00:00, 7728.24it/s]
==========
以下は、戦国時代の日本人武将20人をJSON形式で表したものだ。

```json
[
  {
    "名前": "織田信長",
    "生年月日": "1534-06-23",
    "没年月日": "1582-04-21",
    "出身<|header_start|>assistantassistantassistant

続きは以下の通り<|header_start|>assistantassistant

通り<|header_start|>assistant

```json
[
  {
    "名前": "織田信長",
    "生年月日": "1534-06-23",
    "没年月日": "1582-04-21",
    "主な実績": ["桶狭<|header_start|>assistantassistant

以下に20人の武将を記載<|header_start|>assistant

```json
[
  {
    "名前": "織田信長",
    "生年月日": "1534-06-23",
    "没年月日": "1582-04-21",
    "主な実績": ["桶狭<|header_start|>assistant

[
  {
    "名前": "織田信長",
    "生年月日": "1534-06-23",
    "没年月日": "1582-04-21",
    "主な実績": ["桶川の戦い", "長篠の戦い"]
  },
  {
    "名前": "豊臣秀吉",
    "生年月日": "1536-03-17",
    "没年月日": "1598-09-18",
    "主な実績": ["小田原征伐", "関ヶ原の戦い"]
  },
  {
    "名前": "徳川家康",
    "生年月日": "1543-09-15",
    "没年月日": "1603-03-24",
    "主な実績": ["関ヶ原の戦い", "江戸幕府の設立<|header_start|>assistantassistant

[
  {
    "名前": "織田信長",
    "生年月日": "1534-06-23",
    "没年月日": "1582-04-21",
    "主な実績": ["桶川の戦い", "長篠の戦い"]
  },
  {
    "名前": "豊臣秀吉",
    "生年月日": "1536-03-17",
    "没年月日": "1598-09-18",
    "主な実績": ["小田原征伐", "関ヶ原の戦い"]
  },
  {
    "名前": "徳川家康",
    "生年月日": "1543-09-15",
    "没年月日": "1603-03-24",
    "主な実績": ["関ヶ原の戦い", "江戸幕府の開設"]
  },
  {
    "名前": "武田信玄",
    "生年月日": "1521-05-16",
    "没年月日": "1573-05-25",
    "主な実績": ["川中島の戦い", "長篠の戦い"]
  },
  {
    "名前": "上杉謙信",
    "生年月日": "1530-02-10",
    "没年月日": "1578-01-01",
    "主な実績": ["川中島の戦い", "小田原征伐"]
  },
  {
    "名前": "北条氏政",
    "生年月日": "1538-02-04",
    "没年月日": "1590-10-19",
    "主な実績": ["小田原征伐", "関ヶ原の戦い"]
  },
  {
    "名前": "石田三成",
    "生年月日": "1560-01-01",
    "没年月日": "1600-10-01",
    "主な実績": ["関ヶ原の戦い"]
  },
  {
    "名前": "加藤清正",
    "生年月日": "1563-04-14",
    "没年月日": "1611-08-02",
    "主な実績": ["小田原征伐", "関ヶ原の戦い"]
  },
  {
    "名前": "福島正則",
    "生年月日": "1565-01-01",
    "没年月日": "1610-01-01",
    "主な実績": ["小田原征伐", "関ヶ原の戦い"]
  },
  {
    "名前": "細川ガラシャ",
    "生年月日": "1568-05-19",
    "没年月日": "1603-01-25",
    "主な実績": ["小田原征伐"]
  },
  {
    "名前": "明智光秀",
    "生年月日": "1528-04-02",
    "没年月日": "1582-07-21",
    "主な実績": ["本能寺の変"]
  },
  {
    "名前": "山崎片家",
    "生年月日": "1530-01-01",
    "没年月日": "1573-01-01",
    "主な実績": ["山崎の戦い"]
  },
  {
    "名前": "黒田官兵衛",
    "生年月日": "1528-01-01",
    "没年月日": "1601-04-04",
    "主な実績": ["小田原征伐", "関ヶ原の戦い"]
  },
  {
    "名前": "大谷吉継",
    "生年月日": "1553-01-01",
    "没年月日": "1600-10-01",
    "主な実績": ["関ヶ原の戦い"]
  },
  {
    "名前": "小早川隆景",
    "生年月日": "1539-01-01",
    "没年月日": "1571-01-01",
    "主な実績": ["毛利氏の四国征伐"]
  },
  {
    "名前": "毛利元就",
    "生年月日": "1496-04-16",
    "没年月日": "1571-07-06",
    "主な実績": ["毛利氏の中国征伐"]
  },
  {
    "名前": "今川義元",
    "生年月日": "1514-01-01",
    "没年月日": "1560-05-19",
    "主な実績": ["桶川の戦い"]
  },
  {
    "名前": "斎藤道三",
    "生年月日": "1496-01-01",
    "没年月日": "1551-05-28",
    "主な実績": ["美濃の戦い"]
  },
  {
    "名前": "本願寺顕如",
    "生年月日": "1519-03-09",
    "没年月日": "1582-10-04",
    "主な実績": ["一向一揆"]
  },
  {
    "名前": "足利義昭",
    "生年月日": "1533-12-24",
    "没年月日": "1596-09-10",
    "主な実績": ["室町幕府の再興"]
  }
]
```
==========
Prompt: 24 tokens, 52.665 tokens-per-sec
Generation: 1594 tokens, 17.947 tokens-per-sec
Peak memory: 215.917 GB

多少の重複や混乱があるのが気になりますが、これはLlama4の今公開されているモデルが実はそんなに賢く無いのでは無いかという噂と符合します。


感覚としては、これに比べるとDeepSeek-V3-0324はもっとずっと賢いです。

ただし、生成スピードはアクティブパラメータが少ないLlama4-Scoutに軍配が上がりそうです。



 
 
bottom of page