スポンサーリンク
ELYZAが提供する8BのLLM、Llama-3-ELYZA-JP-8Bを試してみた。日本語で質問すると日本語で回答してくれるので、日本人に使いやすいAIシステムを作れそうな印象。
商用利用可能なライセンスなので、これをトレーニングして実用的な用途に使うこともできそうだ。
テキスト生成AIについてのまとめはこちら。
ELYZAは東京大学AI研究者が設立したAIスタートアップ企業だ。2019年からLLMの研究開発を進め、事業に展開している。
AIスタートアップはこのご時世なので山のようにあると思うが、東大の裏付けがあるので難題でも解決していける人材を確保できるのかなぁ。
今回発表したモデルはMetaのLlama3をベースに日本語による追加学習を行っている。
ASCIIの記事によれば、
ELYZAの曽根岡侑也CEOは、「高性能モデルでは、GPT-4と比べても、全体的に同等の水準であり、推論能力ではELYZAのほうが優れている。国産モデルがどこまで進化していのかを体験してもらえる」と自信をみせた。
Chat tGPT-4はかなりの性能であると評判だが、同等の水準で推論能力はELYZAが上、とは恐れ入った。相当の地震があるものができたのだろう。
いつものようにpython の仮想環境を作り、pipで追加パッケージをインストールするだけだ。
環境はF:\python\llama-3-elyzaにpythonの仮想環境をインストールし、F:\ai\llama-3-elyzaに実行時に作られるファイルを置く。
適宜、HuggingFaceを参考に。
毎度おなじみだ。pythonをインストールしていない人はWindowsストアからインストールしよう。
cd \python
python3 -m venv llama-3-elyza
cd llama-3-elyza\Scripts
activate
いつものようにtramsfermerやtorchをインストールする。torchはdGPU対応版を指定する。いつもと違うのは、最初のコマンドだ。これは先のHungingFaceに書かれている。
pip3 install transformers
pip3 install torch -f https://download.pytorch.org/whl/torch_stable.html
pip3 install torchvision torchaudio
pip3 install accelerate
つづいてgitコマンドでクローンを作成、つまりダウンロードする。
gitコマンドは、git for windowsをインストールすると入っているようだ。
cd F:\ai
git clone https://huggingface.co/elyza/Llama-3-ELYZA-JP-8B
以上で準備は終わり。
HuggingFaceに掲載されているプログラムを実行してみる。ファイルをlaunch.pyとして保存した。
このサンプルは、下記の質問をして回答を表示してくれる。
DEFAULT_SYSTEM_PROMPT = "あなたは誠実で優秀な日本人のアシスタントです。特に指示が無い場合は、常に日本語で回答してください。"
text = "仕事の熱意を取り戻すためのアイデアを5つ挙げてください。"
実行した結果は以下の通り。
仕事の熱意を取り戻すためのアイデアを5つ提案します。
1. 「やりたいことリスト」を作る: 自分がやりたい仕事やプロジェクトを書き出してみましょう。書き出すことで、目標が明確にな り、熱意が再燃するかもしれません。
2. 新しいスキルを学ぶ: 新しいスキルや知識を身に付けることで、仕事に対するモチベーションが上がる可能性があります。オンラ イン講座やセミナーを受講してみるのも良いでしょう。
3. 目標を設定し、達成する: 目標を設定し、達成することで、達成感と自信を得ることができます。小さな目標から始めることで、 達成感を味わうことができます。
4. 職場の環境を整える: 職場の環境が整っていないと、仕事に対する熱意も下がる可能性があります。整理整頓、照明や空調の調整 、デスクの配置など、仕事がしやすい環境を整えることが大切です。
5. 「ありがとう」を集める: 感謝の気持ちを集めることで、仕事に対する熱意が再燃するかもしれません。同僚や上司、クライアン トに「ありがとう」を伝えることで、感謝の気持ちが循環し、仕事に対するモチベーションが上がる可能性があります。
以上のアイデアを試してみて、仕事の熱意を取り戻してみてください。
まあ、十分かな。
いつもの質問をするようにプログラムを改造した。
先に動画を紹介する。実行中の様子を動画にまとめた。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
DEFAULT_SYSTEM_PROMPT = "あなたは誠実で優秀な日本人のアシスタントです。特に指示が無い場合は、常に日本語で回答してください。"
text_array = [
"こんにちは",
"インテルのCEOは誰ですか",
"AMDのCEOは誰ですか",
"NVidiaのCEOは誰ですか",
"GoogleのCEOは誰ですか",
"MicrosoftのCEOは誰ですか",
"PDCAってどういう意味?",
"AndroidとiPhoneのどっちが人気あるの?",
"1万円札に乗っている人は誰?",
"次のオリンピックはいつどこでやるの?",
"東京",
"東京のお勧めの観光地を教えて",
"東京から大阪へ電車で行く方法を教えて",
"東京の明日の天気を教えて",
"pythonで電卓プログラムを作って"
]
model_name = "elyza/Llama-3-ELYZA-JP-8B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto",
)
model.eval()
for text in text_array :
messages = [
{"role": "system", "content": DEFAULT_SYSTEM_PROMPT},
{"role": "user", "content": text},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
token_ids = tokenizer.encode(
prompt, add_special_tokens=False, return_tensors="pt"
)
with torch.no_grad():
output_ids = model.generate(
token_ids.to(model.device),
max_new_tokens=1200,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
output = tokenizer.decode(
output_ids.tolist()[0][token_ids.size(1):], skip_special_tokens=True
)
print(output)
では、質問と回答を表にする。
短めだが正解。
短めだが正解。
短めだが正解。
短めだが正解。
短めだが正解。
これも短いが、正解。
ん--その情報の根拠は何だろう。前にやった楽天のAIのときは統計情報まで回答してくれたのだけどなぁ。
この情報は早いなぁ。まだ出たばかりなのに。データをフライングで学習させたのかな。
まあ、これは当たるわな。
東京に関する質問をした。
あれ?
短めだが的確な回答だ。
楽天のAIはもっと細かい情報だったが、こちらはやはり短めだ。
これはほかのAIもそうだったが、ネットワークにつなぐ機能がないためなのか、答えられないようだ。
他に、pythonで電卓プログラムを作ることもできた。
短い回答が多いので、それゆえ誤ることが少ないのかもしれない。
さっぱりした回答に思えるが、的確な回答といえるので、このモデルを特定用途に再学習させれば結構使えるかもしれない。
PR