元々は Liz Acosta による Streamlit ブログで公開されました
初めて AI 画像ジェネレーターを使って遊んだ時の気持ちよさを覚えていますか?それらの 2,000 万本の指と悪夢のようなスパゲッティを食べる画像は、ただ面白いだけではなく、うっかりそれを暴露してしまいました。 AI モデルの賢さは私たちと同じくらいです。私たちと同じように、彼らも手を描くのに苦労しています。
AI モデルは急速に洗練されてきましたが、現在では非常に多くのモデルが存在します。そして、繰り返しになりますが、私たちと同じように、彼らの中には、特定のタスクにおいて他のタスクよりも優れている人もいます。たとえば、テキストの生成を考えてみましょう。 Llama、Gemma、Mistral はすべて LLM ですが、コード生成が得意な人もいれば、ブレインストーミング、コーディング、クリエイティブ ライティングが得意な人もいます。これらはプロンプトに応じて異なる利点を提供するため、AI アプリケーションに複数のモデルを含めることは理にかなっている可能性があります。
しかし、コードを複製せずにこれらすべてのモデルをアプリにどのように統合するのでしょうか? AI の使用をよりモジュール化し、維持と拡張を容易にするにはどうすればよいでしょうか?そこで API は、さまざまなテクノロジー間で通信するための標準化された一連の手順を提供できます。
このブログ投稿では、Streamlit で Replicate を使用して、単一の API 呼び出しでさまざまな LLM を構成してプロンプトを表示できるアプリを作成する方法を説明します。心配しないでください。私が「アプリ」と言うとき、Flask サーバー全体を起動したり、ルートを面倒に設定したり、CSS について心配したりする必要があるという意味ではありません。 Streamlit がそれをカバーします?続きを読んで学習してください:
Replicateで利用可能なモデル
ストリームリットとは何ですか?
Streamlit を Replicate などのプラットフォームと組み合わせると、アプリ設計のオーバーヘッドなしで生成 AI アプリケーションを作成できます。
? Streamlit がどのように前進する方向にバイアスをかけるかについて詳しくは、このブログ投稿をご覧ください。
Streamlit について詳しくは、101 ガイドをご覧ください。
アプリのレシピをお試しください: Replicate + Streamlit
このデモでは、Replicate を使用して Streamlit チャットボット アプリを起動します。このアプリは単一の API を使用して 3 つの異なる LLM にアクセスし、温度やトップポイントなどのパラメーターを調整します。これらのパラメーターは、AI が生成したテキストのランダム性と多様性、およびトークンの選択方法に影響を与えます。
?
モデル温度とは何ですか? 温度は、モデルがトークンを選択する方法を制御します。温度が低いとモデルはより保守的になり、一般的で「安全な」単語が優先されます。逆に、温度が高いと、モデルは可能性の低いトークンを選択することでより多くのリスクを取ることが奨励され、その結果、より創造的な出力が得られます。
? top-p とは何ですか? 「核サンプリング」とも呼ばれ、ランダム性を調整するもう 1 つの方法です。これは、top-p 値が増加するにつれて、より幅広いトークンのセットを考慮することで機能します。 top-p 値が高いほど、より多様な範囲のトークンがサンプリングされ、より多様な出力が生成されます。
? API キーの詳細については、こちらのブログ投稿をご覧ください。
ローカルセットアップ
GitHub コードスペースのセットアップ
GitHub のクックブック リポジトリで、[コード] ボタンから [コードスペース] オプションを選択して新しいコードスペースを作成します
コードスペースが生成されたら、Replicate API キーを Recipes/replicate/.streamlit/secrets_template.toml ファイルに追加します
ファイル名を Secrets_template.toml から Secrets.toml に更新します
(Streamlit でのシークレット処理の詳細については、こちらのドキュメントを参照してください。)
クックブックのルート ディレクトリから、ディレクトリを Replicate レシピに変更します: cd Recipes/replicate
依存関係をインストールします: pip install -rrequirements.txt
次のコードをファイルに追加します:
import replicate import toml import os # Read the secrets from the secrets.toml file with open(".streamlit/secrets.toml", "r") as f: secrets = toml.load(f) # Create an environment variable for the Replicate API token os.environ['REPLICATE_API_TOKEN'] = secrets["REPLICATE_API_TOKEN"] # Run a model for event in replicate.stream("meta/meta-llama-3-8b", input={"prompt": "What is Streamlit?"},): print(str(event), end="")
スクリプトを実行します: python replicate_hello_world.py
モデルによって生成されたテキストの印刷が表示されるはずです。
レプリケート モデルとその動作の詳細については、ここでドキュメントを参照してください。その中核となる、レプリケート「モデル」とは、入力を受け入れて出力を返す、トレーニングされ、パッケージ化され、公開されたソフトウェア プログラムを指します。
この特定のケースでは、モデルは meta/meta-llama-3-8b で、入力は "prompt": "What is Streamlit?" です。スクリプトを実行すると、Replicate エンドポイントへの呼び出しが行われ、印刷されるテキストは Replicate を介してモデルから返された出力です。
デモ アプリを実行するには、Streamlit CLI を使用します: streamlit run streamlit_app.py。
このコマンドを実行すると、アプリがローカルホストのポートにデプロイされます。この場所にアクセスすると、Streamlit アプリが実行されていることがわかります。
このアプリを使用すると、レプリケート経由でさまざまな LLM にプロンプトを表示し、指定した構成に従って生成テキストを生成できます。
Replicate を使用すると、1 つの API で複数のオープンソース LLM にプロンプトを表示できるため、最新のソフトウェア フローへの AI の統合が簡素化されます。
これは次のコード ブロックで実現されます:
for event in replicate.stream(model, input={"prompt": prompt_str, "prompt_template": r"{prompt}", "temperature": temperature, "top_p": top_p,}): yield str(event)
モデル、温度、およびトップ p 構成は、Streamlit の入力ウィジェットを介してユーザーによって提供されます。 Streamlit のチャット要素を使用すると、アプリにチャットボット機能を簡単に統合できます。最も良い点は、これらのコンポーネントを実装してスタイル設定するために JavaScript や CSS の知識が必要ないことです。Streamlit は、それらすべてをすぐに提供します。
Replicate は、パブリック モデルを検索するための API エンドポイントを提供します。 Web サイトで注目のモデルやユースケースを調べることもできます。これにより、特定のニーズに適したモデルを簡単に見つけることができます。
モデルが異なれば、パフォーマンス特性も異なります。精度と速度のニーズに基づいて、適切なモデルを使用してください。
レプリケートの出力データは 1 時間のみ利用可能です。 Webhook を使用してデータを独自のストレージに保存します。 Webhook を設定してモデルからの非同期応答を処理することもできます。これは、スケーラブルなアプリケーションを構築するために非常に重要です。
可能な場合はストリーミングを活用します。一部のモデルはストリーミングをサポートしており、生成中に部分的な結果を取得できます。これはリアルタイム アプリケーションに最適です。
画像 URL を使用すると、Base 64 でエンコードされたアップロードされた画像を使用するよりもパフォーマンスが向上します。
Streamlit を使用すると、数か月に及ぶアプリ設計作業が、わずか数行の Python に合理化されます。これは、最新の AI 発明を披露するのに最適なフレームワークです。
Streamlit クックブックの他の AI レシピを使用してすぐに起動して実行できます。 (そして、あなたが何を構築しているのかをフォーラムで見せてもらうことを忘れないでください!)
ストリームリットを楽しんでください! ?
以上が1 つの API を使用して複数の LLM にアクセスする AI チャットボットを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。