LoginSignup
29
19

サイバーエージェントの日本語LLM OpenCALMをDatabricksで動かしてみる

Last updated at Posted at 2023-05-17

個人的にもこのような流れにドキドキしています。色々なLLMを活用できる幸せ。

一番小さいものでトライします。クラスターのランタイムは13.0 ML、インスタンスはg5.4xlarge(64GB, 1GPU)です。

例によって、MLflowで管理するのでtransformesをサポートしているバージョン2.3以降をインストールします。

%pip install mlflow==2.3.1
Python
dbutils.library.restartPython()

まずはサンプル通りに。

Python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

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

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,
        pad_token_id=tokenizer.pad_token_id,
    )
    
output = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(output)
AIによって私達の暮らしは、あらゆる面で大きく変わっています。
たとえば、車。
私たちが使っている車は、その車そのものの価値を高めます。
でも、
「車そのもの」
という価値が、その車を買い替えることによって、どんどん下がっていきます。
「車」という価値が上がれば上がるほど、車は買い替えることで価値

おおー。

次にMLflowでロギングします。

Python
import mlflow
import transformers

# ディクショナリーでモデルのコンポーネントを定義
transformers_model = {"model": model, "tokenizer": tokenizer}
task = ""

# モデルコンポーネントの記録
with mlflow.start_run():
    model_info = mlflow.transformers.log_model(
        transformers_model=transformers_model,
        artifact_path="text_classifier",
    )

記録されました。
Screenshot 2023-05-17 at 13.27.56.png

モデルカードもバッチリ。
Screenshot 2023-05-17 at 13.28.19.png

モデルをロードして推論を行います。

Python
# パイプラインとしてコンポーネントをロード
loaded_pipeline = mlflow.transformers.load_model(
    model_info.model_uri, return_type="pipeline"
)

loaded_pipeline(["AIによって私達の暮らしは、"])
Out[3]: [[{'generated_text': 'AIによって私達の暮らしは、生活者にとって、より便利で、より豊かなものになるはずです。\n'}]]

以前のようにサービングエンドポイントにデプロイすれば、カスタムアプリとしても活用できますね。

いい加減、そろそろファインチューニングやプロンプトエンジニアリングにもどっぷり浸かりたいと思ってます。

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

29
19
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
29
19