本開示は、人工知能とクラウドプラットフォームに関し、具体的には、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置及び方法、コンピューティング機器、並びにコンピュータ読み取り可能な記憶媒体に関する。
人工知能(AI)生産ライン(即ち、人工知能の開発プロセス)は、例えば画像認識、画像処理、テキスト認識、音声認識及び物体検出などの様々な人工知能開発機能を実現することができる。人工知能開発プラットフォーム(例えば、EasyDL、ModelArts、AWSSagemaker等)側に配備される予め定義された人工知能生産ラインを利用することによって、開発者は、例えばエンドツーエンドの予め訓練されたモデルとユーザーシナリオデータを組み合わせることができ、それにより、自分の所望の人工知能訓練モデルを取得する。人工知能生産ラインは開発者により自分で構築することもできる。
本開示の一態様によれば、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置であって、前記カスタマイズされた生産ラインは前記人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセットにより定義され、前記装置は、前記ファイルセットに基づいて前記人工知能開発プラットフォームのネイティブフォームを生成するように構成され、前記ネイティブフォームは、前記人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、前記人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用される生産ラインアクチュエーターと、前記生産ラインアクチュエーターと前記人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するように構成される標準化されたプラットフォームインターフェイスと、を備え、前記生産ラインアクチュエーターはさらに、前記ファイルセットに定義された、前記ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、前記標準化されたプラットフォームインターフェイスを介して前記人工知能開発プラットフォームと相互作用することによって前記中間結果を処理し、それにより、前記追加開発プロセスを実行するように構成される。
本開示の他の態様によれば、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための方法を提供し、前記カスタマイズされた生産ラインは前記人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセットにより定義され、前記方法は、生産ラインアクチュエーターを提供することであって、前記生産ラインアクチュエーターは前記ファイルセットに基づいて前記人工知能開発プラットフォームのネイティブフォームを生成するために使用され、前記ネイティブフォームは、前記人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、前記人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用されることと、標準化されたプラットフォームインターフェイスを提供することであって、前記標準化されたプラットフォームインターフェイスは、前記生産ラインアクチュエーターと前記人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するために使用されることと、を含み、前記生産ラインアクチュエーターはさらに、前記ファイルセットに定義された、前記ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、前記標準化されたプラットフォームインターフェイスを介して前記人工知能開発プラットフォームと相互作用することによって前記中間結果を処理し、それにより、前記追加開発プロセスを実行するために使用される。
本開示の別の態様によれば、コンピューティング機器を提供し、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するために使用され、前記カスタマイズされた生産ラインは前記人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセットにより定義され、前記コンピューティング機器は、プロセッサー及び命令が記憶されたメモリを備え、前記命令は前記プロセッサーにより実行可能であり、生産ラインアクチュエーターを実現することであって、前記生産ラインアクチュエーターは前記ファイルセットに基づいて前記人工知能開発プラットフォームのネイティブフォームを生成するために使用され、前記ネイティブフォームは、前記人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、前記人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用されること、及び標準化されたプラットフォームインターフェイスを実現することであって、前記標準化されたプラットフォームインターフェイスは、前記生産ラインアクチュエーターと前記人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するために使用されることに用いられ、前記生産ラインアクチュエーターはさらに、前記ファイルセットに定義された、前記ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、前記標準化されたプラットフォームインターフェイスを介して前記人工知能開発プラットフォームと相互作用することによって前記中間結果を処理し、それにより、前記追加開発プロセスを実行するために使用される。
本開示の更なる態様によれば、コンピュータ読み取り可能な記憶媒体を提供し、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するために使用され、前記カスタマイズされた生産ラインは前記人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセットにより定義され、前記コンピュータ読み取り可能な記憶媒体に命令が記憶され、前記命令はプロセッサーにより実行可能であり、生産ラインアクチュエーターを実現することであって、前記生産ラインアクチュエーターは前記ファイルセットに基づいて前記人工知能開発プラットフォームのネイティブフォームを生成するために使用され、前記ネイティブフォームは、前記人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、前記人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用されること、及び標準化されたプラットフォームインターフェイスを実現することであって、前記標準化されたプラットフォームインターフェイスは、前記生産ラインアクチュエーターと前記人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するために使用されることに用いられ、前記生産ラインアクチュエーターはさらに、前記ファイルセットに定義された、前記ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、前記標準化されたプラットフォームインターフェイスを介して前記人工知能開発プラットフォームと相互作用することによって前記中間結果を処理し、それにより、前記追加開発プロセスを実行するために使用される。
本開示のいくつかの実施例によると、従来の人工知能開発プラットフォーム上にプラットフォームネイティブのインタラクティブな体験を有するカスタマイズされた人工知能生産ラインを実行することによって、従来の人工知能開発プラットフォームが提供できる開発機能を迅速に拡張でき、従来の人工知能開発プラットフォームインフラストラクチャの利用率を向上させ、従来の人工知能開発プラットフォームのインフラストラクチャとサービスの価値を最大限に発揮することができる。しかも、プラットフォーム上で予め定義された人工知能生産ラインと比べて、多くの場合でカスタマイズされた人工知能生産ラインは消費者の具体的なアプリケーションシナリオにより適するため、消費者は必要な人工知能モデルのカスタマイズを加速することができる。
図面は、実施例を例示的に示し、明細書の一部を構成し、明細書のテキストの説明とともに、実施例の例示的な実施形態を解釈するために使用される。示された実施例は、説明のみを目的としており、特許請求の範囲を限定するものではない。すべての図面では、同じ図面符号は、類似しているが必ずしも同じではない要素を指す。
本開示の例示的な実施例による本明細書に記載されている様々な装置を適用できる例示的なシステムを示す模式図である。
本開示の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置を示す構造ブロック図である。
本開示の例示的な実施例による生産ラインアクチュエーターを実行するフローチャートである。
本開示の他の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置を示す構造ブロック図である。
本開示の例示的な実施例による生産ラインクリエーターを示す例示的なインタラクティブな開発インターフェースである。
本開示の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための方法を示すフローチャートである。
例示的な実施例の実現に適用できる例示的なコンピューティング機器を示す模式的なブロック図である。
本開示において、特に明記しない限り、「第1」、「第2」などの用語で様々な要素を説明することは、これらの要素の位置関係、タイミング関係または重要性関係を限定することを意図せず、このような用語は、ある素子と他の素子を区別するためにのみ使用される。いくつかの例では、第1の要素と第2の要素は、該要素の同じ例を指すことができ、ある場合で、コンテキストの説明に基づいて、異なる例を指してもよい。
本開示において、様々な前記例の説明に使用される用語は、特定の例を説明することのみを目的として、制限を意図するものではない。文脈が明確に示さない限り、要素の数が特に限定されない場合、該要素は1つ以上であってもよい。なお、本開示に使用される用語「及び/又は」は、リストされた項目のいずれか、及びすべての可能な組み合わせをカバーする。
従来の人工知能開発プラットフォームは、予め定義された人工知能生産ラインを提供しており、開発者のために使いやすいワンストップの開発機能、例えばスマートラベリング、モデル訓練、サービス配備などを提供することができる。しかしながら、人工知能生産ラインはプラットフォームにより予め定義されるため、外部の開発者、特にエコ企業の開発者は、自分のシナリオやタスクの特徴と組み合わせて開発プロセスをカスタマイズすることができない。これは、従来の人工知能開発プラットフォームのシナリオ結合能力が制限される。例えば、小売業界の棚商品検査のシナリオでは、予め訓練された検出モデルだけでなく、シナリオデータを標準在庫保持単位及び棚データと組み合わせて、カスタマイズされた訓練データセットとカスタマイズされた訓練モデルを形成する必要がある。しかも、棚商品を大規模に分類するには、検出モデルだけでなく、認識モデルとともに上記機能を実現する必要がある。これらの機能は、多くの場合で、プラットフォーム上で予め定義された人工知能生産ラインによって実現されない。このため、プラットフォーム技術者によるシナリオの理解レベルに制限され、予め定義された人工知能生産ラインでカバーできるシナリオは制限されることが多い。
また、プラットフォームにより予め定義された人工知能生産ラインを提供するにはプラットフォームの多くの研究開発リソースを消耗する必要がある。一連の人工知能開発プロセスの研究開発には、フロントエンドとバックエンドで異なる研究開発役割の連携を必要とし、このプロセスには、周期が長く、研究開発の人力投資が多い。且つ、プラットフォーム上で作成された人工知能生産ラインは、一貫した標準の実行環境とサービスインターフェイスがないため、再利用できないことが多く、変更と適応のために追加の研究開発人力を必要とする。
開発者は、人工知能生産ラインを自作することもできる。開発者は、自分のシナリオ要件に基づいて、オープンソースのフレームワーク、ツールなどを使用してある汎用プログラミング言語と組み合わせてカスタマイズされた人工知能生産ラインを生成することができる。しかしながら、このような自作の人工知能生産ラインは、より大きな生態学的範囲内で循環させることができない。開発者自身の要件を満たす以外、同様のシナリオではより大きな価値を発揮することができない。さらに、生態系コミュニティの知的リソースと組み合わせてアップグレードと完璧を達成することは困難である。
以上の技術的問題に対して、本開示の実施例は人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置及び方法、コンピューティング機器並びにコンピュータ読み取り可能な記憶媒体を提供する。以下の説明では、2つの用語に関し、
(1)プロデューサーとしては、AI生産ライン(即ち、AI開発プロセス)を作成して公開する役割である。
(2)消費者としては、プロデューサーにより作成して公開されたAI生産ラインを使用してモデルのカスタマイズを行う開発者であり、通常、従来のAI開発プラットフォームの使用者である。
本開示の実施例による装置は、生産ラインアクチュエーターを備え、プロデューサーにより作成された人工知能生産ラインに基づいて、人工知能開発プラットフォームに対応するネイティブフォームを生成して、消費者にネイティブインタラクティブページを表示し、該ネイティブフォームを実行する環境を提供することができる。該装置は、標準化されたプラットフォームインターフェイスをさらに備え、標準化されたプラットフォームインターフェイスを介して生産ラインアクチュエーターと人工知能開発プラットフォームとの相互作用を実現することができ、それにより、消費者はネイティブフォームのインタラクティブな体験を楽しむことができる。「ネイティブフォーム」または「ネイティブインタラクティブページ」という用語は、カスタマイズされた生産ラインが依存する人工知能開発プラットフォームによって生成されたフォームまたはインタラクティブページと同じ又は類似の外観を有することを指し、その結果、消費者にとっては、もともと人工知能開発プラットフォームによって生成されたように見えることが理解される。
本開示のいくつかの実施例によると、従来の人工知能開発プラットフォーム上にプラットフォームネイティブのインタラクティブな体験を有するカスタマイズされた人工知能生産ラインを実行することによって、従来の人工知能開発プラットフォームが提供できる開発機能を迅速に拡張でき、従来の人工知能開発プラットフォームインフラストラクチャの利用率を向上させ、従来の人工知能開発プラットフォームのインフラストラクチャとサービスの価値を最大限に発揮することができる。しかも、プラットフォーム上で予め定義された人工知能生産ラインと比べて、多くの場合でカスタマイズされた人工知能生産ラインは消費者の具体的なアプリケーションシナリオにより適するため、消費者は必要な人工知能モデルのカスタマイズを加速することができる。また、プラットフォームネイティブのインタラクティブな体験により、消費者が従来の人工知能開発プラットフォームを通じてカスタマイズされた人工知能生産ラインを使用する場合、これらのカスタマイズされた人工知能生産ラインはもともとプラットフォームによって生成されたように見える。その結果、カスタマイズされた人工知能生産ラインは、従来の人工知能開発プラットフォームを通じて、より大きな生態学的範囲内で循環し、自身の利用率を向上させることができる。従来の人工知能開発プラットフォームの生態系コミュニティの知的リソースを通じて、これらのカスタマイズされた人工知能生産ラインもアップグレードと完璧を実現することができる。いくつかの実施例において、生産ラインクリエーターをさらに提供し、生態系開発者が従来の人工知能開発プラットフォームのために新しい人工知能生産ラインを作成するプロセスに参加できるようにする。これらの新しい人工知能生産ラインは、具体的なアプリケーションシナリオの要件によりよく適応でき、従来の人工知能開発プラットフォームが提供できる開発機能も拡張し、カスタマイズされた人工知能の開発プロセスの研究開発効率を大幅に向上させる。
以下、図面を参照して本開示の実施例を詳細に説明する。
図1は、本開示の例示的な実施例による本明細書に記載されている装置を適用できる例示的なシステム100を示す模式図である。
図1を参照して、該例示的なシステムは、プロデューサー102に関連する第1のクライアント機器110、第1のサーバ120、第2のサーバ130、消費者104に関連する第2のクライアント機器140、及び第1のクライアント機器110、第1のサーバ120、第2のサーバ130及び第2のクライアント機器140を通信可能に結合するネットワーク150を備える。
第1のクライアント機器110は、第1の表示画面112と、第1の表示画面112を介して表示できるクライアントインターフェース114とを備える。後述のように、プロデューサー102はクライアントインターフェース114を介して第1のサーバ120と相互作用でき、例えば、クライアントインターフェース114ではドメイン固有言語(DSL)116と生産ラインクリエーター118など(残りは図示せず)と組み合わせて操作できて、第1のサーバ120に作成された人工知能生産ラインを送信し、及び/又は第1のサーバ120からデータを受信する。第1のクライアント機器110は、任意のタイプのモバイルコンピューティング機器であってもよく、モバイルコンピュータまたはモバイルコンピューティング機器(例えば、Microsoft(登録商標) Surface(登録商標)機器、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータ、ノートブックコンピュータ、Apple iPad(登録商標)などのタブレットコンピュータ、ネットブックなど)、携帯電話(例えば、セルラー電話、Microsoft Windows(登録商標)電話などのスマートフォン、Apple iPhone(登録商標)、Google(登録商標) AndroidTM操作システムを実現した電話、Palm(登録商標)機器、Blackberry(登録商標)機器など)、ウェアラブルコンピューティング機器(例えばスマートウォッチ、Google(登録商標)GlassTM、などのスマートグラスを含むヘッドマウント機器)または他のタイプのモバイル機器を含む。いくつかの実施例において、クライアント機器110は固定コンピューティング機器であってもよい。
第1のサーバ120は、典型的に、インターネットサービスプロバイダー(ISP)またはインターネットコンテンツプロバイダー(ICP)によって配備された(複数)バックグラウンドサーバであり、その上でバックグラウンドアプリケーション(図示せず)を運行することができ、該バックグラウンドアプリケーションは第1のクライアント機器110上のクライアントインターフェース114及び第2のサーバ140上に常駐するバックグラウンドアプリケーションと相互作用する。いくつかの実施例によれば、該相互作用により、人工知能生産ラインのアップロード、記憶及び配布を実現することができる。プロデューサー102は、クライアントインターフェース114においてDSL116と生産ラインクリエーター118などと組み合わせて操作することによって、第1の人工知能生産ライン122~第Nの人工知能生産ライン124を作成することができる。ネットワーク150を介して、該第1の人工知能生産ライン122~第Nの人工知能生産ライン124は第1のクライアント機器110から第1のサーバ120にアップロードされ、第1のサーバ120に記憶され得る。このような実施例において、第1の人工知能生産ライン122~第Nの人工知能生産ライン124は、画像認識、画像処理、テキスト認識、音声認識及び物体検出などを含むが、これらに制限されない機能を実現するための人工知能生産ラインであってもよい。さらに後述のように、本開示のいくつかの実施例において、生産ラインクリエーター118にDSLコード及び/又は他のコントロールを編集することによって人工知能生産ラインを作成することができる。
第2のサーバ130は、同様に、インターネットサービスプロバイダー(ISP)またはインターネットコンテンツプロバイダー(ICP)により配備された(複数)バックグラウンドサーバであり、第1のサーバ120及び第2のクライアント140と相互作用する。いくつかの実施例によれば、第2のサーバ130側に人工知能開発プラットフォーム132、生産ラインアクチュエーター134、標準化されたプラットフォームインターフェイス136及び第nの人工知能生産ライン138が配備された。第nの人工知能生産ライン138は、第1のサーバ120に記憶された第1の人工知能生産ライン122~第Nの人工知能生産ライン124のうちのいずれかであってもよい。該第nの人工知能生産ライン138を通じて、人工知能開発プラットフォーム132のために追加のカスタマイズされた人工知能開発機能を提供することができる。第1のサーバ120と第2のサーバ140は、典型的に、大量のコンピューティング及び記憶リソースを有するが、他の実施例も可能である。
第2のクライアント140は、第2の表示画面142と、第2の表示画面142を介して表示できるネットワークブラウザ144とを備える。後述のように、消費者104はネットワークブラウザ144を介して第2のサーバ130側に配備される人工知能開発プラットフォーム132と第nの人工知能生産ライン138にアクセスすることができる。第2のクライアント140は、第1のクライアント110と同様に、任意のタイプのモバイルコンピューティング機器であってもよいし、固定コンピューティング機器であってもよく、ここで詳細に説明しない。
第1のクライアント機器110、第1のサーバ120、第2のサーバ130及び第2のクライアント機器140のうちのそれぞれは、ネットワーク150を介して通信できる少なくとも1つの通信インターフェイス(図示せず)を含むことができる。このような通信インターフェイスは、任意のタイプのネットワークインターフェイス(例えば、ネットワークインターフェースカード(NIC))、有線または無線(例えばIEEE 802.11無線LAN(WLAN))無線インターフェイス、マイクロ波アクセスのための世界的な相互運用性(Wi-MAX)インターフェイス、イーサネットインターフェイス、ユニバーサルシリアルバス(USB)インターフェイス、セルラーネットワークインターフェイス、BluetoothTMインターフェイス、近距離通信(NFC)インターフェイスなどのうちの1つまたは複数であってもよい。通信インターフェイスの他の例について、本明細書の他の場所で説明する。
ネットワーク150の例として、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、及び/又はインターネットなどのような通信ネットワークの組合わせを含む。
実施例において、図1のシステム100は、様々な方法で構成することができ、様々な方法で操作することができ、本開示に記載の装置及び方法を適用できるようにする。例えば、図2は、本開示の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置200を示す構造ブロック図である。図2では、カスタマイズされた生産ライン202は、人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセット2022により定義される。該実施例において、システム100は装置200に応じて構成することができる。
図2を参照し、装置200は、生産ラインアクチュエーター204と標準化されたプラットフォームインターフェイス206を備える。生産ラインアクチュエーター204は、ファイルセット2022に基づいて人工知能開発プラットフォーム208のネイティブフォームを生成するように構成され、前記ネイティブフォームは、人工知能開発プラットフォーム208のネイティブインタラクティブページを表示するように、人工知能開発プラットフォーム208にアクセスするクライアントに送信されるために使用される。標準化されたプラットフォームインターフェイス206は、生産ラインアクチュエーター204と人工知能開発プラットフォーム208との間のインタラクティブチャンネルを提供するように構成される。生産ラインアクチュエーター204はさらに、ファイルセット2022に定義された、ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、標準化されたプラットフォームインターフェイス206を介して人工知能開発プラットフォーム208と相互作用することによって中間結果を処理し、それにより、追加開発プロセスを実行するように構成される。
本開示のいくつかの実施例によれば、カスタマイズされた生産ライン202におけるそれぞれのカスタマイズされた生産ラインを定義するファイルセット2022は、ドメイン固有言語コード20222、リソースファイル20224及びプラットフォーム環境構成ファイル20226を含む。ドメイン固有言語コード20222は、ドメイン固有言語で記述された、追加開発プロセスの処理ロジックを実現するためのコードを含む。例えば、ドメイン固有言語は、一般的なクロスドメインの汎用プログラミング言語(GPL)(例えばC言語、C++言語、Java言語及びPythonなど)に基づいて拡張でき、運行時に追加のパッケージ化を必要とする内部ドメイン固有言語または独立した外部ドメイン固有言語(例えば、JSX言語など)であってもよい。リソースファイル20224は、ネイティブインタラクティブページの表示に必要なスタイルシートと画像を含む。例えば、リソースファイル20224は、ネイティブインタラクティブページを静的に変更または修飾してもよいし、スクリプト言語と組み合わせてネイティブインタラクティブページの各要素をフォーマットしてもよい。プラットフォーム環境構成ファイル20226は、前記追加開発プロセスに固有の人工知能開発プラットフォーム208に対する構成パラメータ、例えば、データ記憶経路とモデル取得経路などを含む。
本開示のいくつかの実施例によれば、ドメイン固有言語コード20222は、フォームコントロールイベント応答、マルチソースの訓練データ処理及びマルチモデルフュージョンコンピューティングの操作のうちの少なくとも1種を実行するためのコードロジックを含む。例えば、消費者は、ネットワークブラウザでフォームコントロールを操作(例えば、テキストボックスに基本的なユーザー情報を入力する、パスワードボックスにパスワードを入力する、提出ボタンまたはクリアボタンをクリックしてフォーム上の情報をそれぞれ提出またはクリアするなど)することによってフォームの書き込みと提出などの操作を実行することができる。上記操作に応答して、ドメイン固有言語コードに対応するコードを実行することによって上記操作に対応する機能を実現することができる。例えば、上記の小売店の棚の検査シナリオでは、ドメイン固有言語コードを介して検出モデルと認識モデルの2つのモデルの連続実行を実現することができる。
ここで、ドメイン固有言語コードはフォームコントロールイベント応答、マルチソースの訓練データ処理及びマルチモデルフュージョンコンピューティングの3種の操作に対応するコードロジックを説明したが、ドメイン固有言語コードは、人工知能生産ラインに関連する他の任意のコードロジック、例えば、モデル効果評価、検証モデルなどの機能を実現するためのコードロジックをさらに含んでもよいことを理解すべきである。
図3は、本開示の例示的な実施例による、図2の装置200における生産ラインアクチュエーター204が人工知能開発プラットフォームのネイティブフォームを生成し、中間結果を生成し、中間結果を処理する全体のフローチャートを示す。
図3を参照し、生産ラインアクチュエーターは、第2のクライアントからの要求を受信したことに応答して、生産ラインアクチュエーターを起動(301)し、プラットフォーム環境構成ファイルをロード(302)して、プラットフォーム環境構成ファイルに含まれる構成パラメータに従って人工知能開発プラットフォームを構成する操作、プラットフォーム環境構成ファイルが成功にロードされるかどうかを確定(303)する操作、プラットフォーム環境構成ファイルが成功にロードされたと確定することに応答して、リソースファイルをロードすることによって人工知能開発プラットフォームのネイティブフォームを生成(304)する操作、リソースファイルが成功にロードされてネイティブフォームが生成された後、中間結果を生成(305)する操作、生成された中間結果を処理(306)する操作、ドメイン固有言語コードが実行されたかどうかを確定(307)する操作、及びドメイン固有言語コードが実行されたと確定することに応答して、生産ラインアクチュエーターを終了(308)するか、またはドメイン固有言語コードが実行されていないと確定することに応答して、操作304~306を繰り返して実行する操作を実行するように構成される。
本開示のいくつかの実施例によれば、第2のクライアント140からの要求は、例えば消費者104がネットワークブラウザ144を介してあるURLアドレスを入力するか、人工知能開発プラットフォーム132のページ上のあるオプションをクリックして、第2のサーバ130(具体的には、人工知能開発プラットフォーム132)に新しく追加されたカスタマイズされた人工知能生産ライン138を実行する要求であってもよい。該カスタマイズされた人工知能生産ライン138の実行は、そのダウンロードとインストールの完了に基づくことができる。例では、カスタマイズされた人工知能生産ライン138は、後続の実行のために2種の方法によってダウンロード及びインストールすることができ、即ち、消費者104はネットワークブラウザ144を介して第2のサーバ130上の人工知能開発プラットフォーム132にアクセスし、カスタマイズされた人工知能生産ライン138に関連する例えばダウンロードオプションボタンまたはインストールオプションボタンをクリックすることによってダウンロードインストールを実現し、或いは、消費者104は例えばアプリケーションストアから直接ダウンロードしてインストールすることができる。カスタマイズされた人工知能生産ライン138を実行する要求を受信した後、生産ラインアクチュエーター134はプラットフォーム環境構成ファイルを起動(301)してロード(302)する。ロードが成功すると、ネイティブフォームを生成するように後続の操作を実行でき、第2のクライアント140に送信して人工知能開発プラットフォーム132のネイティブインタラクティブページを表示する。いくつかの例では、図1のコンテキストでは、リソースファイルが成功にロードされてネイティブフォームが生成された後、生成されたネイティブフォームは例えば第2のサーバ130に常駐するWebサーバ(例えば、Nginx、図1では図示せず)を介して人工知能開発プラットフォーム132にアクセスする第2のクライアント140に送信することができ、それにより、第2のクライアント140に人工知能開発プラットフォーム132に固有のインタラクティブページを表示することができる。クライアントの消費者104は該ネイティブインタラクティブページ上で操作することができ、例えばフォームを書き込み、書き込んだフォームをWebサーバに提出する。プラットフォーム環境構成ファイルの欠落または損傷などに起因してロードできないと、生産ラインアクチュエーター134を終了し、この時、消費者104はカスタマイズされた生産ライン138を使用できず、人工知能開発プラットフォーム132に対応するインターフェースにエラーページが表示される可能性がある。
本開示の他の実施例によれば、生産ラインアクチュエーターは、プラットフォーム環境構成ファイルが成功にロードされたと確定することに応答して、リソースファイルをロードすることによって人工知能開発プラットフォームのネイティブフォームを生成(304)するように構成される。これは、リソースファイルをロード(3044)する操作、及びリソースファイルが成功にロードされたかどうかを確定(3046)する操作を実行することを含むことができる。
本開示の他の実施例によれば、生産ラインアクチュエーターは、リソースファイルが成功にロードされてネイティブフォームが生成(305)された後、中間結果を生成するように構成される。これは、以下の操作を実行することを含むことができる。
第2のクライアントからのネイティブインタラクティブページ上の操作イベントを監視(3052)する。例えば、消費者はネットワークブラウザを介してあるネイティブインタラクティブページにアクセスし、テキストボックスに基本情報を入力し、検索バーに取得したい情報を入力し、ページ上のあるリンクをクリックし、及び提出ボタンをクリックしてデータセットを提出するなどには、それに対応する操作イベントが発生する。いくつかの例では、例えばNginx(engine X)のWebサーバを利用することによってクライアントのネイティブインタラクティブページ上で操作イベントが発生するかどうかを検出することができる。生産ラインアクチュエーターと該Webサーバとの間に標準化されたプラットフォームインターフェイスと異なる通信インターフェイスが存在でき、Webサーバはネイティブインタラクティブページ上で操作イベントが発生したと検出すると、該通信インターフェイスを介して操作イベントを生産ラインアクチュエーターに送信することができる。このため、生産ラインアクチュエーターは、第2のクライアントからのネイティブインタラクティブページ上の操作イベントを監視することができる。
監視された操作イベントがフォーム提出イベントであるかどうかを確定(3054)し、フォーム提出イベントは、第2のクライアントからネイティブインタラクティブページ上での必要な回答項目データを収集したことを示す。選択可能に、生産ラインアクチュエーターは、書き込んだデータ経路が合法であるかどうか、フォーマットが正確であるかどうかなどを検証することができる。Webサーバから受信された操作イベントはフォーム提出イベントと非フォーム提出イベントを含む。フォーム提出イベントとは、フォームの確定、提出などのボタンがクリックされる場合に発生したイベントを指す。例えばForm、jQuery、Ajaxなどを介して提出するフォームは、例えば消費者のシナリオ要件に関連するシナリオデータセットなどの必要な回答項目データを含む。非フォーム提出イベントとは、フォーム提出イベント以外のイベント、例えばマウスクリックイベント、オブジェクトがフォーカスを失った時(例えば、マウスが入力ボックスから離れる)に発生するイベント、オブジェクトがフォーカスを取得する時(例えば、マウスが入力ボックスに位置する)に発生するイベント、オブジェクトの値が変わる時に発生するイベントなどを指す。
操作イベントがフォーム提出イベントであると確定することに応答して、必要な回答項目データを利用してファイルセットに定義されたフォーム提出イベントに対応する処理ロジックを実行(3056)する。例えば、フォーム提出イベントを通じて消費者によって提出されたデータセットを収集したと、対応するロジックを実行することができて、収集されたデータセットに基づき対応するモデル訓練を行い、カスタマイズされた訓練モデルを生成するために使用される。操作イベントが非フォーム提出イベントであると確定する場合、該フォームに対する操作がまだ終了しておらず、消費者に関連するデータセットが収集されていないことを示す。この時、前記ファイルセットに定義された、該非フォーム提出イベントに対応する処理ロジックを実行し、例えばオブジェクトがフォーカスを取得する時に処理ロジックを実行することで背景色を変化させたり、オブジェクトの値が変わる時に処理ロジックを実行することで大文字などに変換したりするなどである。次に、監視された操作イベントはフォーム提出イベントであるまで、操作イベントを監視し続ける。
上記操作により、消費者のためにネイティブフォームのインタラクティブな体験を提供することができ、消費者はネイティブフォームを介して自分のシナリオ要件に関連する、データセットを含む様々な情報を入力することができる。
本開示の他の実施例によれば、生産ラインアクチュエーターは、生成された中間結果を処理(306)するように構成される。これは、フォーム提出イベントに対応する処理ロジックを実行する操作が完了した後、中間結果を記憶(3062)する操作を実行することを含むことができる。中間結果はフォーム提出イベントに対応する処理ロジックを実行する時に生成された例えばデータセット、訓練モデルの中間結果(例えば、Artifact)を含むことができ、例えばデータセットの物理位置、データセットの名称、フィールド及びデータアクセスログなどのデータ属性を説明するメタデータを含んでもよい。標準化されたプラットフォームインターフェイスを介して中間結果を人工知能開発プラットフォームに送信(3064)して更なる処理に使用される。
以下、実施例と組み合わせてどのように標準化されたプラットフォームインターフェイスを利用して生産ラインアクチュエーターと人工知能開発プラットフォームとの間に中間結果を人工知能開発プラットフォームに送信する相互作用を実現するかをさらに説明する。
本開示のいくつかの実施例によれば、標準化されたプラットフォームインターフェイスは、生産ラインアクチュエーターが人工知能開発プラットフォームに対して訓練データセットの読み書き操作を行うためのデータ型インターフェイスと、生産ラインアクチュエーターが人工知能開発プラットフォームに対して人工知能モデルの読み書き操作を行うためのモデル型インターフェイスと、生産ラインアクチュエーターが人工知能開発プラットフォームに対して構成変数の読み書き操作を行うための構成型インターフェイスと、生産ラインアクチュエーターが人工知能開発プラットフォームに対してタスク状態の読み書き操作を行うための状態型インターフェイスと、を含む。これらのインターフェイスを介して、生産ラインアクチュエーターと人工能開発プラットフォームとの間の相互作用を実現することができる。
下記表1に示すように、各タイプのインターフェイスはいずれも、例えばGetDataSet、GetModel、GetTaskStatus、及びGetConfigなどの読み取り操作を行うインターフェイス、及び例えばSetDataSet、SetModel、SetTaskStatus及びSetConfigなどの書き込み操作を行うインターフェイスを含む。読み取り操作のインターフェイスに対応する関数を呼び出すことによって、生産ラインアクチュエーターは、例えば人工知能開発プラットフォーム側からの訓練データセット、人工知能モデル、プラットフォーム構成変数及びプラットフォームのタスク状態を読み取ることができる。書き込み操作のインターフェイスに対応する関数を呼び出すことによって、生産ラインアクチュエーターは、例えばカスタマイズされた生産ラインからの中間結果を人工知能開発プラットフォームに送信することができ、人工知能開発プラットフォームのデータセットに対する直接的な侵入操作を避ける。
インターフェイス名に対応する関数を呼び出す場合、指定された入力パラメータが与えられるたびに、指定された戻り構造を取得し、それにより、対応するデータ、モデル、構成、状態などの関連情報を取得する。データ型インターフェイスの読み取り操作を例として、入力パラメータは、選択された人工知能開発プラットフォームを指示するパラメータUserID、生産ラインアクチュエーターが、選択された人工知能開発プラットフォームにアクセスするように、標準化されたプラットフォームインターフェイスを呼び出す権限を持っているかどうかを指示するためのパラメータToken:{AK:String;SK:String}、及び生産ラインアクチュエーターがアクセスするデータセットを指示するパラメータDSID(DataSetID)を含み、戻り構造は、エラーコードを指示する結果ErrID(ErrorID)、エラー情報を指示する結果ErrMsg(ErrorMessage)、データセット記憶経路を指示する結果DSPath(DataSetPath)、メタデータ記憶経路を指示する結果DSMetaPath(DataSetMetadataPath)及びデータセットタイプを指示する結果DSType(DataSetType)を含む。
標準化されたプラットフォームインターフェイスは、特定のプロトコルに基づいた様々なインターフェイスを使用して実現することができる。本開示のいくつかの実施例によれば、標準化されたプラットフォームインターフェイスは、Restfulアプリケーションプログラミングインターフェイス(API)を使用して実現することができる。いくつかの例では、標準化されたプラットフォームインターフェイスはHTTPプロトコルに基づく通信をサポートすることができる。
以上のように説明された標準化されたプラットフォームインターフェイスを介して一貫した標準実行環境とサービスインターフェイスを提供することができ、それにより、作成されたカスタマイズされた生産ラインは、1場所で作成し、複数の場所(複数の異なる人工知能開発プラットフォーム)で運行することを実現することができ、建設または改造、適応のために追加の研究開発人員を投資することなく、同様のシナリオで再利用するのに役に立つ。
なお、本開示による標準化されたプラットフォームインターフェイスは、カスタマイズされた生産ラインプロセスに関するデータ処理、モデル訓練、サービス配備などの任意の主要リンクを実行できるサービスインターフェイスであり、上記の4種のインターフェイスタイプを含むが、これらに制限されない。また、本開示による標準化されたプラットフォームインターフェイスは特定のプロトコルに基づいた他のインターフェイス、例えばRPCインターフェイスなどを介して実現することもできる。
図4は、本開示の他の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置400を示す構造ブロック図である。図2と類似する図面符号は同じ素子を指示する。
該実施例において、図2の装置200と比べて、装置400は生産ラインクリエーター410をさらに備える。生産ラインクリエーター410は、カスタマイズされた生産ラインを作成するように、カスタマイズされた生産ラインを編集、プレビュー及びデバッグするインタラクティブな開発インターフェースを生成するように構成される。いくつかの例では、該生産ラインクリエーター410は、オープンソースの例えばJupyterの集積開発環境に基づいて実現することができ、そのインターフェースはJupyterLabのインターフェースを再利用し、プラグインの形でJupyterLabにロードすることができる。
図5は、生産ラインクリエーター410の例示的なインタラクティブな開発インターフェースを示す。説明のために、以下、図4と図5を参照して装置400における生産ラインクリエーター410を更に説明する。
図5を参照し、生産ラインクリエーター410のインタラクティブな開発インターフェース512は、コントロール領域5122、作業領域5124及び固定構成領域5126を含む。コントロール領域5122は、前記ネイティブフォームの複数のコントロールを編集するために使用され、該複数のコントロールが標準仕様(例えば、HTML5)で定義されたWebコントロールであってもよい。作業領域5124は、前記追加開発プロセスの処理ロジックを記述するコードを編集するためのコード領域51242及び前記カスタマイズされた生産ラインをプレビューするためのプレビュー領域51244を含む。いくつかの例では、コード領域51242は、例えばオープンソース言語サーバプロトコル(LSP)を利用して例えばpythonコードの構文強調表示や自動補完などの機能を実現することができ、プレビュー領域51244は、プレビューを生成するように、例えばHTML5のCanvasキャンバスを利用してレンダリングすることができる。固定構成領域5126は、例えば標準のWebフォームコントロールを通じて、前記人工知能開発プラットフォームに適用される構成パラメータを編集することを実現するために使用される。
生産ラインクリエーターにおける上記の3つの領域の協力により、プロデューサーは該インタラクティブな開発インターフェースでコードを直接書いて運行できるだけでなく、同一のインターフェースでコード運行結果を表示することができ、カスタマイズされた生産ラインを視覚的にドラッグ及び作成することもできる。これにより、複数のインターフェースでコードを書き、コードの運行効果をプレビューすることによる操作の不便さを避け、カスタマイズされた生産ラインのデバッグプロセスを加速し、プロデューサーのために良好なユーザー体験を提供する。
いくつかの実施例によれば、図1を参照し、生産ラインクリエーター118は、第1のクライアント110側に配備されるように構成することができ、生産ラインアクチュエーター134と標準化されたプラットフォームインターフェイス136は、生産ラインクリエーターと異なる側に配備され、人工知能開発プラットフォーム132とともにサーバ側に配備されるように構成され、このような場合で、生産ラインクリエーターは独立した形(例えば、第1のクライアント110側のソフトウェアツール)で存在する。このような実施例において、生産ラインクリエーターは、第1のクライアント110側のローカルに存在するように実現され得るか、または第1のクライアント110を介してアクセスできるクラウドプラットフォームに存在するように実現され得る。他の実施例によれば、生産ラインクリエーター、生産ラインアクチュエーター及び標準化されたプラットフォームインターフェイスは、人工知能開発プラットフォームとともにサーバ側に配備されるように構成されてもよく、このような場合で、生産ラインクリエーターは消費者に開かれた人工知能開発プラットフォームの機能として非独立の形で存在する。
なお、図4に示す装置400において、生産ラインクリエーター410以外、カスタマイズされた生産ライン402、生産ラインアクチュエーター404、標準化されたプラットフォームインターフェイス406及び人工知能開発プラットフォーム408などの他のコンポーネント及び/又はモジュールによって実行された操作は図2を参照して説明した対応するコンポーネント及び/又はモジュールによって実行された操作と同様または類似するため、ここで詳細に説明しない。
また、以上で特定のモジュールを参照して特定の機能を検討したが、本明細書で検討された各モジュールの機能は複数のモジュールに分割することができ、及び/又は複数のモジュールの少なくとも一部の機能を単一のモジュールに組み合わせることができることに注意すべきである。本明細書で検討された特定のモジュールが動作を実行することは、該特定のモジュールそのものが該動作を実行すること、または代わりに、該特定のモジュールが該動作(または該特定のモジュールとともに該動作を実行する)を実行する他のコンポーネントまたはモジュールを呼び出すまたは他の方法でアクセスすることを含む。このため、動作を実行する特定のモジュールは、動作を実行する該特定のモジュールそのもの及び/又は該特定のモジュールが呼び出すまたは他の方法でアクセスする、動作を実行する他のモジュールを含む。例えば、いくつかの実施例において、以上で説明された生産ラインクリエーター204と人工知能開発プラットフォーム208を単一のモジュールとして組み合わせることができる。
より一般的に、本明細書では、ソフトウェアハードウェア素子またはプログラムモジュールの一般的なコンテキストで様々な技術について説明することができる。以上で図2~5に説明された各モジュールはハードウェアまたはソフトウェア及び/又はファームウェアを組み合わせたハードウェアで実現することができる。例えば、これらのモジュールは、コンピュータプログラムコード/命令として実現することができ、該コンピュータプログラムコード/命令は、1つまたは複数のプロセッサーに実行されてコンピュータ読み取り可能な記憶媒体に記憶されるように構成される。代わりに、これらのモジュールは、ハードウェアロジック/回路として実現することができる。例えば、いくつかの実施例において、生産ラインクリエーター410、生産ラインアクチュエーター404及び人工知能開発プラットフォーム408のうちの1つまたは複数はシステムオンチップ(SoC)に一緒に実現することができる。SoCは、集積回路チップ(プロセッサー(例えば、中央処理ユニット(CPU)、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサー(DSP)など)、メモリ、1つまたは複数の通信インターフェイス、及び/又は他の回路のうちの1つまたは複数の部材を含む)を含むことができ、受信されたプログラムコードを選択可能に実行し、及び/又は機能を実行するために組み込みファームウェアを含むことができる。
図6は、本開示の例示的な実施例による人工知能開発プラットフォームのためにカスタマイズされた生産ラインを実現するための方法600を示す構造ブロック図である。
ステップ602において、生産ラインアクチュエーターを提供する。前記生産ラインアクチュエーターは、ファイルセットに基づいて人工知能開発プラットフォームのネイティブフォームを生成するために使用され、前記ネイティブフォームは、人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用される。
ステップ604において、標準化されたプラットフォームインターフェイスを提供する。前記標準化されたプラットフォームインターフェイスは、生産ラインアクチュエーターと人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するために使用される。
生産ラインアクチュエーターはさらに、ファイルセットに定義された、ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、標準化されたプラットフォームインターフェイスを介して人工知能開発プラットフォームと相互作用することによって中間結果を処理し、それにより、追加開発プロセスを実行するために使用される。
選択可能に、方法600はステップ606を含んでもよい。ステップ606において、生産ラインクリエーターを提供する。前記生産ラインクリエーターは、カスタマイズされた生産ラインを作成するように、カスタマイズされた生産ラインを編集、プレビュー及びデバッグするためのインタラクティブな開発インターフェースを生成するために使用される。作成されたカスタマイズされた生産ラインは、圧縮ファイル及び/又はミラーリングファイルのフォーマットで記憶及び配布することができる。
本開示の他の態様によれば、コンピューティング機器をさらに提供し、プロセッサー、及び命令が記憶されたメモリを備え、前記命令は、前記プロセッサーにより実行される場合に、上記装置200または400におけるコンポーネント及び/又はモジュールによる機能を実現するために使用される。
本開示の更なる態様によれば、命令が記憶されたコンピュータ読み取り可能な記憶媒体をさらに提供し、前記命令は、プロセッサーにより実行される場合に、上記装置200または400におけるコンポーネント及び/又はモジュールによる機能を実現するために使用される。
以下、図7を参照してこのようなコンピューティング機器とコンピュータ読み取り可能な記憶媒体の例を説明する。図7は、例示的な実施例の実現に適用できる例示的なコンピューティング機器700を示す。
コンピューティング機器700は、例えばサービスプロバイダーのサーバ、クライアント(例えば、クライアント機器)に関連する機器、システムオンチップ、及び/又は任意の他の適切なコンピューティング機器またはコンピューティングシステムの様々な異なるタイプの機器であってもよい。コンピューティング機器700の例として、デスクトップコンピュータ、サーバコンピュータ、ラップトップまたはネットブックコンピュータ、モバイル機器(例えば、タブレットまたはphablet機器、セルラーまたは他の無線電話(例えば、スマートフォン)、ノートコンピュータ、モバイル局)、ウェアラブル機器(例えば、メガネ、時計)、娯楽機器(例えば、娯楽器具、表示機器に通信可能に結合されるセットトップボックス、ゲーム機)、テレビまたは他の表示機器、自動車コンピュータなどを含むが、これらに制限されない。このため、コンピューティング機器700は、大量のメモリとプロセッサーリソースを備えるフルリソース機器(例えば、パーソナルコンピュータ、ゲームコンソール)から、限られたメモリ及び/又は処理リソースを備える低リソース機器(例えば、従来のセットトップボックス、手持ちゲームコンソール)に及ぶことができる。
コンピューティング機器700は、例えばシステムバス714または他の適切な接続を介して互いに通信する少なくとも1つのプロセッサー702、メモリ704、(複数)通信インターフェイス706、表示機器708、他の入力/出力(I/O)機器710及び1つまたはより多くの大容量記憶機器712を含むことができる。
プロセッサー702は、単一の処理ユニットまたは複数の処理ユニットであってもよく、すべての処理ユニットは単一または複数のコンピューティングユニットまたは複数のコアを含むことができる。プロセッサー702は、1つまたはより多くのマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサー、中央処理ユニット、ステートマシン、ロジック回路及び/又は操作命令に基づいて信号を操縦する任意の機器として実施することができる。他の機能に加えて、プロセッサー702は、メモリ704、大容量記憶機器712または他のコンピュータ読み取り可能媒体に記憶されたコンピュータ読み取り可能命令、例えば操作システム716のプログラムコード、アプリケーションプログラム718のプログラムコード、他のプログラム720のプログラムコードなどを取得及び実行するように構成することができる。
メモリ704と大容量記憶機器712は、命令を記憶するためのコンピュータ記憶媒体の例であり、前記命令はプロセッサー702により実行されることによって以上の様々な機能を実施する。例えば、メモリ704は、一般的に、揮発性メモリと不揮発性メモリ(例えばRAM、ROMなど)の両方を含むことができる。なお、大容量記憶機器712は、一般的に、ハードディスクドライブ、ソリッドステートドライブ、外部及びリムーバブルドライブを含むリムーバブル媒体、メモリカード、フラッシュメモリ、フロッピーディスク、光ディスク(例えばCD、DVD)、記憶アレイ、ネットワーク接続記憶、記憶領域ネットワークなどを含むことができる。メモリ704と大容量記憶機器712は、本明細書ではいずれもメモリまたはコンピュータ記憶媒体と呼ぶことができ、コンピュータ読み取り可能、プロセッサー実行可能プログラム命令をコンピュータプログラムコードとして記憶できる非一時的媒体であってもよく、前記コンピュータプログラムコードは、本明細書の例で説明された操作と機能を実施するように構成される特定のマシンとしてのプロセッサー702により実行することができる。
複数のプログラムモジュールは、大容量記憶機器712に記憶することができる。これらのプログラムは操作システム716、1つまたは複数のアプリケーションプログラム718、他のプログラム720及びプログラムデータ722を含み、それらが、実行のためにメモリ704にロードすることができる。このようなアプリケーションプログラムまたはプログラムモジュールの例は、例えばカスタマイズされた生産ライン402、生産ラインアクチュエーター404、標準化されたプラットフォームインターフェイス406、人工知能開発プラットフォーム408、生産ラインクリエーター410、方法600(方法600の任意の適切なステップ)及び/又は本明細書で説明された他の実施例というコンポーネント/機能を実現するためのコンピュータプログラムロジック(例えば、コンピュータプログラムコードまたは命令)を含むことができる。
図7ではコンピューティング機器700のメモリ704に記憶されるように示されるが、モジュール716、718、720及び722またはその一部はコンピューティング機器700によりアクセスできる任意の形のコンピュータ読み取り可能媒体を使用して実施することができる。本明細書で使用された「コンピュータ読み取り可能媒体」は2種のタイプのコンピュータ読み取り可能媒体、つまりコンピュータ記憶媒体と通信媒体を少なくとも含む。
コンピュータ記憶媒体は、情報を記憶するための任意の方法または技術で実施される揮発性と不揮発性、リムーバブルと非リムーバブル媒体を含み、前記情報は、例えばコンピュータ読み取り可能命令、データ構造、プログラムモジュールまたは他のデータである。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、ディスク記憶装置または他の磁気記憶機器、またはコンピューティング機器がアクセスするように情報を記憶するための任意の他の非伝送媒体を含むが、これらに制限されない。
対照的に、通信媒体は、例えば搬送波または他の伝送メカニズムなどの変調データ信号内でコンピュータ読み取り可能命令、データ構造、プログラムモジュールまたは他のデータを具体的に実現することができる。本明細書で定義されたコンピュータ記憶媒体は通信媒体を含まない。
コンピューティング機器700はまた、以上の説明のように、ネットワーク、直接接続などを通じて他の機器とデータを交換するための1つまたはより多くの通信インターフェイス706を含んでもよい。このような通信インターフェイスは、任意のタイプのネットワークインターフェイス(例えば、ネットワークインターフェースカード(NIC))、有線または無線(例えばIEEE 802.11無線LAN(WLAN))無線インターフェイス、マイクロ波アクセスのための世界的な相互運用性(Wi-MAX)インターフェイス、イーサネットインターフェイス、ユニバーサルシリアルバス(USB)インターフェイス、セルラーネットワークインターフェイス、BluetoothTMインターフェイス、近距離通信(NFC)インターフェイスなどのうちの1つまたは複数であってもよい。通信インターフェイス706は、多種のネットワークとプロトコルタイプ内の通信を促進することができ、有線ネットワーク(例えばLAN、ケーブルなど)と無線ネットワーク(例えばWLAN、セルラー、衛星など)、インターネットなど含む。通信インターフェイス706はまた、例えば記憶アレイ、ネットワーク接続記憶、記憶エリアネットワークなどにおける外部記憶装置(図示せず)との通信を提供することができる。
いくつかの例では、ユーザーに情報と画像を表示するように、例えばモニターなどの表示機器708を含むことができる。他のI/O機器710は、ユーザーからの様々な入力を受信するとともに、ユーザーに様々な出力を提供する機器であってもよく、また、タッチ入力機器、ジェスチャー入力機器、カメラ、キーボード、リモコン、マウス、プリンター、オーディオ入力/出力機器などを含むことができる。
図面と以上の記述から本開示を詳細に説明及び記述したが、このようなに説明及び記述は、限定的なものではなく、説明的と例示的なものと見なされるべきであり、本開示は、開示された実施例に制限されない。図面、開示内容及び添付の特許請求の範囲を研究することによって、当業者は特許請求される主題を実施する際に、開示された実施例への変形を理解及び実現することができる。特許請求の範囲において、「含む」という言葉は、リストされていない他の素子またはステップを排除するものではなく、不定冠詞「一つ」または「1つ」は複数を排除するものではなく、「複数」という用語は2つまたは2つ以上を指す。相互に異なる従属請求項に特定の措置が記載されている単なる事実は、これらの措置の組み合わせが利益のために使用できないことを示すものではない。
本開示は、人工知能とクラウドプラットフォームに関し、具体的には、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置及び方法、コンピューティング機器、並びにコンピュータ読み取り可能な記憶媒体に関する。
人工知能(AI)生産ライン(即ち、人工知能の開発プロセス)は、例えば画像認識、画像処理、テキスト認識、音声認識及び物体検出などの様々な人工知能開発機能を実現することができる。人工知能開発プラットフォーム(例えば、EasyDL、ModelArts、AWSSagemaker等)側に配備される予め定義された人工知能生産ラインを利用することによって、開発者は、例えばエンドツーエンドの予め訓練されたモデルとユーザーシナリオデータを組み合わせることができ、それにより、自分の所望の人工知能訓練モデルを取得する。人工知能生産ラインは開発者により自分で構築することもできる。
本開示の一態様によれば、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置であって、前記カスタマイズされた生産ラインは前記人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセットにより定義され、前記装置は、前記ファイルセットに基づいて前記人工知能開発プラットフォームのネイティブフォームを生成するように構成され、前記ネイティブフォームは、前記人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、前記人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用される生産ラインアクチュエーターと、前記生産ラインアクチュエーターと前記人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するように構成される標準化されたプラットフォームインターフェイスと、を備え、前記生産ラインアクチュエーターはさらに、前記ファイルセットに定義された、前記ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、前記標準化されたプラットフォームインターフェイスを介して前記人工知能開発プラットフォームと相互作用することによって前記中間結果を処理し、それにより、前記追加開発プロセスを実行するように構成される。
本開示の他の態様によれば、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための方法を提供し、前記カスタマイズされた生産ラインは前記人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセットにより定義され、前記方法は、生産ラインアクチュエーターを提供することであって、前記生産ラインアクチュエーターは前記ファイルセットに基づいて前記人工知能開発プラットフォームのネイティブフォームを生成するために使用され、前記ネイティブフォームは、前記人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、前記人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用されることと、標準化されたプラットフォームインターフェイスを提供することであって、前記標準化されたプラットフォームインターフェイスは、前記生産ラインアクチュエーターと前記人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するために使用されることと、を含み、前記生産ラインアクチュエーターはさらに、前記ファイルセットに定義された、前記ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、前記標準化されたプラットフォームインターフェイスを介して前記人工知能開発プラットフォームと相互作用することによって前記中間結果を処理し、それにより、前記追加開発プロセスを実行するために使用される。
本開示の別の態様によれば、コンピューティング機器を提供し、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するために使用され、前記カスタマイズされた生産ラインは前記人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセットにより定義され、前記コンピューティング機器は、プロセッサー及び命令が記憶されたメモリを備え、前記命令は前記プロセッサーにより実行可能であり、生産ラインアクチュエーターを実現することであって、前記生産ラインアクチュエーターは前記ファイルセットに基づいて前記人工知能開発プラットフォームのネイティブフォームを生成するために使用され、前記ネイティブフォームは、前記人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、前記人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用されること、及び標準化されたプラットフォームインターフェイスを実現することであって、前記標準化されたプラットフォームインターフェイスは、前記生産ラインアクチュエーターと前記人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するために使用されることに用いられ、前記生産ラインアクチュエーターはさらに、前記ファイルセットに定義された、前記ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、前記標準化されたプラットフォームインターフェイスを介して前記人工知能開発プラットフォームと相互作用することによって前記中間結果を処理し、それにより、前記追加開発プロセスを実行するために使用される。
本開示の更なる態様によれば、コンピュータ読み取り可能な記憶媒体を提供し、人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するために使用され、前記カスタマイズされた生産ラインは前記人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセットにより定義され、前記コンピュータ読み取り可能な記憶媒体に命令が記憶され、前記命令はプロセッサーにより実行可能であり、生産ラインアクチュエーターを実現することであって、前記生産ラインアクチュエーターは前記ファイルセットに基づいて前記人工知能開発プラットフォームのネイティブフォームを生成するために使用され、前記ネイティブフォームは、前記人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、前記人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用されること、及び標準化されたプラットフォームインターフェイスを実現することであって、前記標準化されたプラットフォームインターフェイスは、前記生産ラインアクチュエーターと前記人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するために使用されることに用いられ、前記生産ラインアクチュエーターはさらに、前記ファイルセットに定義された、前記ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、前記標準化されたプラットフォームインターフェイスを介して前記人工知能開発プラットフォームと相互作用することによって前記中間結果を処理し、それにより、前記追加開発プロセスを実行するために使用される。
本開示の更なる態様によれば、コンピュータプログラムを含むコンピュータプログラム製品を提供し、前記コンピュータプログラムはプロセッサーによって実行される場合に人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための上記方法を実現する。
本開示のいくつかの実施例によると、従来の人工知能開発プラットフォーム上にプラットフォームネイティブのインタラクティブな体験を有するカスタマイズされた人工知能生産ラインを実行することによって、従来の人工知能開発プラットフォームが提供できる開発機能を迅速に拡張でき、従来の人工知能開発プラットフォームインフラストラクチャの利用率を向上させ、従来の人工知能開発プラットフォームのインフラストラクチャとサービスの価値を最大限に発揮することができる。しかも、プラットフォーム上で予め定義された人工知能生産ラインと比べて、多くの場合でカスタマイズされた人工知能生産ラインは消費者の具体的なアプリケーションシナリオにより適するため、消費者は必要な人工知能モデルのカスタマイズを加速することができる。
図面は、実施例を例示的に示し、明細書の一部を構成し、明細書のテキストの説明とともに、実施例の例示的な実施形態を解釈するために使用される。示された実施例は、説明のみを目的としており、特許請求の範囲を限定するものではない。すべての図面では、同じ図面符号は、類似しているが必ずしも同じではない要素を指す。
本開示の例示的な実施例による本明細書に記載されている様々な装置を適用できる例示的なシステムを示す模式図である。
本開示の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置を示す構造ブロック図である。
本開示の例示的な実施例による生産ラインアクチュエーターを実行するフローチャートである。
本開示の他の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置を示す構造ブロック図である。
本開示の例示的な実施例による生産ラインクリエーターを示す例示的なインタラクティブな開発インターフェースである。
本開示の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための方法を示すフローチャートである。
例示的な実施例の実現に適用できる例示的なコンピューティング機器を示す模式的なブロック図である。
本開示において、特に明記しない限り、「第1」、「第2」などの用語で様々な要素を説明することは、これらの要素の位置関係、タイミング関係または重要性関係を限定することを意図せず、このような用語は、ある素子と他の素子を区別するためにのみ使用される。いくつかの例では、第1の要素と第2の要素は、該要素の同じ例を指すことができ、ある場合で、コンテキストの説明に基づいて、異なる例を指してもよい。
本開示において、様々な前記例の説明に使用される用語は、特定の例を説明することのみを目的として、制限を意図するものではない。文脈が明確に示さない限り、要素の数が特に限定されない場合、該要素は1つ以上であってもよい。なお、本開示に使用される用語「及び/又は」は、リストされた項目のいずれか、及びすべての可能な組み合わせをカバーする。
従来の人工知能開発プラットフォームは、予め定義された人工知能生産ラインを提供しており、開発者のために使いやすいワンストップの開発機能、例えばスマートラベリング、モデル訓練、サービス配備などを提供することができる。しかしながら、人工知能生産ラインはプラットフォームにより予め定義されるため、外部の開発者、特にエコ企業の開発者は、自分のシナリオやタスクの特徴と組み合わせて開発プロセスをカスタマイズすることができない。これは、従来の人工知能開発プラットフォームのシナリオ結合能力が制限される。例えば、小売業界の棚商品検査のシナリオでは、予め訓練された検出モデルだけでなく、シナリオデータを標準在庫保持単位及び棚データと組み合わせて、カスタマイズされた訓練データセットとカスタマイズされた訓練モデルを形成する必要がある。しかも、棚商品を大規模に分類するには、検出モデルだけでなく、認識モデルとともに上記機能を実現する必要がある。これらの機能は、多くの場合で、プラットフォーム上で予め定義された人工知能生産ラインによって実現されない。このため、プラットフォーム技術者によるシナリオの理解レベルに制限され、予め定義された人工知能生産ラインでカバーできるシナリオは制限されることが多い。
また、プラットフォームにより予め定義された人工知能生産ラインを提供するにはプラットフォームの多くの研究開発リソースを消耗する必要がある。一連の人工知能開発プロセスの研究開発には、フロントエンドとバックエンドで異なる研究開発役割の連携を必要とし、このプロセスには、周期が長く、研究開発の人力投資が多い。且つ、プラットフォーム上で作成された人工知能生産ラインは、一貫した標準の実行環境とサービスインターフェイスがないため、再利用できないことが多く、変更と適応のために追加の研究開発人力を必要とする。
開発者は、人工知能生産ラインを自作することもできる。開発者は、自分のシナリオ要件に基づいて、オープンソースのフレームワーク、ツールなどを使用してある汎用プログラミング言語と組み合わせてカスタマイズされた人工知能生産ラインを生成することができる。しかしながら、このような自作の人工知能生産ラインは、より大きな生態学的範囲内で循環させることができない。開発者自身の要件を満たす以外、同様のシナリオではより大きな価値を発揮することができない。さらに、生態系コミュニティの知的リソースと組み合わせてアップグレードと完璧を達成することは困難である。
以上の技術的問題に対して、本開示の実施例は人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置及び方法、コンピューティング機器並びにコンピュータ読み取り可能な記憶媒体を提供する。以下の説明では、2つの用語に関し、
(1)プロデューサーとしては、AI生産ライン(即ち、AI開発プロセス)を作成して公開する役割である。
(2)消費者としては、プロデューサーにより作成して公開されたAI生産ラインを使用してモデルのカスタマイズを行う開発者であり、通常、従来のAI開発プラットフォームの使用者である。
本開示の実施例による装置は、生産ラインアクチュエーターを備え、プロデューサーにより作成された人工知能生産ラインに基づいて、人工知能開発プラットフォームに対応するネイティブフォームを生成して、消費者にネイティブインタラクティブページを表示し、該ネイティブフォームを実行する環境を提供することができる。該装置は、標準化されたプラットフォームインターフェイスをさらに備え、標準化されたプラットフォームインターフェイスを介して生産ラインアクチュエーターと人工知能開発プラットフォームとの相互作用を実現することができ、それにより、消費者はネイティブフォームのインタラクティブな体験を楽しむことができる。「ネイティブフォーム」または「ネイティブインタラクティブページ」という用語は、カスタマイズされた生産ラインが依存する人工知能開発プラットフォームによって生成されたフォームまたはインタラクティブページと同じ又は類似の外観を有することを指し、その結果、消費者にとっては、もともと人工知能開発プラットフォームによって生成されたように見えることが理解される。
本開示のいくつかの実施例によると、従来の人工知能開発プラットフォーム上にプラットフォームネイティブのインタラクティブな体験を有するカスタマイズされた人工知能生産ラインを実行することによって、従来の人工知能開発プラットフォームが提供できる開発機能を迅速に拡張でき、従来の人工知能開発プラットフォームインフラストラクチャの利用率を向上させ、従来の人工知能開発プラットフォームのインフラストラクチャとサービスの価値を最大限に発揮することができる。しかも、プラットフォーム上で予め定義された人工知能生産ラインと比べて、多くの場合でカスタマイズされた人工知能生産ラインは消費者の具体的なアプリケーションシナリオにより適するため、消費者は必要な人工知能モデルのカスタマイズを加速することができる。また、プラットフォームネイティブのインタラクティブな体験により、消費者が従来の人工知能開発プラットフォームを通じてカスタマイズされた人工知能生産ラインを使用する場合、これらのカスタマイズされた人工知能生産ラインはもともとプラットフォームによって生成されたように見える。その結果、カスタマイズされた人工知能生産ラインは、従来の人工知能開発プラットフォームを通じて、より大きな生態学的範囲内で循環し、自身の利用率を向上させることができる。従来の人工知能開発プラットフォームの生態系コミュニティの知的リソースを通じて、これらのカスタマイズされた人工知能生産ラインもアップグレードと完璧を実現することができる。いくつかの実施例において、生産ラインクリエーターをさらに提供し、生態系開発者が従来の人工知能開発プラットフォームのために新しい人工知能生産ラインを作成するプロセスに参加できるようにする。これらの新しい人工知能生産ラインは、具体的なアプリケーションシナリオの要件によりよく適応でき、従来の人工知能開発プラットフォームが提供できる開発機能も拡張し、カスタマイズされた人工知能の開発プロセスの研究開発効率を大幅に向上させる。
以下、図面を参照して本開示の実施例を詳細に説明する。
図1は、本開示の例示的な実施例による本明細書に記載されている装置を適用できる例示的なシステム100を示す模式図である。
図1を参照して、該例示的なシステムは、プロデューサー102に関連する第1のクライアント機器110、第1のサーバ120、第2のサーバ130、消費者104に関連する第2のクライアント機器140、及び第1のクライアント機器110、第1のサーバ120、第2のサーバ130及び第2のクライアント機器140を通信可能に結合するネットワーク150を備える。
第1のクライアント機器110は、第1の表示画面112と、第1の表示画面112を介して表示できるクライアントインターフェース114とを備える。後述のように、プロデューサー102はクライアントインターフェース114を介して第1のサーバ120と相互作用でき、例えば、クライアントインターフェース114ではドメイン固有言語(DSL)116と生産ラインクリエーター118など(残りは図示せず)と組み合わせて操作できて、第1のサーバ120に作成された人工知能生産ラインを送信し、及び/又は第1のサーバ120からデータを受信する。第1のクライアント機器110は、任意のタイプのモバイルコンピューティング機器であってもよく、モバイルコンピュータまたはモバイルコンピューティング機器(例えば、Microsoft(登録商標) Surface(登録商標)機器、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータ、ノートブックコンピュータ、Apple iPad(登録商標)などのタブレットコンピュータ、ネットブックなど)、携帯電話(例えば、セルラー電話、Microsoft Windows(登録商標)電話などのスマートフォン、Apple iPhone(登録商標)、Google(登録商標) AndroidTM操作システムを実現した電話、Palm(登録商標)機器、Blackberry(登録商標)機器など)、ウェアラブルコンピューティング機器(例えばスマートウォッチ、Google(登録商標)GlassTM、などのスマートグラスを含むヘッドマウント機器)または他のタイプのモバイル機器を含む。いくつかの実施例において、クライアント機器110は固定コンピューティング機器であってもよい。
第1のサーバ120は、典型的に、インターネットサービスプロバイダー(ISP)またはインターネットコンテンツプロバイダー(ICP)によって配備された(複数)バックグラウンドサーバであり、その上でバックグラウンドアプリケーション(図示せず)を運行することができ、該バックグラウンドアプリケーションは第1のクライアント機器110上のクライアントインターフェース114及び第2のサーバ130上に常駐するバックグラウンドアプリケーションと相互作用する。いくつかの実施例によれば、該相互作用により、人工知能生産ラインのアップロード、記憶及び配布を実現することができる。プロデューサー102は、クライアントインターフェース114においてDSL116と生産ラインクリエーター118などと組み合わせて操作することによって、第1の人工知能生産ライン122~第Nの人工知能生産ライン124を作成することができる。ネットワーク150を介して、該第1の人工知能生産ライン122~第Nの人工知能生産ライン124は第1のクライアント機器110から第1のサーバ120にアップロードされ、第1のサーバ120に記憶され得る。このような実施例において、第1の人工知能生産ライン122~第Nの人工知能生産ライン124は、画像認識、画像処理、テキスト認識、音声認識及び物体検出などを含むが、これらに制限されない機能を実現するための人工知能生産ラインであってもよい。さらに後述のように、本開示のいくつかの実施例において、生産ラインクリエーター118にDSLコード及び/又は他のコントロールを編集することによって人工知能生産ラインを作成することができる。
第2のサーバ130は、同様に、インターネットサービスプロバイダー(ISP)またはインターネットコンテンツプロバイダー(ICP)により配備された(複数)バックグラウンドサーバであり、第1のサーバ120及び第2のクライアント140と相互作用する。いくつかの実施例によれば、第2のサーバ130側に人工知能開発プラットフォーム132、生産ラインアクチュエーター134、標準化されたプラットフォームインターフェイス136及び第nの人工知能生産ライン138が配備された。第nの人工知能生産ライン138は、第1のサーバ120に記憶された第1の人工知能生産ライン122~第Nの人工知能生産ライン124のうちのいずれかであってもよい。該第nの人工知能生産ライン138を通じて、人工知能開発プラットフォーム132のために追加のカスタマイズされた人工知能開発機能を提供することができる。第1のサーバ120と第2のサーバ130は、典型的に、大量のコンピューティング及び記憶リソースを有するが、他の実施例も可能である。
第2のクライアント140は、第2の表示画面142と、第2の表示画面142を介して表示できるネットワークブラウザ144とを備える。後述のように、消費者104はネットワークブラウザ144を介して第2のサーバ130側に配備される人工知能開発プラットフォーム132と第nの人工知能生産ライン138にアクセスすることができる。第2のクライアント140は、第1のクライアント110と同様に、任意のタイプのモバイルコンピューティング機器であってもよいし、固定コンピューティング機器であってもよく、ここで詳細に説明しない。
第1のクライアント機器110、第1のサーバ120、第2のサーバ130及び第2のクライアント機器140のうちのそれぞれは、ネットワーク150を介して通信できる少なくとも1つの通信インターフェイス(図示せず)を含むことができる。このような通信インターフェイスは、任意のタイプのネットワークインターフェイス(例えば、ネットワークインターフェースカード(NIC))、有線または無線(例えばIEEE 802.11無線LAN(WLAN))無線インターフェイス、マイクロ波アクセスのための世界的な相互運用性(Wi-MAX)インターフェイス、イーサネットインターフェイス、ユニバーサルシリアルバス(USB)インターフェイス、セルラーネットワークインターフェイス、BluetoothTMインターフェイス、近距離通信(NFC)インターフェイスなどのうちの1つまたは複数であってもよい。通信インターフェイスの他の例について、本明細書の他の場所で説明する。
ネットワーク150の例として、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、及び/又はインターネットなどのような通信ネットワークの組合わせを含む。
実施例において、図1のシステム100は、様々な方法で構成することができ、様々な方法で操作することができ、本開示に記載の装置及び方法を適用できるようにする。例えば、図2は、本開示の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置200を示す構造ブロック図である。図2では、カスタマイズされた生産ライン202は、人工知能開発プラットフォームの予め定義された開発プロセスと異なる追加開発プロセスであり、前記追加開発プロセスはファイルセット2022により定義される。該実施例において、システム100は装置200に応じて構成することができる。
図2を参照し、装置200は、生産ラインアクチュエーター204と標準化されたプラットフォームインターフェイス206を備える。生産ラインアクチュエーター204は、ファイルセット2022に基づいて人工知能開発プラットフォーム208のネイティブフォームを生成するように構成され、前記ネイティブフォームは、人工知能開発プラットフォーム208のネイティブインタラクティブページを表示するように、人工知能開発プラットフォーム208にアクセスするクライアントに送信されるために使用される。標準化されたプラットフォームインターフェイス206は、生産ラインアクチュエーター204と人工知能開発プラットフォーム208との間のインタラクティブチャンネルを提供するように構成される。生産ラインアクチュエーター204はさらに、ファイルセット2022に定義された、ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、標準化されたプラットフォームインターフェイス206を介して人工知能開発プラットフォーム208と相互作用することによって中間結果を処理し、それにより、追加開発プロセスを実行するように構成される。
本開示のいくつかの実施例によれば、カスタマイズされた生産ライン202におけるそれぞれのカスタマイズされた生産ラインを定義するファイルセット2022は、ドメイン固有言語コード20222、リソースファイル20224及びプラットフォーム環境構成ファイル20226を含む。ドメイン固有言語コード20222は、ドメイン固有言語で記述された、追加開発プロセスの処理ロジックを実現するためのコードを含む。例えば、ドメイン固有言語は、一般的なクロスドメインの汎用プログラミング言語(GPL)(例えばC言語、C++言語、Java言語及びPythonなど)に基づいて拡張でき、運行時に追加のパッケージ化を必要とする内部ドメイン固有言語または独立した外部ドメイン固有言語(例えば、JSX言語など)であってもよい。リソースファイル20224は、ネイティブインタラクティブページの表示に必要なスタイルシートと画像を含む。例えば、リソースファイル20224は、ネイティブインタラクティブページを静的に変更または修飾してもよいし、スクリプト言語と組み合わせてネイティブインタラクティブページの各要素をフォーマットしてもよい。プラットフォーム環境構成ファイル20226は、前記追加開発プロセスに固有の人工知能開発プラットフォーム208に対する構成パラメータ、例えば、データ記憶経路とモデル取得経路などを含む。
本開示のいくつかの実施例によれば、ドメイン固有言語コード20222は、フォームコントロールイベント応答、マルチソースの訓練データ処理及びマルチモデルフュージョンコンピューティングの操作のうちの少なくとも1種を実行するためのコードロジックを含む。例えば、消費者は、ネットワークブラウザでフォームコントロールを操作(例えば、テキストボックスに基本的なユーザー情報を入力する、パスワードボックスにパスワードを入力する、提出ボタンまたはクリアボタンをクリックしてフォーム上の情報をそれぞれ提出またはクリアするなど)することによってフォームの書き込みと提出などの操作を実行することができる。上記操作に応答して、ドメイン固有言語コードに対応するコードを実行することによって上記操作に対応する機能を実現することができる。例えば、上記の小売店の棚の検査シナリオでは、ドメイン固有言語コードを介して検出モデルと認識モデルの2つのモデルの連続実行を実現することができる。
ここで、ドメイン固有言語コードはフォームコントロールイベント応答、マルチソースの訓練データ処理及びマルチモデルフュージョンコンピューティングの3種の操作に対応するコードロジックを説明したが、ドメイン固有言語コードは、人工知能生産ラインに関連する他の任意のコードロジック、例えば、モデル効果評価、検証モデルなどの機能を実現するためのコードロジックをさらに含んでもよいことを理解すべきである。
図3は、本開示の例示的な実施例による、図2の装置200における生産ラインアクチュエーター204が人工知能開発プラットフォームのネイティブフォームを生成し、中間結果を生成し、中間結果を処理する全体のフローチャートを示す。
図3を参照し、生産ラインアクチュエーターは、第2のクライアントからの要求を受信したことに応答して、生産ラインアクチュエーターを起動(301)し、プラットフォーム環境構成ファイルをロード(302)して、プラットフォーム環境構成ファイルに含まれる構成パラメータに従って人工知能開発プラットフォームを構成する操作、プラットフォーム環境構成ファイルが成功にロードされるかどうかを確定(303)する操作、プラットフォーム環境構成ファイルが成功にロードされたと確定することに応答して、リソースファイルをロードすることによって人工知能開発プラットフォームのネイティブフォームを生成(304)する操作、リソースファイルが成功にロードされてネイティブフォームが生成された後、中間結果を生成(305)する操作、生成された中間結果を処理(306)する操作、ドメイン固有言語コードが実行されたかどうかを確定(307)する操作、及びドメイン固有言語コードが実行されたと確定することに応答して、生産ラインアクチュエーターを終了(308)するか、またはドメイン固有言語コードが実行されていないと確定することに応答して、操作304~306を繰り返して実行する操作を実行するように構成される。
本開示のいくつかの実施例によれば、第2のクライアント140からの要求は、例えば消費者104がネットワークブラウザ144を介してあるURLアドレスを入力するか、人工知能開発プラットフォーム132のページ上のあるオプションをクリックして、第2のサーバ130(具体的には、人工知能開発プラットフォーム132)に新しく追加されたカスタマイズされた人工知能生産ライン138を実行する要求であってもよい。該カスタマイズされた人工知能生産ライン138の実行は、そのダウンロードとインストールの完了に基づくことができる。例では、カスタマイズされた人工知能生産ライン138は、後続の実行のために2種の方法によってダウンロード及びインストールすることができ、即ち、消費者104はネットワークブラウザ144を介して第2のサーバ130上の人工知能開発プラットフォーム132にアクセスし、カスタマイズされた人工知能生産ライン138に関連する例えばダウンロードオプションボタンまたはインストールオプションボタンをクリックすることによってダウンロードインストールを実現し、或いは、消費者104は例えばアプリケーションストアから直接ダウンロードしてインストールすることができる。カスタマイズされた人工知能生産ライン138を実行する要求を受信した後、生産ラインアクチュエーター134はプラットフォーム環境構成ファイルを起動(301)してロード(302)する。ロードが成功すると、ネイティブフォームを生成するように後続の操作を実行でき、第2のクライアント140に送信して人工知能開発プラットフォーム132のネイティブインタラクティブページを表示する。いくつかの例では、図1のコンテキストでは、リソースファイルが成功にロードされてネイティブフォームが生成された後、生成されたネイティブフォームは例えば第2のサーバ130に常駐するWebサーバ(例えば、Nginx、図1では図示せず)を介して人工知能開発プラットフォーム132にアクセスする第2のクライアント140に送信することができ、それにより、第2のクライアント140に人工知能開発プラットフォーム132に固有のインタラクティブページを表示することができる。クライアントの消費者104は該ネイティブインタラクティブページ上で操作することができ、例えばフォームを書き込み、書き込んだフォームをWebサーバに提出する。プラットフォーム環境構成ファイルの欠落または損傷などに起因してロードできないと、生産ラインアクチュエーター134を終了し、この時、消費者104はカスタマイズされた生産ライン138を使用できず、人工知能開発プラットフォーム132に対応するインターフェースにエラーページが表示される可能性がある。
本開示の他の実施例によれば、生産ラインアクチュエーターは、プラットフォーム環境構成ファイルが成功にロードされたと確定することに応答して、リソースファイルをロードすることによって人工知能開発プラットフォームのネイティブフォームを生成(304)するように構成される。これは、リソースファイルをロード(3044)する操作、及びリソースファイルが成功にロードされたかどうかを確定(3046)する操作を実行することを含むことができる。
本開示の他の実施例によれば、生産ラインアクチュエーターは、リソースファイルが成功にロードされてネイティブフォームが生成(305)された後、中間結果を生成するように構成される。これは、以下の操作を実行することを含むことができる。
第2のクライアントからのネイティブインタラクティブページ上の操作イベントを監視(3052)する。例えば、消費者はネットワークブラウザを介してあるネイティブインタラクティブページにアクセスし、テキストボックスに基本情報を入力し、検索バーに取得したい情報を入力し、ページ上のあるリンクをクリックし、及び提出ボタンをクリックしてデータセットを提出するなどには、それに対応する操作イベントが発生する。いくつかの例では、例えばNginx(engine X)のWebサーバを利用することによってクライアントのネイティブインタラクティブページ上で操作イベントが発生するかどうかを検出することができる。生産ラインアクチュエーターと該Webサーバとの間に標準化されたプラットフォームインターフェイスと異なる通信インターフェイスが存在でき、Webサーバはネイティブインタラクティブページ上で操作イベントが発生したと検出すると、該通信インターフェイスを介して操作イベントを生産ラインアクチュエーターに送信することができる。このため、生産ラインアクチュエーターは、第2のクライアントからのネイティブインタラクティブページ上の操作イベントを監視することができる。
監視された操作イベントがフォーム提出イベントであるかどうかを確定(3054)し、フォーム提出イベントは、第2のクライアントからネイティブインタラクティブページ上での必要な回答項目データを収集したことを示す。選択可能に、生産ラインアクチュエーターは、書き込んだデータ経路が合法であるかどうか、フォーマットが正確であるかどうかなどを検証することができる。Webサーバから受信された操作イベントはフォーム提出イベントと非フォーム提出イベントを含む。フォーム提出イベントとは、フォームの確定、提出などのボタンがクリックされる場合に発生したイベントを指す。例えばForm、jQuery、Ajaxなどを介して提出するフォームは、例えば消費者のシナリオ要件に関連するシナリオデータセットなどの必要な回答項目データを含む。非フォーム提出イベントとは、フォーム提出イベント以外のイベント、例えばマウスクリックイベント、オブジェクトがフォーカスを失った時(例えば、マウスが入力ボックスから離れる)に発生するイベント、オブジェクトがフォーカスを取得する時(例えば、マウスが入力ボックスに位置する)に発生するイベント、オブジェクトの値が変わる時に発生するイベントなどを指す。
操作イベントがフォーム提出イベントであると確定することに応答して、必要な回答項目データを利用してファイルセットに定義されたフォーム提出イベントに対応する処理ロジックを実行(3056)する。例えば、フォーム提出イベントを通じて消費者によって提出されたデータセットを収集したと、対応するロジックを実行することができて、収集されたデータセットに基づき対応するモデル訓練を行い、カスタマイズされた訓練モデルを生成するために使用される。操作イベントが非フォーム提出イベントであると確定する場合、該フォームに対する操作がまだ終了しておらず、消費者に関連するデータセットが収集されていないことを示す。この時、前記ファイルセットに定義された、該非フォーム提出イベントに対応する処理ロジックを実行し、例えばオブジェクトがフォーカスを取得する時に処理ロジックを実行することで背景色を変化させたり、オブジェクトの値が変わる時に処理ロジックを実行することで大文字などに変換したりするなどである。次に、監視された操作イベントはフォーム提出イベントであるまで、操作イベントを監視し続ける。
上記操作により、消費者のためにネイティブフォームのインタラクティブな体験を提供することができ、消費者はネイティブフォームを介して自分のシナリオ要件に関連する、データセットを含む様々な情報を入力することができる。
本開示の他の実施例によれば、生産ラインアクチュエーターは、生成された中間結果を処理(306)するように構成される。これは、フォーム提出イベントに対応する処理ロジックを実行する操作が完了した後、中間結果を記憶(3062)する操作を実行することを含むことができる。中間結果はフォーム提出イベントに対応する処理ロジックを実行する時に生成された例えばデータセット、訓練モデルの中間結果(例えば、Artifact)を含むことができ、例えばデータセットの物理位置、データセットの名称、フィールド及びデータアクセスログなどのデータ属性を説明するメタデータを含んでもよい。標準化されたプラットフォームインターフェイスを介して中間結果を人工知能開発プラットフォームに送信(3064)して更なる処理に使用される。
以下、実施例と組み合わせてどのように標準化されたプラットフォームインターフェイスを利用して生産ラインアクチュエーターと人工知能開発プラットフォームとの間に中間結果を人工知能開発プラットフォームに送信する相互作用を実現するかをさらに説明する。
本開示のいくつかの実施例によれば、標準化されたプラットフォームインターフェイスは、生産ラインアクチュエーターが人工知能開発プラットフォームに対して訓練データセットの読み書き操作を行うためのデータ型インターフェイスと、生産ラインアクチュエーターが人工知能開発プラットフォームに対して人工知能モデルの読み書き操作を行うためのモデル型インターフェイスと、生産ラインアクチュエーターが人工知能開発プラットフォームに対して構成変数の読み書き操作を行うための構成型インターフェイスと、生産ラインアクチュエーターが人工知能開発プラットフォームに対してタスク状態の読み書き操作を行うための状態型インターフェイスと、を含む。これらのインターフェイスを介して、生産ラインアクチュエーターと人工能開発プラットフォームとの間の相互作用を実現することができる。
下記表1に示すように、各タイプのインターフェイスはいずれも、例えばGetDataSet、GetModel、GetTaskStatus、及びGetConfigなどの読み取り操作を行うインターフェイス、及び例えばSetDataSet、SetModel、SetTaskStatus及びSetConfigなどの書き込み操作を行うインターフェイスを含む。読み取り操作のインターフェイスに対応する関数を呼び出すことによって、生産ラインアクチュエーターは、例えば人工知能開発プラットフォーム側からの訓練データセット、人工知能モデル、プラットフォーム構成変数及びプラットフォームのタスク状態を読み取ることができる。書き込み操作のインターフェイスに対応する関数を呼び出すことによって、生産ラインアクチュエーターは、例えばカスタマイズされた生産ラインからの中間結果を人工知能開発プラットフォームに送信することができ、人工知能開発プラットフォームのデータセットに対する直接的な侵入操作を避ける。
インターフェイス名に対応する関数を呼び出す場合、指定された入力パラメータが与えられるたびに、指定された戻り構造を取得し、それにより、対応するデータ、モデル、構成、状態などの関連情報を取得する。データ型インターフェイスの読み取り操作を例として、入力パラメータは、選択された人工知能開発プラットフォームを指示するパラメータUserID、生産ラインアクチュエーターが、選択された人工知能開発プラットフォームにアクセスするように、標準化されたプラットフォームインターフェイスを呼び出す権限を持っているかどうかを指示するためのパラメータToken:{AK:String;SK:String}、及び生産ラインアクチュエーターがアクセスするデータセットを指示するパラメータDSID(DataSetID)を含み、戻り構造は、エラーコードを指示する結果ErrID(ErrorID)、エラー情報を指示する結果ErrMsg(ErrorMessage)、データセット記憶経路を指示する結果DSPath(DataSetPath)、メタデータ記憶経路を指示する結果DSMetaPath(DataSetMetadataPath)及びデータセットタイプを指示する結果DSType(DataSetType)を含む。
標準化されたプラットフォームインターフェイスは、特定のプロトコルに基づいた様々なインターフェイスを使用して実現することができる。本開示のいくつかの実施例によれば、標準化されたプラットフォームインターフェイスは、Restfulアプリケーションプログラミングインターフェイス(API)を使用して実現することができる。いくつかの例では、標準化されたプラットフォームインターフェイスはHTTPプロトコルに基づく通信をサポートすることができる。
以上のように説明された標準化されたプラットフォームインターフェイスを介して一貫した標準実行環境とサービスインターフェイスを提供することができ、それにより、作成されたカスタマイズされた生産ラインは、1場所で作成し、複数の場所(複数の異なる人工知能開発プラットフォーム)で運行することを実現することができ、建設または改造、適応のために追加の研究開発人員を投資することなく、同様のシナリオで再利用するのに役に立つ。
なお、本開示による標準化されたプラットフォームインターフェイスは、カスタマイズされた生産ラインプロセスに関するデータ処理、モデル訓練、サービス配備などの任意の主要リンクを実行できるサービスインターフェイスであり、上記の4種のインターフェイスタイプを含むが、これらに制限されない。また、本開示による標準化されたプラットフォームインターフェイスは特定のプロトコルに基づいた他のインターフェイス、例えばRPCインターフェイスなどを介して実現することもできる。
図4は、本開示の他の例示的な実施例による人工知能開発プラットフォームを利用してカスタマイズされた生産ラインを実行するための装置400を示す構造ブロック図である。図2と類似する図面符号は同じ素子を指示する。
該実施例において、図2の装置200と比べて、装置400は生産ラインクリエーター410をさらに備える。生産ラインクリエーター410は、カスタマイズされた生産ラインを作成するように、カスタマイズされた生産ラインを編集、プレビュー及びデバッグするインタラクティブな開発インターフェースを生成するように構成される。いくつかの例では、該生産ラインクリエーター410は、オープンソースの例えばJupyterの集積開発環境に基づいて実現することができ、そのインターフェースはJupyterLabのインターフェースを再利用し、プラグインの形でJupyterLabにロードすることができる。
図5は、生産ラインクリエーター410の例示的なインタラクティブな開発インターフェースを示す。説明のために、以下、図4と図5を参照して装置400における生産ラインクリエーター410を更に説明する。
図5を参照し、生産ラインクリエーター410のインタラクティブな開発インターフェース512は、コントロール領域5122、作業領域5124及び固定構成領域5126を含む。コントロール領域5122は、前記ネイティブフォームの複数のコントロールを編集するために使用され、該複数のコントロールが標準仕様(例えば、HTML5)で定義されたWebコントロールであってもよい。作業領域5124は、前記追加開発プロセスの処理ロジックを記述するコードを編集するためのコード領域51242及び前記カスタマイズされた生産ラインをプレビューするためのプレビュー領域51244を含む。いくつかの例では、コード領域51242は、例えばオープンソース言語サーバプロトコル(LSP)を利用して例えばpythonコードの構文強調表示や自動補完などの機能を実現することができ、プレビュー領域51244は、プレビューを生成するように、例えばHTML5のCanvasキャンバスを利用してレンダリングすることができる。固定構成領域5126は、例えば標準のWebフォームコントロールを通じて、前記人工知能開発プラットフォームに適用される構成パラメータを編集することを実現するために使用される。
生産ラインクリエーターにおける上記の3つの領域の協力により、プロデューサーは該インタラクティブな開発インターフェースでコードを直接書いて運行できるだけでなく、同一のインターフェースでコード運行結果を表示することができ、カスタマイズされた生産ラインを視覚的にドラッグ及び作成することもできる。これにより、複数のインターフェースでコードを書き、コードの運行効果をプレビューすることによる操作の不便さを避け、カスタマイズされた生産ラインのデバッグプロセスを加速し、プロデューサーのために良好なユーザー体験を提供する。
いくつかの実施例によれば、図1を参照し、生産ラインクリエーター118は、第1のクライアント110側に配備されるように構成することができ、生産ラインアクチュエーター134と標準化されたプラットフォームインターフェイス136は、生産ラインクリエーターと異なる側に配備され、人工知能開発プラットフォーム132とともにサーバ側に配備されるように構成され、このような場合で、生産ラインクリエーターは独立した形(例えば、第1のクライアント110側のソフトウェアツール)で存在する。このような実施例において、生産ラインクリエーターは、第1のクライアント110側のローカルに存在するように実現され得るか、または第1のクライアント110を介してアクセスできるクラウドプラットフォームに存在するように実現され得る。他の実施例によれば、生産ラインクリエーター、生産ラインアクチュエーター及び標準化されたプラットフォームインターフェイスは、人工知能開発プラットフォームとともにサーバ側に配備されるように構成されてもよく、このような場合で、生産ラインクリエーターは消費者に開かれた人工知能開発プラットフォームの機能として非独立の形で存在する。
なお、図4に示す装置400において、生産ラインクリエーター410以外、カスタマイズされた生産ライン402、生産ラインアクチュエーター404、標準化されたプラットフォームインターフェイス406及び人工知能開発プラットフォーム408などの他のコンポーネント及び/又はモジュールによって実行された操作は図2を参照して説明した対応するコンポーネント及び/又はモジュールによって実行された操作と同様または類似するため、ここで詳細に説明しない。
また、以上で特定のモジュールを参照して特定の機能を検討したが、本明細書で検討された各モジュールの機能は複数のモジュールに分割することができ、及び/又は複数のモジュールの少なくとも一部の機能を単一のモジュールに組み合わせることができることに注意すべきである。本明細書で検討された特定のモジュールが動作を実行することは、該特定のモジュールそのものが該動作を実行すること、または代わりに、該特定のモジュールが該動作(または該特定のモジュールとともに該動作を実行する)を実行する他のコンポーネントまたはモジュールを呼び出すまたは他の方法でアクセスすることを含む。このため、動作を実行する特定のモジュールは、動作を実行する該特定のモジュールそのもの及び/又は該特定のモジュールが呼び出すまたは他の方法でアクセスする、動作を実行する他のモジュールを含む。例えば、いくつかの実施例において、以上で説明された生産ラインアクチュエーター204と人工知能開発プラットフォーム208を単一のモジュールとして組み合わせることができる。
より一般的に、本明細書では、ソフトウェアハードウェア素子またはプログラムモジュールの一般的なコンテキストで様々な技術について説明することができる。以上で図2~5に説明された各モジュールはハードウェアまたはソフトウェア及び/又はファームウェアを組み合わせたハードウェアで実現することができる。例えば、これらのモジュールは、コンピュータプログラムコード/命令として実現することができ、該コンピュータプログラムコード/命令は、1つまたは複数のプロセッサーに実行されてコンピュータ読み取り可能な記憶媒体に記憶されるように構成される。代わりに、これらのモジュールは、ハードウェアロジック/回路として実現することができる。例えば、いくつかの実施例において、生産ラインクリエーター410、生産ラインアクチュエーター404及び人工知能開発プラットフォーム408のうちの1つまたは複数はシステムオンチップ(SoC)に一緒に実現することができる。SoCは、集積回路チップ(プロセッサー(例えば、中央処理ユニット(CPU)、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサー(DSP)など)、メモリ、1つまたは複数の通信インターフェイス、及び/又は他の回路のうちの1つまたは複数の部材を含む)を含むことができ、受信されたプログラムコードを選択可能に実行し、及び/又は機能を実行するために組み込みファームウェアを含むことができる。
図6は、本開示の例示的な実施例による人工知能開発プラットフォームのためにカスタマイズされた生産ラインを実現するための方法600を示す構造ブロック図である。
ステップ602において、生産ラインアクチュエーターを提供する。前記生産ラインアクチュエーターは、ファイルセットに基づいて人工知能開発プラットフォームのネイティブフォームを生成するために使用され、前記ネイティブフォームは、人工知能開発プラットフォームのネイティブインタラクティブページを表示するように、人工知能開発プラットフォームにアクセスするクライアントに送信されるために使用される。
ステップ604において、標準化されたプラットフォームインターフェイスを提供する。前記標準化されたプラットフォームインターフェイスは、生産ラインアクチュエーターと人工知能開発プラットフォームとの間のインタラクティブチャンネルを提供するために使用される。
生産ラインアクチュエーターはさらに、ファイルセットに定義された、ネイティブインタラクティブページ上の操作イベントに対応する処理ロジックを実行することによって中間結果を生成し、標準化されたプラットフォームインターフェイスを介して人工知能開発プラットフォームと相互作用することによって中間結果を処理し、それにより、追加開発プロセスを実行するために使用される。
選択可能に、方法600はステップ606を含んでもよい。ステップ606において、生産ラインクリエーターを提供する。前記生産ラインクリエーターは、カスタマイズされた生産ラインを作成するように、カスタマイズされた生産ラインを編集、プレビュー及びデバッグするためのインタラクティブな開発インターフェースを生成するために使用される。作成されたカスタマイズされた生産ラインは、圧縮ファイル及び/又はミラーリングファイルのフォーマットで記憶及び配布することができる。
本開示の他の態様によれば、コンピューティング機器をさらに提供し、プロセッサー、及び命令が記憶されたメモリを備え、前記命令は、前記プロセッサーにより実行される場合に、上記装置200または400におけるコンポーネント及び/又はモジュールによる機能を実現するために使用される。
本開示の更なる態様によれば、命令が記憶されたコンピュータ読み取り可能な記憶媒体をさらに提供し、前記命令は、プロセッサーにより実行される場合に、上記装置200または400におけるコンポーネント及び/又はモジュールによる機能を実現するために使用される。
以下、図7を参照してこのようなコンピューティング機器とコンピュータ読み取り可能な記憶媒体の例を説明する。図7は、例示的な実施例の実現に適用できる例示的なコンピューティング機器700を示す。
コンピューティング機器700は、例えばサービスプロバイダーのサーバ、クライアント(例えば、クライアント機器)に関連する機器、システムオンチップ、及び/又は任意の他の適切なコンピューティング機器またはコンピューティングシステムの様々な異なるタイプの機器であってもよい。コンピューティング機器700の例として、デスクトップコンピュータ、サーバコンピュータ、ラップトップまたはネットブックコンピュータ、モバイル機器(例えば、タブレットまたはphablet機器、セルラーまたは他の無線電話(例えば、スマートフォン)、ノートコンピュータ、モバイル局)、ウェアラブル機器(例えば、メガネ、時計)、娯楽機器(例えば、娯楽器具、表示機器に通信可能に結合されるセットトップボックス、ゲーム機)、テレビまたは他の表示機器、自動車コンピュータなどを含むが、これらに制限されない。このため、コンピューティング機器700は、大量のメモリとプロセッサーリソースを備えるフルリソース機器(例えば、パーソナルコンピュータ、ゲームコンソール)から、限られたメモリ及び/又は処理リソースを備える低リソース機器(例えば、従来のセットトップボックス、手持ちゲームコンソール)に及ぶことができる。
コンピューティング機器700は、例えばシステムバス714または他の適切な接続を介して互いに通信する少なくとも1つのプロセッサー702、メモリ704、(複数)通信インターフェイス706、表示機器708、他の入力/出力(I/O)機器710及び1つまたはより多くの大容量記憶機器712を含むことができる。
プロセッサー702は、単一の処理ユニットまたは複数の処理ユニットであってもよく、すべての処理ユニットは単一または複数のコンピューティングユニットまたは複数のコアを含むことができる。プロセッサー702は、1つまたはより多くのマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサー、中央処理ユニット、ステートマシン、ロジック回路及び/又は操作命令に基づいて信号を操縦する任意の機器として実施することができる。他の機能に加えて、プロセッサー702は、メモリ704、大容量記憶機器712または他のコンピュータ読み取り可能媒体に記憶されたコンピュータ読み取り可能命令、例えば操作システム716のプログラムコード、アプリケーションプログラム718のプログラムコード、他のプログラム720のプログラムコードなどを取得及び実行するように構成することができる。
メモリ704と大容量記憶機器712は、命令を記憶するためのコンピュータ記憶媒体の例であり、前記命令はプロセッサー702により実行されることによって以上の様々な機能を実施する。例えば、メモリ704は、一般的に、揮発性メモリと不揮発性メモリ(例えばRAM、ROMなど)の両方を含むことができる。なお、大容量記憶機器712は、一般的に、ハードディスクドライブ、ソリッドステートドライブ、外部及びリムーバブルドライブを含むリムーバブル媒体、メモリカード、フラッシュメモリ、フロッピーディスク、光ディスク(例えばCD、DVD)、記憶アレイ、ネットワーク接続記憶、記憶領域ネットワークなどを含むことができる。メモリ704と大容量記憶機器712は、本明細書ではいずれもメモリまたはコンピュータ記憶媒体と呼ぶことができ、コンピュータ読み取り可能、プロセッサー実行可能プログラム命令をコンピュータプログラムコードとして記憶できる非一時的媒体であってもよく、前記コンピュータプログラムコードは、本明細書の例で説明された操作と機能を実施するように構成される特定のマシンとしてのプロセッサー702により実行することができる。
複数のプログラムモジュールは、大容量記憶機器712に記憶することができる。これらのプログラムは操作システム716、1つまたは複数のアプリケーションプログラム718、他のプログラム720及びプログラムデータ722を含み、それらが、実行のためにメモリ704にロードすることができる。このようなアプリケーションプログラムまたはプログラムモジュールの例は、例えばカスタマイズされた生産ライン402、生産ラインアクチュエーター404、標準化されたプラットフォームインターフェイス406、人工知能開発プラットフォーム408、生産ラインクリエーター410、方法600(方法600の任意の適切なステップ)及び/又は本明細書で説明された他の実施例というコンポーネント/機能を実現するためのコンピュータプログラムロジック(例えば、コンピュータプログラムコードまたは命令)を含むことができる。
図7ではコンピューティング機器700のメモリ704に記憶されるように示されるが、モジュール716、718、720及び722またはその一部はコンピューティング機器700によりアクセスできる任意の形のコンピュータ読み取り可能媒体を使用して実施することができる。本明細書で使用された「コンピュータ読み取り可能媒体」は2種のタイプのコンピュータ読み取り可能媒体、つまりコンピュータ記憶媒体と通信媒体を少なくとも含む。
コンピュータ記憶媒体は、情報を記憶するための任意の方法または技術で実施される揮発性と不揮発性、リムーバブルと非リムーバブル媒体を含み、前記情報は、例えばコンピュータ読み取り可能命令、データ構造、プログラムモジュールまたは他のデータである。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、ディスク記憶装置または他の磁気記憶機器、またはコンピューティング機器がアクセスするように情報を記憶するための任意の他の非伝送媒体を含むが、これらに制限されない。
対照的に、通信媒体は、例えば搬送波または他の伝送メカニズムなどの変調データ信号内でコンピュータ読み取り可能命令、データ構造、プログラムモジュールまたは他のデータを具体的に実現することができる。本明細書で定義されたコンピュータ記憶媒体は通信媒体を含まない。
コンピューティング機器700はまた、以上の説明のように、ネットワーク、直接接続などを通じて他の機器とデータを交換するための1つまたはより多くの通信インターフェイス706を含んでもよい。このような通信インターフェイスは、任意のタイプのネットワークインターフェイス(例えば、ネットワークインターフェースカード(NIC))、有線または無線(例えばIEEE 802.11無線LAN(WLAN))無線インターフェイス、マイクロ波アクセスのための世界的な相互運用性(Wi-MAX)インターフェイス、イーサネットインターフェイス、ユニバーサルシリアルバス(USB)インターフェイス、セルラーネットワークインターフェイス、BluetoothTMインターフェイス、近距離通信(NFC)インターフェイスなどのうちの1つまたは複数であってもよい。通信インターフェイス706は、多種のネットワークとプロトコルタイプ内の通信を促進することができ、有線ネットワーク(例えばLAN、ケーブルなど)と無線ネットワーク(例えばWLAN、セルラー、衛星など)、インターネットなど含む。通信インターフェイス706はまた、例えば記憶アレイ、ネットワーク接続記憶、記憶エリアネットワークなどにおける外部記憶装置(図示せず)との通信を提供することができる。
いくつかの例では、ユーザーに情報と画像を表示するように、例えばモニターなどの表示機器708を含むことができる。他のI/O機器710は、ユーザーからの様々な入力を受信するとともに、ユーザーに様々な出力を提供する機器であってもよく、また、タッチ入力機器、ジェスチャー入力機器、カメラ、キーボード、リモコン、マウス、プリンター、オーディオ入力/出力機器などを含むことができる。
図面と以上の記述から本開示を詳細に説明及び記述したが、このようなに説明及び記述は、限定的なものではなく、説明的と例示的なものと見なされるべきであり、本開示は、開示された実施例に制限されない。図面、開示内容及び添付の特許請求の範囲を研究することによって、当業者は特許請求される主題を実施する際に、開示された実施例への変形を理解及び実現することができる。特許請求の範囲において、「含む」という言葉は、リストされていない他の素子またはステップを排除するものではなく、不定冠詞「一つ」または「1つ」は複数を排除するものではなく、「複数」という用語は2つまたは2つ以上を指す。相互に異なる従属請求項に特定の措置が記載されている単なる事実は、これらの措置の組み合わせが利益のために使用できないことを示すものではない。