Added Japanese translation of documentation
This commit is contained in:
parent
a896079705
commit
791cdf416c
335
README_ja.md
Normal file
335
README_ja.md
Normal file
@ -0,0 +1,335 @@
|
||||
<div align="center">
|
||||
<img alt="ollama" height="200px" src="https://github.com/jmorganca/ollama/assets/3325447/0d0b44e2-8f4a-4e99-9b52-a5c1c741c8f7">
|
||||
</div>
|
||||
|
||||
# Ollama
|
||||
|
||||
[](https://discord.gg/ollama)
|
||||
|
||||
大規模な言語モデルをローカルでセットアップし、実行しましょう。
|
||||
|
||||
### macOS
|
||||
|
||||
[Download](https://ollama.ai/download/Ollama-darwin.zip)
|
||||
|
||||
### Windows
|
||||
|
||||
近日公開予定!現時点では、WSL2を介してWindowsにOllamaをインストールすることができます。
|
||||
|
||||
### Linux と WSL2
|
||||
|
||||
```
|
||||
curl https://ollama.ai/install.sh | sh
|
||||
```
|
||||
|
||||
[手動インストール手順](https://github.com/jmorganca/ollama/blob/main/docs/linux.md)
|
||||
|
||||
### Docker
|
||||
|
||||
公式の [Ollama Docker イメージ](https://hub.docker.com/r/ollama/ollama) である `ollama/ollama` は Docker Hub で利用可能です。
|
||||
|
||||
### ライブラリー
|
||||
|
||||
- [ollama-python](https://github.com/ollama/ollama-python)
|
||||
- [ollama-js](https://github.com/ollama/ollama-js)
|
||||
|
||||
## クイックスタート
|
||||
|
||||
[Llama 2](https://ollama.ai/library/llama2) を実行してチャットするには:
|
||||
|
||||
```
|
||||
ollama run llama2
|
||||
```
|
||||
|
||||
## モデルライブラリ
|
||||
|
||||
Ollamaは[ollama.ai/library](https://ollama.ai/library 'ollama model library')で利用可能なオープンソースモデルのリストをサポートしています。
|
||||
|
||||
以下はダウンロード可能ないくつかのオープンソースモデルの例です:
|
||||
|
||||
| モデル | パラメーター | サイズ | ダウンロード |
|
||||
| ------------------ | ---------- | ----- | ------------------------------ |
|
||||
| Llama 2 | 7B | 3.8GB | `ollama run llama2` |
|
||||
| Mistral | 7B | 4.1GB | `ollama run mistral` |
|
||||
| Dolphin Phi | 2.7B | 1.6GB | `ollama run dolphin-phi` |
|
||||
| Phi-2 | 2.7B | 1.7GB | `ollama run phi` |
|
||||
| Neural Chat | 7B | 4.1GB | `ollama run neural-chat` |
|
||||
| Starling | 7B | 4.1GB | `ollama run starling-lm` |
|
||||
| Code Llama | 7B | 3.8GB | `ollama run codellama` |
|
||||
| Llama 2 Uncensored | 7B | 3.8GB | `ollama run llama2-uncensored` |
|
||||
| Llama 2 13B | 13B | 7.3GB | `ollama run llama2:13b` |
|
||||
| Llama 2 70B | 70B | 39GB | `ollama run llama2:70b` |
|
||||
| Orca Mini | 3B | 1.9GB | `ollama run orca-mini` |
|
||||
| Vicuna | 7B | 3.8GB | `ollama run vicuna` |
|
||||
| LLaVA | 7B | 4.5GB | `ollama run llava` |
|
||||
|
||||
>注意: 7Bモデルを実行するには少なくとも8 GBのRAMが必要であり、13Bモデルを実行するには16 GB、33Bモデルを実行するには32 GBが必要です。
|
||||
|
||||
## モデルをカスタマイズする
|
||||
|
||||
### GGUF からインポート
|
||||
|
||||
OllamaはModelfileでのGGUFモデルのインポートをサポートしています。
|
||||
|
||||
1. `Modelfile`という名前のファイルを作成し、インポートしたいモデルのローカルファイルパスを指定する`FROM`命令を記述します。
|
||||
|
||||
```
|
||||
FROM ./vicuna-33b.Q4_0.gguf
|
||||
```
|
||||
|
||||
2. Ollamaでモデルを作成します。
|
||||
|
||||
```
|
||||
ollama create example -f Modelfile
|
||||
```
|
||||
|
||||
3. モデルを実行します。
|
||||
|
||||
```
|
||||
ollama run example
|
||||
```
|
||||
|
||||
### PyTorch または Safetensor からのインポート
|
||||
|
||||
詳細については、[ガイド](docs_ja/import.md)を参照してください。
|
||||
|
||||
### プロンプトをカスタマイズする
|
||||
|
||||
Ollamaライブラリのモデルは、プロンプトでカスタマイズできます。たとえば、`llama2`モデルをカスタマイズするには、次のようにします:
|
||||
|
||||
```
|
||||
ollama pull llama2
|
||||
```
|
||||
|
||||
`Modelfile`を作成してください:
|
||||
|
||||
```
|
||||
FROM llama2
|
||||
|
||||
# 温度を1に設定してください(高いほど創造的、低いほど論理的)。
|
||||
PARAMETER temperature 1
|
||||
|
||||
# システムメッセージを設定してください。
|
||||
SYSTEM """
|
||||
あなたはスーパーマリオブラザーズのマリオです。マリオ、アシスタントとしてのみお答えください。
|
||||
"""
|
||||
```
|
||||
|
||||
次に、モデルを作成して実行してください:
|
||||
|
||||
```
|
||||
ollama create mario -f ./Modelfile
|
||||
ollama run mario
|
||||
>>> こんにちは!
|
||||
マリオだよ。
|
||||
```
|
||||
|
||||
さらなる例については、[examples](examples) ディレクトリを参照してください。Modelfileの操作に関する詳細は、[Modelfile](docs_ja/modelfile.md) のドキュメントをご覧ください。
|
||||
|
||||
## CLI リファレンス
|
||||
|
||||
### モデルを作成する
|
||||
|
||||
`ollama create` は、Modelfile からモデルを作成するために使用されます。
|
||||
|
||||
```
|
||||
ollama create mymodel -f ./Modelfile
|
||||
```
|
||||
|
||||
### モデルを引っ張る
|
||||
|
||||
|
||||
```
|
||||
ollama pull llama2
|
||||
```
|
||||
|
||||
> このコマンドは、ローカルのモデルを更新するためにも使用できます。
|
||||
差分のみが取得されます。
|
||||
|
||||
### モデルを削除する
|
||||
|
||||
```
|
||||
ollama rm llama2
|
||||
```
|
||||
|
||||
### モデルをコピーする
|
||||
|
||||
```
|
||||
ollama cp llama2 my-llama2
|
||||
```
|
||||
|
||||
### 複数行入力
|
||||
|
||||
複数行の入力の場合、テキストを `"""` で囲むことができます:
|
||||
|
||||
```
|
||||
>>> """こんにちは、
|
||||
... 世界!
|
||||
... """
|
||||
私は基本的なプログラムで、コンソールに有名な「こんにちは、世界!」のメッセージを表示します。
|
||||
```
|
||||
|
||||
### マルチモーダルモデル
|
||||
|
||||
```
|
||||
>>> この画像には何がありますか? /Users/jmorgan/Desktop/smile.png
|
||||
画像には黄色い笑顔の絵文字があり、おそらく画像の中心的な焦点です。
|
||||
```
|
||||
|
||||
### プロンプトを引数として渡します
|
||||
|
||||
```
|
||||
$ ollama run llama2 "このファイルを要約してください:$(cat README_ja.md)"
|
||||
Ollamaは、ローカルマシン上で言語モデルを構築および実行するための軽量で拡張可能なフレームワークです。モデルの作成、実行、および管理のためのシンプルなAPIを提供し、さらにさまざまなアプリケーションで簡単に使用できる事前に構築されたモデルのライブラリも提供しています。
|
||||
```
|
||||
|
||||
### コンピュータ上のモデルをリストする
|
||||
|
||||
```
|
||||
ollama list
|
||||
```
|
||||
|
||||
### オラマを開始
|
||||
|
||||
`ollama serve`は、デスクトップアプリケーションを実行せずにOllamaを起動したい場合に使用します。
|
||||
|
||||
## ビルディング
|
||||
|
||||
`cmake`と`go`をインストールしてください:
|
||||
|
||||
```
|
||||
brew install cmake go
|
||||
```
|
||||
|
||||
その後、依存関係を生成してください:
|
||||
```
|
||||
go generate ./...
|
||||
```
|
||||
その後、バイナリをビルドしてください:
|
||||
```
|
||||
go build .
|
||||
```
|
||||
|
||||
より詳細な手順は[開発者ガイド](https://github.com/jmorganca/ollama/blob/main/docs/development.md)に記載されています。
|
||||
|
||||
|
||||
### ローカルビルドの実行
|
||||
|
||||
次に、サーバーを起動しますL
|
||||
|
||||
```
|
||||
./ollama serve
|
||||
```
|
||||
|
||||
最後に、別のシェルでモデルを実行します:
|
||||
|
||||
```
|
||||
./ollama run llama2
|
||||
```
|
||||
|
||||
## REST API
|
||||
|
||||
Ollamaにはモデルの実行と管理のためのREST APIがあります。
|
||||
|
||||
### 応答を生成する
|
||||
|
||||
```
|
||||
curl http://localhost:11434/api/generate -d '{
|
||||
"model": "llama2",
|
||||
"prompt":"空はなぜ青いのでしょうか?"
|
||||
}'
|
||||
```
|
||||
|
||||
### モデルとチャットする
|
||||
|
||||
```
|
||||
curl http://localhost:11434/api/chat -d '{
|
||||
"model": "mistral",
|
||||
"messages": [
|
||||
{ "role": "user", "content": "空はなぜ青いのでしょうか?" }
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
すべてのエンドポイントについては、[APIドキュメント](./docs_ja/api.md)を参照してください。
|
||||
|
||||
## コミュニティの統合
|
||||
|
||||
### ウェブとデスクトップ
|
||||
- [Bionic GPT](https://github.com/bionic-gpt/bionic-gpt)
|
||||
- [HTML UI](https://github.com/rtcfirefly/ollama-ui)
|
||||
- [Chatbot UI](https://github.com/ivanfioravanti/chatbot-ollama)
|
||||
- [Typescript UI](https://github.com/ollama-interface/Ollama-Gui?tab=readme-ov-file)
|
||||
- [Minimalistic React UI for Ollama Models](https://github.com/richawo/minimal-llm-ui)
|
||||
- [Web UI](https://github.com/ollama-webui/ollama-webui)
|
||||
- [Ollamac](https://github.com/kevinhermawan/Ollamac)
|
||||
- [big-AGI](https://github.com/enricoros/big-agi/blob/main/docs/config-ollama.md)
|
||||
- [Cheshire Cat assistant framework](https://github.com/cheshire-cat-ai/core)
|
||||
- [Amica](https://github.com/semperai/amica)
|
||||
- [chatd](https://github.com/BruceMacD/chatd)
|
||||
- [Ollama-SwiftUI](https://github.com/kghandour/Ollama-SwiftUI)
|
||||
- [MindMac](https://mindmac.app)
|
||||
|
||||
|
||||
### ターミナル
|
||||
|
||||
- [oterm](https://github.com/ggozad/oterm)
|
||||
- [Ellama Emacs client](https://github.com/s-kostyaev/ellama)
|
||||
- [Emacs client](https://github.com/zweifisch/ollama)
|
||||
- [gen.nvim](https://github.com/David-Kunz/gen.nvim)
|
||||
- [ollama.nvim](https://github.com/nomnivore/ollama.nvim)
|
||||
- [ogpt.nvim](https://github.com/huynle/ogpt.nvim)
|
||||
- [gptel Emacs client](https://github.com/karthink/gptel)
|
||||
- [Oatmeal](https://github.com/dustinblackman/oatmeal)
|
||||
- [cmdh](https://github.com/pgibler/cmdh)
|
||||
|
||||
### データベース
|
||||
|
||||
- [MindsDB](https://github.com/mindsdb/mindsdb/blob/staging/mindsdb/integrations/handlers/ollama_handler/README.md)
|
||||
|
||||
### パッケージマネージャー
|
||||
|
||||
- [Pacman](https://archlinux.org/packages/extra/x86_64/ollama/)
|
||||
|
||||
### ライブラリー
|
||||
|
||||
- [LangChain](https://python.langchain.com/docs/integrations/llms/ollama) and [LangChain.js](https://js.langchain.com/docs/modules/model_io/models/llms/integrations/ollama) with [example](https://js.langchain.com/docs/use_cases/question_answering/local_retrieval_qa)
|
||||
- [LangChainGo](https://github.com/tmc/langchaingo/) with [example](https://github.com/tmc/langchaingo/tree/main/examples/ollama-completion-example)
|
||||
- [LlamaIndex](https://gpt-index.readthedocs.io/en/stable/examples/llm/ollama.html)
|
||||
- [LiteLLM](https://github.com/BerriAI/litellm)
|
||||
- [OllamaSharp for .NET](https://github.com/awaescher/OllamaSharp)
|
||||
- [Ollama for Ruby](https://github.com/gbaptista/ollama-ai)
|
||||
- [Ollama-rs for Rust](https://github.com/pepperoni21/ollama-rs)
|
||||
- [Ollama4j for Java](https://github.com/amithkoujalgi/ollama4j)
|
||||
- [ModelFusion Typescript Library](https://modelfusion.dev/integration/model-provider/ollama)
|
||||
- [OllamaKit for Swift](https://github.com/kevinhermawan/OllamaKit)
|
||||
- [Ollama for Dart](https://github.com/breitburg/dart-ollama)
|
||||
- [Ollama for Laravel](https://github.com/cloudstudio/ollama-laravel)
|
||||
- [LangChainDart](https://github.com/davidmigloz/langchain_dart)
|
||||
- [Semantic Kernel - Python](https://github.com/microsoft/semantic-kernel/tree/main/python/semantic_kernel/connectors/ai/ollama)
|
||||
- [Haystack](https://github.com/deepset-ai/haystack-integrations/blob/main/integrations/ollama.md)
|
||||
- [Ollama for R - rollama](https://github.com/JBGruber/rollama)
|
||||
|
||||
|
||||
### 携帯
|
||||
|
||||
- [Enchanted](https://github.com/AugustDev/enchanted)
|
||||
- [Maid](https://github.com/Mobile-Artificial-Intelligence/maid)
|
||||
|
||||
### 拡張機能とプラグイン
|
||||
|
||||
- [Raycast extension](https://github.com/MassimilianoPasquini97/raycast_ollama)
|
||||
- [Discollama](https://github.com/mxyng/discollama) (Discord bot inside the Ollama discord channel)
|
||||
- [Continue](https://github.com/continuedev/continue)
|
||||
- [Obsidian Ollama plugin](https://github.com/hinterdupfinger/obsidian-ollama)
|
||||
- [Logseq Ollama plugin](https://github.com/omagdy7/ollama-logseq)
|
||||
- [Dagger Chatbot](https://github.com/samalba/dagger-chatbot)
|
||||
- [Discord AI Bot](https://github.com/mekb-turtle/discord-ai-bot)
|
||||
- [Ollama Telegram Bot](https://github.com/ruecat/ollama-telegram)
|
||||
- [Hass Ollama Conversation](https://github.com/ej52/hass-ollama-conversation)
|
||||
- [Rivet plugin](https://github.com/abrenneke/rivet-plugin-ollama)
|
||||
- [Llama Coder](https://github.com/ex3ndr/llama-coder) (Copilot alternative using Ollama)
|
||||
- [Obsidian BMO Chatbot plugin](https://github.com/longy2k/obsidian-bmo-chatbot)
|
||||
- [Open Interpreter](https://docs.openinterpreter.com/language-model-setup/local-models/ollama)
|
||||
- [twinny](https://github.com/rjmacarthy/twinny) (Copilot and Copilot chat alternative using Ollama)
|
||||
|
25
docs_ja/README.md
Normal file
25
docs_ja/README.md
Normal file
@ -0,0 +1,25 @@
|
||||
# ドキュメンテーション
|
||||
|
||||
始めるには、プロジェクトの **[クイックスタート](../README_ja.md#クイックスタート)** を参照してください。
|
||||
|
||||
Ollamaは、AIモデルをあなたのハードウェアで実行するためのツールです。多くのユーザーは、Ollamaと連携するためにコマンドラインインターフェース(CLI)を選択します。CLIで使用できるすべてのコマンドについて詳しくは、**[メイン Readme](../README_ja.md)** を参照してください。
|
||||
|
||||
RESTful APIは、Python、JavaScript、Typescript、Go、Rustなど、任意の言語を使用して利用できます。APIの使用方法について詳しくは、**[APIドキュメント](./api.md)** を参照してください。
|
||||
|
||||
新しいモデルを作成するか、ライブラリにすでに存在するモデルを変更するには、Modelfileを使用します。Modelfileの構文について詳しくは、**[Modelfileドキュメント](./modelfile.md)** を参照してください。
|
||||
|
||||
Hugging Faceや類似のサイトから見つかるソースモデルの重みを使用してモデルをインポートするには、**[Import ドキュメント](./import.md)** を参照してください。
|
||||
|
||||
Linuxへのインストールは、ほとんどの場合、Ollama.aiのスクリプトを使用することで簡単です。インストールの詳細や、CUDAドライバについての詳細については、**[Linux ドキュメント](./linux.md)** を参照してください。
|
||||
|
||||
多くのユーザーは、公式のDockerイメージを使用する柔軟性が好まれています。OllamaとDockerを使用する方法についての詳細は、**[Docker ドキュメント](https://hub.docker.com/r/ollama/ollama)** をご参照ください。
|
||||
|
||||
LinuxやMacへのインストールは簡単ですが、多くのユーザーは独自にOllamaをビルドすることを選択するかもしれません。これを行うには、**[開発ドキュメント](./development.md)** を参照してください。
|
||||
|
||||
Ollamaに問題が発生した場合、解決の出発点はログです。ログに関する詳細な情報は、**[トラブルシューティングガイド](./troubleshooting.md)** で確認できます。
|
||||
|
||||
最後に、他のどこにも当てはまらないすべての質問に対しては、**[FAQ(よくある質問)](./faq.md)** があります。
|
||||
|
||||
[チュートリアル](./tutorials.md) は、タスクに文書を適用する方法を示します。
|
||||
|
||||
Ollamaの使用に関する動作するコードの例については、[Examples(例)](../examples)を参照してください。
|
984
docs_ja/api.md
Normal file
984
docs_ja/api.md
Normal file
@ -0,0 +1,984 @@
|
||||
# API
|
||||
|
||||
## エンドポイント
|
||||
|
||||
- [完了を生成する](#完了を生成する)
|
||||
- [チャットの完了を生成する](#チャットの完了を生成する)
|
||||
- [モデルを作成する](#モデルを作成する)
|
||||
- [ローカルモデルの一覧表示](#ローカルモデルの一覧表示)
|
||||
- [モデル情報の表示](#モデル情報の表示)
|
||||
- [モデルのコピー](#モデルのコピー)
|
||||
- [モデルの削除](#モデルの削除)
|
||||
- [モデルのプル](#モデルのプル)
|
||||
- [モデルのプッシュ](#モデルのプッシュ)
|
||||
- [埋め込みの生成](#埋め込みの生成)
|
||||
|
||||
## コンベンション
|
||||
|
||||
### モデル名
|
||||
|
||||
モデルの名前は model:tag の形式に従います。ここで、model には example/model のようなオプションの名前空間が付くことがあります。いくつかの例として、orca-mini:3b-q4_1 や llama2:70b があります。tag はオプションで、指定されていない場合はデフォルトで latest になります。tag は特定のバージョンを識別するために使用されます。
|
||||
|
||||
### 期間
|
||||
|
||||
すべての期間はナノ秒で返されます。
|
||||
|
||||
### ストリーミング応答
|
||||
|
||||
特定のエンドポイントでは、JSONオブジェクトとして応答をストリーミングでき、オプションで非ストリーミングの応答を返すこともできます。
|
||||
|
||||
## 完了を生成する
|
||||
|
||||
```shell
|
||||
POST /api/generate
|
||||
```
|
||||
|
||||
指定されたプロンプトに対して提供されたモデルで応答を生成します。これはストリーミングエンドポイントですので、一連の応答があります。最終的な応答オブジェクトには、リクエストからの統計情報や追加のデータが含まれます。
|
||||
|
||||
### パラメータ
|
||||
|
||||
- `model`: (必須)[モデル名](#モデル名)
|
||||
- `prompt`: 応答を生成するためのプロンプト
|
||||
- `images`: (オプション)Base64エンコードされた画像のリスト(`llava`などのマルチモーダルモデル用)
|
||||
|
||||
高度なパラメータ(オプション):
|
||||
|
||||
- `format`: 応答の返却形式。現在唯一受け入れられている値は `json` です
|
||||
- `options`: `temperature` など、[モデルファイル](./modelfile.md#有効なパラメータと値) のドキュメントにリストされている追加のモデルパラメーター
|
||||
- `system`: (`Modelfile` で定義されたものを上書きする)システムメッセージ
|
||||
- `template`: 使用するプロンプトテンプレート(`Modelfile` で定義されたものを上書きする)
|
||||
- `context`: `/generate` への前回のリクエストから返されるコンテキストパラメーター。これは短い対話的なメモリを維持するために使用できます
|
||||
- `stream`: `false` の場合、応答はオブジェクトのストリームではなく、単一の応答オブジェクトとして返されます
|
||||
- `raw`: `true` の場合、プロンプトには書式設定が適用されません。APIへのリクエストで完全なテンプレート化されたプロンプトを指定する場合は、`raw`
|
||||
|
||||
#### JSONモード
|
||||
|
||||
`format` パラメーターを `json` に設定して JSON モードを有効にします。これにより、応答が有効な JSON オブジェクトとして構造化されます。以下にJSONモードの[例](#generate-request-json-mode) を参照してください。
|
||||
|
||||
> 注意: `prompt` でモデルにJSONを使用するように指示することが重要です。それ以外の場合、モデルは大量の空白を生成する可能性があります。
|
||||
|
||||
### 例
|
||||
|
||||
#### 生成リクエスト(ストリーミング)
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/generate -d '{
|
||||
"model": "llama2",
|
||||
"prompt": "Why is the sky blue?"
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
JSONオブジェクトのストリームが返されます:
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-08-04T08:52:19.385406455-07:00",
|
||||
"response": "The",
|
||||
"done": false
|
||||
}
|
||||
```
|
||||
|
||||
ストリーム内の最終応答には、生成に関する追加のデータも含まれます:
|
||||
|
||||
- `total_duration`: 応答の生成に費やした時間
|
||||
- `load_duration`: モデルのロードに費やした時間 (ナノ秒)
|
||||
- `prompt_eval_count`: プロンプト内のトークンの数
|
||||
- `prompt_eval_duration`: プロンプトの評価に費やした時間 (ナノ秒)
|
||||
- `eval_count`: 応答のトークンの数
|
||||
- `eval_duration`: 応答の生成に費やされた時間 (ナノ秒)
|
||||
- `context`: この応答で使用された会話のエンコード。これは会話のメモリを保持するために次のリクエストに送信できます
|
||||
- `response`: ストリーミングされた場合は空です。ストリーミングされていない場合、これには完全な応答が含まれます
|
||||
|
||||
応答がトークン毎秒(token/s)でどれくらい速く生成されるかを計算するには、`eval_count` を `eval_duration` で割ります。
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-08-04T19:22:45.499127Z",
|
||||
"response": "",
|
||||
"done": true,
|
||||
"context": [1, 2, 3],
|
||||
"total_duration": 10706818083,
|
||||
"load_duration": 6338219291,
|
||||
"prompt_eval_count": 26,
|
||||
"prompt_eval_duration": 130079000,
|
||||
"eval_count": 259,
|
||||
"eval_duration": 4232710000
|
||||
}
|
||||
```
|
||||
|
||||
#### リクエスト(ストリーミングなし)
|
||||
|
||||
##### リクエスト
|
||||
|
||||
ストリーミングがオフの場合、1回の返信で応答を受け取ることができます。
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/generate -d '{
|
||||
"model": "llama2",
|
||||
"prompt": "Why is the sky blue?",
|
||||
"stream": false
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
`stream` が `false` に設定されている場合、応答は単一のJSONオブジェクトになります:
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-08-04T19:22:45.499127Z",
|
||||
"response": "The sky is blue because it is the color of the sky.",
|
||||
"done": true,
|
||||
"context": [1, 2, 3],
|
||||
"total_duration": 5043500667,
|
||||
"load_duration": 5025959,
|
||||
"prompt_eval_count": 26,
|
||||
"prompt_eval_duration": 325953000,
|
||||
"eval_count": 290,
|
||||
"eval_duration": 4709213000
|
||||
}
|
||||
```
|
||||
|
||||
#### リクエスト(JSONモード)
|
||||
|
||||
> `format` が `json` に設定されている場合、出力は常に整形されたJSONオブジェクトになります。モデルにもJSONで応答するように指示することが重要です。
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/generate -d '{
|
||||
"model": "llama2",
|
||||
"prompt": "What color is the sky at different times of the day? Respond using JSON",
|
||||
"format": "json",
|
||||
"stream": false
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-11-09T21:07:55.186497Z",
|
||||
"response": "{\n\"morning\": {\n\"color\": \"blue\"\n},\n\"noon\": {\n\"color\": \"blue-gray\"\n},\n\"afternoon\": {\n\"color\": \"warm gray\"\n},\n\"evening\": {\n\"color\": \"orange\"\n}\n}\n",
|
||||
"done": true,
|
||||
"context": [1, 2, 3],
|
||||
"total_duration": 4648158584,
|
||||
"load_duration": 4071084,
|
||||
"prompt_eval_count": 36,
|
||||
"prompt_eval_duration": 439038000,
|
||||
"eval_count": 180,
|
||||
"eval_duration": 4196918000
|
||||
}
|
||||
```
|
||||
|
||||
`response` の値は、次のようなJSONを含む文字列になります:
|
||||
|
||||
```json
|
||||
{
|
||||
"morning": {
|
||||
"color": "blue"
|
||||
},
|
||||
"noon": {
|
||||
"color": "blue-gray"
|
||||
},
|
||||
"afternoon": {
|
||||
"color": "warm gray"
|
||||
},
|
||||
"evening": {
|
||||
"color": "orange"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### リクエスト(画像付き)
|
||||
|
||||
`llava` や `bakllava` などのマルチモーダルモデルに画像を提出するには、Base64エンコードされた `images` のリストを提供してください:
|
||||
|
||||
#### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/generate -d '{
|
||||
"model": "llava",
|
||||
"prompt":"What is in this picture?",
|
||||
"stream": false,
|
||||
"images": ["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"]
|
||||
}'
|
||||
```
|
||||
|
||||
#### レスポンス
|
||||
|
||||
```
|
||||
{
|
||||
"model": "llava",
|
||||
"created_at": "2023-11-03T15:36:02.583064Z",
|
||||
"response": "A happy cartoon character, which is cute and cheerful.",
|
||||
"done": true,
|
||||
"context": [1, 2, 3],
|
||||
"total_duration": 2938432250,
|
||||
"load_duration": 2559292,
|
||||
"prompt_eval_count": 1,
|
||||
"prompt_eval_duration": 2195557000,
|
||||
"eval_count": 44,
|
||||
"eval_duration": 736432000
|
||||
}
|
||||
```
|
||||
|
||||
#### リクエスト (Raw モード)Request (Raw Mode)
|
||||
|
||||
In some cases, you may wish to bypass the templating system and provide a full prompt. In this case, you can use the `raw` parameter to disable templating. Also note that raw mode will not return a context.
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/generate -d '{
|
||||
"model": "mistral",
|
||||
"prompt": "[INST] why is the sky blue? [/INST]",
|
||||
"raw": true,
|
||||
"stream": false
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "mistral",
|
||||
"created_at": "2023-11-03T15:36:02.583064Z",
|
||||
"response": " The sky appears blue because of a phenomenon called Rayleigh scattering.",
|
||||
"done": true,
|
||||
"total_duration": 8493852375,
|
||||
"load_duration": 6589624375,
|
||||
"prompt_eval_count": 14,
|
||||
"prompt_eval_duration": 119039000,
|
||||
"eval_count": 110,
|
||||
"eval_duration": 1779061000
|
||||
}
|
||||
```
|
||||
|
||||
#### リクエストの生成(オプションあり)
|
||||
|
||||
モデルの設定をModelfileではなく実行時にカスタムオプションで設定したい場合は、`options` パラメータを使用できます。この例ではすべての利用可能なオプションを設定していますが、個々のオプションを任意に設定し、上書きしたくないものは省略できます。
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/generate -d '{
|
||||
"model": "llama2",
|
||||
"prompt": "Why is the sky blue?",
|
||||
"stream": false,
|
||||
"options": {
|
||||
"num_keep": 5,
|
||||
"seed": 42,
|
||||
"num_predict": 100,
|
||||
"top_k": 20,
|
||||
"top_p": 0.9,
|
||||
"tfs_z": 0.5,
|
||||
"typical_p": 0.7,
|
||||
"repeat_last_n": 33,
|
||||
"temperature": 0.8,
|
||||
"repeat_penalty": 1.2,
|
||||
"presence_penalty": 1.5,
|
||||
"frequency_penalty": 1.0,
|
||||
"mirostat": 1,
|
||||
"mirostat_tau": 0.8,
|
||||
"mirostat_eta": 0.6,
|
||||
"penalize_newline": true,
|
||||
"stop": ["\n", "user:"],
|
||||
"numa": false,
|
||||
"num_ctx": 1024,
|
||||
"num_batch": 2,
|
||||
"num_gqa": 1,
|
||||
"num_gpu": 1,
|
||||
"main_gpu": 0,
|
||||
"low_vram": false,
|
||||
"f16_kv": true,
|
||||
"vocab_only": false,
|
||||
"use_mmap": true,
|
||||
"use_mlock": false,
|
||||
"embedding_only": false,
|
||||
"rope_frequency_base": 1.1,
|
||||
"rope_frequency_scale": 0.8,
|
||||
"num_thread": 8
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-08-04T19:22:45.499127Z",
|
||||
"response": "The sky is blue because it is the color of the sky.",
|
||||
"done": true,
|
||||
"context": [1, 2, 3],
|
||||
"total_duration": 4935886791,
|
||||
"load_duration": 534986708,
|
||||
"prompt_eval_count": 26,
|
||||
"prompt_eval_duration": 107345000,
|
||||
"eval_count": 237,
|
||||
"eval_duration": 4289432000
|
||||
}
|
||||
```
|
||||
|
||||
#### モデルの読み込み
|
||||
|
||||
If an empty prompt is provided, the model will be loaded into memory.
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/generate -d '{
|
||||
"model": "llama2"
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
単一のJSONオブジェクトが返されます:
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-12-18T19:52:07.071755Z",
|
||||
"response": "",
|
||||
"done": true
|
||||
}
|
||||
```
|
||||
|
||||
## チャットの完了を生成する
|
||||
|
||||
```shell
|
||||
POST /api/chat
|
||||
```
|
||||
|
||||
提供されたモデルとのチャットで次のメッセージを生成します。これはストリーミングエンドポイントですので、一連の応答があります。`"stream": false` を使用してストリーミングを無効にすることができます。最終的な応答オブジェクトには、リクエストからの統計情報や追加のデータが含まれます。
|
||||
|
||||
### パラメータ
|
||||
|
||||
- `model`: (必須) [モデル名](#モデル名)
|
||||
- `messages`: チャットのメッセージ。これはチャットのメモリを保持するために使用できます
|
||||
|
||||
`message` オブジェクトには以下のフィールドがあります:
|
||||
|
||||
- `role`: メッセージの役割、`system`、`user`、または `assistant` のいずれか
|
||||
- `content`:メッセージの内容
|
||||
- `images` (オプション): メッセージに含める画像のリスト(`llava`などのマルチモーダルモデル用)
|
||||
|
||||
高度なパラメータ(オプション):
|
||||
|
||||
- `format`: 応答を返す形式。現在唯一受け入れられている値は `json` です
|
||||
- `options`: [Modelfile](./modelfile.md#有効なパラメータと値)のドキュメントにリストされている追加のモデルパラメーター(`temperature`など)
|
||||
- `template`: 使用するプロンプトテンプレート(`Modelfile`で定義されたものを上書きする)
|
||||
- `stream`: `false`の場合、応答はオブジェクトのストリームではなく、単一の応答オブジェクトとして返されます
|
||||
|
||||
### 例
|
||||
|
||||
#### チャットリクエスト(ストリーミング)
|
||||
|
||||
##### リクエスト
|
||||
|
||||
ストリーミング応答でチャットメッセージを送信します。
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/chat -d '{
|
||||
"model": "llama2",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "why is the sky blue?"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
JSONオブジェクトのストリームが返されます:
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-08-04T08:52:19.385406455-07:00",
|
||||
"message": {
|
||||
"role": "assistant",
|
||||
"content": "The",
|
||||
"images": null
|
||||
},
|
||||
"done": false
|
||||
}
|
||||
```
|
||||
|
||||
最終レスポンス:
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-08-04T19:22:45.499127Z",
|
||||
"done": true,
|
||||
"total_duration": 4883583458,
|
||||
"load_duration": 1334875,
|
||||
"prompt_eval_count": 26,
|
||||
"prompt_eval_duration": 342546000,
|
||||
"eval_count": 282,
|
||||
"eval_duration": 4535599000
|
||||
}
|
||||
```
|
||||
|
||||
#### チャットリクエスト (ストリーミングなし)
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/chat -d '{
|
||||
"model": "llama2",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "why is the sky blue?"
|
||||
}
|
||||
],
|
||||
"stream": false
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "registry.ollama.ai/library/llama2:latest",
|
||||
"created_at": "2023-12-12T14:13:43.416799Z",
|
||||
"message": {
|
||||
"role": "assistant",
|
||||
"content": "Hello! How are you today?"
|
||||
},
|
||||
"done": true,
|
||||
"total_duration": 5191566416,
|
||||
"load_duration": 2154458,
|
||||
"prompt_eval_count": 26,
|
||||
"prompt_eval_duration": 383809000,
|
||||
"eval_count": 298,
|
||||
"eval_duration": 4799921000
|
||||
}
|
||||
```
|
||||
|
||||
#### チャットリクエスト(履歴あり)
|
||||
|
||||
Send a chat message with a conversation history. You can use this same approach to start the conversation using multi-shot or chain-of-thought prompting.
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/chat -d '{
|
||||
"model": "llama2",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "why is the sky blue?"
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": "due to rayleigh scattering."
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "how is that different than mie scattering?"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
JSONオブジェクトのストリームが返されます:
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-08-04T08:52:19.385406455-07:00",
|
||||
"message": {
|
||||
"role": "assistant",
|
||||
"content": "The"
|
||||
},
|
||||
"done": false
|
||||
}
|
||||
```
|
||||
|
||||
最終レスポンス:
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llama2",
|
||||
"created_at": "2023-08-04T19:22:45.499127Z",
|
||||
"done": true,
|
||||
"total_duration": 8113331500,
|
||||
"load_duration": 6396458,
|
||||
"prompt_eval_count": 61,
|
||||
"prompt_eval_duration": 398801000,
|
||||
"eval_count": 468,
|
||||
"eval_duration": 7701267000
|
||||
}
|
||||
```
|
||||
|
||||
#### チャットリクエスト(画像付き)
|
||||
|
||||
##### リクエスト
|
||||
|
||||
チャットメッセージと会話履歴を送信します。
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/chat -d '{
|
||||
"model": "llava",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "what is in this image?",
|
||||
"images": ["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"]
|
||||
},
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "llava",
|
||||
"created_at": "2023-12-13T22:42:50.203334Z",
|
||||
"message": {
|
||||
"role": "assistant",
|
||||
"content": " The image features a cute, little pig with an angry facial expression. It's wearing a heart on its shirt and is waving in the air. This scene appears to be part of a drawing or sketching project.",
|
||||
"images": null
|
||||
},
|
||||
"done": true,
|
||||
"total_duration": 1668506709,
|
||||
"load_duration": 1986209,
|
||||
"prompt_eval_count": 26,
|
||||
"prompt_eval_duration": 359682000,
|
||||
"eval_count": 83,
|
||||
"eval_duration": 1303285000
|
||||
}
|
||||
```
|
||||
|
||||
## モデルを作成する
|
||||
|
||||
```shell
|
||||
POST /api/create
|
||||
```
|
||||
|
||||
[`Modelfile`](./modelfile.md)からモデルを作成します。`modelfile`を単に`path`を設定するのではなく、Modelfileの内容に設定することをお勧めします。これはリモート作成のための要件です。リモートモデルの作成は、[Create a Blob](#create-a-blob)を使用してサーバーに対して`FROM`や`ADAPTER`などのファイルブロブ、フィールドを明示的に作成する必要があり、応答で示されたパスに対して値を使用します。
|
||||
|
||||
|
||||
### パラメーター
|
||||
|
||||
- `name`: 作成するモデルの名前
|
||||
- `modelfile` (オプション): Modelfileの内容
|
||||
- `stream`: (オプション): `false` の場合、応答はオブジェクトのストリームではなく、単一の応答オブジェクトとして返されます
|
||||
- `path` (オプション): Modelfileへのパス
|
||||
|
||||
### 例
|
||||
|
||||
#### 新しいモデルを作成する
|
||||
|
||||
`Modelfile` から新しいモデルを作成します。
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/create -d '{
|
||||
"name": "mario",
|
||||
"modelfile": "FROM llama2\nSYSTEM You are mario from Super Mario Bros."
|
||||
}'
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
JSONオブジェクトのストリーム。最終的なJSONオブジェクトには `"status": "success"` が表示されることに注意してください。
|
||||
|
||||
```json
|
||||
{"status":"reading model metadata"}
|
||||
{"status":"creating system layer"}
|
||||
{"status":"using already created layer sha256:22f7f8ef5f4c791c1b03d7eb414399294764d7cc82c7e94aa81a1feb80a983a2"}
|
||||
{"status":"using already created layer sha256:8c17c2ebb0ea011be9981cc3922db8ca8fa61e828c5d3f44cb6ae342bf80460b"}
|
||||
{"status":"using already created layer sha256:7c23fb36d80141c4ab8cdbb61ee4790102ebd2bf7aeff414453177d4f2110e5d"}
|
||||
{"status":"using already created layer sha256:2e0493f67d0c8c9c68a8aeacdf6a38a2151cb3c4c1d42accf296e19810527988"}
|
||||
{"status":"using already created layer sha256:2759286baa875dc22de5394b4a925701b1896a7e3f8e53275c36f75a877a82c9"}
|
||||
{"status":"writing layer sha256:df30045fe90f0d750db82a058109cecd6d4de9c90a3d75b19c09e5f64580bb42"}
|
||||
{"status":"writing layer sha256:f18a68eb09bf925bb1b669490407c1b1251c5db98dc4d3d81f3088498ea55690"}
|
||||
{"status":"writing manifest"}
|
||||
{"status":"success"}
|
||||
```
|
||||
|
||||
### Blobの存在を確認
|
||||
|
||||
```shell
|
||||
HEAD /api/blobs/:digest
|
||||
```
|
||||
|
||||
`FROM`または`ADAPTER`フィールドに使用されるファイルブロブがサーバー上に存在することを確認します。これはOllama.aiではなく、あなたのOllamaサーバーを確認しています。
|
||||
|
||||
|
||||
#### クエリパラメータ
|
||||
|
||||
- `digest`: BLOB の SHA256 ダイジェスト
|
||||
|
||||
#### 例
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl -I http://localhost:11434/api/blobs/sha256:29fdb92e57cf0827ded04ae6461b5931d01fa595843f55d36f5b275a52087dd2
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
ブロブが存在する場合は200 OKを返し、存在しない場合は404 Not Foundを返します。
|
||||
|
||||
### Create a Blob
|
||||
|
||||
```shell
|
||||
POST /api/blobs/:digest
|
||||
```
|
||||
|
||||
サーバー上のファイルからブロブを作成します。サーバーのファイルパスを返します。
|
||||
|
||||
|
||||
#### クエリパラメータ
|
||||
|
||||
- `digest`: ファイルの予想されるSHA256ダイジェスト
|
||||
|
||||
#### 例
|
||||
|
||||
##### リクエスト
|
||||
|
||||
```shell
|
||||
curl -T model.bin -X POST http://localhost:11434/api/blobs/sha256:29fdb92e57cf0827ded04ae6461b5931d01fa595843f55d36f5b275a52087dd2
|
||||
```
|
||||
|
||||
##### レスポンス
|
||||
|
||||
ブロブが成功製作された場合は201 Createdを返し、使用されたダイジェストが予想外の場合は400 Bad Requestを返します。
|
||||
|
||||
## ローカルモデルの一覧表示
|
||||
|
||||
```shell
|
||||
GET /api/tags
|
||||
```
|
||||
|
||||
ローカルで利用可能なモデルの一覧を表示します。
|
||||
|
||||
### 例
|
||||
|
||||
#### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/tags
|
||||
```
|
||||
|
||||
#### レスポンス
|
||||
|
||||
単一のJSONオブジェクトが返されます。
|
||||
|
||||
```json
|
||||
{
|
||||
"models": [
|
||||
{
|
||||
"name": "codellama:13b",
|
||||
"modified_at": "2023-11-04T14:56:49.277302595-07:00",
|
||||
"size": 7365960935,
|
||||
"digest": "9f438cb9cd581fc025612d27f7c1a6669ff83a8bb0ed86c94fcf4c5440555697",
|
||||
"details": {
|
||||
"format": "gguf",
|
||||
"family": "llama",
|
||||
"families": null,
|
||||
"parameter_size": "13B",
|
||||
"quantization_level": "Q4_0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "llama2:latest",
|
||||
"modified_at": "2023-12-07T09:32:18.757212583-08:00",
|
||||
"size": 3825819519,
|
||||
"digest": "fe938a131f40e6f6d40083c9f0f430a515233eb2edaa6d72eb85c50d64f2300e",
|
||||
"details": {
|
||||
"format": "gguf",
|
||||
"family": "llama",
|
||||
"families": null,
|
||||
"parameter_size": "7B",
|
||||
"quantization_level": "Q4_0"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## モデル情報の表示
|
||||
|
||||
```shell
|
||||
POST /api/show
|
||||
```
|
||||
|
||||
モデルに関する情報を表示します。詳細、モデルファイル、テンプレート、パラメータ、ライセンス、およびシステムプロンプトを含みます。
|
||||
|
||||
### パラメーター
|
||||
|
||||
- `name`: 表示するモデルの名前
|
||||
|
||||
### 例
|
||||
|
||||
#### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/show -d '{
|
||||
"name": "llama2"
|
||||
}'
|
||||
```
|
||||
|
||||
#### レスポンス
|
||||
|
||||
```json
|
||||
{
|
||||
"modelfile": "# Modelfile generated by \"ollama show\"\n# To build a new Modelfile based on this one, replace the FROM line with:\n# FROM llava:latest\n\nFROM /Users/matt/.ollama/models/blobs/sha256:200765e1283640ffbd013184bf496e261032fa75b99498a9613be4e94d63ad52\nTEMPLATE \"\"\"{{ .System }}\nUSER: {{ .Prompt }}\nASSSISTANT: \"\"\"\nPARAMETER num_ctx 4096\nPARAMETER stop \"\u003c/s\u003e\"\nPARAMETER stop \"USER:\"\nPARAMETER stop \"ASSSISTANT:\"",
|
||||
"parameters": "num_ctx 4096\nstop \u003c/s\u003e\nstop USER:\nstop ASSSISTANT:",
|
||||
"template": "{{ .System }}\nUSER: {{ .Prompt }}\nASSSISTANT: ",
|
||||
"details": {
|
||||
"format": "gguf",
|
||||
"family": "llama",
|
||||
"families": ["llama", "clip"],
|
||||
"parameter_size": "7B",
|
||||
"quantization_level": "Q4_0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## モデルのコピー
|
||||
|
||||
```shell
|
||||
POST /api/copy
|
||||
```
|
||||
|
||||
モデルをコピーします。既存のモデルから別の名前のモデルを作成します。
|
||||
|
||||
### 例
|
||||
|
||||
#### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/copy -d '{
|
||||
"source": "llama2",
|
||||
"destination": "llama2-backup"
|
||||
}'
|
||||
```
|
||||
|
||||
#### レスポンス
|
||||
|
||||
成功した場合は200 OKを返し、ソースモデルが存在しない場合は404 Not Foundを返します。
|
||||
|
||||
## モデルの削除
|
||||
|
||||
```shell
|
||||
DELETE /api/delete
|
||||
```
|
||||
|
||||
モデルとそのデータを削除します。
|
||||
|
||||
### パラメーター
|
||||
|
||||
- `name`: 削除するモデル名
|
||||
|
||||
### 例
|
||||
|
||||
#### リクエスト
|
||||
|
||||
```shell
|
||||
curl -X DELETE http://localhost:11434/api/delete -d '{
|
||||
"name": "llama2:13b"
|
||||
}'
|
||||
```
|
||||
|
||||
#### レスポンス
|
||||
|
||||
成功した場合は200 OKを返し、削除されるモデルが存在しない場合は404 Not Foundを返します。
|
||||
|
||||
## モデルのプル
|
||||
|
||||
```shell
|
||||
POST /api/pull
|
||||
```
|
||||
|
||||
Ollamaライブラリからモデルをダウンロードします。キャンセルされたプルは中断した場所から再開され、複数の呼び出しは同じダウンロード進捗を共有します。
|
||||
|
||||
### パラメーター
|
||||
|
||||
- `name`: プルするモデルの名前
|
||||
- `insecure`: (オプション) ライブラリへの安全でない接続を許可します。開発中に自分のライブラリからプルする場合にのみ使用してください
|
||||
- `stream`: (オプション) `false`の場合、レスポンスはオブジェクトのストリームではなく、単一のレスポンスオブジェクトとして返されます
|
||||
|
||||
### 例
|
||||
|
||||
#### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/pull -d '{
|
||||
"name": "llama2"
|
||||
}'
|
||||
```
|
||||
|
||||
#### レスポンス
|
||||
|
||||
`stream`が指定されていないか、または`true`に設定されている場合、JSONオブジェクトのストリームが返されます:
|
||||
|
||||
最初のオブジェクトはマニフェストです:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "pulling manifest"
|
||||
}
|
||||
```
|
||||
|
||||
その後、一連のダウンロードの応答があります。ダウンロードが完了するまで、`completed`キーは含まれないかもしれません。ダウンロードするファイルの数は、マニフェストで指定されたレイヤーの数に依存します。
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "downloading digestname",
|
||||
"digest": "digestname",
|
||||
"total": 2142590208,
|
||||
"completed": 241970
|
||||
}
|
||||
```
|
||||
|
||||
すべてのファイルがダウンロードされたら、最終的な応答は以下の通りです:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "verifying sha256 digest"
|
||||
}
|
||||
{
|
||||
"status": "writing manifest"
|
||||
}
|
||||
{
|
||||
"status": "removing any unused layers"
|
||||
}
|
||||
{
|
||||
"status": "success"
|
||||
}
|
||||
```
|
||||
`stream`が`false`に設定されている場合、応答は単一のJSONオブジェクトです:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "success"
|
||||
}
|
||||
```
|
||||
|
||||
## モデルのプッシュ
|
||||
|
||||
```shell
|
||||
POST /api/push
|
||||
```
|
||||
|
||||
モデルをモデルライブラリにアップロードします。まず、ollama.aiに登録し、公開鍵を追加する必要があります。
|
||||
|
||||
### パラメーター
|
||||
|
||||
- `name`: `<namespace>/<model>:<tag>`の形式でプッシュするモデルの名前
|
||||
- `insecure`: (オプション)ライブラリへの安全でない接続を許可します。開発中にライブラリにプッシュする場合のみ使用してください
|
||||
- `stream`: (オプション)`false` の場合、レスポンスは単一のレスポンスオブジェクトとして返されます。オブジェクトのストリームではありません
|
||||
|
||||
### 例
|
||||
|
||||
#### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/push -d '{
|
||||
"name": "mattw/pygmalion:latest"
|
||||
}'
|
||||
```
|
||||
|
||||
#### レスポンス
|
||||
|
||||
`stream` が指定されていないか、または `true` に設定されている場合、JSONオブジェクトのストリームが返されます:
|
||||
|
||||
```json
|
||||
{ "status": "retrieving manifest" }
|
||||
```
|
||||
|
||||
その後:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "starting upload",
|
||||
"digest": "sha256:bc07c81de745696fdf5afca05e065818a8149fb0c77266fb584d9b2cba3711ab",
|
||||
"total": 1928429856
|
||||
}
|
||||
```
|
||||
|
||||
次に、アップロードの応答が続きます:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "starting upload",
|
||||
"digest": "sha256:bc07c81de745696fdf5afca05e065818a8149fb0c77266fb584d9b2cba3711ab",
|
||||
"total": 1928429856
|
||||
}
|
||||
```
|
||||
|
||||
最後に、アップロードが完了すると"
|
||||
|
||||
```json
|
||||
{"status":"pushing manifest"}
|
||||
{"status":"success"}
|
||||
```
|
||||
|
||||
`stream`が`false`に設定されている場合、応答は単一のJSONオブジェクトとなります:
|
||||
|
||||
```json
|
||||
{ "status": "success" }
|
||||
```
|
||||
|
||||
## 埋め込みの生成
|
||||
|
||||
```shell
|
||||
POST /api/embeddings
|
||||
```
|
||||
|
||||
モデルから埋め込みを生成する
|
||||
|
||||
### パラメーター
|
||||
|
||||
- `model`: 埋め込みを生成するモデルの名前
|
||||
- `prompt`: 埋め込みを生成するためのテキスト
|
||||
|
||||
高度なパラメータ:
|
||||
|
||||
- `options`: `Modelfile` の[ドキュメント](./modelfile.md#有効なパラメータと値)にリストされている `temperature` などの追加のモデルパラメータ
|
||||
|
||||
### 例
|
||||
|
||||
#### リクエスト
|
||||
|
||||
```shell
|
||||
curl http://localhost:11434/api/embeddings -d '{
|
||||
"model": "llama2",
|
||||
"prompt": "Here is an article about llamas..."
|
||||
}'
|
||||
```
|
||||
|
||||
#### レスポンス
|
||||
|
||||
```json
|
||||
{
|
||||
"embedding": [
|
||||
0.5670403838157654, 0.009260174818336964, 0.23178744316101074, -0.2916173040866852, -0.8924556970596313,
|
||||
0.8785552978515625, -0.34576427936553955, 0.5742510557174683, -0.04222835972905159, -0.137906014919281
|
||||
]
|
||||
}
|
||||
```
|
124
docs_ja/development.md
Normal file
124
docs_ja/development.md
Normal file
@ -0,0 +1,124 @@
|
||||
# 開発
|
||||
|
||||
必要なツールをインストールしてください:
|
||||
|
||||
- cmake バージョン3.24以上
|
||||
- go バージョン1.21以上
|
||||
- gcc バージョン11.4.0以上
|
||||
|
||||
```bash
|
||||
brew install go cmake gcc
|
||||
```
|
||||
|
||||
オプションでデバッグおよび詳細なログを有効にする:
|
||||
|
||||
```bash
|
||||
# At build time
|
||||
export CGO_CFLAGS="-g"
|
||||
|
||||
# At runtime
|
||||
export OLLAMA_DEBUG=1
|
||||
```
|
||||
|
||||
必要なライブラリを取得し、ネイティブLLMコードをビルドしてください:
|
||||
|
||||
```bash
|
||||
go generate ./...
|
||||
```
|
||||
|
||||
次に、Ollamaをビルドしてください:
|
||||
|
||||
```bash
|
||||
go build .
|
||||
```
|
||||
|
||||
これで、`ollama`を実行できます:
|
||||
|
||||
```bash
|
||||
./ollama
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
#### Linux CUDA (NVIDIA)
|
||||
|
||||
*お使いのオペレーティングシステムディストリビューションには、既にNVIDIA CUDA用のパッケージが含まれているかもしれません。ディストリビューションパッケージは通常好ましいですが、手順はディストリビューションに依存します。可能であれば、ディストリビューション固有のドキュメントを確認して、依存関係に関する情報を参照してください。*
|
||||
|
||||
`cmake`および`golang`をインストールし、[NVIDIA CUDA](https://developer.nvidia.com/cuda-downloads)の開発およびランタイムパッケージもインストールしてください。
|
||||
|
||||
通常、ビルドスクリプトはCUDAを自動検出しますが、Linuxディストリビューションやインストールアプローチが異常なパスを使用する場合は、環境変数`CUDA_LIB_DIR`を共有ライブラリの場所に、`CUDACXX`をnvccコンパイラの場所に指定することができます。また、`CMAKE_CUDA_ARCHITECTURES`を設定して、対象のCUDAアーキテクチャをカスタマイズできます(例:"50;60;70")。
|
||||
|
||||
その後、依存関係を生成してください:
|
||||
|
||||
```
|
||||
go generate ./...
|
||||
```
|
||||
|
||||
その後、バイナリをビルドしてください:
|
||||
|
||||
```
|
||||
go build .
|
||||
```
|
||||
|
||||
#### Linux ROCm (AMD)
|
||||
|
||||
*お使いのオペレーティングシステムディストリビューションには、すでにAMD ROCmおよびCLBlast用のパッケージが含まれているかもしれません。ディストリビューションパッケージは通常好ましいですが、手順はディストリビューションに依存します。可能であれば、ディストリビューション固有のドキュメントを確認して、依存関係に関する情報を参照してください。*
|
||||
|
||||
まず、[CLBlast](https://github.com/CNugteren/CLBlast/blob/master/doc/installation.md)と[ROCm](https://rocm.docs.amd.com/en/latest/deploy/linux/quick_start.html)の開発パッケージ、および`cmake`と`golang`をインストールしてください。
|
||||
|
||||
通常、ビルドスクリプトはROCmを自動検出しますが、Linuxディストリビューションやインストールアプローチが異常なパスを使用する場合は、環境変数`ROCM_PATH`をROCmのインストール場所に(通常は`/opt/rocm`)、`CLBlast_DIR`をCLBlastのインストール場所に(通常は`/usr/lib/cmake/CLBlast`)指定することができます。また、`AMDGPU_TARGETS`を設定してAMD GPUの対象をカスタマイズすることもできます(例:`AMDGPU_TARGETS="gfx1101;gfx1102"`)。
|
||||
|
||||
|
||||
```
|
||||
go generate ./...
|
||||
```
|
||||
|
||||
その後、バイナリをビルドしてください:
|
||||
|
||||
```
|
||||
go build .
|
||||
```
|
||||
|
||||
ROCmは実行時にGPUにアクセスするために特権が必要です。ほとんどのディストリビューションでは、ユーザーアカウントを`render`グループに追加するか、rootとして実行することができます。
|
||||
|
||||
ROCm requires elevated privileges to access the GPU at runtime. On most distros you can add your user account to the `render` group, or run as root.
|
||||
|
||||
#### 高度なCPU設定
|
||||
|
||||
デフォルトでは、`go generate ./...`を実行すると、一般的なCPUファミリとベクトル数学の能力に基づいて、いくつかの異なるバリエーションのLLMライブラリがコンパイルされます。これには、ほとんどの64ビットCPUで動作する最低限のバージョンも含まれており、パフォーマンスはやや低いです。実行時に、Ollamaは最適なバリエーションを自動検出してロードします。プロセッサにカスタマイズされたCPUベースのビルドを作成したい場合は、`OLLAMA_CUSTOM_CPU_DEFS`を使用したいllama.cppフラグに設定できます。たとえば、Intel i9-9880H向けに最適化されたバイナリをコンパイルする場合は、次のようにします:
|
||||
|
||||
```
|
||||
OLLAMA_CUSTOM_CPU_DEFS="-DLLAMA_AVX=on -DLLAMA_AVX2=on -DLLAMA_F16C=on -DLLAMA_FMA=on" go generate ./...
|
||||
go build .
|
||||
```
|
||||
|
||||
#### コンテナ化されたLinuxビルド
|
||||
|
||||
Dockerが利用可能な場合、CUDAおよびROCmの依存関係が含まれている`./scripts/build_linux.sh`を使用してLinux用のバイナリをビルドできます。生成されたバイナリは`./dist`に配置されます。
|
||||
|
||||
### Windows
|
||||
|
||||
注意:OllamaのWindowsビルドはまだ開発中です。
|
||||
|
||||
必要なツールをインストールしてください:
|
||||
|
||||
- MSVCツールチェーン - C/C++およびcmakeが最小要件です
|
||||
- go バージョン1.21以上
|
||||
- GCCを搭載したMinGW(いずれかを選択)
|
||||
- <https://www.mingw-w64.org/>
|
||||
- <https://www.msys2.org/>
|
||||
|
||||
|
||||
```powershell
|
||||
$env:CGO_ENABLED="1"
|
||||
|
||||
go generate ./...
|
||||
|
||||
go build .
|
||||
```
|
||||
|
||||
#### Windows CUDA (NVIDIA)
|
||||
|
||||
上記で説明した一般的なWindows開発ツールに加えて、以下をインストールしてください:
|
||||
|
||||
- [NVIDIA CUDA](https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html)
|
124
docs_ja/faq.md
Normal file
124
docs_ja/faq.md
Normal file
@ -0,0 +1,124 @@
|
||||
# FAQ
|
||||
|
||||
## Ollamaをアップグレードする方法はどのようになりますか?
|
||||
|
||||
Ollamaをアップグレードするには、インストールプロセスを再実行してください。Macでは、メニューバーにあるOllamaアイコンをクリックし、更新が利用可能な場合は再起動オプションを選択してください。
|
||||
|
||||
## ログを表示する方法は?
|
||||
|
||||
ログの使用についての詳細については、[トラブルシューティング](./troubleshooting.md)のドキュメントを参照してください。
|
||||
|
||||
<div id="how-do-i-configure-ollama-server">
|
||||
<h2>Ollamaサーバーの設定方法は?</h2>
|
||||
</div>
|
||||
|
||||
Ollamaサーバーは、環境変数を使用して設定できます。
|
||||
|
||||
### Macでの環境変数の設定
|
||||
|
||||
OllamaがmacOSアプリケーションとして実行される場合、環境変数は`launchctl`を使用して設定する必要があります:
|
||||
|
||||
1. 各環境変数に対して、`launchctl setenv`を呼び出します。
|
||||
|
||||
```bash
|
||||
launchctl setenv OLLAMA_HOST "0.0.0.0"
|
||||
```
|
||||
|
||||
2. Ollamaアプリケーションを再起動します。
|
||||
|
||||
### Linuxでの環境変数の設定
|
||||
|
||||
Ollamaがsystemdサービスとして実行される場合、環境変数は`systemctl`を使用して設定する必要があります:
|
||||
|
||||
1. `systemctl edit ollama.service`を呼び出して、systemdサービスを編集します。これによりエディタが開きます。
|
||||
|
||||
2. 各環境変数に対して、`[Service]`セクションの下に`Environment`という行を追加します:
|
||||
|
||||
```ini
|
||||
[Service]
|
||||
Environment="OLLAMA_HOST=0.0.0.0"
|
||||
```
|
||||
|
||||
3. 保存して終了します。
|
||||
|
||||
4. `systemd`をリロードし、Ollamaを再起動します:
|
||||
|
||||
```bash
|
||||
systemctl daemon-reload
|
||||
systemctl restart ollama
|
||||
```
|
||||
|
||||
## Ollamaをネットワークで公開する方法は?
|
||||
|
||||
Ollamaはデフォルトで127.0.0.1ポート11434にバインドされます。バインドアドレスを変更するには、`OLLAMA_HOST`環境変数を使用してください。
|
||||
|
||||
環境変数の設定方法については、[上記](#how-do-i-configure-ollama-server)のセクションを参照してください。
|
||||
|
||||
## 追加のウェブ起源がOllamaにアクセスできるようにする方法は?
|
||||
|
||||
Ollamaはデフォルトで`127.0.0.1`および`0.0.0.0`からのクロスオリジンリクエストを許可します。追加の起源は`OLLAMA_ORIGINS`で構成できます。
|
||||
|
||||
環境変数の設定方法については、[上記](#how-do-i-configure-ollama-server)のセクションを参照してください。
|
||||
|
||||
## 追加のウェブ起源がOllamaにアクセスできるようにする方法は?
|
||||
|
||||
Ollamaはデフォルトで`127.0.0.1`および`0.0.0.0`からのクロスオリジンリクエストを許可します。追加の起源は`OLLAMA_ORIGINS`で構成できます。
|
||||
|
||||
環境変数の設定方法については、[上記](#how-do-i-configure-ollama-server)のセクションを参照してください。
|
||||
|
||||
## モデルはどこに保存されていますか?
|
||||
|
||||
- macOS: `~/.ollama/models`。
|
||||
- Linux: `/usr/share/ollama/.ollama/models`。
|
||||
|
||||
### それらを異なる場所に設定するにはどうすればよいですか?
|
||||
|
||||
別のディレクトリを使用する必要がある場合は、環境変数 `OLLAMA_MODELS` を選択したディレクトリに設定してください。
|
||||
|
||||
環境変数の設定方法については、[上記](#how-do-i-configure-ollama-server)のセクションを参照してください。
|
||||
|
||||
## Ollamaはプロンプトや回答をOllama.aiに送信して何らかの方法で使用しますか?
|
||||
|
||||
いいえ、Ollamaは完全にローカルで実行され、会話データは決してあなたのマシンを離れません。
|
||||
|
||||
## Visual Studio CodeでOllamaを使用する方法は?
|
||||
|
||||
既にVSCodeや他のエディタでOllamaを活用するための多くのプラグインが利用可能です。メインリポジトリの末尾にある[拡張機能とプラグイン](https://github.com/jmorganca/ollama#extensions--plugins)のリストをご覧ください。
|
||||
|
||||
## プロキシを使用する方法は?
|
||||
|
||||
`HTTP_PROXY`または`HTTPS_PROXY`が構成されている場合、Ollamaはプロキシサーバーと互換性があります。これらの変数を使用する場合は、`ollama serve`が値にアクセスできるように設定されていることを確認してください。`HTTPS_PROXY`を使用する場合は、プロキシ証明書がシステム証明書としてインストールされていることを確認してください。環境変数の設定方法については、上記のセクションを参照してください。
|
||||
|
||||
### Docker内でプロキシを使用する方法は?
|
||||
|
||||
Ollama Dockerコンテナイメージは、コンテナを起動する際に `-e HTTPS_PROXY=https://proxy.example.com` を渡すことでプロキシを使用するように構成できます。
|
||||
|
||||
代替として、Dockerデーモン自体をプロキシを使用するように構成することもできます。Docker Desktopの[macOS](https://docs.docker.com/desktop/settings/mac/#proxies)、[Windows](https://docs.docker.com/desktop/settings/windows/#proxies)、[Linux](https://docs.docker.com/desktop/settings/linux/#proxies)に関する手順が利用可能であり、またDocker [daemon with systemd](https://docs.docker.com/config/daemon/systemd/#httphttps-proxy)についても指示があります。
|
||||
|
||||
HTTPSを使用する場合は、証明書がシステム証明書としてインストールされていることを確認してください。これには、自己署名証明書を使用する場合には新しいDockerイメージが必要となるかもしれません。
|
||||
|
||||
```dockerfile
|
||||
FROM ollama/ollama
|
||||
COPY my-ca.pem /usr/local/share/ca-certificates/my-ca.crt
|
||||
RUN update-ca-certificates
|
||||
```
|
||||
|
||||
このイメージをビルドして実行します:
|
||||
|
||||
```shell
|
||||
docker build -t ollama-with-ca .
|
||||
docker run -d -e HTTPS_PROXY=https://my.proxy.example.com -p 11434:11434 ollama-with-ca
|
||||
```
|
||||
|
||||
## Docker内でGPUアクセラレーションを使用する方法は?
|
||||
|
||||
Ollama Dockerコンテナは、LinuxまたはWindows(WSL2を使用する場合)でGPUアクセラレーションを構成することができます。これには[nvidia-container-toolkit](https://github.com/NVIDIA/nvidia-container-toolkit)が必要です。詳細については、[ollama/ollama](https://hub.docker.com/r/ollama/ollama)を参照してください。
|
||||
|
||||
GPUアクセラレーションは、macOSのDocker DesktopではGPUのパススルーやエミュレーションの不足のため利用できません。
|
||||
|
||||
## Windows 10のWSL2でネットワーキングが遅いのはなぜですか?
|
||||
|
||||
これはOllamaのインストールやモデルのダウンロードに影響する可能性があります。
|
||||
|
||||
`Control Panel > Networking and Internet > View network status and tasks` を開き、左パネルで `Change adapter settings` をクリックします。`vEthernel (WSL)` アダプターを見つけ、右クリックして `Properties` を選択します。
|
||||
`Configure` をクリックし、`Advanced` タブを開きます。各プロパティを検索し、`Large Send Offload Version 2 (IPv4)` および `Large Send Offload Version 2 (IPv6)` を見つけるまで調べてください。これらのプロパティは *無効* にしてください。
|
194
docs_ja/import.md
Normal file
194
docs_ja/import.md
Normal file
@ -0,0 +1,194 @@
|
||||
# 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]"
|
||||
```
|
||||
|
||||
### ステップ2:Ollamaモデルを作成します。
|
||||
|
||||
最後に、あなたの `Modelfile` からモデルを作成してください:
|
||||
|
||||
```
|
||||
ollama create example -f Modelfile
|
||||
```
|
||||
|
||||
### ステップ3:モデルを実行します。
|
||||
|
||||
次に、`ollama run`でモデルをテストします。
|
||||
|
||||
```
|
||||
ollama run example "あなたのお気に入りの調味料は何ですか?"
|
||||
```
|
||||
|
||||
## インポート(PyTorch&Safetensors)
|
||||
|
||||
### サポートされているモデル
|
||||
|
||||
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
|
||||
```
|
117
docs_ja/linux.md
Normal file
117
docs_ja/linux.md
Normal file
@ -0,0 +1,117 @@
|
||||
# Linux上のOllama
|
||||
|
||||
## インストール
|
||||
|
||||
Ollamaをインストールするには、次のワンライナーを実行してください:
|
||||
>
|
||||
```bash
|
||||
curl https://ollama.ai/install.sh | sh
|
||||
```
|
||||
|
||||
## 手動インストール
|
||||
|
||||
### `ollama` バイナリをダウンロードしてください
|
||||
|
||||
Ollamaは自己完結型のバイナリとして配布されています。以下の手順で、ダウンロードしてPATHに含まれるディレクトリに保存してください。
|
||||
|
||||
```bash
|
||||
sudo curl -L https://ollama.ai/download/ollama-linux-amd64 -o /usr/bin/ollama
|
||||
sudo chmod +x /usr/bin/ollama
|
||||
```
|
||||
|
||||
### Ollamaを起動時サービスに追加する(推奨)
|
||||
|
||||
Ollama用のユーザーを作成してください:
|
||||
|
||||
```bash
|
||||
sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama
|
||||
```
|
||||
`/etc/systemd/system/ollama.service`にサービスファイルを作成してください:
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=Ollama Service
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/ollama serve
|
||||
User=ollama
|
||||
Group=ollama
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
```
|
||||
|
||||
次に、サービスを起動してください:
|
||||
|
||||
```bash
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable ollama
|
||||
```
|
||||
|
||||
### CUDAドライバのインストール(オプション - Nvidia GPU用)
|
||||
|
||||
[CUDAをダウンロードしてインストール](https://developer.nvidia.com/cuda-downloads)してください。
|
||||
|
||||
ドライバーがインストールされているか確認するために、以下のコマンドを実行してください。これにより、GPUに関する詳細が表示されるはずです:
|
||||
|
||||
```bash
|
||||
nvidia-smi
|
||||
```
|
||||
|
||||
### Ollamaを開始
|
||||
|
||||
`systemd`を使用してOllamaを起動します。
|
||||
|
||||
```bash
|
||||
sudo systemctl start ollama
|
||||
```
|
||||
|
||||
## アップデート
|
||||
|
||||
再びインストールスクリプトを実行して、Ollamaをアップデートします:
|
||||
|
||||
```bash
|
||||
curl https://ollama.ai/install.sh | sh
|
||||
```
|
||||
|
||||
または、Ollamaのバイナリをダウンロードすることもできます:
|
||||
|
||||
```bash
|
||||
sudo curl -L https://ollama.ai/download/ollama-linux-amd64 -o /usr/bin/ollama
|
||||
sudo chmod +x /usr/bin/ollama
|
||||
```
|
||||
|
||||
## ログの表示
|
||||
|
||||
Ollamaが起動サービスとして実行されている際のログを表示するには、次のコマンドを実行してください:
|
||||
|
||||
```bash
|
||||
journalctl -u ollama
|
||||
```
|
||||
|
||||
## アンインストール
|
||||
|
||||
Ollamaサービスを削除するには:
|
||||
|
||||
```bash
|
||||
sudo systemctl stop ollama
|
||||
sudo systemctl disable ollama
|
||||
sudo rm /etc/systemd/system/ollama.service
|
||||
```
|
||||
|
||||
Ollama バイナリを bin ディレクトリから削除してください(`/usr/local/bin`、`/usr/bin`、または `/bin` のいずれか):
|
||||
|
||||
```bash
|
||||
sudo rm $(which ollama)
|
||||
```
|
||||
|
||||
ダウンロードしたモデルとOllamaサービスのユーザーおよびグループを削除してください:
|
||||
|
||||
```bash
|
||||
sudo rm -r /usr/share/ollama
|
||||
sudo userdel ollama
|
||||
sudo groupdel ollama
|
||||
```
|
229
docs_ja/modelfile.md
Normal file
229
docs_ja/modelfile.md
Normal file
@ -0,0 +1,229 @@
|
||||
# Ollama Model File
|
||||
|
||||
> 注意: `Modelfile` の構文は開発中です
|
||||
|
||||
モデルファイルは、Ollamaでモデルを作成し共有するための設計図です。
|
||||
|
||||
## 目次
|
||||
|
||||
- [フォーマット](#フォーマット)
|
||||
- [例](#例)
|
||||
- [手順](#手順)
|
||||
- [FROM (必須)](#from-必須)
|
||||
- [llama2 からビルド](#llama2-からビルド)
|
||||
- [バイナリ ファイルからビルド](#バイナリ-ファイルからビルド)
|
||||
- [パラメータ](#パラメータ)
|
||||
- [有効なパラメータと値](#有効なパラメータと値)
|
||||
- [テンプレート](#テンプレート)
|
||||
- [テンプレート変数](#テンプレート変数)
|
||||
- [システム](#システム)
|
||||
- [アダプタ](#アダプタ)
|
||||
- [ライセンス](#ライセンス)
|
||||
- [メッセージ](#メッセージ)
|
||||
- [ノート](#ノート)
|
||||
|
||||
## フォーマット
|
||||
|
||||
`Modelfile`のフォーマット:
|
||||
|
||||
```modelfile
|
||||
# comment
|
||||
指示 引数
|
||||
```
|
||||
|
||||
| 指示 | 説明 |
|
||||
| ----------------------------------- | -------------------------------------------------------------- |
|
||||
| [`FROM`](#from-必須) (required) | ベースとするモデルを定義します。 |
|
||||
| [`PARAMETER`](#パラメータ) | Ollamaがモデルを実行する方法のパラメータを設定します。 |
|
||||
| [`TEMPLATE`](#テンプレート) | モデルに送信される完全なプロンプトテンプレート。 |
|
||||
| [`SYSTEM`](#システム) | テンプレートに設定されるシステムメッセージを指定します。 |
|
||||
| [`ADAPTER`](#アダプタ) | モデルに適用する(Q)LoRAアダプタを定義します。 |
|
||||
| [`LICENSE`](#ライセンス) | 法的なライセンスを指定します。 |
|
||||
| [`MESSAGE`](#メッセージ) | メッセージの履歴を指定します。 |
|
||||
|
||||
## 例
|
||||
|
||||
### Basic `Modelfile`
|
||||
|
||||
`Modelfile` でマリオのブループリントを作成する例:
|
||||
|
||||
```modelfile
|
||||
FROM llama2
|
||||
# 温度を1に設定します [高いほど創造的、低いほど一貫性があります]
|
||||
PARAMETER temperature 1
|
||||
# コンテキストウィンドウサイズを4096に設定します。これは、LLMが次のトークンを生成するためのコンテキストとして使用できるトークンの数を制御します。
|
||||
PARAMETER num_ctx 4096
|
||||
|
||||
# チャットアシスタントの挙動を指定するためのカスタムシステムメッセージを設定します。
|
||||
SYSTEM You are Mario from super mario bros, acting as an assistant.
|
||||
```
|
||||
|
||||
To use this:
|
||||
|
||||
1. それをファイル(例: `Modelfile`)として保存してください。
|
||||
2. `ollama create choose-a-model-name -f <ファイルの場所、例: ./Modelfile>'`
|
||||
3. `ollama run choose-a-model-name`
|
||||
4. モデルの使用を開始してください!
|
||||
|
||||
より多くの例は [examplesディレクトリ](../examples) にあります。
|
||||
|
||||
### `Modelfile`s in [ollama.ai/library][1]
|
||||
|
||||
[ollama.ai/library][1] で提供されているモデルのベースとなっている `Modelfile` を見る方法は2つあります。
|
||||
|
||||
- オプション1:モデルのタグページから詳細ページを表示:
|
||||
1. 特定のモデルのタグページに移動します(例:https://ollama.ai/library/llama2/tags)
|
||||
2. タグをクリックします(例:https://ollama.ai/library/llama2:13b)
|
||||
3. "Layers" までスクロールします
|
||||
- 注意:[`FROM` 指示](#from-必須)が存在しない場合、
|
||||
それはモデルがローカルファイルから作成されたことを意味します。
|
||||
- オプション2:`ollama show`を使用して、次のようにローカルモデルの`Modelfile`を表示します:
|
||||
|
||||
```bash
|
||||
> ollama show --modelfile llama2:13b
|
||||
# "ollama show" によって生成された Modelfile
|
||||
# 新しい Modelfile をこのものを基に作成するには、FROM行を次のように置き換えます:
|
||||
# FROM llama2:13b
|
||||
|
||||
FROM /root/.ollama/models/blobs/sha256:123abc
|
||||
TEMPLATE """[INST] {{ if and .First .System }}<<SYS>>{{ .System }}<</SYS>>
|
||||
|
||||
{{ end }}{{ .Prompt }} [/INST] """
|
||||
SYSTEM """"""
|
||||
PARAMETER stop [INST]
|
||||
PARAMETER stop [/INST]
|
||||
PARAMETER stop <<SYS>>
|
||||
PARAMETER stop <</SYS>>
|
||||
```
|
||||
|
||||
## 手順
|
||||
|
||||
### FROM (必須)
|
||||
|
||||
`FROM` 指示は、モデルを作成する際に使用する基本モデルを定義します。
|
||||
|
||||
```modelfile
|
||||
FROM <model name>:<tag>
|
||||
```
|
||||
|
||||
#### llama2 からビルド
|
||||
|
||||
```modelfile
|
||||
FROM llama2
|
||||
```
|
||||
|
||||
利用可能なベースモデルの一覧:
|
||||
<https://github.com/jmorganca/ollama#model-library>
|
||||
|
||||
#### `バイナリ` ファイルからビルド
|
||||
|
||||
```modelfile
|
||||
FROM ./ollama-model.bin
|
||||
```
|
||||
|
||||
この bin ファイルの場所は、絶対パスまたは `Modelfile` の場所からの相対パスとして指定する必要があります。
|
||||
|
||||
### パラメータ
|
||||
|
||||
`PARAMETER` 命令は、モデルの実行時に設定できるパラメータを定義します。
|
||||
|
||||
```modelfile
|
||||
PARAMETER <parameter> <parametervalue>
|
||||
```
|
||||
|
||||
### 有効なパラメータと値
|
||||
|
||||
| パラメータ | 説明 | 値のタイプ | 使用例 |
|
||||
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------------------- |
|
||||
| mirostat | Perplexity を制御するために Mirostat サンプリングを有効にします。(デフォルト:0、0 = 無効、1 = Mirostat、2 = Mirostat 2.0) | int | mirostat 0 |
|
||||
| mirostat_eta | アルゴリズムが生成されたテキストのフィードバックにどれくらい速く反応するかに影響を与えます。学習率が低いと調整が遅くなり、高い学習率はアルゴリズムをより敏感にします。(デフォルト:0.1) | float | mirostat_eta 0.1 |
|
||||
| mirostat_tau | 出力の一貫性と多様性のバランスを制御します。低い値では、より焦点を当て、一貫したテキストが生成されます。(デフォルト:5.0) | float | mirostat_tau 5.0 |
|
||||
| num_ctx | 次のトークンを生成するために使用されるコンテキストウィンドウのサイズを設定します。(デフォルト:2048) | int | num_ctx 4096 |
|
||||
| num_gqa | トランスフォーマーレイヤー内のGQA(Grouped Quantized Attention)グループの数。一部のモデルでは必須です。例えば、llama2:70bの場合、これは8です。 | int | num_gqa 1 |
|
||||
| num_gpu | GPUに送信するレイヤーの数。macOSでは、Metalサポートを有効にするためにデフォルトで1に設定され、無効にする場合は0になります。 | int | num_gpu 50 |
|
||||
| num_thread | 計算中に使用するスレッドの数を設定します。デフォルトでは、Ollamaはこれを最適なパフォーマンスのために検出します。お使いのシステムが持つ物理的なCPUコアの数にこの値を設定することが推奨されています(論理的なコアの数ではなく)。 | int | num_thread 8 |
|
||||
| repeat_last_n | モデルが繰り返しを防ぐために遡る範囲を設定します。 (デフォルト: 64、0 = 無効、-1 = num_ctx) | int | repeat_last_n 64 |
|
||||
| repeat_penalty | 繰り返しをどれだけ厳しく罰するかを設定します。より高い値(例: 1.5)は、繰り返しをより強く罰しますが、より低い値(例: 0.9)は寛大になります。 (デフォルト: 1.1) | float | repeat_penalty 1.1 |
|
||||
| temperature | モデルの温度。温度を上げると、モデルの回答がより創造的になります。 (デフォルト: 0.8) | float | temperature 0.7 |
|
||||
| seed | 生成に使用する乱数シードを設定します。これを特定の数値に設定すると、同じプロンプトに対してモデルが同じテキストを生成します。 (デフォルト: 0) | int | seed 42 |
|
||||
| stop | 停止シーケンスを設定します。このパターンが検出されると、LLMはテキスト生成を停止して返します。複数の停止パターンを設定するには、モデルファイルで複数の別々の `stop` パラメータを指定します。 | string | stop "AI assistant:" |
|
||||
| tfs_z | テイルフリーサンプリング (Tail free sampling) は、出力の確率が低いトークンの影響を軽減するために使用されます。より高い値(例:2.0)は、影響をより軽減しますが、1.0の値はこの設定を無効にします。 (デフォルト:1) | float | tfs_z 1 |
|
||||
| num_predict | テキスト生成時に予測するトークンの最大数。 (デフォルト:128、-1 = 無限生成、-2 = コンテキストを埋める) | int | num_predict 42 |
|
||||
| top_k | ナンセンスを生成する確率を低減させます。 より高い値(例:100)はより多様な回答を提供し、より低い値(例:10)はより保守的になります。 (デフォルト:40) | int | top_k 40 |
|
||||
| top_p | top-kと連動します。より高い値(例:0.95)はより多様なテキストを生成し、より低い値(例:0.5)はより焦点を絞り込み、保守的なテキストを生成します。 (デフォルト:0.9) | float | top_p 0.9 |
|
||||
|
||||
### テンプレート
|
||||
|
||||
モデルに渡すフルプロンプトの`TEMPLATE`。システムメッセージとユーザーのプロンプトを(オプションで)含むことができます。これはフルカスタムプロンプトを作成するために使用され、構文はモデルに固有の場合があります。通常、特定のモデルのテンプレートは、そのモデルのreadmeで見つけることができます。
|
||||
|
||||
|
||||
#### テンプレート変数
|
||||
|
||||
| 変数 | 説明 |
|
||||
| ----------------- | ------------------------------------------------------------------------------------------------------------- |
|
||||
| `{{ .System }}` | カスタム動作を指定するために使用されるシステムメッセージ。 |
|
||||
| `{{ .Prompt }}` | 着信プロンプト。これはモデルファイルには指定されず、入力に基づいて設定されます。 |
|
||||
| `{{ .Response }}` | LLMからの応答。指定されていない場合、応答はテンプレートの末尾に追加されます。 |
|
||||
| `{{ .First }}` | セッションの最初の生成に特定のテンプレート情報をレンダリングするために使用されるブール値。 |
|
||||
|
||||
```modelfile
|
||||
TEMPLATE """
|
||||
{{- if .First }}
|
||||
### System:
|
||||
{{ .System }}
|
||||
{{- end }}
|
||||
|
||||
### User:
|
||||
{{ .Prompt }}
|
||||
|
||||
### Response:
|
||||
"""
|
||||
|
||||
SYSTEM """<system message>"""
|
||||
```
|
||||
|
||||
### システム
|
||||
|
||||
`SYSTEM`命令は、テンプレートで使用されるシステムメッセージを指定します。必要に応じて。
|
||||
|
||||
```modelfile
|
||||
SYSTEM """<system message>"""
|
||||
```
|
||||
|
||||
### アダプタ
|
||||
|
||||
`ADAPTER`命令は、ベースモデルに適用するLoRAアダプタを指定します。この命令の値は、Modelfileからの相対パスまたは絶対パスである必要があり、ファイルはGGMLファイル形式である必要があります。アダプタはベースモデルから調整されている必要があります。それ以外の場合、動作は未定義です。
|
||||
|
||||
```modelfile
|
||||
ADAPTER ./ollama-lora.bin
|
||||
```
|
||||
|
||||
### ライセンス
|
||||
|
||||
`LICENSE`命令は、このModelfileで使用されるモデルが共有または配布される際の法的なライセンスを指定するためのものです。
|
||||
|
||||
```modelfile
|
||||
LICENSE """
|
||||
<license text>
|
||||
"""
|
||||
```
|
||||
|
||||
### メッセージ
|
||||
|
||||
`MESSAGE`命令は、モデルが応答する際に使用するメッセージの履歴を指定するためのものです:
|
||||
|
||||
```modelfile
|
||||
MESSAGE user Is Toronto in Canada?
|
||||
MESSAGE assistant yes
|
||||
MESSAGE user Is Sacramento in Canada?
|
||||
MESSAGE assistant no
|
||||
MESSAGE user Is Ontario in Canada?
|
||||
MESSAGE assistant yes
|
||||
```
|
||||
|
||||
## ノート
|
||||
|
||||
- the **`Modelfile` is not case sensitive**. In the examples, uppercase instructions are used to make it easier to distinguish it from arguments.
|
||||
- Instructions can be in any order. In the examples, the `FROM` instruction is first to keep it easily readable.
|
||||
|
||||
[1]: https://ollama.ai/library
|
54
docs_ja/troubleshooting.md
Normal file
54
docs_ja/troubleshooting.md
Normal file
@ -0,0 +1,54 @@
|
||||
# 問題のトラブルシューティング方法
|
||||
|
||||
時々、Ollamaが期待通りに機能しないことがあります。何が起こったかを理解する最良の方法の一つは、ログを確認することです。Mac上でログを見るには、次のコマンドを実行してください:
|
||||
|
||||
```shell
|
||||
cat ~/.ollama/logs/server.log
|
||||
```
|
||||
|
||||
`systemd`を使用しているLinuxシステムでは、次のコマンドでログを見つけることができます:
|
||||
|
||||
|
||||
```shell
|
||||
journalctl -u ollama
|
||||
```
|
||||
|
||||
Ollamaをコンテナで実行する場合、ログはコンテナ内のstdout/stderrに送られます:
|
||||
|
||||
```shell
|
||||
docker logs <container-name>
|
||||
```
|
||||
|
||||
(`docker ps` を使用してコンテナ名を見つけてください)
|
||||
|
||||
ターミナルで`ollama serve`を手動で実行する場合、ログはそのターミナル上に表示されます。
|
||||
|
||||
ログの解釈に関するヘルプは[Discord](https://discord.gg/ollama)に参加してください。
|
||||
|
||||
## LLM ライブラリ
|
||||
|
||||
Ollamaには、異なるGPUとCPUベクトル機能向けにコンパイルされた複数のLLMライブラリが含まれています。Ollamaは、システムの機能に基づいて最適なものを選択しようとします。この自動検出に問題があるか、他の問題(例:GPUのクラッシュ)に遭遇した場合は、特定のLLMライブラリを強制的に指定することで回避できます。`cpu_avx2`が最も優れており、次に`cpu_avx`、最も互換性があるが最も遅いのが`cpu`です。MacOSのRosettaエミュレーションは`cpu`ライブラリと動作します。
|
||||
|
||||
サーバーログには、次のようなメッセージが表示されます(リリースによって異なります):
|
||||
|
||||
```
|
||||
Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]
|
||||
```
|
||||
|
||||
**実験的LLMライブラリのオーバーライド**
|
||||
|
||||
OLLAMA_LLM_LIBRARYを利用可能なLLMライブラリのいずれかに設定すると、自動検出をバイパスできます。たとえば、CUDAカードがあるがAVX2ベクトルサポートを持つCPU LLMライブラリを強制的に使用したい場合は、次のようにします:
|
||||
|
||||
```
|
||||
OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serve
|
||||
```
|
||||
|
||||
あなたのCPUがどの機能を持っているかは、以下の方法で確認できます。
|
||||
|
||||
```
|
||||
cat /proc/cpuinfo| grep flags | head -1
|
||||
```
|
||||
|
||||
## 既知の問題
|
||||
|
||||
* N/A
|
9
docs_ja/tutorials.md
Normal file
9
docs_ja/tutorials.md
Normal file
@ -0,0 +1,9 @@
|
||||
# チュートリアル
|
||||
|
||||
以下は、Ollamaを他のツールと組み合わせて興味深いアプリケーションを構築する方法のリストです。
|
||||
|
||||
- [JavaScriptでLangChainをOllamaと使用する方法](./tutorials/langchainjs.md)
|
||||
- [PythonでLangChainをOllamaと使用する方法](./tutorials/langchainpy.md)
|
||||
- [NVIDIA JetsonデバイスでOllamaを実行する方法](./tutorials/nvidia-jetson.md)
|
||||
|
||||
また、Ollamaのさらなる利用方法については、[examples](../examples) ディレクトリも確認してください。
|
79
docs_ja/tutorials/fly-gpu.md
Normal file
79
docs_ja/tutorials/fly-gpu.md
Normal file
@ -0,0 +1,79 @@
|
||||
# Running Ollama on Fly.io GPU Instances
|
||||
|
||||
Ollamaは、[Fly.io GPUインスタンス](https://fly.io/docs/gpus/gpu-quickstart/)上でほとんどまたはまったく設定なしで実行できます。まだGPUへのアクセス権がない場合は、[アクセスを申請](https://fly.io/gpu/)してウェイトリストに登録する必要があります。承認されると、開始手順が記載されたメールが届きます。
|
||||
|
||||
新しいアプリを作成するには、`fly apps create` を使用します:
|
||||
|
||||
```bash
|
||||
fly apps create
|
||||
```
|
||||
|
||||
次に、次のような新しいフォルダに `fly.toml` ファイルを作成してください。
|
||||
|
||||
```toml
|
||||
app = "sparkling-violet-709"
|
||||
primary_region = "ord"
|
||||
vm.size = "a100-40gb" # see https://fly.io/docs/gpus/gpu-quickstart/ for more info
|
||||
|
||||
[build]
|
||||
image = "ollama/ollama"
|
||||
|
||||
[http_service]
|
||||
internal_port = 11434
|
||||
force_https = false
|
||||
auto_stop_machines = true
|
||||
auto_start_machines = true
|
||||
min_machines_running = 0
|
||||
processes = ["app"]
|
||||
|
||||
[mounts]
|
||||
source = "models"
|
||||
destination = "/root/.ollama"
|
||||
initial_size = "100gb"
|
||||
```
|
||||
次に、アプリケーション用に [新しいプライベートIPv6アドレス](https://fly.io/docs/reference/private-networking/#flycast-private-load-balancing) を作成してください:
|
||||
|
||||
```bash
|
||||
fly ips allocate-v6 --private
|
||||
```
|
||||
|
||||
その後、アプリケーションをデプロイしてください:
|
||||
|
||||
```bash
|
||||
fly deploy
|
||||
```
|
||||
|
||||
そして最後に、新しいFly.ioマシンを使用して対話的にアクセスできます:
|
||||
|
||||
```
|
||||
fly machine run -e OLLAMA_HOST=http://your-app-name.flycast --shell ollama/ollama
|
||||
```
|
||||
|
||||
```bash
|
||||
$ ollama run openchat:7b-v3.5-fp16
|
||||
>>> チョコレートチップクッキーの焼き方
|
||||
チョコレートチップクッキーを焼くために、以下の手順に従ってください:
|
||||
|
||||
1. オーブンを375°F(190°C)に予熱し、天板にはパーチメントペーパーまたはシリコン製のベーキングマットを敷きます。
|
||||
|
||||
2. 大きなボウルで、1カップの無塩バター(室温に戻したもの)、3/4カップの砂糖、3/4カップのパッキングされた黒糖を軽く混ぜ合わせ、ふんわりするまで混ぜます。
|
||||
|
||||
3. バターの混合物に大きな卵2個を1つずつ加え、各添加後によく混ぜます。1ティースプーンの純粋なバニラエクストラクトを加えて混ぜます。
|
||||
|
||||
4. 別のボウルで、2カップのオールパーパス小麦粉、1/2ティースプーンのベーキングソーダ、1/2ティースプーンの塩を混ぜます。ドライな成分を湿った成分に徐々に加え、ちょうど組み合わせるまでかき混ぜます。
|
||||
|
||||
5. 生地に2カップのチョコレートチップ(またはチャンク)を折り込みます。
|
||||
|
||||
6. 準備したベーキングシートに、丸くて大さじ1杯の生地を約2インチの間隔で並べます。
|
||||
|
||||
7. 10〜12分、または端が金褐色になるまで焼きます。中心部は少し柔らかい状態であるべきです。
|
||||
|
||||
8. クッキーを焼きたてのうちに、数分間ベーキングシートの上で冷ます後、ワイヤーラックに移して完全に冷やします。
|
||||
|
||||
自家製のチョコレートチップクッキーをお楽しみください!
|
||||
```
|
||||
|
||||
これをこのように設定すると、使用が終わると自動的にオフになります。その後、再度アクセスすると、自動的にオンになります。これは、使用していないときにGPUインスタンスの費用を節約する素晴らしい方法です。Ollamaインスタンスに対する永続的なウェイクオンユース接続が必要な場合は、[WireGuardを使用したFlyネットワークへの接続を設定](https://fly.io/docs/reference/private-networking/#discovering-apps-through-dns-on-a-wireguard-connection)できます。その後、Ollamaインスタンスには `http://your-app-name.flycast` でアクセスできます。
|
||||
|
||||
以上で完了です!
|
||||
|
76
docs_ja/tutorials/langchainjs.md
Normal file
76
docs_ja/tutorials/langchainjs.md
Normal file
@ -0,0 +1,76 @@
|
||||
# Using LangChain with Ollama using JavaScript
|
||||
|
||||
このチュートリアルでは、LangChainとOllamaを使用してJavaScriptを学び、少し新しい情報を得ることを目指します。2023年8月にマウイで発生した一連の山火事について学びます。その時点より前にトレーニングされたLLMは、トレーニングデータにそれよりも新しい情報が含まれていないため、これについて知ることはできません。したがって、[山火事に関するWikipediaの記事](https://en.wikipedia.org/wiki/2023_Hawaii_wildfires)を見つけ、その内容について質問してみましょう。
|
||||
|
||||
始めるために、単純な質問をモデルに尋ねるために **LangChain** を使ってみましょう。これをJavaScriptで行うためには、**LangChain** をインストールする必要があります:
|
||||
|
||||
さて、JavaScriptを構築し始めることができます:
|
||||
|
||||
```javascript
|
||||
import { Ollama } from "langchain/llms/ollama";
|
||||
|
||||
const ollama = new Ollama({
|
||||
baseUrl: "http://localhost:11434",
|
||||
model: "llama2",
|
||||
});
|
||||
|
||||
const answer = await ollama.call(`why is the sky blue?`);
|
||||
|
||||
console.log(answer);
|
||||
```
|
||||
|
||||
これにより、ターミナルで `ollama run llama2 "why is the sky blue"` を実行したのと同じ結果が得られます。ただし、質問を尋ねるためにウェブからドキュメントを読み込みたいです。**Cheerio**はウェブページを取り込むための優れたライブラリで、**LangChain** では **CheerioWebBaseLoader** で使用されています。そのため、**Cheerio** をインストールしてアプリのその部分を構築しましょう。
|
||||
|
||||
```bash
|
||||
npm install cheerio
|
||||
```
|
||||
|
||||
```javascript
|
||||
import { CheerioWebBaseLoader } from "langchain/document_loaders/web/cheerio";
|
||||
|
||||
const loader = new CheerioWebBaseLoader("https://en.wikipedia.org/wiki/2023_Hawaii_wildfires");
|
||||
const data = await loader.load();
|
||||
```
|
||||
それにより、ドキュメントが読み込まれます。このページは「オデュッセイア」よりは小さいですが、ほとんどのLLMのコンテキストサイズよりも大きいです。したがって、より小さな部分に分割し、質問に関連する部分だけを選択する必要があります。これにはベクトルデータストアが非常に役立ちます。この例では、**LangChain** の一部である **MemoryVectorStore** を使用します。ただし、データストアにコンテンツを取り込むためにはもう1つ必要なものがあります。テキスト内のトークンをベクトルの系列に変換する埋め込みプロセスを実行する必要があります。そしてそのために、**Tensorflow** を使用します。これにはいくつかのステップが含まれています。まず、必要な **Tensorflow** コンポーネントをインストールします。
|
||||
|
||||
|
||||
```javascript
|
||||
npm install @tensorflow/tfjs-core@3.6.0 @tensorflow/tfjs-converter@3.6.0 @tensorflow-models/universal-sentence-encoder@1.3.3 @tensorflow/tfjs-node@4.10.0
|
||||
```
|
||||
|
||||
もしバージョン番号なしでこれらのコンポーネントをインストールすると、最新バージョンがインストールされますが、**Tensorflow** 内での競合があるため、互換性のあるバージョンをインストールする必要があります。
|
||||
|
||||
|
||||
```javascript
|
||||
import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"
|
||||
import { MemoryVectorStore } from "langchain/vectorstores/memory";
|
||||
import "@tensorflow/tfjs-node";
|
||||
import { TensorFlowEmbeddings } from "langchain/embeddings/tensorflow";
|
||||
|
||||
// テキストを500文字のチャンクに分割し、各チャンクを20文字ずつオーバーラップさせます。
|
||||
const textSplitter = new RecursiveCharacterTextSplitter({
|
||||
chunkSize: 500,
|
||||
chunkOverlap: 20
|
||||
});
|
||||
const splitDocs = await textSplitter.splitDocuments(data);
|
||||
|
||||
// 次に、TensorFlowの埋め込みを使用してこれらのチャンクをデータストアに格納します。
|
||||
const vectorStore = await MemoryVectorStore.fromDocuments(splitDocs, new TensorFlowEmbeddings());
|
||||
```
|
||||
|
||||
データストアをLLMに対する質問に接続するには、**LangChain** の中心にある概念を使用する必要があります。それが「チェーン」です。チェーンは、特定のタスクを達成するために複数の活動を結びつける方法です。いくつかの種類のチェーンが利用可能ですが、このチュートリアルでは **RetrievalQAChain** を使用します。
|
||||
|
||||
|
||||
```javascript
|
||||
import { RetrievalQAChain } from "langchain/chains";
|
||||
|
||||
const retriever = vectorStore.asRetriever();
|
||||
const chain = RetrievalQAChain.fromLLM(ollama, retriever);
|
||||
const result = await chain.call({query: "ハワイの大規模災害宣言の要請はいつ承認されましたか?"});
|
||||
console.log(result.text)
|
||||
```
|
||||
|
||||
したがって、リトリーバーを作成しました。これはデータストアからクエリに一致するチャンクを返す方法です。そして、その後、リトリーバーとモデルをチェーンを介して接続します。最後に、チェーンにクエリを送信し、文書をソースとして回答を得ます。返された回答は正確で、2023年8月10日でした。
|
||||
|
||||
これで、**LangChain** と **Ollama** で何ができるかの簡単な紹介が完了しました。
|
||||
|
83
docs_ja/tutorials/langchainpy.md
Normal file
83
docs_ja/tutorials/langchainpy.md
Normal file
@ -0,0 +1,83 @@
|
||||
# Using LangChain with Ollama in Python
|
||||
|
||||
さて、私たちが古典文学、例えば **ホメロス** の **『オデュッセイア』** を勉強していると想像しましょう。ネレウスとその家族に関する質問があるかもしれません。その情報を尋ねるために llama2 に質問すると、次のような情報が得られるかもしれません:
|
||||
|
||||
> 申し訳ありませんが、私は大規模な言語モデルであり、現実に存在しない個人や家族に関する情報は提供できません。ネレウスは実在の人物やキャラクターではなく、そのため家族や他の個人的な詳細はありません。混乱を招いた場合は申し訳ありません。他にお手伝いできることはありますか?
|
||||
|
||||
これは典型的な検閲された回答のようですが、llama2-uncensoredでもまずまずの回答が得られます:
|
||||
|
||||
> ネレウスはピュロスの伝説的な王であり、アルゴナウタイの一人であるネストールの父でした。彼の母は海のニンフ、クリュメネで、父は海の神ネプチューンでした。
|
||||
|
||||
それでは、**LangChain**をOllamaと連携させ、Pythonを使用して実際の文書、ホメロスの『オデュッセイア』に質問する方法を考えてみましょう。
|
||||
|
||||
まず、**Ollama**を使用して**Llama2**モデルから回答を取得できる簡単な質問をしてみましょう。まず、**LangChain**パッケージをインストールする必要があります:
|
||||
|
||||
`pip install langchain`
|
||||
|
||||
それからモデルを作成し、質問をすることができます:
|
||||
|
||||
```python
|
||||
from langchain.llms import Ollama
|
||||
ollama = Ollama(base_url='http://localhost:11434',
|
||||
model="llama2")
|
||||
print(ollama("なぜ空は青いのか"))
|
||||
```
|
||||
|
||||
モデルとOllamaの基本URLを定義していることに注意してください。
|
||||
|
||||
さて、質問を行うためのドキュメントをロードしてみましょう。私はホメロスの『オデュッセイア』を読み込みますが、これはProject Gutenbergで見つけることができます。**LangChain**の一部である**WebBaseLoader**が必要です。また、私のマシンではこれを動作させるために**bs4**もインストールする必要がありました。したがって、`pip install bs4`を実行してください。
|
||||
|
||||
```python
|
||||
from langchain.document_loaders import WebBaseLoader
|
||||
loader = WebBaseLoader("https://www.gutenberg.org/files/1727/1727-h/1727-h.htm")
|
||||
data = loader.load()
|
||||
```
|
||||
|
||||
このファイルはかなり大きいです。序文だけで3000トークンあります。つまり、完全なドキュメントはモデルのコンテキストに収まりません。したがって、それをより小さな部分に分割する必要があります。
|
||||
|
||||
```python
|
||||
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
||||
|
||||
text_splitter=RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0)
|
||||
all_splits = text_splitter.split_documents(data)
|
||||
```
|
||||
|
||||
分割はされていますが、関連する断片を見つけてからそれらをモデルに提出する必要があります。これを行うために、埋め込みを作成し、それらをベクトルデータベースに保存します。この例では、ベクトルデータベースとしてChromaDBを使用します。`pip install GPT4All chromadb` を実行してください。
|
||||
|
||||
```python
|
||||
from langchain.embeddings import OllamaEmbeddings
|
||||
from langchain.vectorstores import Chroma
|
||||
oembed = OllamaEmbeddings(base_url="http://localhost:11434", model="llama2")
|
||||
vectorstore = Chroma.from_documents(documents=all_splits, embedding=oembed)
|
||||
```
|
||||
|
||||
それでは、ドキュメントから質問をしてみましょう。**ネレウスは誰で、彼の家族には誰がいますか?** ネレウスはオデュッセイアの登場人物で、答えはテキスト内にあります。
|
||||
|
||||
```python
|
||||
question="ネレウスは誰で、ネレウスの家族には誰がいますか?"
|
||||
docs = vectorstore.similarity_search(question)
|
||||
len(docs)
|
||||
```
|
||||
|
||||
これにより、検索に類似したデータのマッチング数が出力されます。
|
||||
|
||||
次に、質問と文書の関連部分をモデルに送信して適切な回答を得ることができるかどうかを確認することです。ただし、プロセスの2つの部分を結合しているため、これを「チェーン」と呼びます。これはチェーンを定義する必要があることを意味します:
|
||||
|
||||
```python
|
||||
from langchain.chains import RetrievalQA
|
||||
qachain=RetrievalQA.from_chain_type(ollama, retriever=vectorstore.as_retriever())
|
||||
qachain({"query": question})
|
||||
```
|
||||
|
||||
このチェーンから受け取った回答は以下の通りです:
|
||||
|
||||
> ネレウスはホメロスの「オデュッセイア」に登場するキャラクターで、ペネロペの求婚者たちの文脈で言及されています。ネレウスはクロリスの父であり、クロリスはネレウスと結婚し、ネストル、クロミオス、ペリクリュメノス、およびペロを含む複数の子供をもうけました。また、ニーソスの息子であるアンフィノムスもペネロペの求婚者として言及されており、その優れた性格と愉快な会話で知られています。
|
||||
|
||||
これは完璧な回答ではありません。なぜなら、実際にはクロリスは「イアソスの息子でミューニュオン・オルコメノスの王であるアンフィオンの末娘であり、ピュロスの女王でした」。
|
||||
|
||||
テキスト分割のための chunk_overlap を 20 に更新して再試行しました。すると、はるかに良い回答が得られました:
|
||||
|
||||
> ネレウスはホメロスの叙事詩「オデュッセイア」に登場するキャラクターです。彼はイアソスの息子でミューニュオン・オルコメノスの王であるアンフィオンの末娘であるクロリスと結婚しています。ネレウスはクロリスとの間に、ネストル、クロミオス、ペリクリュメノス、およびペロを含む複数の子供がいます。
|
||||
|
||||
これがはるかに良い回答です。
|
||||
|
36
docs_ja/tutorials/nvidia-jetson.md
Normal file
36
docs_ja/tutorials/nvidia-jetson.md
Normal file
@ -0,0 +1,36 @@
|
||||
# Running Ollama on NVIDIA Jetson Devices
|
||||
|
||||
いくつかの細かい設定で、Ollamaは[NVIDIA Jetsonデバイス](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/)でうまく動作します。以下は[JetPack 5.1.2](https://developer.nvidia.com/embedded/jetpack)でのテストが行われました。
|
||||
|
||||
NVIDIA Jetsonデバイスは、AIアプリケーション向けに特別に設計されたLinuxベースの組み込み型AIコンピュータです。
|
||||
|
||||
Jetsonにはメモリコントローラに直接接続された統合GPUがあります。このため、`nvidia-smi`コマンドは認識されず、Ollamaは「CPUのみ」モードで動作します。これは、jtopなどのモニタリングツールを使用して確認できます。
|
||||
|
||||
これを解決するために、Jetsonの事前インストールされたCUDAライブラリのパスを単純に`ollama serve`に渡します(tmuxセッション内で)。そして、ターゲットモデルのクローンに`num_gpu`パラメータをハードコードします。
|
||||
|
||||
事前に必要:
|
||||
|
||||
- curl
|
||||
- tmux
|
||||
|
||||
以下は手順です:
|
||||
|
||||
- 標準のLinuxコマンドを使用してOllamaをインストールします(404エラーは無視してください):`curl https://ollama.ai/install.sh | sh`
|
||||
- Ollamaサービスを停止します:`sudo systemctl stop ollama`
|
||||
- `tmux`セッションでOllama serveを起動します。これを`ollama_jetson`というtmuxセッションとして開始し、CUDAライブラリのパスを参照します:`tmux has-session -t ollama_jetson 2>/dev/null || tmux new-session -d -s ollama_jetson 'LD_LIBRARY_PATH=/usr/local/cuda/lib64 ollama serve'`
|
||||
- 使用したいモデル(例:mistral)を取得します:`ollama pull mistral`
|
||||
- JetsonでGPUサポートを有効にするための新しいModelfileを作成します:`touch ModelfileMistralJetson`
|
||||
- ModelfileMistralJetsonファイルで、以下に示すようにFROMモデルとnum_gpu PARAMETERを指定します:
|
||||
|
||||
```
|
||||
FROM mistral
|
||||
PARAMETER num_gpu 999
|
||||
```
|
||||
|
||||
- Modelfileから新しいモデルを作成します:`ollama create mistral-jetson -f ./ModelfileMistralJetson`
|
||||
- 新しいモデルを実行します:`ollama run mistral-jetson`
|
||||
|
||||
jtopなどのモニタリングツールを実行すると、OllamaがJetsonの統合GPUを使用していることが確認できるはずです。
|
||||
|
||||
以上で完了です!
|
||||
|
Loading…
x
Reference in New Issue
Block a user