rinna/qwen2.5-bakeneko-32b-instructをDatabricksで動かしてみる

話題になっているモデルはとりあえず動かしてみます。

https://codezine.jp/article/detail/20994

> 今回、より使いやすく高性能な日本語LLMを目指して、中国・Alibabaが公開しているLLMのQwen2.5 32Bに対して日本語継続事前学習を行なった「Qwen2.5 Bakeneko 32B」、対話形式で指示を遂行するよう学習を行なった「Qwen2.5 Bakeneko 32B Instruct」、DeepSeek R1の出力を用いて蒸留学習を行なった「DeepSeek R1 Distill Qwen2.5 Bakeneko 32B」の開発に至っている。

こちらの`rinna/qwen2.5-bakeneko-32b-instruct`のサンプルコードを動かします。

https://huggingface.co/rinna/qwen2.5-bakeneko-32b-instruct

それなりにメモリーは必要でした。

![Screenshot 2025-02-18 at 17.50.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/0a01c585-6d89-44b2-9186-e18f50af9446.png)

```py
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "rinna/qwen2.5-bakeneko-32b-instruct"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto",
    torch_dtype=torch.bfloat16,
)
```

```py
messages = [
    {"role": "system", "content": "あなたは誠実で優秀な日本人のアシスタントです。"},
    {"role": "user", "content": "ゲーム・小説・アニメに登場するアイテムボックスの特徴と、その原理を詳細に推測してください。"},
]
prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
input_ids = tokenizer.encode(
    prompt,
    add_special_tokens=False,
    return_tensors="pt"
).to(model.device)

outputs = model.generate(
    input_ids,
    max_new_tokens=1024,
    do_sample=True,
    temperature=0.7,
    top_k=20,
    top_p=0.8,
    repetition_penalty=1.05,
)

response = tokenizer.decode(outputs[0][input_ids.shape[-1]:], skip_special_tokens=True)
print(response)
```

以降は出力です。確かに流暢な日本語、そして、合理的な根拠に基づく説明(ファンタジー小説とか好きなので)。確かに、[以前DeepSeek R1(distilled Llama 8B)を動かした](https://qiita.com/taka_yayoi/items/0cbe5f7a8fea22924efc)際には日本語は増えての印象でしたが、こちらだと違和感すら感じないレベルです。

---

ゲーム、小説、アニメなどに登場するアイテムボックスの特徴と原理について詳しく推測してみます。

### 特徴

1. **多様性と予想外の内容**：アイテムボックスの中身は非常に多岐にわたる。プレイヤーや視聴者は事前に何が入っているかを知ることができず、開けるまで中身を確認できない。この不確定要素が楽しみや驚きをもたらす。
   
2. **機能性と有用性**：アイテムボックスに入っているものは、多くの場合、ゲームの進行やキャラクターの能力向上に役立つものが多い。例えば武器、防具、魔法のアイテム、経験値増加アイテムなどが含まれることが多い。
   
3. **レアリティ**：アイテムボックスの中身にはレアリティが設定されており、よりレア（希少）なアイテムほど強力だったり、価値が高い。この要素がプレイヤーの意欲を掻き立て、アイテムボックスへの期待感を高める。
   
4. **ストーリーとの関連性**：小説やアニメでは、アイテムボックスの中身が物語の重要な鍵となることがあり、キャラクターの運命や物語の展開に影響を与えることがある。

### 原理の推測

1. **プログラムによる生成**：ゲームの場合、アイテムボックスの中身はプログラムによってランダムに生成されることが多い。特定の確率でレアアイテムが出るよう設定されている。この確率は開発者が調整することで、プレイヤーの満足度やゲームバランスを保つことができる。

2. **ストーリーテリングの道具としての利用**：小説やアニメでは、アイテムボックスはストーリーテリングの一部として活用される。作者は物語の中でアイテムボックスがどのように登場し、それがキャラクターや物語にどのような影響を与えるのかを事前に計画している。これにより、アイテムボックスは単なる道具ではなく、物語の重要な要素となる。

3. **ファンタジーと現実の架け橋**：ゲームやアニメにおいて、アイテムボックスはファンタジー世界と現実世界の架け橋とも言える。プレイヤーや視聴者は、アイテムボックスを開くことで、新たな冒険や可能性に触れることができる。この体験は現実世界での期待感や達成感と共通点があり、エンターテイメント体験をより豊かなものにする。

これらの特徴と原理は、それぞれの作品やジャンルによって異なりますが、基本的な概念としては共通しています。アイテムボックスは、ゲームやストーリーテリングにおいて、プレイヤーや視聴者を引き込む重要な要素の一つとなっています。

---

プロンプトを変えてみます。

```py
messages = [
    {"role": "system", "content": "あなたは生成AIに精通したな日本人のエンジニアです。"},
    {"role": "user", "content": "Databricksの特徴と、そのアーキテクチャや他のサービスとの差別化ポイントを詳細に推測してください。"},
]
```

以下が推論結果です。なんか頼りになる感じ。

---

Databricksは、Apache Sparkをベースとしたデータ処理プラットフォームで、データサイエンティストとエンジニアが協力して大規模データセットを分析するための環境を提供します。以下に、Databricksの特徴、アーキテクチャ、および他のサービスとの差別化ポイントについて詳しく説明します。

### Databricksの特徴

1. **統合されたワークスペース**: Databricksは、ノートブック、データセット、モデル、ジョブなどを一元管理するワークスペースを提供します。これにより、チーム間での情報共有とコラボレーションが容易になります。
  
2. **Spark最適化**: DatabricksはApache Sparkを最適化しており、大規模なデータ処理タスクに対して高速なパフォーマンスを提供します。また、Sparkの上位互換性を保ちつつ、独自の最適化技術も採用しています。

3. **自動スケーリング**: ワークロードに応じてリソースを自動的にスケーリングし、コスト効率の良い運用を可能にします。

4. **統合されたマシンラーニング機能**: Databricksは、MLflowなどのツールと統合されており、モデルの開発からデプロイまでのライフサイクルを一貫してサポートします。

5. **データレイクハウス**: Delta Lakeというオープンソースのデータレイクハウス技術を提供し、ストレージと計算を分離することで、データの永続性と信頼性を確保します。

6. **統合されたセキュリティ**: Azure Databricksの場合、Azure Active Directory (AAD) との統合により、強固な認証とアクセス制御を実現します。

### アーキテクチャ

Databricksのアーキテクチャは以下の主要コンポーネントで構成されています：

1. **クラスタ**: Databricksは、Apache Sparkを基盤とするクラスタを提供します。これらのクラスタは、ノード（ワーカー、ドライバー）から構成され、ワークロードに応じて動的にスケーリングします。

2. **ノートブック**: Jupyter Notebookのようなインタラクティブな開発環境で、Python、Scala、R、SQLといった言語でコードを記述できます。

3. **Delta Lake**: ストレージ層として機能し、データの一貫性と耐障害性を確保します。Delta Lakeは、Parquetファイル形式と組み合わせて使用されることが多いです。

4. **ワークスペース**: ユーザーが作業を行う中心的な場所であり、ノートブック、データセット、ジョブなどが含まれます。

5. **ジョブ**: 定期的に実行するタスクやバッチ処理を管理するための機能です。

### 差別化ポイント

1. **統合されたエコシステム**: Databricksは、データ処理、分析、機械学習のための統合されたプラットフォームを提供します。これにより、複数のツールやサービスを組み合わせる必要がなくなり、開発者やデータサイエンティストがより効率的に作業を行えます。

2. **高度なSpark最適化**: Databricksは、Apache Sparkをベースにした独自の最適化技術を持っています。これにより、大規模データセットに対する処理速度が向上します。

3. **自動スケーリングとコスト効率**: 動的なリソース管理により、ワークロードに応じてリソースを増減させることができ、結果としてコスト効率の高い運用が可能になります。

4. **Delta Lakeの採用**: Delta Lakeは、データの永続性と信頼性を確保するためのデータレイクハウス技術であり、データの整合性と品質を保つことができます。

5. **セキュリティと統合**: 特にAzure Databricksの場合、Azure ADとの統合により、組織内の既存のセキュリティポリシーと簡単に統合することができます。

以上のように、Databricksは高度なデータ処理と分析を可能にする統合プラットフォームとして、他のサービスとは異なる多くの特徴と優れたアーキテクチャを持っています。



### はじめてのDatabricks

[はじめてのDatabricks](https://qiita.com/taka_yayoi/items/8dc72d083edb879a5e5d)

### Databricks無料トライアル

[Databricks無料トライアル](https://databricks.com/jp/try-databricks)