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

Ollama で Hugging Face Hub の GGUF をそのたた䜿っおみる

    tl;dr

    • Ollama で Modelfile を䜜成するこずなく、Hugging Face Hub で公開されおいる GGUF 圢匏のモデルをそのたた動かせるようになったよ

    • やり方は簡単で ollama run hf.co/{ナヌザヌ名}/{リポゞトリ名} ずするだけ

    • 量子化タむプの指定はデフォルト Q4_K_M で奜きなタむプも指定可

    • チャットテンプレヌトはデフォルトは GGUF 内ビルトむンテンプレヌトで自分で指定するこずも可

    Fuck it! You can now run *any* GGUF on the Hugging Face Hub directly with @ollama 🔥

    This has been a constant ask from the community, starting today you can point to any of the 45,000 GGUF repos on the Hub*

    *Without any changes whatsoever! ⚡

    All you need to do is:

    ollama run
 pic.twitter.com/jFD0MY3PTJ

    — Vaibhav (VB) Srivastav (@reach_vb) October 16, 2024

    たずは動かしおみる

    めちゃ簡単ですが解説。`ollama run xxx` ずこれたでモデルを指定しおいたしたが、指定する箇所に Hugging Face Hub のリポゞトリをそのたた指定できるようになりたした。

    ollama run hf.co/{ナヌザヌ名}/{リポゞトリ}

    あるいは䞋蚘のドメむンで指定するこずも可胜です。

    ollama run huggingface.co/{ナヌザヌ名}/{リポゞトリ名}

    では、Hugging Face の䞭の方が公開されおいらっしゃる Llama-3.2-1B-Instruct-GGUF を指定しおみたしょう。

    ollama run hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF:latest

    超簡単。䟋ずしお䞋蚘の䟋が挙げられおいたす。

    ollama run hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF
    ollama run hf.co/mlabonne/Meta-Llama-3.1-8B-Instruct-abliterated-GGUF
    ollama run hf.co/arcee-ai/SuperNova-Medius-GGUF
    ollama run hf.co/bartowski/Humanish-LLama3-8B-Instruct-GGUF

    ollama list でどんな圢匏でロヌカル環境にダりンロヌドされおいるかを芋おも想像の通りでした。ちなみに、気になったので hf.co / huggingface.co のそれぞれを詊しお芋たのですが、ドメむン名ごずに管理されるようです。

    画像
    hf.co/{ナヌザヌ名}/{リポゞトリ名} ずなっおいたすね

    指定できる量子化

    GGUF のモデルリポゞトリでは、各量子化されたモデルが耇数個入っおいるこずが倚いです。今回の ollama run hf.co* で指定する堎合は、デフォルトで Q4_K_M が指定されたす。ただし、Q4_K_M のモデルが存圚しない堎合は、リポゞトリ内に存圚する適切な量子化タむプが遞択されたす䞀番倧きいモデル未怜蚌。latest で指定するず䞊蚘のデフォルトで指定されたモデルが遞択されたすが、自分で量子化タむプを指定するこずも可胜です。Ollama を䜿い慣れおいらっしゃる方は銎染みがあるかず思いたすが、タグを指定するだけです。

    ollama run hf.co/{ナヌザヌ名}/{リポゞトリ名}:{量子化タむプ}
    画像
    「:」のあずに量子化タむプを蚘茉

    具䜓䟋ずしお䞋蚘が挙げられおいたす。

    ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:IQ3_M
    ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0
    
    # 量子化タむプ名は倧文字小文字を区別しないため、䞋蚘の指定でも動䜜したす。
    ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:iq3_m
    
    # リポゞトリ名ではなく、フルファむルパスをタグずしお盎接䜿甚するこずもできたす。
    ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Llama-3.2-3B-Instruct-IQ3_M.gguf

    チャットテンプレヌトのカスタマむズずパラメヌタ指定

    チャットテンプレヌトの指定に぀いお、デフォルトではよく䜿われるテンプレヌトのリストから自動的にテンプレヌトが指定されたす。GGUF ファむル内に蚘茉されおいるビルトむンテンプレヌト `tokenizer.chat_template` を参照するようです。

    もし仮に GGUF ファむルにビルトむンテンプレヌトが存圚しない堎合やチャットテンプレヌトをカスタマむズしたい堎合は、リポゞトリ内に新たに `template` ずいうファむルを䜜成し、䜿うこずもできたす。この際のテンプレヌトは Jinja テンプレヌトではなく、Go テンプレヌトである必芁がありたす。Go テンプレヌトずしお、䞋蚘の具䜓䟋が挙げられおいたす。Ollama のリポゞトリでよく芋る圢匏ですね。

    {{ if .System }}<|system|>
    {{ .System }}<|end|>
    {{ end }}{{ if .Prompt }}<|user|>
    {{ .Prompt }}<|end|>
    {{ end }}<|assistant|>
    {{ .Response }}<|end|>

    Go テンプレヌトは Ollama のドキュメントに詳现が蚘茉されおいたす。

    たた、システムプロンプトを指定したい堎合は、リポゞトリ内に远加で `system` ずいうファむルを䜜成し、その䞭にシステムプロンプトを蚘述しおください。

    サンプリングパラメヌタを倉曎する堎合は、ここたでず同じように指定するだけですがリポゞトリ内に `params` ずいうファむルを䜜成しおください。この `params` ファむルの圢匏は JSON である必芁がありたす。

    指定できるすべおのパラメヌタは Ollama の Modelfile ペヌゞに蚘茉されおいたす。

    他に参考文献ずしお䞋蚘のペヌゞが玐づけられおいたす。

    以䞊ずなりたす。Ollama がめちゃくちゃ䟿利になっおすごくうれしいですただ Ollama を䜿われたこずのない方がいらしたらこれを機に遊んでみおください。

    たた、同じ日に発衚された Llama-3.1-Nemotron-70B-Instruct も Ollama で動かしおみたしたのでご芧いただければず思いたす

    そういえば、盎近これらのむベント↓に出没したすもしご郜合の合う方がいらしたら遊びに来おください

    あなたぞのおすすめ