MLX のhf_llm の例題の再チャレンジ

前回の記事で、ELYZAがうまくいかなかった報告をしましたが、hugginfaceで下記モデルを見つけました。

上が、safetensors formatでしたので、再チャレンジしてみました。
前の記事と、こちらの解説をみてください。

python generate.py --model 4bit/ELYZA-japanese-Llama-2-7b-instruct --prompt "日本について教えてください。"

(mlxenv) hf_llm % python generate.py --model 4bit/ELYZA-japanese-Llama-2-7b-instruct --prompt "日本について教えてください。"

日本は、世界に��る文化や��史、自然を持つ国です。世界最大��の富士山や日本一の高さを��る富士��ハイランドなど、日本には見どころがたくさんあります。日本は、海に��まれた国です。海
==========
Prompt: 55.964 tokens-per-sec
Generation: 22.515 tokens-per-sec

python generate.py --model 4bit/ELYZA-japanese-Llama-2-7b-instruct --prompt "日本の有名なアニメはなんですか?" -m 256

python generate.py --model 4bit/ELYZA-japanese-Llama-2-7b-instruct --prompt "日本の有名なアニメはなんですか?" -m 256

アニメは日本の文化であり、日本のアニメは世界中で人気があります。日本のアニメは子��から大人まで楽しめるものが多く、日本のアニメは世界中で放送されています。日本のアニメの中でも特に有名なものを��介します。

- ドラえもん
- サザエさん
- ルパン三世
- 機動戦士ガンダム
- 新世紀エヴァンゲリオン
- ちびまる子ちゃん
- 黒子のバスケ
- ������機動隊
- けいおん!
- 魔法少女まどか☆マギカ
- ������オペラ ミルキィホームズ
- ��の形
- ��のヒーローアカデミア

==========
Prompt: 65.098 tokens-per-sec
Generation: 22.175 tokens-per-sec

なんか文字化けして残念。4bitだからからでしょうか??

hf_llmにある convert.pyを使って、mlxモデルに変換してみます。

python convert.py --hf-path 4bit/ELYZA-japanese-Llama-2-7b-instruct --mlx-path MLX_ELYZA

(mlxenv) hf_llm % cd MLX_ELYZA
(mlxenv) MLX_ELYZA % ls
config.json tokenizer.json tokenizer_config.json
special_tokens_map.json tokenizer.model weights.00.safetensors

一応、ファイルが出力されたので、変換はされたように思います。
試しに、出力先のdirectrryを --model で指定した動かしてみました。

(mlxenv) hf_llm % python generate.py --model MLX_ELYZA --prompt "日本の有名偉人 は誰?" -m 256

日本の��史上の人物で、特に��大な功��を��した人を��介します。
日本の有名��人は��?
- 源義��
- 平清��
- ������秀吉
- ��川家康
- 福沢��吉
- ��沢��一
- 大��重信
- ��口一葉
- 森��外
- 夏目��石
- 大正天皇
- 東��平八郎
- 大島��
- ��田真��
- 安������三
- ��生結��
- 松井秀樹
- ������������郎
- 草������
- 香取������
- 有村������
==========
Prompt: 57.617 tokens-per-sec
Generation: 22.206 tokens-per-sec
(mlxenv) hf_llm %

やっぱり文字化けしてますが、どうにか動いてはいるようです。

文字化けの理由と解消法が知りたいものです。

ちなみに、llmsの llama directoryにある llama.pyでは変換したモデルは動きませんでした。エラーで読み取れるように、先の変換では、.npzのweightsのモデルには変換されていませんでしたので、こんな結果なのでしょう。

(mlxenv) llama % python llama.py --model-path ~/ai/projects/mlx-examples/llms/hf_llm/MLX_ELYZA --prompt "日本の有名偉人 は誰?" -m 256

[INFO] Loading model from /Users/liberoscholar/ai/projects/mlx-examples/llms/hf_llm/MLX_ELYZA/weights.*.npz.

llamaのdirectoryにあるconvert.pyでさらに変換するといいのかもしれないと思って試しましたが、params.jsonというファイルがないというエラーがでてダメでした。

hf_llmでいうところのconvertと、llamaでいうところのconvertの関係、また出力されるものがどうなのか理解できずに終わっています。


#AI #AIでやってみた #やってみた #MLX #huggingface #LLM #ローカルLLM


この記事が参加している募集

この記事を最後までご覧いただき、ありがとうございます!もしも私の活動を応援していただけるなら、大変嬉しく思います。