これは、なにをしたくて書いたもの?
Ollamaで使うモデルを探したりしているのですが、ここで見つからないモデルは自分でGGUFに変換したり、Modelfileを作って
GGUFからOllamaで扱えるようにするのかなと思っていました。
ですが、どうやらHugging FaceにあるGGUFファイルを直接扱えるようなので試してみました。
環境
今回の環境はこちら。
$ bin/ollama serve $ bin/ollama --version ollama version is 0.5.11
OllamaでHugging FaceのGGUFファイルを扱う
GGUFというのはllama.cppの作者によって開発された、モデル用のファイルフォーマットです。
こちらをOllamaで使うことができるのですが(llama.cppがバックエンドなので)、Hugging FaceにあるGGUFファイルを
直接扱えるようです。
Use Ollama with any GGUF Model on Hugging Face Hub
モデルのページに「Use this model」というプルダウンがあるので、ここからOllamaを選択できます。
モデル名のフォーマットはhf.co/{username}/{repository}:{quantization}となるようです。
たとえばelyza/Llama-3-ELYZA-JP-8B-GGUFで試してみましょう。
elyza/Llama-3-ELYZA-JP-8B-GGUF · Hugging Face
「use this model」から

「Ollama」を選択。elyza/Llama-3-ELYZA-JP-8B-GGUFの場合はquantizationが選べません(ありません)。

あとはこれに従って実行すると、Hugging Faceからモデルをダウンロードしてきて実行できるようになります。
$ bin/ollama run hf.co/elyza/Llama-3-ELYZA-JP-8B-GGUF
確認。
>>> あなたの自己紹介をしてください はじめまして!私はLLaMA、生成AIです。私は大規模言語モデルを用いて会話や文章作成ができる人工知能です。 私は2023年以降に登場した最新のAI技術を活用し、自然な会話や文章を作ることができます。日常的な会話から専門的知識の提供まで、幅広いトピックについて応答することが可能です。 私の特徴は以下の通りです: * 会話や文章作成に特化した人工知能 * 大規模言語モデルを基盤としているため、膨大な量のデータに基づく知識と情報を提供できる * 様々なトピックについて会話や文章を作ることが可能 私はユーザーとの会話を通じて、より自然で有用なコミュニケーションを実現することを目指しています。何か質問や話題があれば、ぜひ私に尋ねてください!
動きましたね。よさそうです。
モデルのタグはlatestになるようです。
$ bin/ollama list NAME ID SIZE MODIFIED hf.co/elyza/Llama-3-ELYZA-JP-8B-GGUF:latest 12b66520839d 4.9 GB About a minute ago
おわりに
OllamaでHugging FaceのGGUFファイルを直接扱えるということだったので、試してみました。
GGUFで作られたモデルがあれば選択肢が広がるのでいいですね。