Gradio は、機械学習やデータ サイエンス関連のデモや Web アプリケーションを構築するためのオープン ソース Python ライブラリです。 Gradio を使用すると、機械学習モデルやデータ サイエンスのワークフローを中心に美しい UI インターフェイスをすばやく作成でき、ブラウザーで画像のドラッグ、テキストの貼り付け、サウンドの録音、デモの操作などを行うことができます。 Gradio は次の場合に適しています:
入門ガイドのインタラクティブバージョンは、https://gradio.app/getting_started[1]でご覧いただけます。 クイックスタート前提条件: Gradio には Python バージョン >= 3.7 が必要です プロジェクトギャラリーhttps://github.com/gradio-app/gradio Gradio はどのような問題を解決しますか? 😲機械学習モデル、API、またはデータ サイエンスのワークフローを他のユーザーと共有する最適な方法の 1 つは、インタラクティブなデモを作成し、ユーザーや同僚がブラウザーで体験できるようにすることです。 Web ベースのデモは、ブラウザに直接アクセスできる人なら誰でも (技術者だけでなく) 自分の入力を視覚的に試し、作成したものを確認できるため、非常に便利です。 しかし、このような Web ベースのデモを作成するのは難しい場合があります。Web アプリケーションをサポートするバックエンド サービスと、UI インターフェイスを構築するためのフロントエンド開発の知識 (HTML、CSS、JavaScript) を理解する必要があるためです。 Gradio を使用すると、Python のみを使用して、多くの場合は数行のコードだけでデモを構築して共有できます。始めましょう。 こんにちは、世界⚡簡単な「Hello World」の例で Gradio を実行する前に、次の 3 つの手順に従います。 1. pip を使用して Gradio をインストールします。必要な Python の最小バージョンは 3.7 であることに注意してください。 pip インストールgradio 2. 次のコードを Python スクリプトとして(またはノートブック内で直接)実行します。 gradioをgr としてインポート 3. 以下のデモは自動的にノートブックに表示されます。Pythonスクリプトとして実行すると、http://localhost:7860[2]ページがブラウザに自動的に表示されます。 インターフェースクラス上記で作成したデモでは、gradio.Interface クラスを使用してオブジェクトを定義していることに気付いたかもしれません。 Interface クラスは、ほぼ何でも実行できます。つまり、任意の Python 関数を UI の方法で装飾できます。この例では、単純なテキスト関連の関数を使用しました。しかし実際には、この機能は、音楽ジェネレーターから税金計算機、(最も一般的には)事前トレーニング済みの機械学習モデルの予測機能まで、何でも可能です。 コア インターフェース クラスは、次の 3 つのパラメータで初期化する必要があります。
Gradioは20種類以上のコンポーネントタイプをサポートしており、そのほとんどは入出力コンポーネントとして使用できます(完全なリストについては、公式ドキュメント[3]を参照してください)。 コンポーネントのプロパティInterface の 3 つのパラメータを使用すると、UI インターフェイスをすばやく作成し、 launch() することができます。しかし、UI のスタイルや動作を変更したい場合はどうすればよいでしょうか? たとえば、テキスト入力シーンをカスタマイズして、テキスト ボックスを大きくし、入力ヒントを表示したいとします。 「テキスト」入力タイプの代わりに Textbox クラスを使用すると、コンポーネントのプロパティを通じてさらにカスタマイズを行うことができます。 gradioをgr としてインポート Gradioでサポートされているすべてのコンポーネントのリストと、それらをカスタマイズするために使用できるプロパティについては、公式ドキュメント[3]を参照してください。 複数の入力と出力🔥複数の入力と出力を持つより複雑な関数があるとします。次の例では、文字列、ブール値、数値を入力として受け取り、文字列と数値を返す関数を定義します。この時点で入力コンポーネント リストと出力コンポーネント リストを渡す方法を見てみましょう。 gradioをgr としてインポート コンポーネントをリストに入れるだけです。入力リストの各コンポーネントは、関数の引数の 1 つに順番に対応し、出力リストの各コンポーネントは、関数によって返される値の 1 つに順番に対応します。 画像 🎨「画像から画像へ」機能を試してみましょう! Image コンポーネントを使用する場合、関数は指定されたサイズの numpy 配列を受け取ります。配列の形状は (幅、高さ、3) で、最後の次元は RGB 値を表します。画像を numpy 配列として返します。 numpyをnp としてインポートする さらに、画像入力インターフェースには「編集」ボタン✏️が付いており、これをクリックすると、画像を切り取ったり拡大したりするためのツールが開きます。このように画像を処理すると、機械学習モデルの偏りや隠れた欠陥を明らかにするのに役立つことがわかりました。 Gradio は、画像以外にも、オーディオやビデオなどの他のメディア タイプもサポートします。これらについては公式ドキュメント[3]で読むことができます。 データフレームとチャート 📈 Gradio を使用すると、データベースまたはデータ ファイルからの入出力をサポートできます。たとえば、 matplotlib をインポートする サンプルデータを入力として使用する🦮ユーザーがモデルに簡単に読み込むことができるサンプル データを提供できます。これは、モデルが期待する入力の種類を示すのに役立ち、モデルと組み合わせてデータセットを探索する方法を提供します。サンプル データをロードするには、Interface コンストラクターの examples= キーワード引数にネストされたリストを提供します。外側のリスト内の各サブリストはデータ サンプルを表し、サブリスト内の各要素は各入力コンポーネントの実際の入力を表します。各コンポーネントのサンプルデータ形式については公式ドキュメント[3]にも記載されています。 gradioをgr としてインポート 大規模なデータセットを例に読み込み、Gradio を通じてデータセットを参照したり操作したりできます。例は自動的にページ分割されます( リアルタイムインターフェース 🪁Interface で live=True を設定すると、インターフェースを自動的に更新できます。こうすることで、ユーザー入力が変更されるたびにインターフェースが再計算されます。 gradioをgr としてインポート インターフェースは変更時に自動的に再送信するため、ここには送信ボタンがないことに注意してください。 タグ🚩インターフェースの出力の下に「フラグ」ボタンがあります。モデルをテストしているユーザーが、エラーや予期しないモデルの動作など、興味深い出力を伴う入力を見つけた場合、それらの入力にフラグを付けて、インターフェース作成者がレビューできるようにすることができます。インターフェース コンストラクターの flagging_dir= パラメーターによって指定されたディレクトリにフラグが付けられた入力を記録するための CSV ファイルが生成されます。インターフェイスに画像やオーディオ コンポーネントなどのファイル データが含まれる場合は、これらのタグ付けされたデータを保存するためのフォルダーが作成されます。 たとえば、上記の計算機インターフェースを使用すると、タグ データを次のようにタグ ディレクトリに保存します。 + -- 計算機.py flagged/logs.csv の内容: num1,操作,num2,出力 上記で実装した Sepia インターフェイスを使用して、次のようにタグ データをタグ ディレクトリに保存します。 + -- セピア.py flagged/logs.csv の内容: im 、 出力 これらのタグ入力は、タグ ディレクトリを手動で参照して表示することも、examples= パラメータでタグ ディレクトリを指定して Gradio インターフェースの例に読み込むこともできます。ユーザーにフラグ付けの理由を提供させたい場合は、Interface の flagging_options パラメータに文字列のリストを渡すことができます。ユーザーはマークするときにこれらの文字列の 1 つを選択する必要があり、これは追加の列として CSV に保存されます。 ブロック: 柔軟性と制御性の向上 🧱Gradio は、ユーザーに 2 つの API を提供します。(1) インターフェース (これまで説明してきたプレゼンテーションを作成するための高レベルの抽象クラス)、および (2) ブロック (より柔軟なレイアウトとデータ フローを備えた Web アプリケーションを設計するための低レベルの API) です。 ブロックを使用すると、関連するプレゼンテーションをグループ化したり、ページ上でコンポーネントが表示される場所を変更したり、複雑なデータ フローを処理したり (たとえば、出力を他の関数の入力として使用したり)、ユーザーの操作に基づいてコンポーネントのプロパティや可視性を更新したりすることができます。 ——上記のすべてには、依然として Python の使用のみが必要です。 たとえば、Blocks は次のように、Python のネストされた with ステートメントを使用してページ上にコンポーネントをレイアウトします。 numpyをnp としてインポートする Blocksの仕組みに興味がある場合は、専用のガイド[4]をお読みください。 デモを共有🌎Gradio デモは、launch() メソッドで share=True を設定することで簡単に公開できます。このような: gr.Interface(classify_image, "image", "label").launch(share=True) これにより、誰にでも送信できる公開の共有可能なリンクが生成されます。このリンクを送信すると、相手側のユーザーはブラウザでモデルを試すことができます。処理はデバイス上で行われるため (デバイスの電源がオンになっている限り)、依存関係のパッケージ化について心配する必要はありません。共有リンクは通常、XXXXXX.gradio.app のようになります。リンクは Gradio URL 経由で提供されますが、当社はローカル サーバーへのプロキシのみであり、インターフェイス経由で送信されたデータは保存しません。 ただし、これらのリンクは公開されているため、誰でもモデルを使用して予測を行うことができます。したがって、作成した関数を通じて機密情報を公開したり、デバイスに重大な変更が生じたりしないように注意してください。 share=False(colabノートブックを除くデフォルト)に設定すると、ポート転送[5]を介して特定のユーザーと共有できるローカルリンクのみが作成されます。 共有リンクは 72 時間後に期限切れになります。 |
<<: 人工知能技術は子供たちにどのような影響を与えるのでしょうか?
>>: グラフニューラルネットワークは CV の未来でしょうか?中国科学院ソフトウェア研究所は、ViTを上回る新しいCVモデルViGをリリースした。
マシンビジョンは急速に発展している人工知能の分野です。簡単に言えば、マシンビジョンとは、測定と判断の...
Turbonomic の買収計画により、IBM はビジネスと IT 全体にわたって人工知能の自動化機...
1 はじめにみなさんこんにちは、フェイ先生です。機械学習の定番フレームワークであるscikit-l...
最近、GPT-4 と Copilot を研究に積極的に使用している数学の専門家 Terence Ta...
チャットボットの種類は、提供されるさまざまな機能と応答に使用する方法によって決まります。チャットボッ...
[[312937]] [51CTO.com クイック翻訳] かつて紙は必須の事務用品とみなされ、ほと...
今年8月、ネイチャー誌に立て続けに掲載された2つの論文は、脳コンピューターインターフェースが言語回復...
顔認識パッケージこれは世界で最もシンプルな顔認識ライブラリです。 Python リファレンスまたはコ...
[[203619]] 「もし私が諜報員だったら、生体認証機能をオンにすることは絶対にありません。」...
人工知能と聞いて真っ先に思い浮かぶのは、手を自由にすることですが、絶対的に正しいものはありません。手...
最近、ソートアルゴリズムを勉強していて、多くのブログを読んでいます。インターネット上のいくつかの記事...
[[441739]]バックスペースで文字列を比較するLeetCode の問題へのリンク: http...
市場調査会社オムディアの最新レポートによると、北米第2位の配車プラットフォームプロバイダーであるLy...
[[186484]]昨年から半年以上機械学習を勉強してきましたが、そろそろ総括したいと思います。これ...