Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

open-calm-large(パラメータ数 830M=8.3億)を使う場合

サンプルコード

max_new_tokens の値が小さすぎると、生成される文章が途中で途切れることがあります。

Code Block
import sys
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

modelpath = "cyberagent/open-calm-large"
model = AutoModelForCausalLM.from_pretrained(modelpath, device_map="auto", offload_folder="offload", torch_dtype=torch.float32)
tokenizer = AutoTokenizer.from_pretrained(modelpath)

text = "AIの普及によって私たちの仕事は、"
inputs = tokenizer(text, 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)

...

仮想マシンの利用が難しい場合は、ホストに直接「Jupyter Lab」環境を構築することが必要になります。

サンプルコードの実行

max_new_tokens の値が小さすぎると、生成される文章が途中で途切れることがあります。

Code Block
import sys
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

modelpath = "cyberagent/open-calm-1b"
model = AutoModelForCausalLM.from_pretrained(modelpath, device_map="auto", offload_folder="offload", torch_dtype=torch.float32)
tokenizer = AutoTokenizer.from_pretrained(modelpath)

text = "AIの普及によって私たちの仕事は、"
inputs = tokenizer(text, 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)

...