プロジェクト Digging 21 - 軽量 LLM エージェントの構築方法

プロジェクト Digging 21 - 軽量 LLM エージェントの構築方法

8 月 12 日、Juli プロジェクト シリーズの第 21 回「大規模言語モデルのトレーニングとアプリケーションの分析」共有セッションで、CNCF WasmEdge プロジェクトのメンテナーであり Second State の創設者でもある Michael Yuan 博士が招待され、「軽量 LLM エージェントの構築方法」と題した技術共有を行いました。

まとめ

大規模言語モデル (LLM) の台頭により、LLM エージェントは LLM アプリケーションを構築するための重要な方向性となりました。この記事は、Michael Yuan 博士の技術共有からまとめたものです。WebAssembly などの軽量ランタイムを使用して LLM エージェントを構築する利点を概説し、LLM エージェントの構築における Python の制限を分析し、Rust などのシステム プログラミング言語を使用して LLM エージェントを構築することを推奨しています。

導入

近年、GPT-3 や ChatGPT などの大規模言語モデル (LLM) が AI に革命を起こしています。強力なテキスト理解および生成機能を備えており、さまざまな自然言語処理タスクをサポートします。ただし、LLM自体はあくまでも受動的なモデルであり、その機能を発揮するにはLLMエージェントを構築する必要があります。 LLM エージェントは、LLM と対話し、ユーザーからの入力を取得し、推論のために LLM を呼び出し、結果をユーザーに返す役割を担います。

現在主流の LLM エージェントは Python を使用して構築され、Kubernetes などのクラウドネイティブ インフラストラクチャにデプロイされます。ただし、このアプローチには一定の制限があります。 Jueli プロジェクトの第 21 回イベントでは、「ビッグ モデルの台頭: ビッグ言語モデルのトレーニングとアプリケーションの分析」をテーマに、Michael Yuan 博士を招いて、軽量 LLM エージェントを構築するための新しいアイデアについて議論しました。

Michael Yuan 博士は、CNCF WasmEdge プロジェクトのメンテナーであり、Second State の創設者です。 彼は、Addison-Wesley、Prentice-Hall、O'Reilly から出版された 5 冊のソフトウェア エンジニアリングの本を執筆しています。 Michael は長年オープンソースの開発者および貢献者として活動しています。 彼はこれまで、OpenSourceSummit、The Linux Foundation Member Summit、KubeCon など、数多くの業界カンファレンスで講演を行ってきました。

LLM エージェントの役割は何ですか?

LLM は、記憶、感覚器官、行動能力のない脳に例えることができます。 LLM エージェントは、LLM にこれらの主要な機能を提供するコンポーネントです。具体的には、LLM エージェントには次の機能が含まれます。

  1. メモリ: ユーザーインタラクションの履歴コンテキスト (短期記憶) とプロジェクトまたはドメインの知識 (長期記憶) を保存する役割を担います。これにより、LLM は会話を継続したり、特定のタスクを完了したりできるようになります。
  2. 知覚: IM メッセージや GitHub イベントを聞くなど、外界 (目、耳) からの入力を取得する役割を担います。
  3. アクション: LLM の出力を、ユーザーに結果を返す、API を呼び出すなど、外部世界のアクション (手) に変換する役割を担います。
  4. 計画: 曖昧なタスクを LLM が処理できる特定のステップに分解する責任を負います。

ご覧のとおり、LLM エージェントは LLM と外部との間のやり取りを処理する役割を担っており、LLM アプリケーションの重要なコンポーネントです。効率的な LLM エージェントを構築することは非常に重要です。

Pythonの限界

現在、LLM エージェントの作成に最もよく使用される言語は Python です。しかし、Python にはいくつかの制限があります。

  1. Python は、特にネットワーク IO を集中的に使用するタスクではパフォーマンスが低いインタープリタ言語です。
  2. Python アプリケーションは多数の依存ライブラリに依存することが多く、Docker イメージのサイズが大きすぎます。
  3. Python はネイティブにコンパイルするのが容易ではないため、真のクロスプラットフォームを実現するのは困難です。

さらに、Python エコシステムにおける LLM エージェントの主流の選択肢は LangChain です。しかし、LangChain は研究に重点を置きすぎており、まれなユースケースに対して機能が多すぎるため、使用するのが非常に複雑です。

ご覧のとおり、Python は軽量で効率的な LLM エージェントの構築にはあまり適していません。

軽量ランタイムの利点

対照的に、一部の軽量ランタイムには次のような利点があります。

  1. パフォーマンス向上のため、Rust や Go などのシステム プログラミング言語を使用して構築されています。
  2. ネイティブにコンパイルして、より軽量で移植性の高いバイナリを作成できます。
  3. ネットワーク IO を集中的に使用する非同期処理タスクに適しています。

具体的には、WebAssembly は非常に有望な軽量ランタイムです。 Rust を WebAssembly にコンパイルすると、Python よりも桁違いに小さいバイナリ サイズを実現できます。さらに、WebAssembly は、ネイティブに近いパフォーマンスを実現するために、基盤となるハードウェア機能へのアクセスもサポートします。

したがって、軽量ランタイムを使用して LLM エージェントを構築すると、Python のパフォーマンスとサイズの問題を回避し、より効率的な LLM アプリケーションを生成できます。

軽量 LLM エージェント構築の新たな方向性

上記の分析に基づくと、軽量 LLM エージェントの構築が LLM アプリケーションのパフォーマンスを向上させるための重要な方向性であることがわかります。具体的には、次のような解決策があります。

  1. Pythonの代わりにRustやGoなどのシステムプログラミング言語を使用します。パフォーマンスを大幅に向上し、サイズを縮小できます。
  2. WebAssembly などの軽量ランタイムを採用して、パフォーマンスと移植性をさらに最適化します。
  3. エージェント内のパフォーマンスの影響を受けないコンポーネントについては、https://flows.network などのサーバーレス アーキテクチャを使用して、展開と管理を簡素化できます。
  4. Vec などのベクター データベースを使用して長期メモリを実現し、単一のリクエストのオーバーヘッドを削減します。
  5. 過度に複雑な機能を避けるために、シンプルでモジュール化されたエージェント アーキテクチャを設計します。研究よりもエンジニアリングに重点を置きます。

これらの方法により、既存の Python エージェントよりも軽量で、導入が容易で、パフォーマンスの高い LLM エージェントを構築できます。これにより、LLM アプリケーションの導入障壁が下がり、より多くの組織が LLM によってもたらされる価値の恩恵を受けることができるようになります。

要約する

LLM エージェントは、LLM アプリケーションを構築するための重要なコンポーネントです。過大な Python エージェントは多くのシナリオでパフォーマンスが低下するため、軽量の LLM エージェントを構築することがパフォーマンスを向上させるための重要な方向性となります。これは、コンパイル言語や軽量ランタイムなどのテクノロジーを使用することで実現できます。より効率的な LLM エージェント アーキテクチャとベスト プラクティスが登場し、LLM の広範な適用が促進されることを期待しています。

<<: 

>>: 

ブログ    
ブログ    

推薦する

AIの終末: 人間は本当の自己認識を持っていない

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

...

...

2GBのDAYU200に大規模な言語モデルをローカルにデプロイする

実装のアイデアと手順軽量 LLM モデル推論フレームワーク InferLLM を OpenHarmo...

追加データなしで、ImageNetで初めて87.1%の精度を達成した。Yan ShuichengのチームはVOLOをオープンソース化した。

[[407987]]過去 10 年間、コンピューター ビジョン認識タスクは畳み込みニューラル ネッ...

...

美団は食品配達に「ドローン」を使う予定?テクノロジーは飛躍的な進歩を遂げました!

以前のPC時代では、人々は携帯電話やウェブページを通じて近くのレストランに注文をしていたが、これには...

トランプの「猫と犬バージョン」を生成、偽顔ツールStarGANv2が壊れており、アルゴリズムがオープンソース化されている

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

小売業と教育における感情認識に焦点を当てていますが、Mizao.com はどのように違うのでしょうか?

[51CTO.com からのオリジナル記事] 喜び、悲しみ、恐怖、平静、怒り、驚き、軽蔑、嫌悪など...

アメリカの医師は新型コロナウイルスと戦うために人工知能をどのように活用しているのか

昨年、新型コロナウイルス感染症のパンデミックが始まったとき、クリーブランド・クリニックの医師で最高研...

OpenAIがChatGPTに「ドラゴン退治のテクニック」を直接教える!公式のヒントエンジニアリングガイドはこちら

Prompt プロジェクトをどのように説明すればよいでしょうか? ChatGPT を初めて使用する初...

...

IBMは5億行のコードデータセットをオープンソース化したが、最も人気のあるプログラミング言語はPythonではない

Google サービスには 20 億行のコードが含まれており、自動車システムには 1 億行のコードが...

...