17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

日本語 LLM (CyberAgent OpenCALM-7B) を OCI Data Science 上で動かしてみた

Last updated at Posted at 2023-08-04

はじめに

日本オラクルでは、2023年8月2日にサイバーエージェント様をお招きして「AIインフラ最前線―サイバーエージェントのAI技術革新を支える最先端の AIインフラストラクチャー技術」
と題したセミナーを開催させていただきましたが、その中でサイバーエージェント様が最大68億パラメータの日本語 LLM (大規模言語モデル) を提供しているお話をされました。このモデルは CC BY-SA 4.0ライセンス のもとで公開されています。

ということで、さっそくこのLLMを試してみたいと思います。

※セミナーの動画は2023年9月頃の公開を予定しているそうです。
oracle.com/goto/ocws-jp-ondemand

手順

  • データ・サイエンス プロジェクトの作成
  • ノートブック・セッション の作成
  • ノートブック環境の準備
    • ライブラリのインストールと設定
  • LLM の実行
  • ノートブック・セッションの非アクティブ化

データ・サイエンス プロジェクトの作成

OCI コンソール 左上のハンバーガーメニューから「アナリティクスとAI」を選び、さらに右に出てくるサービス一覧から「データ・サイエンス」を選びます。
プロジェクトを作成する前に「データ・サイエンスの前提条件」を確認し、必要な VCN、サブネット、動的グループ、ポリシー等の準備を行って下さい。

image.png

準備が整ったらプロジェクトを作成します。

image.png

プロジェクトが作成されました。

image.png

ノートブック・セッション の作成

プロジェクトが作成されたら、その配下に「ノートブック・セッション」を作成します。

image.png

コンピュート・シェイプには GPU シェイプ を選択します。 ここで指定している VM.GPU3.1 は NVIDIA V100 搭載の一番小さい VM シェイプになります。

image.png

しばらくすると、コンピュートが起動しノートブック・セッションがアクティブになります。

ノートブック環境の準備

では、次にノートブックで LLM を使用するための準備を行います。Python の仮想実行環境を新規に作成し、必要なライブラリをインストールし、さらに初期設定を行います。
「開く」を押してノートブックにログインして下さい。

image.png

"Launcher" のタブが開かれています(「ファイル」メニューからも開けます)。

image.png

"Environment Explorer" をクリックすると、作成可能な Python 仮想環境のリストが表示されます。

image.png

"PyTorch 1.10 for GPU on Python 3.8" を探して メニューを右クリックして "install" を選択して下さい。

image.png

コンソールのタブが自動的に開いて、環境が作成されます(しばらく時間がかかります)。

image.png

"launcher" タブに戻ると、新しいカーネルが作成されています。

image.png

これを右クリックして "Start Console" を選択します。

image.png

そうすると、新しいコンソールのタブが現れます。

image.png

ライブラリのインストールと設定

LLM の実行に必要な追加のライブラリのインストールと設定を行います。
コンソールの下にあるコマンドラインに次のコマンド&スクリプトを入力して Shift+Enter を押して実行して下さい。

%conda install -c conda-forge transformers
%conda install -c conda-forge accelerate
from accelerate.utils import write_basic_config; write_basic_config(mixed_precision='fp16')

コンソールの最後の出力が以下のようになっているか確認してください。

image.png

LLM の実行

今回利用する LLM はこちらです。OpenCALM にはいろいろなサイズのモデルがありますが、今回は一番パラメータ数の大きい (6.8B = 68億) OpenCALM-7B を試してみます。

このページの Usage に書かれている Python スクリプトをコピペして実行してみたいと思います。

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("cyberagent/open-calm-7b", device_map="auto", torch_dtype=torch.float16)
tokenizer = AutoTokenizer.from_pretrained("cyberagent/open-calm-7b")

inputs = tokenizer("AIによって私達の暮らしは、", return_tensors="pt").to(model.device)
with torch.no_grad():
    tokens = model.generate(
        **inputs,
        max_new_tokens=64,
        do_sample=True,
        temperature=0.7,
        top_p=0.9,
        repetition_penalty=1.05,
        pad_token_id=tokenizer.pad_token_id,
    )
    
output = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(output)

では、Launcher から 新しいノートブックを開きます。

image.png

新しいノートブックが開きました。

image.png

では、スクリプトを実行してみたいと思います。
ノートブックのセルに先ほどのスクリプトを入力(ペースト)して、実行ボタンを押します。
"AIによって私達の暮らしは、" に続く文章が出力されるハズ...

image.png

AIによって私達の暮らしは、もっと快適で楽しいものになっていくはずです。
そして日本はIT分野だけでなく、自動車やロボットの分野でも世界をリードする技術を持つ国です。この技術をいかにビジネスに活かしていくのかを考えることが今後の日本にとって大切になってくるのではないかと思います。

と出力されました。
(実行毎に出力される内容は変化します)

ノートブック・セッションの非アクティブ化

利用が終わったら、ノートブック・セッションを非アクティブ化しましょう。非アクティブ化によってコンピュート・インスタンスが停止しコンピュートの課金が止まります。

image.png

補足:GPU の状態を確認する

Launcher からターミナルを起動して nvidia-smi を実行できます。

(base) bash-4.2$ nvidia-smi
Thu Aug  3 15:30:36 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.108.03   Driver Version: 510.108.03   CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla V100-SXM2...  Off  | 00000000:00:04.0 Off |                    0 |
| N/A   38C    P0    49W / 300W |   2477MiB / 16384MiB |     40%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

最後に

思ったより簡単に動かせました。まだサンプルを動かしただけですので、もう少し時間をかけて触ってみようと思います。

参考リンク

17
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?