Llama.cppが新しいWebUIを獲得

LLM・言語モデル
この記事は約9分で読めます。

Llama.cppチームが独自のWebUIをリリースした。これはローカルでAIモデルを実行するユーザーにとって重要な進展である。Llama.cppはローカルモデル推論を可能にした先駆的プロジェクトであり、Ollamaなどもこれをベースに構築されている。新しいWebUIはミニマリストなデザインながら高性能で、これまでOpen WebUIなどのサードパーティツールに依存していた状況を改善する。実際の使用テストでは、M2 Max上でGPT-OSS 20Bモデルを約84トークン/秒の速度で実行でき、Ollamaと比較しても遜色ない性能を示した。特筆すべき機能として、並列会話のサポート、構造化出力のためのカスタムJSONスキーマ対応、詳細な生成統計の表示などがある。長文コンテキスト処理のテストでは、約21,000トークンの文書を読み込み、約60トークン/秒で応答を生成した。Ollama版との比較では、Llama.cppの方がより包括的な回答を短時間で生成する傾向が見られた。このWebUIはオープンソースであり、temperature、top-k、top-pなどの詳細なパラメータ調整が可能で、ローカルモデル実行における新たな標準となる可能性を秘めている。

Llama.cpp Gets a New Web UI
Learn how to get started with llama.cpp new webui. LINKS:

Llama.cppの新しいWebUIがリリース

ローカルモデルを実行している方、特にLlama.cppを使用している方にとって、これは素晴らしいニュースです。チームが独自のWebUI、つまりグラフィカルユーザーインターフェースをリリースしました。これはミニマリストですが、非常に効率的で高性能なものとなっています。

ローカルモデルを扱ったことがある方ならご存知でしょうが、Llama.cppは基本的に、人々がローカルモデルの推論を実行できるようにした最初のプロジェクトです。Ollamaのようなプロジェクトは、このLlama.cppの上に構築されています。

ほぼあらゆるバックエンドをサポートしているにもかかわらず、独自のWebUIを持っていませんでした。そのため、人々はLlama.cppサーバーを通じてLlama.cppベースのモデルと対話するために、Open WebUIのようなものを使用していました。これは素晴らしいプロジェクトですが、現時点では非常に肥大化しています。Llamaにもかなり優れたWebUIがありますが、これはオープンソースではありません。

ですから、Llama.cppチームがついに独自のWebUIを作成することを決定したのは、本当に素晴らしいことです。先ほど申し上げたように、これは非常に高性能です。このビデオでは、セットアップ方法をお見せし、さまざまな機能についても説明していきます。では、始めましょう。

新しいインターフェースの概要

新しいインターフェースはこのように見えます。モデル名、利用可能な総コンテキスト、そしてコンテキストとしてファイルを追加することもできます。比較のために、OlamaのWebUIがどのように見えるかをご覧ください。非常に似ていますが、あちこちに微妙な違いがあります。

お使いのオペレーティングシステムに応じてインストールするには、いくつかのオプションがあります。Windows用には主にWinが使えます。LinuxとMacにはより多くのオプションがあります。私はHomebrewを使用します。なぜなら、96GBのVRAMを搭載したM2 Maxでこれを実行するからです。

インストールプロセスは比較的シンプルです。brew install llama.cppを使用します。私はすでにインストールしているので、実行されません。モデルを実行するには、実行したいモデルのHugging Face IDを提供するだけです。簡単な例を見てみましょう。

まず、llama cppサーバーを起動します。次に、Hugging FaceのレポジトリIDを提供する必要があります。これはGGUF形式のGPT-OSS 20Bです。そして、どのポートと、どのURLを使用するかを指定します。現在、これをローカルホストでホストしたいと思います。

私はすでにモデルをダウンロードしています。サイズは約12GBです。モデルが起動して実行されると、ローカルホストのこのポートを通じてアクセスできるようになります。インターフェースはかなりシンプルに見えます。Ollamaと比較してこれをより強力にするいくつかのオプションを見ていきますが、まず非常にシンプルな簡単なテストを実行してみましょう。

パフォーマンステスト

「こんにちは。あなた自身について教えてもらえますか。そして、このモデルの作成者は誰ですか」実際、この文字起こしには満足しています。これをコピーします。なぜなら、Ollamaでも実行したいからです。

生成速度がかなり速いことが実際にわかります。現在、約84トークン/秒を取得しており、このマシンにとってはかなり素晴らしいです。約615トークンを生成しました。これらの優れた統計情報が表示されるので、とても良いですね。

比較のために、私はすでにモデルをOllamaにロードしています。ここで同じコマンドを実行します。Ollamaは少し時間がかかっているようですが、どちらの場合も生成速度は同等だと思います。残念ながら、Ollamaは生成されたトークン数やトークン/秒を直接表示しないと思います。

長いコンテキストを処理する必要がある長いプロンプトについて比較する必要がありますが、オプションに関しては、独自のAPIキーを設定できます。テーマにシステムメッセージを提供できます。システム、ライト、ダークを選択できます。私はシステムのままにしておきます。必要な他の統計情報もあり、コンテキストとしてファイルを提供することもできます。

Llama.cppベースであるため、より多くのオプションがあります。temperature、top-k、top-pを設定できます。非常にカスタマイズ可能で、これはかなり素晴らしいですよね。ペナルティを設定することもでき、これはかなり良いです。

現在の問題は、推論モデルの場合、少なくともこの初期バージョンでは推論努力を設定できないことです。一方、推論トレースを見ると、実際に推論努力を設定できます。例えば、ここに行くと、GPT-OSSの推論努力を設定できます。なぜなら、これは推論または思考モデルだからです。しかし、反対側では本当に多くのオプションを提供していません。基本的にコントロールできるのはコンテキスト長だけです。

長文コンテキスト処理のテスト

では、長いコンテキストを追加して、何が起こるか見てみましょう。異なるタイプのコンテキストを添付できます。使用しているモデルにマルチモーダル入力がある場合は、画像やオーディオファイルを添付できます。現在、PDFとテキストファイルのみを添付できます。基本的にファイルを解析し、モデルのコンテキストに入れるだけです。つまり、RAGを実行しているわけではなく、むしろコンテキスト内検索を行っています。

03 miniのシステムカードを追加しました。これは約20,000から22,000トークンです。処理する必要があるかなり妥当なコンテキストのはずです。「この論文は何についてのものか教えてもらえますか。この新しいモデルで導入されている異なる機能は何ですか。そして、既存のモデルとどのように比較されますか」これが私のプロンプトになります。

これを送信する前に、GPU使用率も確認したいと思います。何らかの理由でここにスパイクがありましたが、送信しましょう。現在、すべてのテキストファイルを処理しています。おそらくテキストファイルをロードして読み込んでいるのでしょうが、今は処理が始まったようです。

ここでスパイクが実際に見えます。CPUではまだ何も見えませんが、時間をかけています。ただし、生成はかなり速くなると思います。約21,000トークンだったことがわかります。現在、約60トークン/秒で生成しており、これはかなり良いですね。そして、M2 Max上のGPUを利用しています。

ただし、これらの長いコンテキストファイルの処理を完了すると、CPUに大きな負荷がかかり、実際にファンの音が聞こえ始めることに気づきました。長い間聞いたことがありませんでした。現在もまだ生成中で、ファンが少し回り始めているようです。もう少し待ちます。

比較的小さなモデルなので、検索の精度はおそらくそれほど高くないということです。約55トークン/秒で出力に約3,000トークンを生成しました。

Olamaとのパフォーマンス比較

では、Ollamaでも同じものを処理してみましょう。そのファイルを追加します。同じモデルを使用しているので、推論努力はデフォルトのままにしておきます。では、送信しましょう。実際にこれがどれくらい時間がかかるか見るために、ストップウォッチも開始します。

現在、プロンプトを処理しているようです。まだ出力は見えません。はい、GPUが動き始めました。応答を生成するのにどれくらい時間がかかるか、待ってみましょう。

約20秒経過して、応答の生成が始まりました。思考の連鎖は、Llama.cppが生成していたものと比較して、間違いなくかなり長く見えます。これは思考の連鎖だけでしたが、おそらくLlama.cppは低い推論努力でこれを実行しているのでしょう。

約1分40秒経過し、Ollamaはまだ思考の連鎖を生成しており、実際にファンが回る音が聞こえます。約3分22秒かかりました。生成された応答は、推論トークンと比較すると本当に簡潔ですが、Llama.cppバージョンによって生成された応答は、Ollamaバージョンと比較して間違いなくはるかに包括的だと思います。

並列会話と追加機能

さらにいくつかの機能があります。同じWebUIを使用して並列会話を実行することができます。例えば、ここに2つの異なるチャットセッションがあります。最初のものを送信し、次に2番目のものに移動して送信します。そして、複数の同時ユーザーと連携できるLlama.cppバージョンと対話しているため、単一のユーザーであっても、複数の異なる並列チャットセッションを実行できます。これはかなり優れた機能ですよね。

複数の画像会話についても同じことが言えます。複数の異なるチャットセッションで、複数の異なる画像を送信できます。その理由は、これがチャットセッションのコンテキストとして追加されるだけだからです。使用している入力のタイプは関係なく、並列で複数の異なる会話を実行できます。

構造化出力もサポートしています。例えば、出力で使用したい特定のスキーマがある場合は、それをコピーして開発者設定に移動し、そのカスタムJSONスキーマをここで定義できます。モデルが十分にスマートであれば、そのカスタムスキーマに従うことができます。

例えば、ここですべてを設定し、マルチモーダル入力を提供しました。ユーザーによって定義されたカスタムスキーマで応答を生成することがわかります。これは非常に強力で、Llama.cppでモデルを実行している場合は、他のサードパーティのWebUIの代わりにこれを使用することを強くお勧めします。

とにかく、この新しいLlama.cpp WebUIでの体験がどのようなものか、そしてこれについてどう思うか教えてください。ローカルモデルを実行するための本当に素晴らしいオプションです。このビデオが役に立ったことを願っています。ご視聴ありがとうございました。いつものように、次回お会いしましょう。

コメント

タイトルとURLをコピーしました