適当にモデルをダウンロードして起動。今回は Mistral instruct 。
右上の歯車印で設定を開き、「Application」の「Download path」に gguf ファイルをおくとそのモデルが利用できるようになる。
例えば ELYZA-japanese-Llama-2-13b-fast-instruct-q4_km.gguf 等。Mistral でも日本語に応答はしてくれたけれど、ELYZA-japanese も日本語に応答してくれる。
で、gguf の入手の方法は Tutorial: How to convert HuggingFace model to GGUF format を参考にした。
で、オープンな日本語埋め込みモデルの選択肢 を参考に RAG 用に intfloat/multilingual-e5-* を取得して gguf に変換しようとしたのだけれど、
python ..\llama.cpp\convert.py tmp_data --outfile download\multilingual-e5-large.gguf --outty
pe q8_0
Loading model file tmp_data\model.safetensors
Traceback (most recent call last):
File "E:\Projects\llama.cpp\convert.py", line 1479, in <module>
main()
File "E:\Projects\llama.cpp\convert.py", line 1415, in main
model_plus = load_some_model(args.model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Projects\llama.cpp\convert.py", line 1278, in load_some_model
models_plus.append(lazy_load_file(path))
^^^^^^^^^^^^^^^^^^^^
File "E:\Projects\llama.cpp\convert.py", line 890, in lazy_load_file
return lazy_load_safetensors_file(fp, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Projects\llama.cpp\convert.py", line 869, in lazy_load_safetensors_file
model = {name: convert(info) for (name, info) in header.items() if name != '__metadata__'}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Projects\llama.cpp\convert.py", line 869, in <dictcomp>
model = {name: convert(info) for (name, info) in header.items() if name != '__metadata__'}
^^^^^^^^^^^^^
File "E:\Projects\llama.cpp\convert.py", line 857, in convert
data_type = SAFETENSORS_DATA_TYPES[info['dtype']]
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
KeyError: 'I64'
となって変換できない。
どうやら ここ によると、convert.py は float16, bfloat16, float32 からしか変更できないということで、これは Int 64 ということなのだろう。
結局、GUI は無いけれど、langchain + RAGで手元の資料(新たな情報)をllmに読み込ませる に従えばひとまず使えそう。