KoboldCppのFAQと知識ベース
KoboldCppの知識ベースへようこそ!KoboldCppで問題が発生した場合は、まずここかリンクリファレンスに答えがあるかどうか確認してください。もしそうでなければ、Githubでissueを発行するか、KoboldAI Discordサーバーに連絡してください。そこでConcedoとして私を見つけることができます。
はじめに
KoboldCppとは?
KoboldCppはGGMLモデル用の使いやすいAIテキスト生成ソフトウェアです。llama.cppをベースに、多機能なKobold APIエンドポイントや、永続的なストーリー、編集ツール、保存形式、メモリ、ワールド情報、作者ノート、キャラクター、シナリオなど、KoboldやKobold Liteが提供するすべてのものを備えた、おしゃれなUIを追加した単一のパッケージです。
AIモデルファイルの取得
KoboldCppはどのようなモデルをサポートしていますか?どのようなアーキテクチャをサポートしていますか?
KoboldCppは様々なGGMLやGGUFのモデルをサポートしています(古いバージョンやレガシーなGGMLモデルとの後方互換性もあります:)
LLAMA および LLAMA2 (LLaMA / Alpaca / GPT4All / Vicuna / Koala / Pygmalion 7B / Metharme 7B / WizardLM など)
GPT-2 / セレブラ / スターコーダ
GPT-J
RWKV
GPT-NeoX / Pythia / StableLM / Dolly / RedPajama
MPTモデル
ミストラルとミクストラル
ファイ2
safetensorsやpytorch.binモデルなど、その他のフォーマットはネイティブではサポートされていませんので、GGUF/GGMLに変換する必要があります!(に変換する必要があります。)
KoboldCpp用のGGUFやGGMLモデルはどこで見つけたりダウンロードできますか?
GGMLモデルはHuggingfaceにアップロードされています。.binまたは.gguf形式のファイルである必要があります。
また、TheBlokeのHuggingface Repoで、GGUF/GGMLと検索すれば、高品質なモデルの数々を見つけることができます。
最後に、適切な変換ツールを使って、自分でモデルを変換することもできます。
GGUF形式とGGML形式の違いは何ですか?
GGUFは、(できれば)より将来性のあるように設計された新しいフォーマットです。2023年10月現在、LLAMAとLLAMA2モデル用のフォーマットとして推奨されています。その他のアーキテクチャでは、古いフォーマットが使用されます。KoboldCppはどちらのフォーマットにも対応しています。
モデルごとに異なるファイルの違いは何ですか?全部必要ですか?どの量子化?F16?Q4_0?Q5_1?
いいえ、すべてのファイルは必要ありません。各GGMLモデルは1つの.binまたは.ggufファイルです。複数のファイルは、各モデルの異なる圧縮レベルを表しており、圧縮レベルが低いものから高いもの(ビット単価が低いものから高いもの)へと昇順になっています。特定のモデルのQ4_0は、Q5_1よりも小さくなりますが、品質は若干低くなります。詳しくはこちらをご覧ください。
一般的に、品質(最も悪いものから最も良いものへ)とファイルサイズ(最も小さいものから最も大きいものへ)はこの順序に従います:
Q2K, Q3_K_S, Q3_K_M, Q3_K_L, Q4_0, Q4_K_S, Q4_1, Q4_K_M, Q5_0, Q5_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0, F16
クイックスタート
KoboldCppを使い始めるには?何が必要ですか?KoboldCppをソースコードからコンパイルするには?
これは使用するプラットフォームや使いたい機能によって異なります。まず、上記のようにGGML .binファイルをダウンロードしてください。次に
Windows, ビルド済み実行ファイルを使う(最も簡単):
ここから最新のkoboldcpp.exeをダウンロードしてください。
KoboldCPP.exeをダブルクリックしてモデルを選択するか、CMDプロンプトで "KoboldCPP.exe --help "を実行してコマンドライン引数を取得し、より詳細な制御を行います。
通常、プリセットとGPUレイヤー以外はあまり変更する必要はありません。GPUアクセラレーションのためにCuBLASまたはCLBlastで実行します。
先にダウンロードしたGGUFまたはGGMLモデルを選択し、読み込みが完了したら表示されたURLに接続します。
Linux、コンパイル済みバイナリまたは自動インストールスクリプト(簡単):
Linuxでは、最新のシステム向けにkoboldcpp-linux-x64 PyInstallerのプリビルド・バイナリをリリース・ページで提供しています。バイナリをダウンロードして実行するだけです。
あるいは、以下のターミナルコマンドを実行して、カレントディレクトリに koboldcpp をインストールすることもできます: curl -fLo koboldcpp https://github.com/LostRuins/koboldcpp/releases/latest/download/koboldcpp-linux-x64 && chmod +x koboldcpp.
コンパイル済みのバイナリを直接使用できない場合、conda を使用してすべての依存関係を取得し、linux ユーザのためにすぐに使用できる pyinstaller バイナリを (ソースから) 生成する自動ビルドスクリプトを提供します。./koboldcpp.sh dist でビルドスクリプトを実行し、生成されたバイナリを実行するだけです。
MacOSとLinux(セルフコンパイル):
バイナリをソースからコンパイルする必要があります。まず、ここにあるリポジトリの最新版をクローンしてください。
makeファイルが提供されているので、makeを実行するだけです。
OpenBLASを使用するには、インストールしたOpenBLASをmake LLAMA_OPENBLAS=1でリンクしてください。OpenBLASがインストールされている必要があります。
OpenCLとCLBlastのライブラリを入手してリンクする必要があります。
Arch Linux の場合:cblas openblas と clblast をインストールする。
Debian の場合libclblast-devとlibopenblas-devをインストールする。
CuBLAS のビルドは make LLAMA_CUBLAS=1 か、提供されている CMake ファイルを使って試すことができますが、CUDA toolkit がインストールされている必要があります。
全機能をビルドするには、make LLAMA_OPENBLAS=1 LLAMA_CLBLAST=1 LLAMA_CUBLAS=1 とします。
全てのバイナリがビルドされたら、koboldcpp.py [ggml_model.gguf] [port] コマンドでpythonスクリプトを実行できます。
MacOS 注意事項
make LLAMA_METAL=1 でコンパイルし、その後 --gpulayers (number) を渡して有効にするとよいでしょう。
注意: 多くのMacOSユーザーは、Accelerateを使った方がOpenBLASより高速であることを確認しています。試しに、--noblasを指定して実行し、速度を比較してみるといいだろう。
Windows、ソースコードからのコンパイル:
リリースされた.exeを使用することをお勧めしますが、Windowsでソースからバイナリをコンパイルしたい場合、最も簡単な方法は以下の通りです:
最新リリースのw64devkit (https://github.com/skeeto/w64devkit)を使ってください。i686やその他の異なるものではなく、必ず「バニラのもの」を使ってください。i686やその他の異なるものを使おうとすると、コンパイル済みのLibと衝突してしまいます!
注:w64devkitは典型的なWindowsコマンドの代わりにLinuxコマンドを使うので、カレントディレクトリを変更するにはlsを使います。
w64devkitに統合されたターミナルを使用していることを確認してから、KoboldCppのソース・フォルダで'make'を実行してください。これで.dllファイルが作成されます。
.exeファイルを生成したい場合は、pythonモジュールPyInstallerがpipでインストールされていることを確認してください('pip install PyInstaller')。
スクリプト make_pyinstaller.bat を通常のターミナル(または Windows エクスプローラ)で実行します。
koboldcpp.exeファイルはあなたのdistフォルダにあります。
Windowsの追加ライブラリ(OpenCL、CLBlast、OpenBLAS)の独自のバージョンを使用したい場合は、次のようにしてください:
OpenCL - tested with https://github.com/KhronosGroup/OpenCL-SDK .コンパイルしたい場合は、リポジトリの指示に従ってください。vcpkgが必要です。
CLBlast - https://github.com/CNugteren/CLBlast でテスト済み。コンパイルする場合は、OpenCLファイルを参照する必要があります。MSVCを使用してコンパイルした場合のみ、".lib "ファイルが生成されます。
OpenBLAS - https://github.com/xianyi/OpenBLAS でテスト済み。
それぞれの .lib ファイルをプロジェクトの /lib フォルダーに移動し、古いファイルを上書きします。
また、プロジェクトのディレクトリ・ルートにある対応する.dllファイルの既存のバージョンも置き換えてください(例:libopenblas.dll)。
上記の手順でKoboldCPPプロジェクトを作成します。
CuBLASの場合は、Visual StudioとCUDA Toolkitがインストールされた状態で、提供されているCMakeファイルを使用する必要があります。CMakeファイルを使用してビルドする場合は、生成されたkoboldcpp_cublas.dllをkoboldcpp.pyファイルと同じディレクトリにコピーしてください。実行可能ファイルをバンドルする場合、別のPCで実行可能ファイルが正しく動作するように、CUDAダイナミックライブラリ(cublasLt64_11.dllやcublas64_11.dllなど)をインクルードする必要があるかもしれません。
アンドロイドだ:
以下の「Termux経由でAndroidにKoboldCppをインストールする」ガイドを参照してください。
WSL
できますが、なぜそうしたいのですか?基本的なmakeはbuild essentialsで問題なく動くはずです。GPUアクセラレーション用の適切なライブラリを見つけるのは難しいかもしれません。
KoboldCpp 一般的な使い方とトラブルシューティング
GUIランチャーを使いたくありません。koboldcppを起動するために、特別なパラメータを指定して「コマンドライン/ターミナル」を使用するにはどうすればよいでしょうか?
コマンドラインからkoboldcppを起動する簡単な方法をいくつか紹介します。自分に合ったものを選んでください。
Windows:スタート > ファイル名を指定して実行(または WinKey+R)し、koboldcpp.exe のフルパスに続いて起動フラグを入力します。例:C:?mystuff?koboldcpp.exe --usecublas --gpulayers 10。また、koboldcpp.exe ファイルへのデスクトップ・ショートカットを作成し、[Properties] > [Target]ボックスで希望の値を設定することもできます。最後に、koboldcpp.exe ディレクトリでコマンド・プロンプトを起動し(cmd を使用)、ターミナル・ウィンドウから希望のフラグを渡すこともできます。
Linux/OSX: koboldcppディレクトリに移動し、makeでkoboldcppをビルドします(「KoboldCppのコンパイル方法」で説明します)。その後、コマンド python3 koboldcpp.py --model (モデルのパス) と --useclblast や --stream など必要なフラグを実行してください。
利用可能なコマンドとその使い方は?
コマンドラインから--helpパラメータを指定してKoboldCppを起動すると、利用可能なコマンドのリストを表示できます。コマンドライン・ターミナルの使い方」のセクションを参照してください。
Koboldcppを実行するにはどれくらいのRAM/VRAMが必要ですか?GPUはどうなりますか?
必要なRAMの量は、コンテキスト・サイズ、量子化タイプ、モデルのパラメータ数などの複数の要因に依存します。一般的には、Q4_0量子化で2048のコンテキストを想定しています:
LLAMA 3Bは少なくとも4GBのRAMを必要とします。
LLAMA 7Bには少なくとも8GBのRAMが必要です。
LLAMA 13Bには少なくとも16GBのRAMが必要です。
LLAMA 30Bには少なくとも32GB RAMが必要です。
LLAMA 65Bは少なくとも64GB RAMが必要です。
レイヤーをGPU VRAMにオフロードすることでRAMの必要量を減らすことができますが、コンテキストのサイズを大きくしたり量子化を大きくしたりするとRAMの必要量が増えます。オフロードするレイヤーの数については、GPUレイヤーのオフロー ドのセクションを参照してください。
GPUレイヤーのオフロードは何をしますか?いくつのレイヤーをオフロードできますか?
usecublasまたは--useclblastで実行するだけでもGPU上で迅速な処理が行われますが、--gpulayersによるGPUオフロードと組み合わせることで、さらに一歩進んで、トークンごとの推論でもGPU上で実行されるように個々のレイヤーをオフロードし、推論を大幅に高速化します。GPUvramにオフロードできるレイヤーの数は、多くの要因に依存します(そのうちのいくつかはすでに上で述べました)。参考までに、Q4_0の2048コンテキストでは、6GBのNvidia RTX 2060が快適にオフロードできます:
LLAMA 7Bで32レイヤー
LLAMA 13Bで18レイヤー
LLAMA 30Bで8レイヤー
アンドロイド携帯(Termux)でKoboldCppを実行するには?
モバイルデバイス上で直接推論を行うことは、低速でメモリが制限される可能性が高いため、おそらく最適ではありません。ネットワーク経由でリモートで実行する」で説明するように、代わりにリモートで実行することを検討してください。それでも実行したい場合は、AndroidではTermux内でKoboldCppをビルドして実行するのがベストです。また、以下のガイド「Termux経由でAndroidにKoboldCppをインストールする」も参照してください。
F-DroidからTermuxをインストールして実行する
termux-change-repoコマンドを入力し、Mirror by BFSUを選択します。
pkg install wget git pythonで依存パッケージをインストールします。
依存関係のインストール apt install openssl (必要な場合)
リポジトリをクローンする git clone https://github.com/LostRuins/koboldcpp.git
koboldcppフォルダに移動 cd koboldcpp
プロジェクトをビルドする make
wget https://huggingface.co/TheBloke/phi-2-GGUF/resolve/main/phi-2.Q2_K.gguf のような小さな GGUF モデルを取得します。
python サーバーを起動 python koboldcpp.py --model phi-2.Q2_K.gguf
モバイルブラウザで http://localhost:5001 に接続する。
エラーが発生したら、pkg upでパッケージが最新であることを確認してください。
より速くするためのオプションは?(CuBLAS/CLblast/OpenBLAS/Metal/Accelerate/ROCm/Vulkan)
デフォルトでは、何もパラメータを設定せずに起動すると、プロンプトの処理と推論にCPUのみのOpenBLASを使用します。これは大きなモデルや大きなプロンプトでは遅くなることがある。
高速化するためのオプションをいくつか紹介します:
CuBLAS: Nvidia GPU専用。これを使用するには--usecublasを付けて起動してください。Windows .exeユーザー向けにプリパッケージされているが、その他のプラットフォームではCUDAツールキットをインストールする必要がある(ソースからCUDAでコンパイルする、OSX/Macセクションを参照)。gpulayersと組み合わせることで、さらに高速なGPUオフロードが可能になる。
CLblast:Nvidia、AMD、Intel iGPUを含むほとんどのGPU向け。これを使うには--useclblast [platformID] [deviceID]で起動します。Windows .exeユーザー用にプリパッケージされていますが、他のすべてのプラットフォーム用にCLBlastライブラリをインストールする必要があります(ソースからのCLBlastによるコンパイル、OSX/Macセクションを参照)。gpulayersと組み合わせることで、GPUオフロードをさらに高速化できる。
OpenBLAS: CPUのみ、GPU不要。ウィンドウズでは自動だが、--noblas または --blasbatchsize -1 を設定することで無効にできる。他のプラットフォーム用のOpenBLASライブラリのインストールが必要。
メタル:Apple Siliconユーザー(Mac M2など)のみ、MetalでGPUアクセラレーションを行う。gpulayersと組み合わせることができます。ソースからのMetalコンパイルを参照してください。
加速する:Mac ユーザのみ、CPU のみ、OpenBLAS より高速。macでビルドすると自動的にサポートされます。BLASで遅くなる場合は、--noblasを試してください。
ROCm:直接はサポートされていませんが、AMDデバイスのみHIPBLAS経由でYellowRoseCx/koboldcpp-rocmフォークを参照してください。
Vulkan:現在サポートされているVulkanは、OpenCLバックエンドに比べてスピードとユーティリティの良いバランスを提供する新しいオプションです。
useclblast [platform] [device]コマンドにはどのような値を指定すればよいですか?
使用する2つの値は、ターゲットGPUのプラットフォームIDとデバイスIDを表します。ほとんどのシステムでは、デフォルトのGPUでは0と0、例えば--useclblast 0 0となりますが、GPUが1つ以上ある場合は、試行錯誤しながら--useclblast 1 0と--useclblast 0 1を試すこともできます(選択した各デバイスの名前が出力されます)。CLBlastで起動すると、利用可能なGPUのリストとそのIDが順番にターミナルに出力されますので、それを参考にすることができます。また、実際に使用する値を取得するもう一つの方法は、コマンドラインプログラム clinfo を使用することで、すべての GPU のプラットフォームとデバイス ID を表示します。
KoboldCppをネットワーク経由でPCとは別のデバイスで実行するには?リモートプレイ?
KoboldCppをネットワーク経由で別のデバイスで使用するには複数の方法があります。
別のLAN(WindowsまたはLinux)にある場合 - Cloudflaredトンネルを使用します。デフォルトのポート5001でKoboldCppを起動した後、リポジトリに含まれるRemote-Link.cmdを実行するとCloudflaredトンネルが作成されます。その後、表示されたtrycloudflare URLにモバイルブラウザを開くだけです。KoboldCppの新しいバージョンでは、この作業をすべて代行してくれるヘルパー・コマンドが用意されており、--remotetunnelを使うだけで、使用可能なURLでトンネルのセットアップを進めてくれます。
別のLANにいる場合(任意のLAN、パブリックLAN) - AI Hordeを使用してください。KoboldCppにはAI Hordeワーカーが組み込まれています(Hordeのセクションを参照)。ワーカーを起動し、Kobold Liteのウェブ版(https://lite.koboldai.net)から接続できます。
同じLAN上にいる場合 - 同じWifiネットワーク上にいる場合、ホストデバイス(koboldcppが動作しているPC)のローカルIPにナビゲートすることで、おそらくLAN経由で接続できます。例えば、http://192.168.1.85:5001 などで、LANのIPアドレスを確認してください。失敗した場合は、--hostオプションでLAN IPを指定してみてください。パブリックIPへのポートフォワーディングをセットアップすれば、インターネット上からもアクセスできるようになります。
ここにはColab Notebookが含まれています。箱から出してすぐに使えるはずですが、使用は自己責任でお願いします。
koboldcppが使用するポートは?koboldcppが使用するポートを変更する方法を教えてください。
デフォルトではKoboldCppは5001番ポートを使用しますが、これは--port launchパラメータで変更できます。ブラウザをローカルでそのポートに接続して、UIやAPIをhttp://localhost:port(例:http://localhost:5001)の形式で使用します。接続がうまくいかない場合は、無線LANやファイアウォールの設定を確認するか、別のポートを使ってみてください。
ストリーミングの使い方は?ストリーミングにはどのような種類がありますか?
KoboldCppでは様々なストリーミングをサポートしています。Kobold Lite UIでは、Kobold Liteの設定で切り替えることができるストリーミングを最初からサポートしています。注意:--streamパラメータは現在では非推奨となっており、使用しないでください。
ポーリング・ストリーミング(推奨):これはKobold Lite UIで使用されるデフォルトです。1秒ごとに/api/extra/generate/checkエンドポイントの更新をポーリングします。トークンごとに瞬時に更新されるわけではないので、少し「もっさり」していると感じる人もいるかもしれませんが、比較的高速で使い方は簡単です。
疑似ストリーミング:これは古い方法ですが、パフォーマンスのオーバーヘッドがあるため、現在では推奨されていません。Kobold Liteで使用するには、ストリーミングを有効にし、Lite URLの末尾に&streamamount=xを追加します。パフォーマンスへの影響はありません。
SSE (True Streaming):このタイプのストリーミングは、SillyTavernやAgnaisticなど一部のサードパーティクライアントでのみサポートされており、API経由でのみ利用可能です。トークンごとの即時更新が可能ですが、持続的な接続と、SSEをサポートするクライアント側での特別な処理が必要です。このモードはLiteやメインのKoboldAIクライアントでは使用されません。別のAPIエンドポイントを使用しますので、サードパーティクライアントから提供される指示に従って設定してください。
使用するスレッド数を選ぶには?-blasthreadsは?
推論に使用するスレッド数を設定する。最適なスレッド数は通常、システムが持つ物理CPUコア数にほぼ等しい。つまり、12個の論理プロセッサと6個の物理コアを持つi7-9750Hでは、5スレッドか6スレッドが最適です。-blasthreadsを指定すると、BLAS中に異なるスレッド数を使用する。それ以外は--threadsと同じ値である。パラメータを空白のままにすると、CPU数よりわずかに少ない数に基づいて、適切なデフォルト値が設定される。GPUオフロードをフルに使っている場合は、1スレッドに設定すれば十分かもしれません。
注意: psutil_set_threads フラグは非推奨であり、使用しないでください。
BLASとは?blasbatchsizeとは?どのような影響があるのですか?
BLAS(Basic Linear Algebra Subprograms)とは、高速処理に必要な大きな行列同士の掛け算を行うために使用されるものです。CuBLAS(Nvidia)、CLBlast(OpenCL)、OpenBLAS(CPU)など複数のバックエンドがあります。-blasbatchsizeは、一度に処理するバッチ内のトークン数を示す。通常、この値を変更する必要はありません(デフォルトはllamaで512、それ以外は256)が、メモリの少ないデバイスでは、プロンプトの処理速度が低下することを犠牲にして、128などの低い値を試すことができます。BLASは、確率的サンプリング(生成)中には使用されない。
ミロスタットとは?どのように使うのですか?
Mirostatは新しいサンプリング手法で、top-kデコーディングにおけるkの値を調整して、当惑度を特定の範囲内に保つ。こうすることで、生成されたテキストが繰り返しになる「退屈の罠」と、生成されたテキストが一貫性を失う「当惑の罠」という、テキスト生成における2つの一般的な問題を回避することができる。Top-Pのような古典的なサンプラーを有効にすれば、サンプラーをmirostatに置き換えることができる。パラメータは3つ = [type(0/1/2), tau(5.0), eta(0.1)]。MirostatはAPI内で世代ごとに設定することもできるようになりました。
注:--usemirostat launchパラメータは非推奨となったため、使用しないこと。
文法サンプリングとは
文法サンプリングでは、生成時に使用するGBNF文法フォーマットを指定し、AIをレスポンスの特定の構文に制約することができます。詳しくはこちらのリンクをご覧ください。
-configとは何ですか?.kcppsファイルとは何ですか?
.kcppsファイルはKoboldCppランチャーの設定や設定を保存するコンフィギュレーション・ファイルです。保存してGUIに読み込んだり、-configフラグで直接実行することができます。
マルチユーザモードとは何ですか?
マルチユーザ・モードでは、複数の人が1つのKoboldCppインスタンスを共有し、異なるデバイスを共通のエンドポイント(LAN経由、ポート転送されたパブリックIP、またはインターネット・トンネル経由)に接続できます。リクエストをキューイングし、適切なクライアントにディスパッチする処理を自動的に行います。
foregroundとは
このパラメータはウィンドウユーザー向けである。これは、新しいプロンプトが生成されるたびに コンソール端末をフォアグラウンドにし、アイドリングが遅くなる問題を 避けるためのものである。
quietとは
このパラメータは、プロンプトと世代出力の情報をターミナルに表示しないようにする。プライバシーを確保するのに便利である。
preloadstoryとは
KoboldCppサーバ起動時に、このパラメータでKobold LiteのJSONファイルを渡すことができます。この保存ファイルは、あなたのサーバに接続した新しいKobold Liteクライアントに自動的に提供・ロードされ、ネットワーク経由で簡単に共有できる設定済みのストーリーを効果的に提供します。
onreadyの使い方
これはスクリプトやコマンドラインで使用するための高度なパラメータです。Koboldcppのロード終了後に実行するターミナルコマンド(例えばpythonスクリプトの起動)を渡すことができます。これはサブプロセスとして実行され、cloudflareトンネルの起動やURLの表示などに便利です。
モデルが(特定のシンボルを)生成しないようにするにはどうすればよいですか?
モデルが特定のシンボル、例えばKobold Unitedのような左の角括弧[]を使用しないようにしたい場合があります。フラグ --bantokens [ を使用すると、特定の部分文字列を含むすべてのトークンを削除します。例えば、-bantokens a e とすると、出力でモデルが "a" や "e" を使わないようにします。
スマート・コンテキストとは?
スマートコンテキストは、-smartcontextコマンドで有効になる。要するに、これはコンテキストの全領域の一部(約50%)を「予備バッファ」として予約し、最大コンテキストを減らす代わりに、プロンプト処理の頻度を大幅に減らす(コンテキストの再利用)ことを可能にする。
どのように機能するか: 有効にすると、Smart Contextは、最大コンテキストに近づくとトリガーされ、その後、十分な類似性(たとえば、2番目のプロンプトは、最初のプロンプトに一致するトークンの半分以上を持っている)を持つ2つの連続したプロンプトを送信することができます。コンテキストの最大サイズが2048であるとする。トリガーされると、KoboldCppは既存のコンテキストの前半部分(上1024個のトークン)を切り捨て、残りの半分(下1024個のトークン)を「シフトアップ」して新しいコンテキストウィンドウの開始位置とする。そして、その後に新しいテキストが生成されると、その位置にトリミングされて下に追加される。新しいプロンプトは、既存のトークンを保持しながら新しいテキストを挿入するための空きスペース(1024トークン分)があるので、再計算する必要はない。これはすべての空き領域がなくなるまで続けられ、それからまた新しい処理が繰り返される。
例え:50人乗りのバスがあるとする。各停留所で5人が乗りたがっている。ここで、バスが満員になると、運転手は次の5人がバスに乗る前に、最も早い5人の乗客をバスから追い出さなければならないとする。何人でもバスから追い出すのは非常に難しく、邪魔になる。だから、最初の10停留所では何も問題ない。しかし、11番目の停留所ではバスは満員で、それ以降の停留所では5人が新たに乗車できるようになる前に5人を追い出してしまうため、遅くなってしまう。もし、バスが満員のときに5人を追い出す代わりに、運転手がバスの半分(25人)を追い出したらどうだろう?5人降ろすのと同じ時間がかかる。しかし、その次の5つの停留所では、空きスペースができるので、人々は安心してバスに乗り込むことができる。これはバスが再び満員になるまで続き、その後、半分の人が追い出される。それがsmartcontextだ。
コンテキストシフトとは?
コンテキストシフトはスマートコンテキストの改良版で、GGUFモデルでのみ機能します。この機能はKVキャッシュシフティングを利用し、再処理を必要とすることなく、自動的に古いトークンをコンテキストから削除し、新しいトークンを追加します。メモリなし/固定メモリを使用し、ワールド情報を使用しない限り、コンテキストを最大にしても、連続する世代間の再処理をほとんどすべて回避できるはずです。これは追加のコンテキスト領域を消費しないので、SmartContextよりも優れている。コンテキストシフトはデフォルトで有効になっており、両方が有効になっている場合はスマートコンテキストを上書きします。シフティングが有効になっていると出力は異なるかもしれないが、どちらも同じように首尾一貫しているように見える。コンテキストシフトを無効にするには、--noshift フラグを使用する。
AIに2048より長いコンテキストを処理させるには?また、Kobold Liteの最大コンテキスト・スライダーは2048までしか使えません / 長いプロンプトを処理中にkoboldcppがクラッシュしました / コンテキスト・サイズを増やすには?
まず、2048以上の拡張コンテキストを使用する場合は、バッファ用に追加のRAMを割り当てる必要があります。使用したい最大コンテキストサイズに --contextsize を設定します。たとえば、4K コンテキストを使用する場合は --contextsize 4096、8K コンテキストを制限する場合は --contextsize 8192 とします。GGUFモデルを使用している場合、RoPEのスケーリングは自動的に正しく設定されるはずです。KoboldCppは、GGMLモデルでは16Kまで、GGUFモデルでは32Kまでのcontextsizeをサポートしています。
また、Kobold Liteの "Max Tokens "の値をデフォルトのスライダー制限である2048を超えて変更する必要があるかもしれません。これは編集可能なテキスト入力ボックスで、スライダーの範囲を超えてより高い値にオーバーライドすることができます。
RoPEコンフィグとは?NTK-Awareスケーリングとは?RoPEコンフィグに使う値は?
RoPEスケーリング(--ropeconfig経由)は、既存のモデルの有用なコンテキストを微調整なしで拡張できる新しいテクニックです。モデルのコンテキストの上限を4倍以上(例えば2048から8192)拡張するのに使用でき、品質の劣化は軽度から中程度です。
デフォルトは--ropeconfig 1.0 10000で、1倍スケーリングなし。2つのスケーリングモードがあり、必要に応じて組み合わせることができる。
リニアスケーリングは、--ropeconfigの最初のパラメーターである'周波数スケール'で設定する。例えば、2倍のリニアスケーリングには--ropeconfig 0.5 10000を使い、4倍には--ropeconfig 0.25 10000を使う。
NTK-Awareスケーリングは、--ropeconfigの2番目のパラメータである'frequency base'で設定する。例えば、--ropeconfig 1.0 32000で約2倍スケール、--ropeconfig 1.0 82000で約4倍スケール。実験して最適な値を見つけよう。ropeconfigが設定されていない場合、NTK-Awareスケーリングがデフォルトとなり、--contextsizeの値に基づいて自動的に設定される。
mmapとは
mmap(メモリマップドファイルI/O)は、ファイルやデバイスをメモリにマッピングします。mmapはデフォルトで有効になっていますが、問題が発生する場合は--nommapで無効にできます。
mlockとは
mlockは、モデルがロードされた後、強制的にRAMに残すために使われるテクニックです。システムによっては、特にRAMが不足している場合、OSがメモリスワップを頻繁に起動し、パフォーマンスを低下させることがあります。mlockはデフォルトでは無効になっています。
複数のGPUを使用するには?
マルチGPUはCuBLAS使用時のみ利用可能です。usecublasの後に特定のGPU IDを選択しない場合(またはGUIで "All "を選択した場合)、重みは検出されたすべてのNvidia GPUに自動的に分散されます。この比率は--tensor_split パラメータで変更でき ます。
lowvramはCuBLASに対して何をするのか?
lowvramを--usecublasに追加すると、スクラッチ・バッファとKVバッファのオフロードを行わないため、速度を犠牲にしてVRAM使用量を減らすことができます。更新 2023年10月: 最新のGGUFモデルではlowvramはトリガーされなくなりました。古いGGMLモデルとの互換性のために、現在も保存されています。2024年1月更新: lowvramが再び使用されるようになりました。有効にすると、レイヤーごとのKVのGPUへのオフロードを防ぎます。
量子化行列乗算(MMQ)はCuBLASに何をもたらすか?
mmqはアップストリームの機能で、--usecublasに追加することで、プロンプト処理中にCUDAで行列乗算にcuBLASを使用する代わりに量子化行列乗算を使用することができます。実験的には、これはわずかに少ないメモリを使用し、Q4_0ではわずかに高速ですが、K-quantsでは遅くなります。しかし、新しい GPU で長いプロンプトを処理する場合、VRAM がわずかに多くなりますが、cuBLAS の方が一般的に高速です(MMQ オフ)。
LoRAとLoRAベースとは
LoRAは、既存のモデルのウェイトの上に適用して、ウェイトを変更することができるアダプターモデルです。LoRAをモデルにマージしてから、最終結果をGGUFフォーマットに変換することをお勧めします。-lora-baseは、LoRAをより大きなベースモデル(f16モデルなど)に直接適用できるようにするために使用されます。LoRAはモデルの重みを変更しますが、量子化されたモデルとベースモデルでは丸め方が異なるため、一般的にはf16モデルがあれば、それにLoRAを適用すべきです。
参考文献: https://github.com/LostRuins/koboldcpp/discussions/514 および https://github.com/LostRuins/koboldcpp/pull/224
プログラムが終了するだけで、何も表示されない。
プログラムがクラッシュしたのでしょうが、ターミナルがすぐに閉じてしまい、出力を読むことができません。コマンド・プロンプト/ターミナルからkoboldcppを再起動し、コンソールに表示されたエラー・メッセージを読んでください。これを行うには、「コマンド・ライン/ターミナルの使い方」を参照してください。
私のAIは漫才を続けています / 生成を停止したはずなのに漫才を書いています / 解禁トークンは何をするのですか?
応答が終わったことを示すために、特別な「EOS」(End-Of-Stream)トークンを使うモデルもあります。これは、段落の終わりや、AIが続ける方法を知らないとき、あるいは自分が話し終わったと思い込んでいるときによく生成されます。このEOSトークンが禁止されている場合、要求されたトークンがすべて消費されるまで、モデルは無限に生成し続けます。この動作は、Kobold Liteの設定でEOSトークンの禁止(EOSを許可するにはAutoまたはUnbanに設定)を切り替えるか、generate APIを使用する際にuse_default_badwordsidsペイロードパラメータをfalseに設定することで切り替えることができます。一般的に、EOSトークンの禁止解除は通常Instructモードでは有効で、ChatモードやAdventureモードでは状況に応じて有効ですが、Storyモードでは使うべきではありません。
注: --unbantokensは非推奨となりましたので、使用しないでください。
私のモデルは無意味な出力を生成しています!
これはバグかもしれません。しかし、まず確認すべきオプションがいくつかあります:
GGUFまたはGGMLの良いモデルを使用していることを確認してください。悪い量子化は存在します。特に、間違って変換されたK-量子などはそうです。信頼できるソースから既知の良いモデルを再ダウンロードしてください。
RoPEコンフィグが使用しているモデルに適用可能であることを確認してください。SuperHOTの8K版や16K版のように、機能するために特定の--ropeconfig設定を必要とするモデルもあります。デフォルトでうまくいかない場合は、別のRoPEスケールでもう一度試してください。
お使いのモデルが実際にサポートされているか確認してください。一部のアーキテクチャはKoboldCppでサポートされていなかったり、特定のプロジェクト用に非標準的な方法で変更されていたりします。そのようなGGMLモデルは動作しません。
サンプラーの順番とサンプラーの値を確認してください。詳しくはKobold Liteの「サンプラー」のセクションをお読みください。良いデフォルトは、Top-P=0.92、RepPen=1.1、Temperature=0.7、サンプラーの順番は[6,0,1,3,4,2,5]です。
モデルのロード中にkoboldcppがクラッシュしました / WinError / AVX2がないようです / 古いCPUのヘルプ / NoAvx2とは何ですか?
古いデバイスの中には、高速推論に必要な命令であるAVX2をサポートしていないものがあります。KoboldCppには、そのようなユーザのためのフォールバック・オプションとして、No AVX2モードが用意されています。これを使用するには、コマンド・ラインから--noavx2フラグを付けて起動します(上記の方法を参照してください)。または、GUIで "Old CPU, no AVX2 "プリセットを選択すると、代わりにAVX1命令が使用されます。それでもうまくいかない場合は、最後の手段として、--noavx2 --noblas --nommap というフラグで「フェイルセーフ」モードを有効にしてみて、うまくいくかどうか試してみてください。これはGUIでも選択可能です(Failsafeと書かれた一番下のオプション)。これらのモードではGPUサポートが有効になっていないため、著しく遅くなることに注意してください。
スクラッチメモリ/コンテキストメモリに十分な空き容量がない/割り当てに失敗したというエラーメッセージが表示されました。
これは、現在のコンテキストに対して、コンテキストまたはスクラッチバッファのサイズが不足しているためと思われます。まず、使用しているコンテキストの最大サイズを小さくし、-blasbatchsizeを128または64に下げてみてください。それでもうまくいかない場合は、Koboldcpp githubにバグレポートを提出してください。
KoboldcppはWindows 7では動作しません。
Windows7はKoboldCppの使用推奨OSではありません。それでも使用したい場合は、--noavx2 --nommap --noblas などのフォールバック「旧CPU」モードを使用する必要がありますが、動作は遅くなります。OSをWindows 10にアップグレードすることをお勧めします。
私のGGMLモデルは、間違ったタイプ/バージョンとして検出されました。
これは、モデルの変換や量子化が間違っているか、ダウンロード中に破損した場合に起こる可能性があります。モデルの新しいコピーをダウンロードしてください。それでも失敗する場合は、バージョンが誤って検出されている可能性があります - -forceversionフラグで特定のバージョンに強制することができます。以下は、現在サポートされているファイルバージョンのリファレンスです。
GGML=1 オリジナル llama ggml, alpaca, GPT4ALL, GPTJ ヘッダー
GGHF=2 llama ggmf
GGJT=3 llama ggjt
GGJT_2=4 新しい llama フォーマット シャッフルなし
GGJT_3=5 16ビットスカラー使用
GGUF_LLAMA=6 llama ggufモデルv1とv2
GPTJ_1=100 超古い最初のGPTJフォーマット、llama.cpp以前の時代
GPTJ_2=101 pygmalion, 古い ggml lib を使う。
GPTJ_3=102 新しい ggml lib を使う
GPTJ_4=103 シャッフルなし
GPTJ_5=104 16ビットスカラー使用
GPT2_1=200 古代のgpt2フォーマット、llama.cpp以前
GPT2_2=201
GPT2_3=202 シャッフルなし
GPT2_4=203 16ビットスカラー使用
RWKV_1=300
RWKV_2=301
NEOX_1=400
NEOX_2=401
NEOX_3=402 レッドパジャマ
NEOX_4=403 シャッフルなし
NEOX_5=404 シャッフルされていない赤パジャマ
NEOX_6=405 16ビットスカラー使用
NEOX_7=406 16ビットスカラー使用 redpajama
MPT_1=500最初にサポートされたMPTバージョン
GGUF_FALCON=600 ハヤブサのGGUF v1とv2
Kobold Liteとは何ですか?どうやって使うのですか?
Kobold LiteはKoboldCpp、KoboldAIクライアント、AI Horde用の軽量なスタンドアローンWeb UIで、依存関係やインストール、セットアップを必要としません。KoboldCppの全てのディストリビューションに同梱されており、箱から出してすぐに使えます。KoboldCpp(デフォルトポートは5001)を起動した後、Chrome、Firefox、Safariなどのローカルブラウザをhttp://localhost:5001。
Kobold Liteの基本モード
Kobold Liteには4種類のモードがあり、「基本設定」パネル内の「フォーマット」ドロップダウンで切り替えることができます。
ストーリーモード:創作小説や小説の執筆のために、AIがあなたの入力に基づいてストーリーを続けます。
チャットモード:対話型AIチャットボットでキャラクターのペルソナをシミュレートします。AIに何でも質問したり、ターンベースの会話で雑談したりできます。
指示モード:ChatGPTスタイルの指示応答。AIにタスクを与えると、その指示を実行しようとします。
アドベンチャーモード:AIDungeonスタイルのインタラクティブ・フィクションで、アドベンチャーを選択し、アクションを記述すると、AIが結果をナレーションする。Kobold Liteを起動したら、「Scenarios」ボタンから選択できる、あらかじめ作成されたシナリオに飛び込んでみるのが一番です。
UIスタイル選択
新しいバージョンのKobold Liteでは、3種類のUIから選択できます(すべてのモードで利用できるわけではありません)。
クラシックデフォルトのKoboldメモ帳のルック&フィールで、シンプル、クリーン、効率的です。
メッセンジャーチャットモード用の代替UIで、あなたとAIがメッセンジャー形式でチャットします。
美的:テキストスタイル、色、パディング、画像ポートレートの挿入などをカスタマイズできます。
サンプラーとは何ですか?サンプラーを変更したり無効にしたりするには?最適なサンプラーは何ですか?
サンプラーは基本的に、AIがすべての可能なトークンのリストから、次に選択するトークンを決定する方法です。一般的に必要なのは数種類だけですが、さまざまな特性を持つさまざまなサンプラーがあります。デフォルトでは、Top-P=0.92、RepPen=1.1、Temperature=0.7、サンプラーの順番は[6,0,1,3,4,2,5]で、それ以外はすべて無効(デフォルト)にしておくのがよいでしょう。
Top-K:この設定は、選択可能な単語の数を、最も可能性の高い上位K個の選択肢に制限し、それ以外を削除します。Top-Pと併用できる。この効果を無効にするには、値を0に設定します。
Top-A: Top-P の代替。ソフトマックス確率が top_a*m^2 (m はソフトマックス確率の最大値) より小さいトークンをすべて削除する。この効果を無効にするには、値を 0 に設定する。
Top-P: サンプリング処理で可能性の低いテキストを破棄する。低い値では、一般的でないトークンが削除されるため、テキストが予測可能になります。この効果を無効にするには、値を 1 に設定します。
TFS:Top-P に代わるこの設定では、テキスト生成時に最も確率の低い単語を考慮から外し、二次導関数を考慮します。生成されるテキストの品質と一貫性を向上させることができます。
典型的:可能性のある単語のリストからランダムに単語を選択し、各単語が選択される確率は等しくなります。この方法では、より多様なテキストを生成できますが、首尾一貫性が低下する可能性もあります。この効果を無効にするには、値を 1 に設定します。
温度:オプションを削除せずに確率をスケーリングすることで、出力がどの程度「ランダム」かをコントロールする。値が低いほど論理的だが、創造性は低くなる。
繰り返しペナルティ:すでに最近使われた単語の使用を減らすペナルティを適用し、AIの出力を反復的でなくする。
ミロスタット:他のサンプラーを上書きする代替サンプリング方法。mirostatのセクションを参照のこと。
Min-P: Top-Pの実験的な代替手段で、ある確率以下のトークンを削除する。この効果を無効にするには、値を0に設定する。
DynaTemp: ダイナミック温度サンプリングは、通常の温度サンプリングの変種で、温度はプリセットされた2つの限界値の間で自動的に変化する。これを無効にするには、DynaTemp Rangeを0に設定するか、minとmaxを同じ値に設定する。
サンプラー・オーダーとは?最適なサンプラーオーダーとは?最適でないサンプラーオーダーの警告が出たのですが。
サンプラーの順序は、次のトークンを選択する際に、トークン候補のリストに上記のサンプラーを順番に適用する順序を制御します。デフォルトの[6,0,1,3,4,2,5]から変更することはお勧めできません。
カスタムプリセットとは何ですか?
プリセットとは、特定の作曲スタイルやプラットフォームをエミュレートするために投稿されたり、長い時間をかけて収集された、あらかじめ設定されたサンプラー設定のことです。プリセットの中には、最適とは言えない設定やサンプラーの並び順のものもありますが、実用的というよりは芸術的と考えるべきでしょう。
最大CTXトークン(コンテキストサイズ)
コンテキスト・サイズは、AIに送信されるトークン(コンテキスト・ウィンドウ)の最大数を決定する。言い換えれば、AIがテキストのどこまで遡ってアクセスし、記憶し、使用できるかを制御する。ほとんどのモデルは2048トークンのコンテキストに制限されているが、より大きなコンテキストサイズでトレーニングされたものもある。大きなコンテキストはより多くのメモリを消費し、処理と生成に時間がかかる。コンテキストを拡張するには、「2048を超える長いコンテキスト」と「RoPEスケーリング」のセクションを参照。このフィールドは、テキスト入力フィールドを編集することで、スライダーの制限を超えて手動で上書きすることができる。
生成量
送信されたリクエストに対する応答としてAIが生成できるトークンの最大数。各トークンはおよそ4文字の長さです。
トークン ストリーミング
このオプションを有効にすると、生成完了時にのみ応答するのではなく、未完了のAI応答からトークンが徐々にUIにストリーミングされるようになります。AI Hordeユーザーには適用されません。
空白をトリム
このオプションは複数の連続した改行を1つの改行にまとめます。また、送信されたプロンプトの末尾の空白を削除します。
文のトリム
このオプションは、可能であれば、AIの応答を最後の完全な文まで切り詰める。
EOSトークンの使用禁止
このオプションはAIがEnd-Of-Stream Token(応答が完了したとAIが判断したときに早期に応答を停止させる特別なトークン)の使用を制御する。これは古い--unbantokens launcherフラグを置き換えるものです。
Auto: EOSトークンを使うかどうかを自動的に判断します。
解除する:常にEOSトークンの使用を許可する。
禁止:EOSトークンが生成されないようにする。
プレースホルダタグ
このオプションは、プレースホルダタグ {{user}} を許可します。{{char}} を許可します。[INPUT]}}と{{[OUTPUT]}}は、キャラクターカードやシナリオ作成者が使用することができます。例えば、{{char}}はチャットボットが選択したニックネームに置き換えられます。
自動保存セッションの持続
このオプションはストーリーと設定を自動保存し、次回KoboldCppを起動したときに復元されます。ただし、データの損失を避けるため、保存したストーリーの.jsonファイルを時々手動でエクスポートすることをお勧めします。
設定をファイルに保存
このオプションを使用すると、Kobold LiteのUI、生成、サンプラーの設定をストーリーjsonファイル自体に直接保存し、次回以降に読み込むことができます。
保存ファイルの名前を変更する
ストーリーを保存する際にポップアップが表示され、保存ファイル名を変更することができます。
テキストの自動スクロール
このオプションは、新しいAI応答を受信するたびにテキストウィンドウを下にスクロールします。
色の反転
このオプションはUIのすべての色を反転させます。電子インクディスプレイや明るいテーマを好む人に便利です。
チャット/ストーリー - アイドル応答
このオプションを有効にすると、プレイヤーが数秒間アイドル状態になった後、AIが自動的に新しい応答を送信するようになり、リアルタイムのチャット会話をシミュレートするのに便利です。
チャット - マルチライン返信
このオプションを有効にすると、AIがあなたのチャットメッセージに1行以上の返信をするようになります。これにより、より冗長で長いチャット応答が可能になりますが、出力が支離滅裂で予測不可能になったり、AIが別人として話し始めたりすることもあります。初心者の方にはお勧めできません。
チャット - ボットの返信を続ける
このオプションにより、AIは途中で発言を中断し(不完全な返信)、再度送信ボタンを押すと同じメッセージ内で発言を再開します。無効にした場合、AIからの返信はAI名のプレフィックスが付加された改行で始まります(IRCスタイル)。ボットの返信を続ける」を有効にすると、AIが何を言っていいかわからない場合に発言を拒否することがあります。初心者にはお勧めできません。
チャット - あなたの名前 / AI名
特定のキャラクターをロールプレイするのに便利です。
インストラクト - 開始シーケンスと終了シーケンス
インストラクションの開始シーケンスと終了シーケンスを設定します。Alpacaの場合、これは## Instruction:と## Response.です:これは一般的にほとんどのインストラクションモデルでうまく機能するはずです。必要であれば、改行を追加することもできます。
指示 - マークダウンを有効にする
これは、instructモードがアイテムリスト、テーブル、コードブロックのようなフォーマットされたマークダウンを生成することを可能にします。コーディング作業に便利です。
Adventure - アドベンチャープロンプト
このオプションはAIに事前プロンプトを注入し、アドベンチャーモードをより真剣にさせます。特にプロンプトが短い場合に便利です。初心者には、カスタムシナリオを使わない限り、有効にしておくことを強くお勧めします。
AIに記憶させるには?
コンテクストが非常に長くなると、最終的にストーリーの初期の部分がコンテクストの最大長を超え、削られてしまいます。Memory」パネルには、そのようなシナリオでもストーリー全体のアスペクトを維持するための機能がいくつかあります。
メモリー - これは、AIに送信される各プロンプトの最初に常に挿入されるテキストのシーケンスです。ストーリーのメインテーマ、設定の大まかな流れ、中心的な対立、主人公など、非常に長いストーリーでもAIが常に覚えておくべき事柄に便利です。文脈のスペースを使うので、メモリーは短く、せいぜい1、2段落にとどめましょう。
オーサーズ・ノート(Author's Note) - これは記憶と似ていますが、プロンプトの最初ではなく最後の方に挿入します。最近の状況を説明したり、現在のシーンでAIが特定の行動をとるように誘導したりするのに使われます。A/Nの強さは、このテキストがどのくらい前に注入されるかに影響する。
ワールド情報 - これは状況に応じてのみプロンプトに注入されるテキストである。World Infoの「Key」にマッチすると、対応する「Content」テキストがプロンプトの最初に注入される。辞書や百科事典のように、AIに事実、キャラクターの名前、年齢、性格、場所、プロットのポイントを思い出させるのに便利です。
ストップシーケンス(ストップトークン)とは何ですか?
ストップシーケンスとは、モデルの生成を早期に停止させるために特別に指定されたトークンまたはフレーズのセットです。例えば、新しい段落の後に出力を終了させたい場合、停止シーケンスとして「 \nn 」を使用することができます。チャットモード、インストラクターモード、アドベンチャーモードには、あらかじめ設定された停止シーケンスがあります。
ユーザーのテキスト入力ボックスの上にあるボタンは何ですか?
Back(戻る) - Undo(元に戻す)ボタンのようなもので、直近のアクションやAIの反応を元に戻します。
Redo(やり直し) - 「Back(戻る)」ボタンと逆に、削除したテキストを履歴から復元する「Redo(やり直し)」ボタンです。
Retry(再試行) - 直近のアクションやメッセージを再試行するボタンで、AIのレスポンスが気に入らず、別のものが欲しい場合に便利です。
Edit - これはボタンではなく、チェックボックスのトグルです。有効にすると、既存のストーリーやAIからの返答を遡って修正することができます。
チャットモードが機能しません。AIが自分自身として返信しないようにするにはどうすればよいですか?
これは、モデルのプロンプトが不十分な場合、特に「複数行の返信」が有効な場合に起こる可能性があります。多くの場合、直近のリクエストを再試行することで解決します。しかし、これを避けるためのヒントがいくつかあります:
複数行の返信」を無効にする
できればチャット会話で微調整された良いモデルを使用してください。
最初のプロンプトまたは文字カードが適切にフォーマットされていることを確認してください。名前は一貫性があり、レイアウトが整っており、スペルミスがないこと。チャットの履歴が悪いと、将来のチャットも悪くなります。
極端な場合、チャットユーザー名をカスタム停止トークンとして設定してください。これは意図しない副作用があります。
私のAIの応答が非常に短い/コンソールのAIの応答が長い。
これは上記とは逆の問題で、AIが興味深いことをたくさん言っているにもかかわらず、複数行、あるいは複数段落にわたって返答したために、それらが削られてしまうことがあります。複数行の返信」を有効にすることで、そのような応答も使用できるようになります。AIは例から学習することを忘れないでください。退屈なプロンプトやユーザーからの退屈なメッセージは、退屈なAIの返答につながります。
Kobold Liteはどのようなファイル形式に対応していますか?
Kobold Lite は多くのファイル形式に対応しています。以下のようなものがあります:
KoboldAI Classic .jsonセーブ(デフォルト)
KoboldAI United .json保存ファイル(V2形式)
KoboldAI KAISTORYファイル
TavernAIおよびSillyTavernキャラクターカード(JSON形式、WebPおよびPNGに対応)
Oobaboogaのキャラクターとストーリーのエクスポート
AgnaiとTavernのワールド情報フォーマット
生テキストファイル
Kobold Liteのソースコードはどこにありますか?オンライン版はどうですか?
Kobold LiteのソースコードはAGPLv3の下にあります。Hordeを利用したウェブ版はhttps://lite.koboldai.net。
KoboldCppインテグレーション
KoboldAI Unitedとは?KoboldAI Client / Kobold Unitedの使い方は?
KoboldAI Unitedは現在活発に開発されているKoboldAIのバージョンで、KoboldAI Clientは現在活発に開発されていないKoboldAIのクラシック/レガシー(安定版)バージョンです。
KoboldCppはどちらのUIとも互換性を保っており、AI/ロードモデル>オンラインサービス>KoboldAI APIメニューから、KoboldCpp起動後に生成されるURLを指定してアクセスできます。
Hordeとは?どうやって使うの?自分のモデルをHordeと共有するには?
AI Hordeは、画像生成ワーカーとテキスト生成ワーカーからなるクラウドソーシングの分散クラスタで、他のユーザのために画像やテキストを生成する処理能力を共有することができます。KoboldCppには軽量なHorde Workerが組み込まれており、KoboldCpp以外の依存関係をダウンロードすることなく、誰でも自分のggmlモデルをAI Hordeと共有することができます。
エンドユーザーとしてHordeを使うには、https://lite.koboldai.net。
Koboldcppを使ってHorde上で自分のモデルと計算能力を共有するには:
AI Horde APIキーを登録する。
hordemodelname][hordegenlength][hordemaxctx][hordeapikey][hordeworkername]のパラメータを指定して--hordeconfigで起動します。
スタンドアロンのHordeワーカー(例:Haidra Scribe / KAI Horde Bridge)を使い続けるには、最後の2つのパラメータを除外してください。
SillyTavernとは?ピグマリオンとは?Agnaisticとは?どうやって使うの?
SillyTavernとAgnaisticは、AIキャラクターとのチャットやロールプレイに特化したサードパーティのフロントエンドユーザーインターフェースです。バックエンドとしてKoboldAI APIによるKoboldCppをサポートしています。PygmalionはチャットにAIを使うことに焦点を当てたコミュニティで、彼らもまた独自のチャットモデルを作成しました。以下の「その他の確立されたリソース」の参照先には、PygmalionとSillyTavernをKoboldCppと共に使用するためのドキュメントがあります。
Kobold APIはどのように利用できますか?APIリファレンスはありますか?KoboldCpp APIとKoboldAI United APIはどのように違うのですか?
KoboldAI Web APIは、下流のアプリケーションがKoboldCppと通信するためのインターフェースです。KoboldCppのAPIリファレンスはhttps://lite.koboldai.net/koboldcpp_api、プログラム内でもhttp://localhost:5001/api。
一般的に、最も重要なエンドポイントは/api/v1/generateで、プロンプトの送信とAIからのレスポンスの受信に使用されるエンドポイントです。
その他の便利なエンドポイントは、/api/v1/model、/api/v1/config/max_length、/api/v1/config/max_context_lengthです。
さらにKoboldCppは、オリジナルのKoboldAI APIにはない追加のエンドポイントもいくつか実装しています。
SSEストリーミング用の/api/extra/generate/stream
バージョン情報のための/api/extra/version
/api/extra/perf:パフォーマンスとタイミング情報。
進行中の生成を中止するための/api/extra/abort
/api/extra/generate/check......進行中の生成に対して部分的に完了したテキストを取得する。
/api/extra/tokencount トークン化し、任意の文字列がいくつのトークンを持つかを正確に測定する。
/api/extra/true_max_context_length ランチャーからロードされた実際のCTXの長さを取得する。
OpenAI API はありますか?
はい、v1.45.2からはOpenAI互換のシンプルな補完APIが用意され、/v1/completionsからアクセスできるようになりました。KoboldのAPIは設定項目が多いので、そちらを使うことをお勧めします。
チャットは非公開ですか?共有ボタンは何ですか?
KoboldCppはインターネットを介さずに完全にオフラインで動作します。APIを使って生成されたコンテンツはターミナルコンソールに表示され、アプリケーションを閉じるとクリアされます。同様に、Kobold Lite UIはコンテンツをブラウザ内のローカルにのみ保存し、他の外部サーバに送信することはありません。KoboldCppとKobold LiteはAGPLv3で完全にオープンソースとなっており、ソースからのコンパイルやgithubでのレビューが可能です。
KoboldCppをサードパーティの統合やクライアントと一緒に使う場合、それらには独自のプライバシーに関する配慮があるかもしれません。Hordeを使用する場合、あなたのレスポンスはボランティアとユーザの間でHordeネットワーク経由で送信され、どちらからでも読み取れる可能性があります。
Kobold Liteの「共有」ボタンは、実際にデータをどこかにアップロードするのではなく、あなたのストーリー全体を非常に長いURL(その中にデータをエンコードしたもの)に圧縮し、Kobold Liteのウェブ版を使って別のデバイスで再読み込みできるようにします。