|
Towhee は、まるで積み木を組み立てるように、AI アプリケーションを簡単に構築・展開することを可能にします。大規模言語モデル (LLM) をはじめとする最先端のディープラーニングモデルを用いることで、様々な未処理・非構造化データ (長文テキスト、画像、音声、動画) から情報を抽出し、適切なストレージシステム (抽出したベクトルデータをベクトルデータベースに保存するなど) に保存します。開発者は Towhee の Python API を使用して、様々な AI パイプラインやアプリケーションのプロトタイプを作成し、自動コード最適化と低コストでのパフォーマンス最適化を本番環境向けに実現できます。 ✨ プロジェクトの特徴🎨 マルチモーダルTowheeは様々なデータタイプに対応しています。画像データ、動画クリップ、テキスト、音声ファイル、分子構造など、あらゆるデータを処理できます。 📃 LLMパイプラインオーケストレーターであるTowheeは、様々な大規模言語モデル(LLM)に適応できる柔軟性を備えています。さらに、オープンソースの大規模モデルのローカルホスティングも可能です。Towheeは、迅速な管理や知識検索などの機能も提供しており、これらのLLMとのやり取りをより効率的かつ効果的にします。 🎓 豊富な演算子:Towheeは、コンピュータービジョン、自然言語処理、マルチモーダル、音声、ヘルスケアの5つの領域にわたって、最先端の既製モデルを幅広く提供しています。BERTやCLIPなど140以上のモデルに加え、ビデオデコード、音声スライス、フレームサンプリング、次元削減などの豊富な機能を備え、効率的なデータ処理パイプラインの構築を支援します。 🔌 構築済みのETLパイプライン Towheeは、拡張生成検索、テキスト画像検索、動画コピー検出といった一般的なタスク向けに、すぐに使えるETL(抽出、変換、ロード)パイプラインを提供しています。つまり、これらの機能を使ってアプリケーションを構築するために、AIの専門知識は必要ありません。 ⚡️ 高性能バックエンド:Triton推論サーバーのコンピューティングパワーを活用することで、TensorRT、PyTorch、ONNXなどのプラットフォームを使用して、CPUおよびGPU上でモデルサービスを高速化できます。さらに、わずか数行のコードでPythonパイプラインを高性能Dockerコンテナに変換できるため、効率的なデプロイとスケーリングが可能です。 🐍 PythonスタイルのAPI Towheeには、カスタムデータ処理パイプラインを記述するためのPythonスタイルのメソッドチェーンAPIが含まれています。また、スキーマもサポートしているため、非構造化データの処理も表形式データの処理と同じくらい簡単です。 🎓 クイックスタートガイドTowhee には Python 3.7 以降が必要です。 pipを使えば簡単にインストールできます。 pip install towhee towhee.models 組立ライン定義済みパイプラインTowheeは、ユーザーが機能を迅速に実装できるように、いくつかの定義済みパイプラインを提供しています。現在実装されているものは以下のとおりです。 - テキスト埋め込み
- 画像の埋め込み
- ビデオ重複排除
- 大規模言語モデルに基づく知識ベースの質問応答
すべてのパイプラインはTowhee Hubでご覧いただけます。以下はsentence_embeddingパイプラインの使用例です。 from towhee import AutoPipes, AutoConfig # get the built-in sentence_similarity pipeline config = AutoConfig.load_config('sentence_embedding') config.model = 'paraphrase-albert-small-v2' config.device = 0 sentence_embedding = AutoPipes.pipeline('sentence_embedding', config=config) # generate embedding for one sentence embedding = sentence_embedding('how are you?').get() # batch generate embeddings for multi-sentences embeddings = sentence_embedding.batch(['how are you?', 'how old are you?']) embeddings = [e.get() for e in embeddings] カスタムパイプラインTowhee Python APIを使用すると、カスタムパイプラインを実装できます。以下の例では、CLIPベースのクロスモーダル検索パイプラインを作成します。 from towhee import ops, pipe, DataCollection # create image embeddings and build index p = ( pipe.input('file_name') .map('file_name', 'img', ops.image_decode.cv2()) .map('img', 'vec', ops.image_text_embedding.clip(model_name='clip_vit_base_patch32', modality='image')) .map('vec', 'vec', ops.towhee.np_normalize()) .map(('vec', 'file_name'), (), ops.ann_insert.faiss_index('./faiss', 512)) .output() ) for f_name in ['https://raw.githubusercontent.com/towhee-io/towhee/main/assets/dog1.png', 'https://raw.githubusercontent.com/towhee-io/towhee/main/assets/dog2.png', 'https://raw.githubusercontent.com/towhee-io/towhee/main/assets/dog3.png']: p(f_name) # Flush faiss data into disk. p.flush() # search image by text decode = ops.image_decode.cv2('rgb') p = ( pipe.input('text') .map('text', 'vec', ops.image_text_embedding.clip(model_name='clip_vit_base_patch32', modality='text')) .map('vec', 'vec', ops.towhee.np_normalize()) # faiss op result format: [[id, score, [file_name], ...] .map('vec', 'row', ops.ann_search.faiss_index('./faiss', 3)) .map('row', 'images', lambda x: [decode(item[2][0]) for item in x]) .output('text', 'images') ) DataCollection(p('puppy Corgi')).show()
🚀 コアコンセプトTowhee は、「オペレーター」、「パイプライン」、「データ収集 API」、「エンジン」の 4 つの主要モジュールで構成されています。 - 演算子: 演算子は、ニューラルネットワークのデータ処理パイプラインを構成する「ビルディングブロック」(基本コンポーネント)です。これらの基本コンポーネントはタスクの種類に応じて分類され、各タスクの種類には標準的な呼び出しインターフェースがあります。演算子は、ニューラルネットワークモデル、データ処理メソッド、またはPython関数のいずれかです。
- パイプライン:パイプラインは、複数の演算子で構成されるDAG(有向非巡回グラフ)です。パイプラインは、特徴ベクトル抽出、データラベリング、クロスモーダルデータ理解など、単一の演算子よりも複雑な機能を実現できます。
- データ収集API:データ収集APIは、パイプラインを記述するためのプログラミングインターフェースです。map、filter、flat_map、concat、window、time_window、window_allといった様々なデータ変換インターフェースを提供します。これらのインターフェースを通じて、動画、音声、テキスト、画像といった非構造化データを処理するための複雑なデータ処理パイプラインを迅速に構築できます。
- 実行エンジン:実行エンジンは、インスタンス化パイプライン、タスクスケジューリング、リソース管理、ランタイムパフォーマンスの最適化を担います。Towheeは、ラピッドプロトタイピング向けに軽量なネイティブ実行エンジンを提供し、本番環境向けには、Nvidia Tritonをベースとした高性能実行エンジンを提供しています。
ProxyPin は、Windows、Mac、Android、iOS プラットフォームをサポートする無料のオープンソース HTTP/HTTPS パケット キャプチャ ツールです。携帯電話のQRコードスキャンによる接続をサポートしているため、設定の同期を含むWi-Fiプロキシ設定を手動で行う必要がなくなります。すべてのデバイスは、互いのQRコードをスキャンすることで接続し、トラフィックを転送できます。 Macを初めて起動すると、破損しているというメッセージが表示されます。システム環境設定 > セキュリティとプライバシー > すべてのソースを許可 を開いてください。 中国のダウンロードリンク: https://gitee.com/wanghongenpin/network-proxy-flutter/releases iOS ダウンロード リンク (Safari で開く): https://testflight.apple.com/join/gURGH6B4 iOS 個人開発者アカウントは、VPN を使用して App Store にアップロードすることはできませんが、後で米国の App Store にアップロードすることは可能です。
- 機能の書き直し、低速リクエストのシミュレーション強化、デバッグのリクエスト、UI の最適化など、機能とユーザー エクスペリエンスを継続的に改善していきます。
- Android WeChatミニプログラムのパケットキャプチャをサポートします。Androidにはシステム証明書とユーザー証明書があります。ダウンロードした自己署名ルート証明書はすべてユーザー証明書です。WeChatはユーザー証明書を信頼しません。ルートアクセスがないと、HTTPSをキャプチャできません。現在、市販されているすべてのパケットキャプチャソフトウェアはWeChatパケットをキャプチャできません。解決策は、動的に逆コンパイルし、ユーザー証明書を信頼するように設定を変更する、別のランタイム空間プラグインを作成することです。
- WebSocket および HTTP/2 プロトコルのサポート。
MAC - デモ使用 写真 写真 写真 iPhone - デモ使用方法写真 写真 |