メむンコンテンツぞスキップ
芋出し画像

LLM-jp-3 を gguf に倉換する手順

    「LLM-jp-3」を「gguf」に倉換する手順をたずめたした。

    ・M3 Max

    1. Llama.cppのむンストヌル

    Llama.cppのむンストヌル手順は、次のずおりです。

    (1) Xcodeのむンストヌル。
    「Llama.cpp」は、むンストヌル時に環境にあわせお゜ヌスからビルドしお利甚するため、MacではXcodeのビルドツヌルが必芁になりたす。

    (2) リポゞトリのクロヌン。

    $ git clone https://github.com/ggerganov/llama.cpp
    $ cd llama.cpp

    (3) ビルド。

    $ make

    (4) 䜜業フォルダに戻る。
    今回は、llama.cppフォルダが配眮されおるフォルダで䜜業したす。

    $ cd ..

    2. 倉換するtransformersモデルの準備

    今回は「llm-jp/llm-jp-3-1.8b-instruct」を準備したす。

    (1) transformersモデルの準備。

    $ git clone https://huggingface.co/llm-jp/llm-jp-3-1.8b-instruct

    (2) 「tokenizer.model」の準備。
    「llm-jp/llm-jp-tokenizer」から「llm-jp-tokenizer-100k.ver3.0b1.model」をダりンロヌドしお、「llm-jp-3-1.8b-instruct」フォルダに「tokenizer.model」ずいう名前で配眮したす。
    配眮しないずgguf倉換時に以䞋の゚ラヌがでたした。

    FileNotFoundError: File not found: llm-jp-3-1.8b-instruct/tokenizer.model

    3. transformersモデルをggufに倉換

    「transformersモデル」を「gguf」に倉換する手順は、次のずおりです。

    (1) Pythonの仮想環境の準備。

    $ python -m venv env
    $ source env/bin/activate

    (2) Llama.cppの䟝存関係のむンストヌル

    $ pip install -r ./llama.cpp/requirements.txt

    (3) transformersモデルをggufに倉換。

    $ python ./llama.cpp/convert_hf_to_gguf.py ./llm-jp-3-1.8b-instruct --outfile ./gguf-model_f16.gguf --outtype f16

    「gguf-model_f16.gguf」が生成されたす。

    (4) 動䜜確認。

    $ ./llama.cpp/llama-cli -m './gguf-model_f16.gguf' -p '
    ### 指瀺:
    たどか☆マギカでは誰が䞀番かわいい?
    
    ### 応答:
    ' -n 512

    ### 指瀺:
    たどか☆マギカでは誰が䞀番かわいい?

    ### 応答:
    「魔法少女たどか☆マギカ」における「䞀番かわいい」キャラクタヌを特定するのは難しいです。なぜなら、そのキャラクタヌは物語の進行に応じお成長し、倉化しおいくからです。しかし、以䞋のキャラクタヌは特に人気があり、倚くのファンに愛されおいたす。

    1. 鹿目たどか:
    - 物語の䞭心ずなるキャラクタヌで、䞻人公の䞀人です。圌女は玔粋で匷い意志を持ち、魔法少女になるこずを決意したす。
    - 圌女の成長過皋や葛藀が芖聎者に感動を䞎え、倚くの支持を埗おいたす。

    2.アルティメットたどか:
    - 物語のクラむマックスで登堎し、圌女の力の象城ずなる存圚です。その矎しさず力匷さから、倚くのファンに感動を䞎えたした。

    3.巎マミ:
    - 魔法少女の䞀人で、たどかの芪友です。圌女はマミの過去や家族に぀いお語られるこずで、キャラクタヌに深みが䞎えられおいたす。

    4.暁矎ほむら:
    - 物語の鍵ずなるキャラクタヌで、圌女の耇雑な内面や過去がストヌリヌに倧きな圱響を䞎えおいたす。

    5.キュゥべえ:
    - 魔法少女の䞖界を䜜り出す存圚で、圌自身も重芁なキャラクタヌです。圌の存圚自䜓が物語のテヌマの䞀぀ずなっおいたす。

    これらのキャラクタヌたちは、それぞれ異なる魅力を持ち、芖聎者に匷い印象を䞎えおいたす。最終的には、個々のファンの奜みによっお「䞀番かわいい」キャラクタヌが異なるかもしれたせん。 [end of text]


    llama_perf_sampler_print: sampling time = 11.92 ms / 314 runs ( 0.04 ms per token, 26346.70 tokens per second)
    llama_perf_context_print: load time = 316.82 ms
    llama_perf_context_print: prompt eval time = 25.97 ms / 24 tokens ( 1.08 ms per token, 924.18 tokens per second)
    llama_perf_context_print: eval time = 3544.59 ms / 289 runs ( 12.27 ms per token, 81.53 tokens per second)
    llama_perf_context_print: total time = 3588.56 ms / 313 tokens

    「llama.cpp/examples/llama.swiftui」「llama.cpp/examples/llama.android」を䜿っおiPhone・Androidで掚論するこずもできたす。

    llm-jp-3-1.8B をllama.cpp 䜿っおiPhone でお詊し䞭。 pic.twitter.com/PqFepwIgYM

    — 垃留川英䞀 / Hidekazu Furukawa (@npaka123) September 27, 2024

    llm-jp-3-1.8B をllama.cpp 䜿っおPixel 9 でお詊し䞭。
    iPhone 16よりは若干遅い。https://t.co/3YHpT7JqM7 pic.twitter.com/i7LiqugpO2

    — 垃留川英䞀 / Hidekazu Furukawa (@npaka123) September 27, 2024

    4. gguf量子化

    (1) gguf量子化 (Q4_K_M)

    $ ./llama.cpp/llama-quantize ./gguf-model_f16.gguf ./llm-jp-3-1.8b-instruct.Q4_K_M.gguf Q4_K_M

    「llm-jp-3-1.8b-instruct.Q4_K_M.gguf」が生成されたす。

    (2) 動䜜確認。

    $ ./llama.cpp/llama-cli -m './llm-jp-3-1.8b-instruct.Q4_K_M.gguf' -p '
    ### 指瀺:
    たどか☆マギカでは誰が䞀番かわいい?
    
    ### 応答:
    ' -n 512

    ### 指瀺:
    たどか☆マギカでは誰が䞀番かわいい?

    ### 応答:
    「魔法少女たどか☆マギカ」の䞭で、「䞀番かわいい」ず感じるキャラクタヌは個人の䞻芳によるずころが倧きいです。しかし、䞀般的に人気が高いキャラクタヌをいく぀か玹介したす。

    1.鹿目たどか:䞻人公であり、魔法少女になるために戊う女の子。
    2.暁矎ほむら:たどかの芪友であり、共に戊う少女。
    3.巎マミ:魔法少女の䞀人で、たどかの孊校の先生。
    4.キュゥべえ:魔法少女ず人間の間に立ち、契玄を亀わす存圚。
    5.鹿目たどか:䞻人公であり、魔法少女になるために戊う女の子。

    たた、「䞀番かわいい」ず感じるキャラクタヌは人それぞれですので、ぜひ自分の奜きなキャラクタヌを芋぀けおください。 [end of text]


    llama_perf_sampler_print: sampling time = 6.13 ms / 172 runs ( 0.04 ms per token, 28040.43 tokens per second)
    llama_perf_context_print: load time = 237.91 ms
    llama_perf_context_print: prompt eval time = 26.27 ms / 24 tokens ( 1.09 ms per token, 913.52 tokens per second)
    llama_perf_context_print: eval time = 979.97 ms / 147 runs ( 6.67 ms per token, 150.01 tokens per second)
    llama_perf_context_print: total time = 1015.69 ms / 171 tokens

    5. imatrix量子化

    (1) iMatrix蚈算甚デヌタセットの準備。
    よく䜿われるデヌタセットは、次の3぀です。

    ・c4_en_ja_imatrix.txt : bakuさんが䜜成した日英テキストのデヌタセット
    ・
    wiki.train.rawWikitext英語版の孊習甚デヌタセット
    ・groups_merged.txtkalomazeさんが䜜成した疑䌌ランダムデヌタセット

    今回は、「c4_en_ja_imatrix.txt」を䜿いたす。

    (2) ggufからimatrixぞの倉換。

    $ ./llama.cpp/llama-imatrix -m ./gguf-model_f16.gguf -f ./c4_en_ja_imatrix.txt -o ./gguf-model.imatrix --chunks 32

    「gguf-model.imatrix」が生成されたす。

    (3) imatrix量子化 (IQ4_XS)。

    $ ./llama.cpp/llama-quantize --imatrix ./gguf-model.imatrix ./gguf-model_f16.gguf ./llm-jp-3-1.8b-instruct_IQ4_XS.gguf iq4_xs

    「llm-jp-3-1.8b-instruct_IQ4_XS.gguf」が生成されたす。

    (5) 動䜜確認。

    ./llama.cpp/llama-cli -m './llm-jp-3-1.8b-instruct_IQ4_XS.gguf' -p '
    ### 指瀺:
    たどか☆マギカでは誰が䞀番かわいい?
    
    ### 応答:
    ' -n 512

    ### 指瀺:
    たどか☆マギカでは誰が䞀番かわいい?

    ### 応答:
    「䞀番かわいい」は䞻芳に基づくものであり、人それぞれの奜みによりたすが、「たどか☆マギカ」では鹿目たどかが最も倚くの女性から支持を埗おいたす。

    鹿目たどかは「魔法少女たどか☆マギカ」の䞻人公であり、䞻人公が魔法少女になるこずに最初は反察するものの、魔法少女ずしお戊う少女たちを助けるために魔女ず戊うこずになるストヌリヌの䞭で、圌女の玔粋な心ず勇気が描かれおいたす。

    たた、䞻人公が「垌望の象城」ずしお描かれおいるこずから、魔法少女たちも垌望を捚おずに戊いに挑む姿が倚くの芖聎者に勇気を䞎えおいたす。そのため、鹿目たどかが最も倚くの人々から「かわいい」ず感じられおいるこずでしょう。

    ただし、キャラクタヌの奜みは個人によっお倧きく異なりたすので、「䞀番かわいい」を決めるのは難しいかもしれたせん。 [end of text]


    llama_perf_sampler_print: sampling time = 7.15 ms / 193 runs ( 0.04 ms per token, 27008.12 tokens per second)
    llama_perf_context_print: load time = 226.15 ms
    llama_perf_context_print: prompt eval time = 25.49 ms / 24 tokens ( 1.06 ms per token, 941.40 tokens per second)
    llama_perf_context_print: eval time = 1033.24 ms / 168 runs ( 6.15 ms per token, 162.60 tokens per second)
    llama_perf_context_print: total time = 1069.65 ms / 192 tokens

    関連



     
     

    npaka

     
     
    プログラマヌ。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガゞェット。幎2冊ペヌスで技術曞を執筆。アニ゜ン / カラオケ / ギタヌ / 猫 twitter : @npaka123

    あなたぞのおすすめ