Stable Code 3Bの現段階での性能が明らかに!

Stable Code 3Bの現段階での性能が明らかに! AI

この記事では、最先端のAIモデル「Stable Code 3B」に焦点を当てています。
その概要、導入方法、および実際の動作確認プロセスについて解説します。

本記事の内容

  • Stable Code 3Bとは?
  • Stable Code 3Bの導入
  • Stable Code 3Bの動作確認

それでは、上記に沿って解説していきます。

Stable Code 3Bとは?

Stable Code 3Bとは、大規模言語モデル(LLM)です。
以下がその特徴となります。

  • 30億パラメータの大規模言語モデル
  • CodeLLaMA 7bの2.5倍のサイズだが同等の性能
  • MacBook Airのような一般的なノートPCでも動作可能
  • 商用利用にはStability AIメンバーシップが必要
  • コード補完などのタスクで高精度
  • 18のプログラミング言語に対応

18のプログラミング言語とは、StackOverflow Developer Surveyで選ばれた言語となります。
最大の特徴は、コンパクトで高性能を実現しているとことでしょう。

GPU未搭載のマシンにおいて、CPUだけも動作は可能らしいです。
ただ、速度はどうなんでしょうね。

GPUであれば、それなりの速度で動いてくれます。

Stable Code 3Bの導入

PyTorchは、必須です。
CPUだけでも動くとは言われていますが、GPU版PyTorchをインストールしましょう。

バージョンの指定は、特にありません。
そのため、現段階で最新となるバージョンをインストールします。

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

そして、あとは以下のコマンドを実行します。

pip install accelerate bitsandbytes transformers

Accelerateについては、以下で説明しています。

Transformersは、次の記事で解説しています。

bitsandbytesは、深層学習のための8ビット最適化PyTorch拡張ライブラリです。
これにより、メモリ効率が良くなります。

インストールするモノは、これだけでOKです。

Stable Code 3Bの動作確認

コード補完が、基本として公開されています。

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("stabilityai/stable-code-3b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
  "stabilityai/stable-code-3b",
  trust_remote_code=True,
  torch_dtype="auto",
)
model.cuda()
inputs = tokenizer("import torch\nimport torch.nn as nn", return_tensors="pt").to(model.device)
tokens = model.generate(
  **inputs,
  max_new_tokens=48,
  temperature=0.2,
  do_sample=True,
)
print(tokenizer.decode(tokens[0], skip_special_tokens=True))

実行した結果は、以下となります。

import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence
from. import utils
from. import attention
from. import

「max_new_tokens」を大きくすると表示結果の内容が、長くなります。
コード補間以外もいけるのでしょうかね?

inputs = tokenizer("Pythonでfor文を書いてください。", return_tensors="pt").to(model.device)
tokens = model.generate(
  **inputs,
  max_new_tokens=100,
  temperature=0.2,
  do_sample=True,
)

上手く行った場合は、次のように表示されます。
トークン100で途切れていますね。

このようにした結果は、以下。
```python
for i in range(10):
    print(i)
```

## リスト

リストは、順番があるデータの集合です。

リストの中身は、`[]`で囲みます。

```python
list = [1, 2, 3]
```

リストの中身は、`[0]`でアクセスでき

よくわからない結果が返ることも多いです。

Pythonでfor文を書いてください。

for i in range(10):
    print(i)

# 問題2
# 以下のコードを実行してみてください。

# 問題3
# 以下のコードを実行してみてください。

# 問題4
# 以下のコードを実行してみてください。

まず、日本語が通じているのは単純にスゴイです。
そして、上手く動く場合もあります。

でも、ChatGPTと比べると・・・

全く相手になりません。
ローカルで動くということで、今後何かしら活躍できる可能性はあるでしょう。

ただ、ChatGPTの代わりというのは無理ですね。

タイトルとURLをコピーしました