Sakana AIによる1.5BのSLM「TinySwallow-1.5B」をM2 Pro Mac miniで動かしてみた
TinySwallow-1.5Bとは
「TinySwallow-1.5B」とは、Sakana AIが2025年1月に発表した日本語の小規模言語モデル(SLM)です。このモデルは、Sakana AIが発表した新しい蒸留手法「TAID (Temporally Adaptive Interpolated Distillation)」により、Qwen2.5-32B-InstructからQwen2.5-1.5B-Instructへ知識を転移させたものです。
TAIDという手法は、一般的な蒸留での教師モデルと生徒モデルの間に中間教師 (intermediate teacher)を導入して段階的に生徒モデルを学習させるような手法です。詳しくは公式の記事を読んでみてください。
今回は、TinySwallow-1.5BのInstruction TurningさせたバージョンであるTinySwallow-1.5B-InstructをM2 Pro Mac miniで動かしてみました。
M2 Pro Mac miniで試す
今回使用しているMac miniのスペックは以下の通りです。
- Apple M2 Pro
- CPU: E-core: 4 / P-core: 8
- GPU: 19-core
- Nerual Engine: 16-core
- RAM: 32GB
パッケージのインストール
以下のパッケージをインストールします。
pip install transformers 'torch>=2.3'
今回試したコード
今回はvLLMやOllamaなどを使わずにHuggingFace Transformersで試してみます。温度パラメータは0.7に設定しました。
実際に使用したコードはGitHubで公開しています: Shakshi3104/sakana-tiny-swallow-1.5b
# モデルの設定
model_name = "SakanaAI/TinySwallow-1.5B-Instruct"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
if torch.backends.mps.is_available():
device = torch.device('mps')
model.to(device)
generator = pipeline("text-generation", model=model, tokenizer=tokenizer,
device="mps" if torch.backends.mps.is_available() else "cpu")
# 入力
input_text = "日本の首都は?"
messages = [
{"role": "user", "content": input_text},
]
# 出力
outputs = generator(
messages,
max_new_tokens=1024,
do_sample=True,
temperature=0.7,
pad_token_id=tokenizer.pad_token_id,
)
出力のかかる時間とメモリ使用量
出力にかかる時間は、大体15秒から30秒くらいでした。体感としては、かなり速く返ってきている印象です。
また、メモリについては、実行中はプロセス単体で6GB程度しか使っておらず、全体のメモリ使用量は最大でも22GB程度になるくらいで、かなりメモリ使用が抑えられています。
公式のXの投稿ではiPhoneで動作している様子も見れるので、少ないメモリで高性能なSLMになっていると思いました。
出力の例
DeepSeek-R1の蒸留モデルを試したときと同様の質問をしてみます。
入力: 日本の首都は?
日本の首都は**東京**です。
ちゃんと「東京」と返してくれます。
入力: たまごっちとは何ですか?
出力①
「たまごっち」は、1996年にバンダイから発売された携帯型のペット育成ゲーム機です。
**特徴:**
* **小さなペットを飼う:** ペットキャラクターと対話したり、一緒に遊んだりすることができます。
* **成長要素:** 時間経過とともにペットが成長し、新しい能力やアイテムを得ることができます。
* **育成システム:** 食べ物を与えることでペットのレベルアップやステータス上昇などを行います。
* **コミュニケーション機能:** 電話を通じて他のユーザーとチャットすることもできます。
この商品は当時非常に人気があり、子供たちに大人気でした。その後、「たまごっち」という名前は、様々な製品や文化に影響を与えました。
現在でも一部の人々には愛され続けており、特に女性を中心に根強いファンを持つ存在となっています。
出力②
「たまごっち」は、1996年にバンダイから発売された携帯型のペット育成ゲーム機です。
**特徴:**
* **可愛いキャラクター:** さまざまな種類の動物や生き物(たまごっち)を飼うことができます。
* **愛情表現:** ペットに餌を与えたり、お風呂に入れてあげるなど、様々な行動をとることができます。
* **進化システム:** ペットにはレベルアップがあり、レベルアップすると新しい能力を得られることがあります。
* **コミュニケーション機能:** 電話のように音声通話もできます。
この製品は大ヒットし、その後数多くの派生商品が発売されました。また、アニメや漫画にも取り上げられ、日本だけでなく世界中で愛される人気商品となりました。
ハルシネーションしている部分はあると思いますが、たまごっちの特徴をそれっぽい感じで答えてくれます。
おわりに
今回は、Sakana AIによる新しい蒸留の手法「TAID」を用いて蒸留したモデルである「TinySwallow-1.5B-Instruct」をM2 ProのMac miniで動かしてみました。DeepSeek-R1の蒸留モデルを試したときは、まだ実用レベルではないと思いましたが、その数日後にSakana AIが実用レベルの蒸留モデルを出してきたのでびっくりです。蒸留手法であるTAIDの理解はまだできていないので、論文も読んでみたいと思います。
Discussion