【51CTO.com クイック翻訳】はじめにこのプロジェクトでは、簡単なコードを使用して機械学習モデル用のアプリケーション プログラミング インターフェイス (API) を構築およびデプロイする方法を学習します。 FastAPI を学習するのに 1 時間、Deta サーバーにデプロイする方法を学習するのに 5 分かかりました。また、Python Request を使用して、ローカル サーバーとリモート サーバーの両方で API をテストします。私たちのプロジェクトで使用するこれらのテクノロジーを詳しく見てみましょう。
スパシー実験と評価のためのよく知られた NLTK Python ライブラリと比較すると、spaCy はアプリケーションとデプロイメントに優れています。 spaCy には、強力で使いやすく、spaCy プロジェクトに実装できる、事前に構築された統計ニューラル ネットワーク NLP モデルが付属しています。非常にシンプルで小さな、事前に構築された英語モデルを使用して、テキストからエンティティを抽出します。 高速APIFastAPI は、Python で API を構築するための高速 Web フレームワークです。クエリ時間が短く、シンプルで、コードが最小限であるため、FastAPI を使用して最初の API を数分で設計できます。 FastAPI の仕組みと、事前に構築されたモデルを使用して英語のテキストからエンティティを取得する方法について学習します。 データAPI には Deta Micros サービスを使用し、Docker や YAML ファイルなしでプロジェクトをデプロイします。 Deta プラットフォームには、簡単に導入できる CLI、高いスケーラビリティ、安全な API 認証キー、サブドメインを変更するオプション、Web トラフィックのログ記録機能が備わっています。これらの機能は Deta では完全に無料でご利用いただけます。私たちのプロジェクトでは、Deta CLI を使用して、わずか数行のスクリプトで Fast API をデプロイします。 コードこの記事を書くきっかけとなった YouTube ビデオは、FastAPI を学習しているときに偶然見つけたものでした。 Sebastián Ramírez が、Fast API の仕組みとそれが最速の Python Web フレームワークである理由について説明します。 2 つの Python ファイルを作成します。1 つには機械学習モデルが含まれ、もう 1 つには API コードが含まれます。 必要始める前に、requirements.txt ファイルを含む新しいディレクトリを作成する必要があります。以下に、これから使用するすべての必要なライブラリを示します。
1 つずつインストールすることも、以下を使用することもできます。
このプロジェクトでは事前トレーニング済みの NLP モデルを使用するため、GitHub リポジトリからダウンロードする必要があります。または、要件ファイルを実行するだけで、自動的にダウンロードおよびインストールされます。 機械学習モデル事前トレーニング済みの Spacy NLP モデルを使用して、テキストからエンティティを抽出します。 Jupyter ノートブックを使用している場合は、%%writefile を使用してディレクトリに Python ファイルを作成してみてください。 まず、NLP モデルをロードし、CBS ニュースの記事からエンティティを抽出します。わずか数行のコードで、最初の機械学習モデルを実行できます。同じ方法を使用して、トレーニング済みのモデルをロードすることもできます。 APIドキュメントこれはメイン ファイルであり、次の内容が含まれます。 1. read_main: GET を使用してリソースからデータを要求します。ウェルカム メッセージが表示されます。 2. クラス記事: pydantic BaseModel を使用して、API で使用されるオブジェクトと変数を定義します (helpmanual.io)。この例では、コンテンツを文字列として定義し、コメントを文字列のリストとして定義します。 3. analyze_article: ml ファイルから NLP オブジェクトを使用し、コメントが添付されたテキストのリストを取得し、インスタンスを表示します。 少しわかりにくいかと思いますので、理解しやすいように細かい部分に分けてみましょう。
壊すFastAPI オブジェクトを作成し、@app.get("/") を使用して関数のデコレータとして使用します。
メイン ページにメッセージを表示するためのシンプルな read_main 関数を作成しました。
ここで、BaseModel から関数と変数を継承する Article クラスを作成します。この関数は、POST メソッドで使用するパラメータ タイプを作成するのに役立ちます。この例では、コンテンツを文字列変数として作成し、コメントを文字列のリストとして作成します。
前のセクションでは、API の POST メソッド (「/article/」) を作成しました。これは、パラメータを入力として受け取り、処理後に結果を返す新しいセクションを作成することを意味します。
テストFast API は Uvicorn 上に構築されているため、サーバーも Uvicorn 上で実行されます。 Jupyter ノートブックでは、次のコードを使用してアプリケーションを実行するか、ターミナルで uvicorn に続けて main.txt と入力します。この場合、FastAPI オブジェクトは app です。
サーバーはスムーズに動作しているので、request.get メソッドを使用してアクセスしてみましょう。 API はホームページに「ようこそ」メッセージを表示し、すべてが正常に動作していることを示します。
次に、個々のテキストとコメントを辞書としてリストに追加します。 NLP モデル関数にアクセスするには、POST リクエスト メソッドと /article/ を使用します。データを簡単に抽出できるように、出力を .json() に変換します。 辞書のキーは次のとおりです: ['ents', 'comments']
全体の出力がどのようになるか見てみましょう。ラベル付きのエンティティとエンティティのリストがあるようです。コメントキーについても同様です。
ここで、単一のエンティティとそのテキストを抽出して、出力の柔軟性を確認しましょう。この例では、出力から 2 番目のエンティティを抽出します。 結果は完璧でした。
展開するターミナルに入力するか、Jupyter ノートブック セルで同じ手順を実行しますが、スクリプトの前に「!」を追加します。まず、cd を使用して、main.py ファイルと ml.py ファイルが配置されているディレクトリにアクセスします。
Deta に必要な 3 つの主なファイルは、ml.py、main.py、requirements.txt です。 Windows を使用している場合は、PowerShell で以下のコマンドを使用して Deta CLI をダウンロードしてインストールします。
Linux を使用している場合:
次に、deta ログインを使用します。これにより、ブラウザが開き、ユーザー名とパスワードの入力を求められます。すでにログインしている場合は、確認に数秒かかります。
データ検証 | deta ターミナルのこの 2 つの単語は魔法の言葉であり、2 分以内にファイルをアップロードしてアプリケーションをデプロイします。
アプリケーションはエンドポイント リンク (この場合は https://93t2gn.deta.dev/) にアップロードされます。
エラーが見つかった場合は、deta ログを使用してログを確認し、変更を加えてから、deta deploy を使用して変更を更新します。 ご覧のとおり、アプリケーションは Deta サーバーにデプロイされ、実行されています。 プロジェクト概要 | Deta が提供しているリンクにアクセスして、自分で確認することができます。 Web API のテスト最後に、Deta プラットフォーム上のマイクロサービスとしてリモート API をテストしてみましょう。今回は、ローカル IP を追加する代わりに、データ エンドポイント リンクを追加します。 API 認証が有効になっていないため、ヘッダーなしで実行することも可能です。 Deta は、認証を有効にすると無料の API キーも提供します。つまり、あなたまたはあなたの API キーを持つユーザーだけが Web サーバーにアクセスできます。認証とサブドメインの詳細については、ドキュメントを確認することをお勧めします。 同じ結果を得るために同じパラメータと同じコードを追加すると、なんと、うまく機能します。 API はオンラインであり、リンクを使用して簡単にアクセスできます。
結論はFastAPI を学んだ後、次に何をするかを考えていたところ、ある日、オンラインで偶然 Deta を見つけ、興味をそそられました。 Deta CLI をインストールし、リモート サーバーに API をデプロイするのに数分かかりました。 Deta のサブドメインと無料 API キー機能に感銘を受けました。このサービスがどのように機能し、将来のプロジェクトでどのように使用するかをすぐに理解できました。 いくつかの機械学習モデルを学習した後、私たちは皆、次のような疑問を抱きます。 モデルをトレーニングして予測を得る方法はわかっていますが、次のステップは何ですか? 他のユーザーが私が構築したものを確認し、プロジェクトでこれらの機能を使用できるように、モデルを他のユーザーと共有するにはどうすればよいですか? ここで Heroku、Google、Azure などのクラウド プラットフォームが役立ちますが、これらのプラットフォームは少し複雑で、Docker ファイルのコードを記述する方法を学ぶ必要があるため、イライラすることがあります。 Deta は、アプリケーションを数秒でデプロイして実行できる簡単な 2 語のスクリプトですべての問題を解決します。 原題: 初めての機械学習 API の導入、著者: Abid Ali Awan [51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください] |
>>: Yandexとロシア郵便が配達ロボットサービスを開始
注意ベースのモデルの代替として、純粋な MLP アーキテクチャがますます注目を集めています。 NLP...
顔認識は、テクノロジーを通じて人の顔を識別する方法です。顔認識システムは生体認証技術を使用して、写真...
[51CTO.com からのオリジナル記事] 現在、機械学習テクノロジーをめぐっては多くの誇大宣伝が...
機械学習エンジニアは、製品の開発やアルゴリズムの構築を行うチームの重要なメンバーです。データの専門家...
大規模言語モデル (LLM) は最近、コード レベルでのさまざまなダウンストリーム タスクで優れたパ...
[[219378]]見れば分かります。わずか 12 行の Python コードで、独自のマシン ビ...
[51CTO.com クイック翻訳] 人工知能は決して新しいものではありませんが、科学の分野では古く...
7月4日、コード生成に重点を置いたAIモデルとしてMetaGPTが発表された。名前は似ているが、Me...
人工知能は物流業界に革命を起こす上で重要な役割を果たします。グローバル化により、あらゆるものがデジタ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
GPT や LLaMA などの現在の大規模言語モデルは、自然言語処理の分野で大きな進歩を遂げており、...
[[336522]]ビッグデータダイジェスト制作編集者: ルナ教科書で習ったことと実際の業務に乖離...