一昨日・昨日の記事の続きだが、Swallow-70b-instruct-hfに「パソコンのキーボードは,なぜABC順・五十音順ではないのですか」と尋ねてみることにした。ただ、70bモデルだとメモリが400GBほど必要なはずなのだけど、そんな凄いマシンは私(安岡孝一)の手元には無い。仕方ないのでaccelerateをインストールして、device_map="auto"
の助けを借りることにした。プログラムはこんな感じ。
#! /usr/bin/python3
from transformers import pipeline
tgn=pipeline("text-generation","tokyotech-llm/Swallow-70b-instruct-hf",max_new_tokens=128,device_map="auto")
nlp=lambda txt:tgn(f"以下に、あるタスクを説明する指示があります。リクエストを適切に完了するための回答を記述してください。\n\n### 指示:{txt}\n\n### 応答:",do_sample=True)[0]["generated_text"]
print(nlp("パソコンのキーボードは,なぜABC順・五十音順ではないのですか"))
短いプログラムなのだが、CPUメモリ64GBとNVIDIA A100-SXM4-40GBの組み合わせでも、4時間近くかかってしまった。結果はこんな感じ。
以下に、あるタスクを説明する指示があります。リクエストを適切に完了するための回答を記述してください。
### 指示:パソコンのキーボードは,なぜABC順・五十音順ではないのですか
### 応答:タイプライターを使っていた時代に、キーが詰まるのを防ぐため、使用頻度の高いキーを離して配置したためと言われています。
悲しい。まあ、モデルが大きくなるほど人間に近づくらしいので、こんなものなのかな。