ollama/docs_ja/import.md
2024-02-05 19:05:38 +08:00

195 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Import a model
このガイドでは、GGUF、PyTorch、またはSafetensorsモデルのインポート手順について説明します。
## インポートGGUF
### ステップ1`Modelfile`を作成します
`Modelfile`を作成して始めましょう。このファイルは、モデルの設計図であり、重み、パラメータ、プロンプトテンプレートなどが指定されています。
```
FROM ./mistral-7b-v0.1.Q4_0.gguf
```
(オプション)多くのチャットモデルは、正しく回答するためにプロンプトテンプレートが必要です。`Modelfile`内の`TEMPLATE`指示でデフォルトのプロンプトテンプレートを指定できます:
```
FROM ./q4_0.bin
TEMPLATE "[INST] {{ .Prompt }} [/INST]"
```
### ステップ2Ollamaモデルを作成します。
最後に、あなたの `Modelfile` からモデルを作成してください:
```
ollama create example -f Modelfile
```
### ステップ3モデルを実行します。
次に、`ollama run`でモデルをテストします。
```
ollama run example "あなたのお気に入りの調味料は何ですか?"
```
## インポートPyTorchSafetensors
### サポートされているモデル
Ollamaは一連のモデルアーキテクチャをサポートしており、今後もサポートが拡充される予定です:
- Llama & Mistral
- Falcon & RW
- BigCode
モデルのアーキテクチャを確認するには、HuggingFaceリポジトリ内の`config.json`ファイルをチェックしてください。`architectures`のエントリーの下に(例:`LlamaForCausalLM`)が表示されるはずです。
### Step 1: HuggingFaceリポジトリをクローンするオプション
もしモデルが現在HuggingFaceリポジトリにホストされている場合、まずそのリポジトリをクローンして生のモデルをダウンロードしてください。
```
git lfs install
git clone https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1
cd Mistral-7B-Instruct-v0.1
```
### Step 2: `.bin` ファイルに変換および量子化オプション、PyTorchおよびSafetensors用
もしモデルがPyTorchやSafetensors形式の場合、[Dockerイメージ](https://hub.docker.com/r/ollama/quantize)が利用可能で、モデルを変換および量子化するための必要なツールが含まれています。
まず、[Docker](https://www.docker.com/get-started/)をインストールしてください。
次に、モデルを変換および量子化するために、以下を実行してください:
```
docker run --rm -v .:/model ollama/quantize -q q4_0 /model
```
これにより、ディレクトリに2つのファイルが出力されます
- `f16.bin`: GGUFに変換されたモデル
- `q4_0.bin`: 4ビットの量子化に変換されたモデルOllamaはこのファイルを使用してOllamaモデルを作成します
### Step 3: `Modelfile`の作成
次に、あなたのモデルに対する`Modelfile`を作成してください:
```
FROM ./q4_0.bin
```
(オプション)多くのチャットモデルは、正しく回答するためにはプロンプトのテンプレートが必要です。`Modelfile`内の`TEMPLATE`指示でデフォルトのプロンプトテンプレートを指定できます:
```
FROM ./q4_0.bin
TEMPLATE "[INST] {{ .Prompt }} [/INST]"
```
### Step 4: Ollamaモデルを作成します
最後に、`Modelfile` からモデルを作成します:
```
ollama create example -f Modelfile
```
### Step 5: モデルを実行する
次に、`ollama run` コマンドを使ってモデルをテストします:
```
ollama run example "What is your favourite condiment?"
```
## モデルの公開 (オプション アーリーアルファ段階)
モデルの公開はアーリーアルファ段階にあります。他の人と共有するためにモデルを公開したい場合は、以下の手順に従ってください:
1. [アカウント](https://ollama.ai/signup)を作成してください。
2. `cat ~/.ollama/id_ed25519.pub` を実行して、Ollamaの公開鍵を表示します。これをクリップボードにコピーします。
3. あなたの公開鍵を[Ollamaのアカウント](https://ollama.ai/settings/keys)に追加します。
次に、モデルをあなたのユーザー名の名前空間にコピーしてください:
```
ollama cp example <your username>/example
```
その後、モデルをプッシュしてください:
```
ollama push <your username>/example
```
公開後、あなたのモデルは `https://ollama.ai/<あなたのユーザー名>/example` で利用可能になります。
## 量子化リファレンス
量子化オプションは以下の通りです最高から最も低い量子化レベルまで。注意Falconなど一部のアーキテクチャはK quantsをサポートしていません。
- `q2_K`
- `q3_K`
- `q3_K_S`
- `q3_K_M`
- `q3_K_L`
- `q4_0` (推奨)
- `q4_1`
- `q4_K`
- `q4_K_S`
- `q4_K_M`
- `q5_0`
- `q5_1`
- `q5_K`
- `q5_K_S`
- `q5_K_M`
- `q6_K`
- `q8_0`
- `f16`
## モデルの手動変換と量子化
### 事前に必要
まず、`llama.cpp` レポジトリを別のディレクトリにマシンにクローンしてください:
```
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
```
次に、Pythonの依存関係をインストールしてください:
```
pip install -r requirements.txt
```
最後に、`quantize` ツールをビルドしてください:
```
make quantize
```
### モデルを変換する
あなたのモデルのアーキテクチャに対応した変換スクリプトを実行してください:
```shell
# LlamaForCausalLM または MistralForCausalLM
python convert.py <path to model directory>
# FalconForCausalLM
python convert-falcon-hf-to-gguf.py <path to model directory>
# GPTBigCodeForCausalLM
python convert-starcoder-hf-to-gguf.py <path to model directory>
```
### モデルを量子化する
```
quantize <path to model dir>/ggml-model-f32.bin <path to model dir>/q4_0.bin q4_0
```