富嶽でLLMとはすごい。
こちらを動かします。モデルにアクセスするにはライセンス条項への同意が必要です。
いつものようにGPUクラスターを使います。
# login huggingface
from huggingface_hub import login
login()
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "Fugaku-LLM/Fugaku-LLM-13B-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.bfloat16, device_map="auto")
model.eval()
system_example = "以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"
instruction_example = "スーパーコンピュータ「富岳」の名前の由来を教えてください。"
prompt = f"{system_example}\n\n### 指示:\n{instruction_example}\n\n### 応答:\n"
input_ids = tokenizer.encode(prompt,
add_special_tokens=False,
return_tensors="pt")
tokens = model.generate(
input_ids.to(device=model.device),
max_new_tokens=128,
do_sample=True,
temperature=0.1,
top_p=1.0,
repetition_penalty=1.0,
top_k=0
)
out = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(out)
以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。
### 指示:
スーパーコンピュータ「富岳」の名前の由来を教えてください。
### 応答:
「富岳」は日本のスーパーコンピュータの名前です。富士山の異名である「富岳」は、日本で最も高く、最も有名な山であり、その高さは3776メートルに達する。スーパーコンピュータの名前としては、富士山のように高性能で世界に誇れるマシンになるようにという願いが込められている。
おおー(って、驚いてばっかり)。
instruction_example = "明治時代の出来事を簡潔に説明してください。"
prompt = f"{system_example}\n\n### 指示:\n{instruction_example}\n\n### 応答:\n"
input_ids = tokenizer.encode(prompt,
add_special_tokens=False,
return_tensors="pt")
tokens = model.generate(
input_ids.to(device=model.device),
max_new_tokens=128,
do_sample=True,
temperature=0.1,
top_p=1.0,
repetition_penalty=1.0,
top_k=0
)
out = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(out)
以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。
### 指示:
明治時代の出来事を簡潔に説明してください。
### 応答:
明治時代は、日本が近代国家としてスタートした時代である。この時代に日本は、武士階級を廃止し、天皇を中心とした新しい政府を樹立した。また、教育や医療の制度化、貨幣の統一、暦の導入など、社会や経済の発展にも努めた。明治時代には、日本が近代化への道を歩む上で重要な出来事や変化が数多くあった。
instruction_example = "俳句と短歌の違いを簡潔に説明してください。"
prompt = f"{system_example}\n\n### 指示:\n{instruction_example}\n\n### 応答:\n"
input_ids = tokenizer.encode(prompt,
add_special_tokens=False,
return_tensors="pt")
tokens = model.generate(
input_ids.to(device=model.device),
max_new_tokens=128,
do_sample=True,
temperature=0.1,
top_p=1.0,
repetition_penalty=1.0,
top_k=0
)
out = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(out)
以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。
### 指示:
俳句と短歌の違いを簡潔に説明してください。
### 応答:
俳句は3句17音、短歌は5句31音です。
さすが日本に関して詳しい。