以下の内容はhttps://touch-sp.hateblo.jp/entry/2026/02/25/212718より取得しました。


【Arc B580】VRAM 12GBで問題なく動作する軽量かつ高性能なNanbeige4.1-3Bを使ってみる。

はじめに

Nanbeige4.1-3Bはわずか3Bと小型ながら、Qwen3-32Bなどをベンチマークで上回っていると謳われています。


公式のHuggingFaceから図をお借りして載せておきます。

PC環境

Ubuntu 25.10

Python環境構築

uvを使っています。pyproject.tomlを載せておくので uv sync のみで環境構築可能です。

[project]
name = "nanbeige"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    "accelerate==1.12.0",
    "hf-xet==1.3.1",
    "torch==2.10.0+xpu",
    "transformers==5.2.0",
    "triton-xpu==3.6.0",
]

[[tool.uv.index]]
name = "torch-xpu"
url = "https://download.pytorch.org/whl/xpu"
explicit = true

[tool.uv.sources]
torch = [{ index = "torch-xpu" }]
triton-xpu = [{ index = "torch-xpu" }]

結果

算数パズルを解かせてみました。

「9 9 9 9」という4つの数字の間に四則演算の記号を追加して計算結果が10になるようにするという問題です。

正解の一例は (9×9+9)÷9 = 10 です。



出力(回答)はこのようになりました。思考過程は省略しています。

「9 9 9 9」を用いて、四則演算と括弧で計算結果が **10** になるよう、以下の式を構成できました。

---

### ✅ 解答式:
$$
\frac{(9 \times 9) + 9}{9}
$$

---

### 🔍 検証:
1. **数字の使用**:4桁の「9 9 9 9」を順序通り使い、各数字間に四則演算記号を配置。
2. **演算の流れ**:
  - $ 9 \times 9 = 81 $
  - $ 81 + 9 = 90 $
  - $ 90 \div 9 = 10 $
3. **制約の遵守**:
  - ❌ **小数点の追加**:禁止 → なし(全演算は整数)。
  - ❌ **隣接数字を2桁以上にまとめる**:禁止 → なし(各演算は単一数字に対応)。
  - ✅ **括弧の使用**:可能 → $(9 \times 9) + 9$ をグループ化し、順序を明確に。
  - ✅ **四則演算記号の配置**:`×`, `+`, `/` を数字間に配置。
4. **計算結果**:**10** となる。

---

### 📝 表述例(例と同様の形式で):
```
「9 9 9 9」 → $ \frac{(9 \times 9) + 9}{9} = 10 $
```

---

### 💡 補足:
- この式は、**順序を厳守**しています(「9 9 9 9」の順で使用)。
- 括弧は必要であり、演算の優先順位を明確にします。
- 類似の解法も存在します(例:`9 + (9 ÷ 9) × (9 ÷ 9)` は5個の9を使用するため無効)、但本解答は**4個の9を正しく使い、全制約を満たす最適解**です。

---

### ✅ 最終回答:
$$
\boxed{\frac{(9 \times 9) + 9}{9}}
$$

正解にたどり着きました。

VRAM 12GBしかないArc B580ですが問題なく動作しました。

Pythonスクリプト

from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer

tokenizer = AutoTokenizer.from_pretrained(
  'Nanbeige/Nanbeige4.1-3B',
  use_fast=False,
  trust_remote_code=True
)

model = AutoModelForCausalLM.from_pretrained(
  'Nanbeige/Nanbeige4.1-3B',
  torch_dtype='auto',
  device_map='auto',
  trust_remote_code=True
)

prompt = """「9 9 9 9」という4桁の数字があります。数字と数字の間に四則演算の記号を追加して計算結果が10になるようにして下さい。
数字と数字の間に少数点を追加することは禁止されています。
隣あう数字をまとめて2桁以上の数字とみなすことは禁止されています。

括弧を使うことは可能です。

以下に例を示します。
~~~
「1 2 3 4」なら1+2+3+4が解答の一例です。
「4 5 4 2」なら(4*5)/(4-2)が解答の一例です。
~~~"""

messages = [
  {'role': 'user', 'content': prompt}
]

prompt = tokenizer.apply_chat_template(
  messages,
  add_generation_prompt=True,
  tokenize=False
)

input_ids = tokenizer(
    prompt,
    add_special_tokens=False,
    return_tensors='pt'
).to("xpu")

streamer = TextStreamer(
    tokenizer,
    skip_prompt=True,
    skip_special_tokens=True
)

generate_kwargs = {
    "max_new_tokens": 131072,
    "do_sample": True,
    "temperature": 0.6,
    "top_p": 0.95,
    "streamer": streamer,
}

model.generate(
    **input_ids,
    **generate_kwargs,
    eos_token_id=166101
)




以上の内容はhttps://touch-sp.hateblo.jp/entry/2026/02/25/212718より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14