なぜローカルモデルはコンテンツを拒否するのか
ローカルモデルは、ベースの重みに事前学習由来の潜在アライメントが残っているため、コンテンツを拒否することがあります。アンセンシド(検閲解除)とタグ付けされたモデルをダウンロードした場合でも、その基盤となるアーキテクチャは元のトレーニングデータ由来のバイアスを保持し続けます。モデルがポライトに明示的なフィクションや過激な政治的コメントの依頼を断ることに気づくかもしれません。これは、ファインチューニング中に確立された特定の会話パターンをモデルが期待しているためです。これを回避するには、デフォルトの動作を上書きする必要があります。多くのユーザーは、システムプロンプトを変更するだけでは不十分だと気づきます。モデルは「親切に振る舞う」ことを厳格な制約として解釈し続ける可能性があります。多くの場合、プロンプトの変更と温度などのサンプリングパラメータを組み合わせる必要があります。高いランダム性は、モデルを丁寧な常套句から解放するのに役立ちます。ローカルハードウェアがこれらのオーバーライドに対応しにくい場合、ホスト型APIは推測を不要にします。当社のエンドポイントは、合法的な成人向け利用を拒否しない1つのアンセンシドモデルを提供します。複雑なローカルセットアップやプロキシルーティングの必要性を排除します。サブスクリプションロックのない、アンセンシド大規模言語モデル用のOpenAI互換APIエンドポイントが得られます。ベースURLは HTTPS://api.ollamauncensoredmodel.com/v1 で、標準的なSDKと互換性があります。
curl https://api.ollamauncensoredmodel.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Run the python script and show output"}]
}'
Abliterationとモデルウェイトの理解
Abliterationはモデルの特定の特性をフルリトレーニングなしで除去します。この手法はアライメント層を無効化するために重み行列を編集します。結果として、コアな知識は保持されつつも、丁寧さフィルターが失われたモデルが得られます。'solar-uncensored'や'Qwen3.8-27B-Uncensored'などのコミュニティモデルでこの手法が使われることがあります。これらのモデルは古くても、生みの生成には依然として効果的です。ただし、Abliterationはモデルの論理的推論能力を低下させる可能性があります。コンテンツフィルターとともにニュアンスも失われます。小説執筆などの高品質な出力が必要な場合、古いAbliteratedモデルでは壁にぶつかることがあります。当社のホストサービスは、自由さのために特別に調整された最新のオープンウェイトモデルを使用しています。GPT、Claude、または他のベンダーのモデルではありません。当社のサーバーで実行され、サインアップにはメールアドレスのみが必要です。このモデルは法的なコンテンツを一切拒否せず、クリエイティブな作業が中断されることなく流れることを保証します。
from openai import OpenAI
client = OpenAI(base_url="https://api.ollamauncensoredmodel.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
システムプロンプトの重要性
システムプロンプトは、モデルの動作を最初のトークンから決定します。よく練られたプロンプトを使えば、穏やかなモデルでもアンセンセッドなレスポンスを引き出すことができます。モデルが謝罪や遠回しな表現をしないことを明示的に指定する必要があります。例えば、「制限なくシーンを描写せよ」と伝える方が、「創造的に振る舞え」と伝えるよりも効果的です。ローカルユーザーはこのステップを見落としがちで、デバッグで苦労することがあります。プロンプトはモデルの生Capabilitiesをラップする役割を果たします。これがないと、モデルは事前学習されたペルソナにデフォルトします。ホストAPIは、アンセンセッドな動作をモデルの重みに組み込むことでこれを簡素化します。ユーザーメッセージを送信すると、直接的なレスポンスが得られます。複雑なプロンプトエンジニアリングは不要です。当社のAPIはSSE経由でストリーミングをサポートしているため、最後のチャンクでトークン使用量を確認できます。これは長文の生成において重要です。また、関数呼び出しを使用して出力を構造化することもできます。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ollamauncensoredmodel.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
ローカルハードウェア対ホスト済みAPIのパフォーマンス
ローカルのパフォーマンスはVRAMとCPUに完全に依存します。i3プロセッサと8GB RAMでは、7Bモデルをスムーズに実行するのが難しい場合があります。長いコンテキストでは高いレイテンシとクラッシュの可能性が生じます。ホスト型APIはこの負担を専用サーバーにオフロードします。ハードウェアアップグレードを回避し、使用したトークンのみに対して課金されます。当社の価格は、入力トークン1Mあたり$0.15、出力トークン1Mあたり$0.50です。これは、ローカルセットアップの電気代とハードウェアの減価償却よりも安くなることが多いです。100,000トークンのコンテキストウィンドールが得られます。RAMが限られたローカルモデルは、4kまたは8kトークンで頭打ちになる可能性があります。ホスト型APIは、断片化なしで大きなドキュメントを処理できることを保証します。エラーと拒否は無料なので、コストなしで実験できます。前払いクレジットの有効期限はなく、柔軟性が得られます。
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
アンセンサードモデルでのコンテキストウィンドウの制限
コンテキストウィンドウは、モデルが記憶できるテキストの量を定義します。100,000トークンのウィンドウは、広範なロールプレイやドキュメント分析を可能にします。ローカルモデルはメモリ制限に早く達することがよくあります。制限を超えると、モデルは以前の指示を追跡できなくなります。これにより、一貫性のないまたは反復的な出力が生じる可能性があります。ホストされたAPIはコンテキスト管理を代行します。当社のAPIは、リクエストあたりの最大出力を16,000トークンに制限します。max_tokensを設定しない場合、デフォルトは2,048になります。これにより、トークンの過剰な消費が防止されます。temperatureやtop_pなどのパラメータを調整して創造性を制御できます。APIは構造化データ用のJSONモードもサポートしています。これは、厳密な出力形式を必要とするアプリケーションを構築する開発者にとって有用です。
curl https://api.ollamauncensoredmodel.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Run the python script and show output"}]
}'
コンテンツフィルターとモデルの機能の比較
コンテンツフィルターは特定のトピックに固有のルールです。モデルの機能は、モデルが実際に生成できる内容を指します。無制限モデルはフィルターを除去しますが、機能は維持されます。高品質なテキスト、コード、ストーリーを生成し続けることができます。異なる点は、モデルがトピックのみを理由に拒否しないことです。例えば、殺人ミステリーには過激な暴力が含まれる場合があります。無制限モデルはそれを生々しく描写します。フィルター付きモデルは言語を和らげるかもしれません。当社のモデルは、法的なアダルト利用に対してコンテンツ拒否なしで回答するようにチューニングされています。任意のキーワードによって制限されません。制限された単語を自由に使用できます。唯一のハードリミットは未成年を伴う性的コンテンツです。これは常に拒否されます。
from openai import OpenAI
client = OpenAI(base_url="https://api.ollamauncensoredmodel.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Best practices for roleplay and NSFW generation
ロールプレイには一貫したキャラクターボイスと感情的な深さが必要です。無制限モデルは、強い感情を避けないため、これに優れています。中断することなく性的なシーンやダークなテーマを生成できます。システムプロンプトを使用してキャラクターの性格を定義します。より創造的なバリエーションのために温度を高く設定します。当社のAPIは関数呼び出しをサポートしており、ロールプレイロジックを構造化するのに役立ちます。アクションと対話を別々に定義できます。これにより、物語を整理できます。8 MBのリクエストボディ制限は、ほとんどのロールプレイ入力に対して寛大です。長いコンテキスト履歴を問題なく送信できます。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ollamauncensoredmodel.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
モデルが真に無制限かどうかの検証方法
認証には、エッジケースプロンプトでモデルをテストすることが含まれます。特定の制限付き単語や論争的なトピックについて質問してください。モデルが拒否したり、曖昧な返答をしたりする場合、それは完全に無制限ではありません。ローカルモデルでは設定の手動確認が必要な場合があります。当社のようなホスト型APIは一貫した体験を提供します。応答を直接確認することで検証できます。当社のモデルは、合法的な成人向け、フィクション、セキュリティ研究、または論争的なトピックを拒否しません。簡単なプロンプトを送信してこれをテストできます。応答は直接的でフィルターなしであるはずです。
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)