主要ポイント
- 最適なローカルモデルは、評判が最高なものではなく、使用可能な速度でVRAMに収まる最大のモデルです。
- Ollamaはあなたのマシン上でOpenAI互換のエンドポイントを公開するため、同じクライアントコードがローカルでもホストでも機能します。
- ローカルはプライバシーとオフライン利用を提供し、ホストはより大きなモデル、ハードウェア不要、セットアップ不要を提供します。
- 私たちはホストされたエンドポイントのみを提供しています。このサービスからのモデルダウンロードはありません。
短い答え:メモリで選び、次に2〜3つテストする
このための単一の最良モデルはありません。制限はあなたのハードウェアだからです。モデルは、動作キャッシュと共にGPUメモリ(またははるかに遅いシステムRAM)に収まらなければなりません。実用的なルールは単純です。メモリに余裕を持って収まり、許容できる速度で応答する最大のモデルを見つけ、独自のプロンプトで2〜3つの候補を比較してください。
モデル名とランキングは数週間ごとに変わるため、今日書かれたリストはすぐに古くなります。リーダーボードをスキップし、簡易な方法で進めてください:Ollamaライブラリとコミュニティアップロードを閲覧し、uncensored、abliterated、またはロールプレイ向けにファインチューニングされたモデルでフィルタリングし、小型と中型のモデルをそれぞれ1つずつ取得し、同じ10個のプロンプトをそれぞれで実行してください。あなたのプロンプトは、他人のベンチマークのスコアよりも多くのことを教えてくれます。
その後、マシンに収まるモデルが求める品質には小さすぎる場合、ホストされたエンドポイントが代替手段となります。このページの残りの部分では、数字を持って判断できるようにトレードオフを整理します。
マシンに合わせたモデルのサイズ設定方法
うまく動作させるために重要なのは3つの数字です:パラメータ数、量子化、およびコンテキストの長さ。
パラメータと量子化
パラメータの多いモデルは一般的により良い文章を書き、指示をより確実に従い、キャラクターをより長く維持します。しかし、パラメータはメモリを消費します。フル16ビット精度では、モデルはパラメータあたり約2バイト必要とし、7Bモデルはキャッシュなしで約14GB必要です。量子化によりそれが縮小します。4ビット版ではパラメータあたり約0.5バイトで済み、同じ7Bモデルは約4〜5GBに収まります。品質は段階的に少し低下しますが、4〜5ビットでは損失は通常小さく、それ以下では目立ちます。
コンテキストの長さ
コンテキストウィンドウもメモリを消費します。なぜなら、モデルは会話内のすべてのもののキャッシュを保存するためです。長いロールプレイセッションや、以前のテキストが多いストーリーには、より大きなキャッシュが必要です。Ollamaではモデルごとにコンテキストサイズを設定でき、より大きな値はより多くのメモリを使用し、生成を遅くします。多くのローカルセットアップは、高速に保つために数千トークンのウィンドウで動作しますが、その結果、モデルは長いチャットの始まりを忘れます。
速度
モデルがGPUメモリからはみ出してシステムRAMに落ちると、生成は快適な読み取り速度から、1単語ずつという速度に低下する可能性があります。完全にGPUに収まる小さなモデルは、少し良く書ける大きなモデルよりも、はるかに快適に感じられることがあります。
Ollamaでのモデル実行とコードからの呼び出し
Ollamaがインストールされると、プルとチャットは2つのコマンドで完了し、正確なモデル名は選択したライブラリページから取得します。
ollama pull MODEL_NAME
ollama run MODEL_NAME
Ollamaはデフォルトでhttp://localhost:11434/v1であなたのマシン上でOpenAI互換APIも提供します。つまり、同じクライアントコードでローカルモデルまたはホストされたモデルにアクセスでき、ベースURLとモデル名を変更することで切り替えることができます:
from openai import OpenAI
# Local Ollama (the key is ignored but must be non-empty)
local = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
# Hosted endpoint
hosted = OpenAI(base_url="https://api.ornith.top/v1", api_key="YOUR_API_KEY")
def ask(client, model, text):
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": text}],
)
return r.choices[0].message.content
prompt = "Write a tense two-paragraph scene set in an abandoned lighthouse."
print(ask(local, "MODEL_NAME", prompt))
print(ask(hosted, "uncensored", prompt))
同じプロンプトで両方を実行することは、あなた自身のケースに対する質問に答える最も早い方法です。ローカルの出力が十分であれば、完了であり、電気代がかかります。そうでない場合、あなたが得られるであろう基準が得られます。
ローカルOllama対ホスト型API
どちらがすべてのケースで優れているわけではありません。この表は、各アプローチの構造的な事実に焦点を当てています。
| 項目 | Ollamaによるローカル実行 | ホスト型API |
|---|---|---|
| 初期費用 | 十分なRAMを持つGPUまたはマシン | なし;$20からの前払いクレジット |
| 運用コスト | 電気代とあなたの時間 | 入力トークン1Mあたり$0.15、出力トークン1Mあたり$0.50 |
| モデルサイズ | あなたのメモリによって制限されます | プロバイダによって選択された1つのモデル |
| オフラインで動作 | はい | いいえ、インターネットが必要です |
| データはマシンから外部へ移動します | なし | はい、プロンプトはプロバイダに送信されます。当社のプロンプトはトレーニングには使用されません |
| モデルの選択 | ダウンロード可能なすべて | 提供されているもののみ |
| 同時ユーザー | ハードウェアに制限される | フルキーで最大8の同時リクエスト |
| セットアップ | インストール、プル、設定の調整 | ベースURLとキーの変更 |
プライバシー、オフライン利用、選択の自由度においてローカルが勝ちます。テキストがマシンから決して離れてはならない場合、またはモデルを週替わりで交換したい場合は、ローカルで実行してください。セットアップ時間、作業中にGPUを占有しないこと、複数のユーザーに同時にアプリを提供することにおいて、ホスト型APIが勝ちます。
当社が提供しないものを言うのも公平です。このサービスはホストされたエンドポイントのみです。ダウンロード用のモデルファイルはなく、ファインチューニングもできず、独自の重みを持ってくる方法もありません。モデルを所有したい場合は、Ollamaが適切なツールです。当社のオープンソースLLM APIガイドがより広いオプションのセットを詳しく説明しています。
ホストのコストの計算
人々はホストされたモデルが無料のローカル実行と比較して高価だと誤解することがよくあります。ハードウェアのコストを考慮するとローカルは無料ではありませんが、具体的な使用例で比較するとより簡単です。ここでの価格は1M入力トークンあたり$0.15、1M出力トークンあたり$0.50です。
- カジュアルなロールプレイ、1日100メッセージ。 各ターンで履歴として3,000トークンを送信し、300トークンを取得すると仮定します。1ターンあたりの入力:3,000トークン、1Mあたり$0.15なので$0.00045。出力:300トークン、1Mあたり$0.50なので$0.00015。これは1ターンあたり$0.0006、100ターンで$0.06、30日間で約$1.80です。
- 執筆プロジェクト。 月間5M入力トークンと1M出力トークンは、$0.75プラス$0.50で、合計$1.25です。
- 小規模アプリ。 月間200M入力と40M出力トークンは、$30プラス$20で、合計$50です。
GPUのコストはあなた次第ですが、軽量および中規模な使用ではホストされたサービスのコストは非常に小さくなります。$20の最小チャージは最初の2つのレベルで長い時間カバーし、クレジットは期限切れにならないため、1ヶ月休んでも消えることはありません。より大きなチャージにはボーナスが付きます:$50から5%、$100から10%、$200から15%。詳細は価格ページにあります。
両方を組み合わせる賢明な方法
一度だけ選択する必要はありません。多くの人は、短いドラフトやプライベートなメモには小さなローカルモデルを実行し、より長いまたは要求の多いタスクをホストされたエンドポイントに送信します。両方がOpenAIフォーマットをサポートしているため、アプリは2つのクライアントオブジェクトを保持し、タスクに応じてルーティングできます。上記のコードの通りです。
ホスティング側のテストを行う際、新しいユーザーはAPIキーページでワンクリックで$0.50の試用クレジットを受け取ることができます。カード不要、1人1回、7日間有効です。上記のターンごとの使用量では、これは何百ものロールプレイのターンに相当し、同じプロンプトで最良のローカルモデルと比較するのに十分な量です。Googleまたはメールとパスワードでログインした後にAPIキーを作成できます。APIドキュメントには、通過されるtemperature、top_p、stop、seedなどのパラメータがリストされており、ローカルのサンプリング設定が引き継がれます。
計画するためのいくつかの制限があります。トライアルキーは2つの同時リクエストと1分あたり60リクエストを許可します。フルキーは8と300を許可します。コンテキストウィンドウは100,000トークンで、ほとんどのローカルセットアップが快適に実行する範囲をはるかに超えています。そして、設定が変更できない唯一のルールは、このモデルは合法的な成人用であり、未成年者を含む性的なコンテンツを生成しないことです。
