パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

編集者のメモ

NLPモデル開発プラットフォームは、機械学習の専門知識、モデル作成-データアップロード-データラベリング(スマートラベリング、データ拡張)-モデルトレーニング-モデルリリース-モデル検証フルプロセスの視覚化と便利な操作を必要とせずに、コア目標としてインテリジェントビジネスの迅速な作成に基づいています、高精度のNLPモデルを短時間で取得できるため、ビジネスに大きな力を与えます。

北京白峰情報技術有限公司のNLPモデル開発プラットフォームがリリースされた後、200以上のパーソナライズおよびカスタマイズされたリアルタイム予測モデルが世論分析ビジネスで立ち上げられました。強力なリソーススケジューリングおよびコンピューティングプラットフォームに依存して、毎日数十のモデルが繰り返されます更新と最適化により、プロセスデータとモデル全体の閉ループを真に実現します。この記事では、主にNLPモデル開発プラットフォームのアーキテクチャと実装の詳細、および世論ビジネスでのアプリケーションを紹介し、いくつかの参考資料を提供したいと考えています。

1.背景紹介

この記事では、Percent Public Opinion Insight System(MediaForce)のNLPモデル開発プラットフォームの設計と実践に焦点を当てています。MediaForceは、政府および企業の顧客に情報監視、インテリジェント分析、およびその他の機能を提供するSaaS製品です。2014年の開発以来、顧客の標準化の確立とデータ資産の蓄積は、自動化とインテリジェンスの開発のための確固たる基盤を築いてきました。内部的には、生産と運用の効率を改善し、行動結果のフィードバック時間を短縮する必要があります。外部的には、顧客との親密さを高めるために個別のサービスを提供する必要があります。世論情報は、キーワード検索により取得し、対応する関連データを取得します。BM25やTF-IDFなどの従来の情報検索メカニズムでは、キーワードとドキュメントの一致度のみが考慮され、ドキュメントの件名、クエリの理解、検索の意図などの要素は無視されます。 、リコール文書と顧客のアピールの間に大きな違いが生じます。一方、顧客のカスタマイズシナリオでは、顧客データに手動でラベルを付ける必要があり、これは非常に時間と労力のかかるプロセスです。

NLPモデル開発タスクでは、通常、次の3つの主要なモジュールが含まれます。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

初期の頃、これら3つのモジュールは主に中心に展開され、ビジネスをサポートするために繰り返されていました。事業規模が小さい場合、手動方式は作業の柔軟性と革新的なブレークスルーを保証しますが、ビジネスモデルが成熟し成長するにつれて、手動方式の制限が徐々に強調され、主に次の側面に反映されます。

(1)NLPモデル開発タスクの増加は、特にアルゴリズムの反復更新とモデルバージョン管理の観点から、開発者の保守作業を間違いなく増加させます。これは本質的に壊滅的です。

(2)コアビジネスの管理者は事業者ですが、モデル学習の閾値が比較的高いため、参加が大幅に減少しています。

NLPモデル開発プラットフォームの構築は、上記の問題を解決するだけでなく、アルゴリズムエンジニアのモデル開発とベンチマーク検証にも焦点を当てることで、分業がより明確になり、全員が参加できるようになります。データ管理、モデルライフサイクル管理、コンピューティングリソースとストレージリソースの統合管理などの機能を統合して、次の目標の達成に努めています。

(1)再利用性:一般的なアルゴリズムの統合、アルゴリズムの管理、およびホイールの繰り返し作成の回避。スクリプト開発から視覚的操作まで、アルゴリズム効果の改善とモジュールの再利用に焦点を当てます。

(2)使いやすさ:運用(ビジネス)担当者でさえ、プライベートビジネスモデルをカスタマイズして、真にビジネスを可能にすることができます。データラベリング、モデルトレーニング、効果評価、モデルリリースなどの操作は、独自の要件に従って実行できます。

(3)スケーラビリティ:コンピューティングリソースを拡張でき、モデルアルゴリズムフレームワーク(TF、Pytorch、H2o)を拡張でき、言語(Java、Python、R)を拡張できます。

2.NLPモデル開発ツールスタックのレビュー

従来のソフトウェア開発では、プログラムの動作をハードコーディングする必要があります。NLPマシン学習モデルの開発では、データを学習するために多くのコンテンツをマシンに任せます。次の図に示すように、開発プロセスは基本的に異なります。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

多くの従来のソフトウェアエンジニアリングツールを使用して、機械学習タスクを開発および提供できますが、機械学習の特殊性のために、多くの場合、独自のツールが必要です。次に例を示します。Gitは、違いを1行ずつ比較することでバージョン制御を実行します。これは、ほとんどのソフトウェア開発には適していますが、データセットやモデルチェックポイントのバージョン制御には適していません。2012年の深層学習の台頭に伴い、オールインワン(ワンストップ機械学習プラットフォーム):Polyaxon、MLFlowなど、モデリングとトレーニング(モデル開発、トレーニング):PyTorchなどの機械学習ツールスタックの種類と数が爆発的に増加しました。 、Colab、JAXなど、サービング(公開、監視、A / Bテスト):Seldon、Datatronなど。次の図は、各タイプのMLOpsのツールの数を示しています。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

機械学習ツールスタックの改良には、ラベリング、モニタリング、バージョン管理、実験追跡、CI / CDなどが含まれます。詳細は繰り返されません。詳細については、次の図を参照してください。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

現在、機械学習ツールスタックの種類と数は非常に多様であり、OSS用のものもあれば、商用料金用のものもあります。次の図は、主にさまざまなタイプのツールスタック上の製品を示しています。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

3.NLPモデル開発プラットフォームの構築

  1. AIトレーニングモデルの基本的なプロセスの紹介
    パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

(1)ビジネス要件の分析:トレーニングモデルを正式に開始する前に、ビジネス要件を効果的に分析および分解し、モデルタイプの選択方法を明確にする必要があります。

(2)データの収集、収集、および前処理:実際のビジネスシナリオと可能な限り一致するデータを収集し、考えられるすべてのデータ状況をカバーします。

(3)ラベルデータ:ルール定義に従ってデータラベル処理を実行します。分類ラベルの場合は、オフラインで直接マークできます。エンティティのラベル付けと関係のラベル付けの場合は、効率的な処理のために一連のオンラインラベル付けツールに対応する必要があります。

(4)トレーニングモデル:トレーニングモデルの段階では、ラベル付けされたデータは、決定された予備モデルタイプに基づくことができ、トレーニング用のアルゴリズムを選択できます。

(5)効果評価:トレーニング後にモデルを正式に統合する前に、モデル効果が利用可能かどうかを評価する必要があります。詳細なモデル評価レポート、モデル効果評価のためのオンラインビジュアルアップロードデータ、およびグレースケール環境でのビジネス検証が必要です。

(6)モデルの展開:モデル効果が利用可能であることを確認した後、モデルを実稼働環境に展開できます。同時に、マルチバージョン管理やAutoScaleなどの機能をサポートする必要があります。

  1. 全体的な構造
    パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

(1)分散ストレージには、NFS、HDFS、CEPHが含まれます。HDFSは元のデータとサンプル機能を保存し、NFSはトレーニング後にモデルファイルを保存し、CEPHはK8Sクラスターのファイル分散ストレージシステムです。

(2)基盤となるコンピューティングリソースはCPUクラスターとGPUクラスターに分けられます。高性能CPUクラスターは主に従来の機械学習モデルの展開とトレーニングに使用され、GPUクラスターはディープ(移行)学習モデルの展開とトレーニングに使用されます。

(3)リソースが異なれば計算タイプも異なります。機械学習トレーニングでは、計算にAlinkを使用し、コンピューティングリソースのスケジュールにYarnを使用します。深層学習トレーニングでは、スケジューリングにK8Sを使用します。これは、Pytorch、Tensorflow、PaddlePaddle、H2oなどの主流の深層学習フレームワークをサポートします。現在、単一マシントレーニングのみが実装されており、モデルの展開はすべてです。統合されたリリースと管理にK8Sを使用します。

このモジュールは、データアノテーション、モデルトレーニング、モデル評価、モデル管理、モデル展開、モデル予測などの外部機能を提供します。同時に、プラットフォームは、分類、NER、評価、予測などのコンポーネントも抽象化します。

  1. プラットフォーム建設の実践
    パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

プラットフォームの上位層は、事業者が使用する一連の標準的な視覚的操作インターフェースを提供し、プラットフォームの最下層は、完全なライフサイクルモデル管理を提供し、上位層アプリケーションの拡張をサポートします。

上記では、主にNLPモデル開発プラットフォーム構築の基本的なプロセスと全体的なアーキテクチャを紹介します。この章では、テクノロジの選択と実践について説明します。

(1)コンテナ管理スケジューリングプラットフォームの選択

Docker Swarm、Mesos Marathon、Kubernetesの3つの主流のコンテナ管理スケジューリングプラットフォームがあります。しかし同時に、スケジューリング、アフィニティ/非アフィニティ、ヘルスチェック、障害耐性、スケーラビリティ、サービスディスカバリ、ローリングアップグレードなどの多くの機能を備えており、Kubernetesに他なりません。同時に、OSSベースのマシン学習ツールスタックのほとんどは、有名なKubeflowなどのKubernetesに基づく上位レベルの開発およびアプリケーションでもあります。一方、深層学習の分野では通常、計算にGPUを使用し、KubernetesはGPUカードのスケジューリングとリソース割り当てを適切にサポートおよび拡張しています。たとえば、クラスターには複数のタイプのGPUカードがあります。GPUノードにラベルを付けてタスクを開始し、カードタイプの正確な割り当てを実現するようにnodeSelectorを構成できます。最終的に、プラットフォームのコンテナ管理システムとしてK8Sを使用することにしました。

(2)GPUリソ​​ーススケジューリング管理

現在、新しいバージョンのdockerはNVIDIA GPUをサポートするランタイムであり、古いバージョンのnvidia-dockerまたはnvidia-docker2は考慮されていません。実際、ランタイムに基づいて、GPUを直接使用して深層学習タスクを実行できますが、GPUリソ​​ースと異種デバイスのサポートを制限することはできません。主に2つの解決策があります。

a。デバイスプラグイン
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

KubernetesでGPUを管理およびスケジュールできるようにするために、NvidiaはNvidiaGPU用のデバイスプラグインを提供しています。主な機能は次のとおりです。

ListAndWatchインターフェイスをサポートして、ノード上のGPUの数を報告します。
割り当てインターフェイスをサポートし、GPUを割り当てる動作をサポートします。
しかし、このメカニズムはGPUカードの排他的使用につながります。特に推論段階では、利用率は非常に低いです。これが、2番目の方法を採用する主な理由でもあります。

b。GPU共有

GPUデバイスプラグインは、より優れた分離を実現し、各アプリケーションのGPU使用が他のアプリケーションの影響を受けないようにします。深層学習モデルのトレーニングシナリオには非常に適していますが、シナリオがモデル開発とモデル推論である場合、リソースの浪費が発生します。したがって、ユーザーが共有リソースの要求を表現できるようにし、GPUがプランレベルでオーバーサブスクライブされないようにする必要があります。ここでは、次の図に示すように、GPU共有でのAliyunのオープンソース実装を試します。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

構成ファイルで、ビデオメモリサイズを制限します。単位はGiBです。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

次のコマンドを実行します。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

11GiBグラフィックカードでは、GPU割り当てステータスは次のとおりです。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

(3)ゲートウェイの選択

Kubernetesサービスを使用する場合、直面して解決しなければならない問題は次のとおりです。外部(kubernetesクラスターの外部)からKubernetesで作成されたサービスにアクセスするにはどうすればよいですか?ここで最も一般的に使用される方法はNodePortです。これにより、任意のホストIPを使用してアクセスできます。この方法では、事前にnodePortを指定するか、ランダムにnodePortを生成する必要がありますが、これはインターフェイスリソースの管理が困難です。Kong、Nginx、HAProxyなどの主流のゲートウェイの問題は、それらがセルフサービスではなく、マイクロサービスではなくApi管理用に設計されたKubernetesにネイティブではないことです。Istioは、マイクロサービスのサービスメッシュであり、サービスからサービスへのトラフィックにアプリケーションレイヤー(L7)の可観測性、ルーティング、および復元力を追加するように設計されています。モデルの展開はKubernetesと緊密に統合する必要があり、サービス間で呼び出す必要はありません。最後に、アンバサダーが最終的なゲートウェイの選択として選択されます。新しいオープンソースのマイクロサービスゲートウェイ製品として、Ambassadorはkubernetesとうまく統合されています。注釈またはCRDに基づく構成方法は、kubernetesネイティブを真に実現するK8Sと統合されています。実際の例を以下に示します。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

timeout_msのデフォルト値は3000です。推論デバイスとしてCPUを使用すると、タイムアウトが発生する場合があります。ここでは、要件を満たすために、さまざまなシナリオに従って値が微調整されます。同時に、ルートテーブルから対応するURLを表示できます。

(4)視覚化

ここでの視覚化とは、モデルトレーニング中にモデルのパフォーマンスを評価および調整する必要性を指します。これが最初にTensorboardを統合し、次にBaiduのVisualDlも統合されています。トレーニングプロセス中に別のコンテナが開始され、開発者がレビューおよび分析できるようにインターフェイスが公開されます。

(5)モデルの展開

第2章では、さまざまな機能を備えた機械学習ツールスタックを紹介します。モデル展開では、Seldon CoreをCDツールとして使用し、SeldonCoreもKubeflowによって緊密に統合されています。Seldonは、Kubernetesに大規模な機械学習モデルを展開し、MLモデル(Tensorflow、Pytorch、H2oなど)または言語ラッパー(Python、Javaなど)をREST / GRPCなどのマイクロサービスに変換できるオープンソースプラットフォームです。

以下は、推論イメージの構築プロセスです。ここで、MyModel.pyは予測ファイルです。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

デプロイメント記述ファイルの一部は次のとおりです。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

4.プラットフォームのアプリケーションと有効性

NLPモデル開発プラットフォームの構築により、モデル学習のしきい値が大幅に削減され、ビジネス担当者はルールの策定に参加できるだけでなく、データのラベル付け、サービスのリリース、効果の評価などの複数の段階に参加できるようになります。同時に、データサイエンティストと機械学習エンジニアは、モデル自体のアルゴリズムとパフォーマンスにさらに集中できるため、作業効率が大幅に向上し、作業プロセスが簡素化されます。次の例では、データの関連性とラベル処理におけるプラットフォームの有効性を使用しています。

  1. 相対性

過去数十年の間に、さまざまな自動情報検索システムが実装されてきました。ドキュメントの効果的な表現は、ドキュメントを取得できるようにするためのコアです。ベクトル空間モデルや確率モデルと同様に、どちらもTF、IDF、ドキュメントの長さなどの特性要素に依存します。ドキュメントをテキストから数値またはベクトルベースの表現に変換するには、並べ替え機能で特定のクエリの関連性に従ってドキュメントを並べ替える必要があります。その中で、Okapi BM25は、IRで最も有名で広く使用されているソートアルゴリズムです。従来の情報検索方法では、意味情報などの多くの要素を考慮していません。そして、Bertは、トレーニングデータが大量にあることもあり、GLUEで最高のIR関連ベンチマークテストを達成しました。さらに、Transformerニューラルネットワークアーキテクチャに基づいて、入力内の各トークン間の深い関係が促進されるため、モデルは入力内に存在する関係をよりよく理解できます。実際のアプリケーションでは、クエリの意図、クエリの書き換え、シノニムの拡張など、多くの手法を検討する必要があります。以下では、検索の関連性とプログラムの進化を改善する試み、およびこの点でのNLPモデル開発プラットフォームの有効性と適用について説明します。

(1)クエリの意図に基づく従来の情報検索

世論での検索は、単語やフレーズであることが多く、外部の知識がない場合、検索の意図がわからないことがよくあります。Okapi BM25の従来の情報取得方法を使用する場合、クエリキーワードのみがドキュメントに関連付けられますが、検索の意図とは一致しません。当時のアーキテクチャでは、ESを使用してより一般的な処理フレームワークを取得できるかどうかを検討するために、主にElasticsearchのフルテキスト検索に基づいていました。ElasticsearchはLuenceのアーキテクチャに基づいています。ドキュメントとフィールドの概念、関連性モデル、さまざまなクエリモードなど、多くの要素が同じ行にあります。このプロセスを次の図に示します。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

ここのインテント拡張ライブラリは、実際にクエリキーワードを拡張します。たとえば、キーワードは「true Kungfu」です。検索インテントがレストランブランド「trueKungfu」を参照している場合は、業界に関連する一連の単語を展開できます。店舗、クーポンなど クエリと一緒にクエリを実行します。ここでの意図拡張ライブラリ(関連する単語の拡張)は、検索フィルタ条件としてではなく、重みスコアにのみ寄与し、ESのshouldステートメントを使用して実現できます。このメカニズムは、特に垂直フィールドでのデータ関連性の問題をある程度軽減し、効果は非常に良好です。そして、それがクロスドメインと幅広い検索の意図を含むと、それは無力に見えます。

(2)バート分類モデルに基づくアプリケーション

上記の実装メカニズムはすべて、監視されていない並べ替えアルゴリズムの例であり、そのような並べ替えアルゴリズムは最適ではありません。非常に単純化されたケースでは、ラベルがドキュメントが特定のキーワードに関連するかどうか、つまりバイナリラベルとして定義されている場合、並べ替えアルゴリズムのトレーニングの問題はバイナリ分類の問題に変換されます。このように、ほとんどすべての既製のバイナリ分類器を直接使用して、変更せずに並べ替えアルゴリズムをトレーニングできます。たとえば、従来の「対数確率」分類器またはサポートベクトルマシンが適しています。このタイプのアルゴリズムは、「ランク付けするポイントワイズ学習」と呼ばれます。このメカニズムは、クエリがトピックディメンションに昇格されることを除いて、アプリケーションシナリオと非常に一貫しています。DSSMなどの従来のテキストマッチングアルゴリズムは、クエリ文字列とドキュメント間の一致度を解決します。クエリ文字列は、多くの場合、単語ではなく文です。したがって、関連性の問題をバイナリ分類の問題に変換します。Elastcsearchインデックスライブラリはリコールフェーズでの取得に使用され、分類子はソートフェーズでリコールされたドキュメントを決定するために使用されます。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

このメカニズムの下で、パーソナライズされたサービスが顧客に提供されます。NLPモデル開発プラットフォームの助けを借りて、ワンストップ処理が実行され、バージョンの反復最適化を実現できます。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

  1. オフラインラベル

一部のカスタマイズされたシナリオでは、オフラインデータにラベルを付ける必要があります。これは時間と労力を要するプロセスであり、前の作業で次の作業に力を与えることはできません。注釈モジュールを介して既存のデータを統合し、新しいラベルのサンプルデータに注釈を付けて、ビジネスを迅速に強化し、生産性を解放します。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

また、エンティティ認識の場合は、ラベル付けモジュールで直接ラベル付けできます。
パーセント認知インテリジェンス研究所:パブリックオピニオン分析におけるNLPモデル開発プラットフォームの設計と実践(パート2)

世論分析のイネーブラー:NLPモデル開発プラットフォームの設計実践

5.プラットフォームの見通し

  1. 完璧なマーキング機能

テキスト分類やNERなどの基本的な注釈タスクに加えて、関係注釈やseq2seqなどの主流タスクのサポート、およびタスク割り当てや複数人のコラボレーションなどの機能も必要です。

  1. 豊富なアルゴリズムモジュール

基本的なニーズを満たすには、テキストマッチングなどのアルゴリズムモジュールを追加して、より幅広いアプリケーションシナリオに対応する必要もあります。

  1. PiplinesパイプラインNLPモデル開発プラットフォームを構築する

現在、モデルトレーニングとモデル評価は連動しており、コンポーネントモジュールの再利用には至っていません。そのため、きめ細かいモジュールごとに個別に分割し、Pipline方式で自由に組み合わせて最大限に活用する必要があります。

参考資料:

[1] https://huyenchip.com/2020/06/22/mlops.html

[2] https://github.com/AliyunContainerService/gpushare-scheduler-extender

[3] https://docs.seldon.io/projects/seldon-core/en/latest/

おすすめ

転載: blog.51cto.com/14669657/2544389