最近、ある優秀な学者から、Botpress とLLMs のインターフェースはどうなっているのか、という質問をメールで受け取った。
彼は、ベンダーロックインの回避に関する論文を書いていて、私たちがLangChainやHaystackのようなフレームワークを使っているかどうかを知りたがっていた。
私たちは、Botpress ビルダーがLLMs とインターフェイスできるような独自の抽象化を作成したことを、彼と分かち合えたことが何より嬉しかった。
このテーマへの幅広い関心を考慮し、私はこの情報を公開したいと思った。他の開発者や私たちのプラットフォームのユーザーにとって役に立つかもしれない。私がこの情報を作成したときと同じように、あなたがこの情報を興味深いものだと感じてくれることを願っている。
Botpress とインターフェースする2つの方法LLMs
Botpress は、2つの方法で機能する独自の抽象化を生み出した:
1.統合
統合には、特定の入力と出力タイプを持つアクションの概念がある。
プラットフォームにはオープンソースのコンポーネントがあり、コミュニティは独自の統合を作成することができます。
OpenAI 、Anthropic、Groqなど、LLM のプロバイダーがそれぞれ統合している。- それぞれが統合している。それが、私たちのユーザーがそれらのプロバイダーとインターフェースする一つの方法です。
2.LLM 統合インターフェース
統合というコンセプトの上に、私たちは "インターフェイス "を加えた。
これらは単に、統合が拡張できる標準スキーマ定義である。私たちは LLMs の標準スキーマを作成しました。
統合がこのスキーマを拡張する限り、その統合はLLM プロバイダーとみなされる。そのため、Botpress ですぐに動作する。
Botpress 、さまざまなLLM プロバイダーとの統合例をいくつかご紹介します:
text2image、image2text、voice2text、text2voiceなどにも同様のインターフェースがある。
モデル構成
Botpress Studioでは、"Best Model "と "Fast Model "という2つの一般的なコンフィギュレーションがある。一般的に、ほとんどのタスクはこの2つのモードのどちらかに当てはまりやすいことがわかりました。
しかし、純粋なモデルの選択だけでなく、異なるプロバイダーはツールの呼び出しやメッセージのフォーマットであまりにも大きく異なっているため、簡単に1つのモデルを他のモデルに置き換えて良いパフォーマンスを期待することができないことがわかった。
Botpress 推論エンジン
そのため、私たちはLLMzと呼ばれる独自の推論エンジンを作成しました。このエンジンは、プロンプトを変更することなく(あるいは最小限の変更で)、どんなモデルでも動作します。そして、トークンのコストやLLM のラウンドトリップという点で、はるかに優れたツール呼び出しと、しばしばはるかに優れたパフォーマンスを提供します。
このエンジンは、ツール定義のためのtypescript型、メッセージとコード出力フォーマットのためのmarkdown、推論のためのLLM-native実行サンドボックスで動作する。
LLMzは、以下のような高度なユースケースで必要とされる多くの最適化とデバッグ機能を提供する:
- 入力トークンの圧縮
- スマート・トークン・トランケーション
- トークンに最適化されたmemory-to-context
- パラレル&コンポジットツール呼び出し
- LLM 、複数のメッセージとツールコールが混在する。
- 完全型式安全ツール(入力と出力)
- サンドボックスのシリアライズによる長寿命セッション
- ツールモッキング、ラッピング、トレース
- 軽量なV8アイソレートによる完全な実行分離(数千の同時実行を高速かつ安価に実行可能)
- 自動反復とエラー回復
これらはすべて、私たちのユースケースには必要なことだった。しかし、これらは通常のツール呼び出しでは不可能であるか、非常に困難であった。
軽量ルーターモデルに反対するケース
私たちは長い間、既存のモデルの上に乗って、目の前のタスクに適したモデルを自動的に選択するような軽量ルーターモデルを作ることを考えていました。
しかし、私たちは複数の理由からそうしないことに決めた:
1.予測可能性
私たちのクライアントの多くは、当然のことながら、確実で予測可能な結果を求めている。
そのため、ダイナミック・モデル・ルーターという考え方は、ハイレベル・エージェントにとっては少し怖い。それは、LLMs に予測不可能なレイヤーをもう一つもたらすからだ。
2.スピード
我々のユースケースでは、レイテンシーは非常に重要だ。ルーターが高速であるためには、モデルはルーティング先のモデル(おそらく伝統的な分類器)よりも非常に小さくなければならない。
これらは一般に、特定のタスクで訓練された場合は問題なく機能するが、a)長いプロンプトではコンテキストサイズが短いことが問題となる。
3.モデル至上主義かモデル平等主義か
ベンチマークはそうでないと言うかもしれないが、実際のところ、GPT-4oを上回るモデルは(今のところ)ほとんど見たことがない。
LLMs 、時間が経つにつれてタスクYよりもタスクXの成績が本当に良くなるのか、それともLLMs 、ほとんどのことが極めて得意になるのかはまだ不明だ。後者の場合、モデル選びは労力に見合わないだろう。
フィードバックによる将来性LLMs
LLMs は数年後にはコモディティとなり、モデルセレクションというものは存在しなくなるだろう。
そのような理由から、私たちは、LLMs 、事例を提供するための優れたメカニズムを提供することに力を注ぐことにした。
そこで、私たちはフィードバックを収集するシステムを構築した。それは、将来の実行のために「学習」を保存する。そして、信頼性の高い継続的な改善を長期にわたって保証するために、将来の実行のために最も関連性の高い学習を即座に動的に提供する。
LLMs 、より高いパフォーマンスに向かって構築されるたびに、私たちは、私たちのプラットフォームのユーザーのためにそれらを最大限に活用する準備ができており、興奮している。