HUMAN wikiへようこそ!
Human Protocolを把握するための概要資料
Human Protocol Japan
イントロ
現在、私たちはサイドチェーンとしてEthereumのテストネットを使用していますが、これは理想とは程遠いものであり、Ethereumのテストネットは、セキュリティや可用性、パフォーマンスに限界があります。この部分を解決するために現状では、Moonbeamのようなサイドチェーンでのジョブの実行を考えています。私たちが提携を検討しているサイドチェーンは全てEthereumと互換性があり、計画ではペイメント機能はメインチェーンに残す予定です。
データラベリングの種類の紹介
データラベリングとは、人間や機械が画像にラベルを付けたり、与えられたコンテンツフォーマット(画像やテキストなど)内で特定の文字やオブジェクトを区別したりする作業です。
HUMANプロトコルは、データラベリングのための複数のインターフェースやAPIをサポートしています。現在、CVAT、Inception、hCaptchaがHUMANプロトコルで利用可能です。独自のラベリングデバイスをインフラにオンボードすることで、摩擦のない体験が保証されます(ILB/ILAS)
各インターフェイスは、データのラベリングのために異なるフォーマットと標準を提供しています:
hCaptcha
hCaptchaは、ワーカーに画像を提供し、その画像中の指定された要素に関するラベル付けを要求します。
例えば「車が写っている画像を全てクリックしてください」や「信号が写っている画像画像を全てクリックしてください」などです。また、手書き文字の記載内容を判別するという様なタスクも可能です。
ラベラーはページ全体をhCaptchaに提出し、hCaptchaはそれを断片的に分解して回答を集約します。
CVAT
CVATは、より洗練されたラベリングツールキットを提供します。
ラベラーは、バウンディングボックスやフリーハンドを使って、画像内の指定された要素の輪郭を描画して特定することができます。CVATでは、深層学習を利用して自動セグメント化を行っており、例えば、ラベラーが人の輪郭を囲む5つの大まかなポイントをクリックすると、深層学習技術によって残りの輪郭が描かれます。これによって、より複雑な作業でも高速にラベリングを行うことができます。
CVATとの関係についてはこちらのMediumをご覧ください。
Inception
Inceptionは、汎用のテキストアノテーションAPIです。
このAPIを使用することによりユーザーは(大規模な)テキストに注釈を付けて、名前の付いたエンティティや構文内の関係性を識別することができます。例えば、簡単な医療文書に「日付」「名前」「組織」「国籍」のラベルを貼ることができます。
もちろん、「アメリカ」という言葉には、国籍を表すものと、アメリカの組織であることを表すものと、2つの使い方がある可能性があります。Inceptionでは、クローズアップされた写真を見分けるのは人間の知能に頼っており、受け取った回答をもとにMLアルゴリズムを実行することで、ラベリング処理の速度と機能性を向上させています。
インテグレーション仕様
詳しくはNotionの統合ドキュメントをご覧ください。
マルチチェーン戦略
Let there rink be
Ethereum Rinkeby Testnetは、私たちが現在使用している唯一のサイドチェーンです。
Let there chains be
MoonbeamやSkaleなどのサイドチェーン技術が私たちの技術をベースにすることを奨励するために、私たちはサイドチェーンのベイクオフを行います。処理能力やコスト、機能、その他の指標を考慮して、どのサイドチェーンがユーザーにとって最適なソリューションを提供するかを見極めるための評価プロセスが行われます。
Let there many be
マルチクラウド戦略が、勝者総取りのクラウドプロバイダー戦略よりも柔軟性や実力主義、カスタマイズ性の点で有利であるのと同様に、ブロックチェーンが成熟していく中におけるマルチチェーン戦略にも同じことが言えると考えています。この戦略には、私たちのクラウドソフトウェアの経験から得た知識が反映されています。クラウド事業者が違えば、それぞれのMLソフトウェアを動かすのに最適なクラウド事業者が異なるのは当然のことであり「Winner take it all, and there’s no loser to fall」ということになります。
ライブラリからRESTful APIへの切り替え
HUMANの開発の初期段階ではライブラリで十分でしたが、HUMANプロトコルを拡張して新たなアプリやチェーンをサポートするためには、相互運用性、拡張性、そしてシームレスなアクセス方法が必要となります。
以前のモデルでは、HUMANプロトコル内で相互に作用するコンポーネント、つまりExchangeには、HMTエスクロー・ライブラリのコピーを一致させる必要がありました。このモデルでは、Exchangeシステム内でライブラリを更新する必要がありました。これは、成長段階のプロセスの一部として受け入れられるものでしたが、将来的にはHUMANプロトコルを積極的かつ実用的に適用するには持続性に難が生じます。これは、Exchangeシステム内で常に更新する必要があるため、ダウンタイムが発生したり、コンポーネント間のライブラリの不一致による遅延が発生したりすることによるものです。
新システムのSwagger仕様のRESTful APIは、まったく異なる構成になっています。ExchangeはRESTful APIを介して、ライブラリの最新コピーが保管されているサーバーを呼び出すようになりました。私たちがサーバーを更新するだけで、そのサーバーを指しているコンポーネントは、それに応じて自動的にライブラリを更新します。要するに、私たちはライブラリのコードを内部のWebサーバーでラップして、コンポーネントがそこから引き出したり、そこにプッシュしたりできるようにしているのです。
これは、HUMANネットワークをマルチチェーン対応にするための重要な要素です。1つのチェーンに1つのサーバーがあり、そのチェーン上で動作するプログラムが更新されたライブラリを呼び出すことができます。これにより、新しいアプリケーションやチェーンが、既存のシステムにインターフェースを接続することが簡単になります。
また、サーバーには様々なクラスがあります。あるサーバーはそのチェーンに特化した情報を扱うように設計されていますが、別のサーバーは全てのチェーンでライブラリのバージョンを変更することができます。これにより、ダウンタイムを節約できます。私たちがすべきことはブロックチェーンのコンポーネントを新しいサーバーに向けることであり、ライブラリを反転させて再構築し、プログラムを再配置する事とは異なります。
その方法として、コアサービスとライブラリのデータを活用して、汎用的なSwagger仕様書を作成しました。また、SwaggerのCodegenを足場にして、以下のような新機能を備えたRESTインターフェイスを構築しました:
- マルチチェーンのサポート
- サードパーティアプリ
- ファクトリーベースのイベントフック
まとめ
基本的なレベルでは、マルチチェーンの操作性に対する我々のコミットメントを示しています。HUMANプロトコルは、データ産業にバックボーンを提供することを目指していますが、これはチェーンインフラに対する実用的でオープンなアプローチによってのみ達成されます。マルチチェーンの相互運用性を追求するための次のステップについては、サイドチェーンへの移行に関する記事をお読みください。