ついに登場！待望のIBM Granite 3.0、さあ、今すぐその力を体感しよう！ 😍

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/1c7eb656-ca22-213b-7021-e85aa52f2bf5.png)

# IBM Granite 3.0リリース
IBM独自のLLMであるGraniteモデルが、2024年10月21日、さらにパワーアップし、Granite 3.0としてリリースされました。

https://www.ibm.com/new/ibm-granite-3-0-open-state-of-the-art-enterprise-models

当記事は、「**いち早く、そのGranite 3.0を試してみたい！**」という方のために執筆いたしました。

今回のリリースでは、目的別に4種類のLLMが提供されました。

* 一般的な使用を目的とした高密度LLM (Dense, general purpose LLMs)
* 入出力ガードレールモデル (LLM-based input-output guardrail models)
* 混合モデル (Mixture of experts (MoE) models for minimum latency)
* 推論速度と効率を高めるモデル (Speculative decoder for increased inference speed and efficiency)

また、これらのモデルはオープンソースモデルとして公開されているため、**Hugging Faceからダウンロード可能**です。

それでは、その4種類を1つづつ見ていきます。

## 一般的な使用を目的とした高密度LLM (Dense, general purpose LLMs)
8Bと2BのBaseとInstructチューニングされたモデルが提供されます。
* Granite-3.0-8B-Instruct
* Granite-3.0-8B-Base
* Granite-3.0-2B-Instruct
* Granite-3.0-2B-Base

前バーションでは、日本語専用のgranite-8b-japaneseが提供されていましたが、今回は日本語を含むマルチリンガルモデルとして提供されています。

:::note
こちらの12種類の言語に対応してます。
English, German, Spanish, French, Japanese, Portuguese, Arabic, Czech, Italian, Korean, Dutch, and Chinese. Users may finetune Granite 3.0 models for languages beyond these 12 languages.
:::

:::note
[IBM Cloud](https://cloud.ibm.com)もしくは[Hugging Face IBM Granite](https://huggingface.co/ibm-granite)からご利用可能です。
:::

## 入出力ガードレールモデル (LLM-based input-output guardrail models)
8Bと2Bの２つのモデルが提供されます。
* Granite-Guardian-3.0-8B
* Granite-Guardian-3.0-2B

Granite-Guardian-3.0-8Bを例にとると、『Granite Guardian 3.0 8Bは、Granite 3.0 8B Instructモデルのファインチューニングされたバージョンであり、プロンプトと応答にリスクを検出するための目的で設計されています。[IBM AI Risk Atlas](https://www.ibm.com/docs/en/watsonx/saas?topic=ai-risk-atlas)でカタログされている多くの重要な要素にわたって、リスク検出に役立つことができます。それはヒューマンアノテーションおよび内部レッドチームングを指導したシンザティックデータから構成される一意のデータで訓練されています。同じスペース内の他のオープンソースモデルと比較して、標準的なベンチマークでそれを超えることができます。』とのことです。(granite-3.0-8b-instructを使用して翻訳しています)

:::note warn
明確なサポート言語に関する記述を、現時点(2024.10.23)では見つけられていませんが、『Granite 3.0 8B Instructモデルのファインチューニングされたバージョン』ということから、Granite-3.0-8B-Instructでサポートされている12言語が使用できるのではないかと思います。
:::

:::note
[IBM Cloud](https://cloud.ibm.com)もしくは[Hugging Face IBM Granite](https://huggingface.co/ibm-granite)からご利用可能です。
:::

## 混合モデル: Mixture of experts (MoE) models for minimum latency
混合モデルとして、3Bと1BのBaseとInstructチューニングされたモデルが提供されます。

* Granite-3.0-3B-A800M-Instruct
* Granite-3.0-3B-A800M-Base
* Granite-3.0-1B-A400M-Instruct
* Granite-3.0-1B-A400M-Base

Granite-3.0-3B-A800M-Instructを例にとると、『Granite-3.0-3B-A800M-Instructは、Granite-3.0-3B-A800M-Base-4Kからファインチューニングされた3Bパラメータモデルであり、オープンソースの指示セットに許可付きのライセンスと内部収集されたシンザティックデータの組み合わせを使用して開発されています。このモデルは、構造化されたチャットフォーマットなど、多様なテクニックを組み合わせたことで開発されており、スーパーバイザードファインチューニング、再強化学習によるモデル対齐、およびモデルマージングなどが含まれています。』とのことです。(granite-3.0-8b-instructを使用して翻訳しています)


:::note
こちらの12種類の言語に対応してます。
English, German, Spanish, French, Japanese, Portuguese, Arabic, Czech, Italian, Korean, Dutch, and Chinese. Users may finetune Granite 3.0 models for languages beyond these 12 languages.
:::

:::note warn
[IBM Cloud](https://cloud.ibm.com)上ではまだ提供されていません。お急ぎの方は、[Hugging FaceのIBM Granite](https://huggingface.co/ibm-granite)からご利用ください。
:::

## 推論速度と効率を高めるモデル (Speculative decoder for increased inference speed and efficiency)
推論速度と効率を高める目的で、1つのモデルが提供されます。
* Granite-3.0-8B-Instruct-Accelerator

『このモデルは、Granite-3.0-8b-instructのアクセラレータとして使用されるように設計されており、Medusa仮想解釈アーキテクチャからインスピレーションを得ています。準備評価では、アクセラレータを使用する際に基礎モデルで最大2.2倍のトークン/ステップの加速が示されています。このアクセラレータは、MLPを多段MLPに変換し、各段階は前段階からサンプルトークンと共に草稿に存在する単一のトークンを予測します。基礎モデルはステージ0として考えることができます。基礎モデルの状態ベクトルは、アクセラレータにコンテキスト情報を提供し、前からサンプルされたトークンに条件付けすることで、高品質なn-グラムの生産を可能にします。』とのことです。(granite-3.0-8b-instructを使用して翻訳しています)

:::note warn
明確なサポート言語に関する記述を、現時点(2024.10.23)では見つけられていませんが、『Granite-3.0-8b-instructのアクセラレータとして使用されるように設計されており』ということから、Granite-3.0-8B-Instructでサポートされている12言語が使用できるのではないかと思います。
:::

:::note warn
[IBM Cloud](https://cloud.ibm.com)上ではまだ提供されていません。お急ぎの方は、[Hugging FaceのIBM Granite](https://huggingface.co/ibm-granite)からご利用ください。
:::

# レッツ 体感！

IBM Cloud上で使う方法もありますが、せっかくなので、[Hugging FaceのIBM Granite](https://huggingface.co/ibm-granite)からダウンロードして使ってみましょう :bangbang:

とは言え、「**ダウンロードできるといっても、自分のパソコンで動かすにはその環境の準備が大変そうで私には無理です**」という方へ、朗報です。

## LM Studio とは？
自分のパソコン上でLLMを動かす環境として、**Ollama**や**llama.cpp**が有名ですが、それなりにITやAIのスキルが必要です。
そこで、誰でも簡単に自分のパソコン上でLLMを動かすこと事を可能にするのが **LM Studio**というソフトウェアです。

LM Studioの公式サイトはこちらです。

https://lmstudio.ai

アクセスしてみると、『こんなことができますよ』と書いてあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/2b79d3f2-2852-9440-9e0a-070559c4cfc6.png)

ふむふむ、やはり、いきなり英語は辛いな〜
ということで、早速、granite-3.0-8b-instructを使って翻訳してみました。

```
LM Studioは、以下の機能を提供します
• ローカルで完全にオフラインでLLMsを実行する
• ローカルドキュメントとチャットする
• Chat UI内やOpenAI兼容のローカルサーバーを通じてモデルを使用する
• Hugging Face 🤗 リポジトリからダウンロードできる任意の対応可能なモデルファイル
• Discoverページで新しい&注目すべきLLMsを探す

LM Studioは、GGUF Llama, Mistral, Phi, Gemma, StarCoderなどのHugging Face 🤗 リポジトリにある任意のモデルをサポートする。
最小要件: M1/M2/M3 Mac、または AVX2 をサポートするプロセッサを備えた Windows/Linux PC。
llama.cpp プロジェクトによって可能になった。
我々はチームを拡大しています。キャリアページを参照してください。
テクニカルドキュメントは https://lmstudio.ai/docs にあります。
```
内部では、**llama.cpp**を使っているのですね。
Hugging Faceで公開されている様々なモデルを自分のパソコン上で手軽に実験できるのは嬉しいです。
また、M1/M2/M3 Mac、GPUを搭載していないWindowsやLinuxもサポートされているのはとても助かります。

:::note warn
**LM Studio使用に関する注意事項**
TLDR: The app does not collect data or monitor your actions. Your data stays local on your machine. It's free for personal use. For business use, please get in touch.

(翻訳) granite-3.0-8b-instructによる翻訳
LM Studioは、インターネット接続なしでローカルマシンでLLMsを実行できる無料のアプリです。データ収集やアクション監視は行われません。個人用として無料で使用できますが、商業用についてはチームに連絡してください。
:::

## LM Studioのインストール
[こちら](https://lmstudio.ai)にアクセスし、導入先のOSを選択してください。
(導入手順は、それぞれのOSの手順に従って下さい)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/ed07be46-f7b5-99fc-2662-410adfa62f2c.png)

(参考) Macの場合は、『LM Studio.app』を『Applicationsフォルダ』に移動するだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/5256cae2-865a-45f5-29bd-c0ffafbdd859.png)

## IBM Graniteのダウンロード
ibm-granite/granite-3.0-8b-instructの例を示します。
[こちら](https://huggingface.co/ibm-granite/granite-3.0-8b-instruct)にアクセスして下さい。

LM Studioでは、GGUFフォーマットがサポートされているので、Quantizationsの[12models]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/87d37e88-3f8d-efeb-db97-5961648c644b.png)

モデル一覧が表示されるので、[lmstudio-community/granite-3.0-8b-instruct-GGUF]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/698245d0-3135-e3c6-e111-dbc50640d903.png)

右上に表示される[Use this model]をクリックすると、プルダウンメニューが表示されるので、[LM Studio]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/e5511447-e007-22a7-3014-2ae73949a005.png)

ポップアップ・ウィンドウが表示されるので、[LM Studio.appを開く]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/5135c64a-a012-8444-fbd6-a7d413839919.png)

LM Studioが起動され、モデルのダウンロード画面が表示されますので、[Download 4.94GB]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/6a322c7b-2108-98af-15f1-3a4e20ccaa5d.png)

(モデルダウンロード中の画面)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/35bc4571-f3cf-b7a5-77bd-b67a33306ff2.png)

モデルのダウンロードが終了したら、[Load Model]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/f496fb11-fd55-d77d-4538-77f254030bd5.png)


ダウンロードしたモデルがロードされ、LLMとの対話が可能になります！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/2e9f50b8-b3c4-f5ba-6873-d02b1d068887.png)


**That's All!** :v_tone2:

## 要約
ここまでくると、後はもう簡単ですね。
まずは、定番の要約を実行してみます。
要約する内容は、[IBM Granite 3.0: open, state-of-the-art enterprise models](https://www.ibm.com/new/ibm-granite-3-0-open-state-of-the-art-enterprise-models)の冒頭部分である約40行を使用します。

### プロンプト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/62627b1b-cd37-2f27-be6e-b1640cea1cf2.png)

(コピペ用)
~~~md:プロンプト
以下の英文を以下の項目に沿って、要約して下さい。
・パフォーマンスの観点
・企業内で使用する場合の利点
・オープンソースへの貢献

要約は端的な日本語でお願いします。

Today, we’re excited to release IBM Granite 3.0, the third generation of the Granite series of large language models (LLMs) and complementary tools. Reflecting our focus on the balance between powerful and practical, the new IBM Granite 3.0 models deliver state-of-the-art performance relative to model size while maximizing safety, speed and cost-efficiency for enterprise use cases.

Headlining the Granite 3.0 collection is a new, instruction-tuned, dense decoder-only LLM: Granite 3.0 8B Instruct. Trained using a novel two-phase method on over 12 trillion tokens of carefully vetted data across 12 different natural languages and 116 different programming languages, the developer-friendly Granite 3.0 8B Instruct is a workhorse enterprise model intended to serve as a primary building block for sophisticated workflows and tool-based use cases. Granite 3.0 8B Instruct matches leading similarly-sized open models on academic benchmarks while outperforming those peers on benchmarks for enterprise tasks and safety.

Fine-tuning smaller, fit-for-purpose models like Granite enables enterprises to pursue frontier model performance at a fraction of the cost. Tailoring Granite models to your organization’s unique needs through InstructLab, a collaborative, open source approach to augmenting model knowledge and skills with systematically generated synthetic data and phased-training protocols, can reduce costs and timelines even further.

In keeping with IBM’s strong historical commitment to open source, all Granite models are released under the permissive Apache 2.0 license, bucking the recent trend of closed models or open weight models released under idiosyncratic proprietary licensing agreements. In another divergence from industry trends for open models, IBM is providing a detailed disclosure of training data sets and methodologies in the Granite 3.0 technical paper, reaffirming IBM’s dedication to building transparency, safety and trust in AI products.

In its entirety, the IBM Granite 3.0 release comprises:

Dense, general purpose LLMs: Granite-3.0-8B-Instruct, Granite-3.0-8B-Base, Granite-3.0-2B-Instruct and Granite-3.0-2B-Base.
LLM-based input-output guardrail models: Granite-Guardian-3.0-8B, Granite-Guardian-3.0-2B
Mixture of experts (MoE) models for minimum latency: Granite-3.0-3B-A800M-Instruct, Granite-3.0-1B-A400M-Instruct
Speculative decoder for increased inference speed and efficiency: Granite-3.0-8B-Instruct-Accelerator
Impending updates planned for the remainder of 2024 include an expansion of all model context windows to 128K tokens, further improvements in multilingual support for 12 natural languages and the introduction of multimodal image-in, text-out capabilities.

Granite 3.0 8B Instruct and Granite 3.0 2B Instruct, as well as both Guardian 3.0 safety models, are available today for commercial use on the IBM watsonx platform. Granite 3.0 models are also available through platform partners, including Google Vertex AI (through Google Cloud's Vertex AI Model Garden integrations with Hugging Face), Hugging Face, NVIDIA (as NIM microservices), Ollama and Replicate.
Continuing IBM’s commitment to sustainability, IBM Granite 3.0 language models are trained on Blue Vela, powered by 100% renewable energy.
~~~

### 結果
元の英文をなかなかいい感じに要約し、日本語で出力してくれました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/604070f4-6933-64c5-1e52-8eb0280fc10f.png)

## Q&A
RAGではなく、LLMが持っている知識を使って回答させてみます。

### プロンンプト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/e439f33c-6f0f-f32c-cdea-4ee0183cfdce.png)

(コピペ用)
~~~md:プロンプト
生成AIを日々の業務に組み込む際、相談先として最適なベンダーは、
1.IBM
2.OpenAI
3.Anthropic
4.Google
のどこですか？理由も教えてください。
~~~

### 結果
IBM Granite 3.0は、IBMに忖度せず、客観的な回答をしてくれました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/1452245b-0ebc-a219-b8ad-6d364137648f.png)

Great...

# おわりに
いかがでしたでしょうか？
これまでもIBM Graniteはコード生成モデルを中心にオープンソースモデルとして公開されていたのですが、ついに**日本に対応した言語モデルもオープンソースモデルとして公開**されました。

LLMはプロンプト次第で色々なタスクに対応可能ですが、実際の業務に組み込んで運用するには多くのトライ&エラーが必要になります。そのトライ&エラーを自分のパソコン上で試すことができれば、その作業効率を大幅にアップすることが期待できます。

**聞いたことはあるけど触ったことがない** 又は **初めて聞いた**という方、これを機に色々と試してみては如何でしょうか。

**Let's Enjoy IBM Granite 3.0!** :grinning:

# 参考

## IBM What's New
https://www.ibm.com/new/ibm-granite-3-0-open-state-of-the-art-enterprise-models

## 上記プレスリリースの日本語抄訳
https://jp.newsroom.ibm.com/2024-10-24-ibm-introduces-granite-3-0-high-performing-ai-models-built-for-business

## IBM Granite 3.0 
https://www.ibm.com/granite/docs/

## (GitHub) IBM Granite 3.0 Language Models including BenchMarks
https://github.com/ibm-granite/granite-3.0-language-models?tab=readme-ov-file

## watsonx.ai で使用可能なサポート対象の基盤モデル from watsonx.ai SaaS
https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?audience=wdp&context=wx

## Hugging Face IBM-Granite
https://huggingface.co/ibm-granite

## LM Studio
https://lmstudio.ai