ABBYY NeoML 2.0:Pythonをはじめとする新機能
9月2日, 2021
約1年前、機械学習NeoML用のオープンソースのクロスプラットフォームライブラリがGitHubに登場しました。ABBYYチームは、この間ずっとフレームワークの更新に取り組んできました。通常のビルドではAzureDevOpsに切り替え、新しいプラットフォームのサポートを追加し、利用可能なアルゴリズムのリストを拡張し、パフォーマンスを向上させました。そして最も重要なのは、ライブラリに待望のPythonインターフェースが追加されたことです。
機械 学習 と は? ABBYYはどのように使用しているか?
ABBYYがその開発を公開した理由
オープンソースは、現代のソフトウェア開発における革新の主な源です。従って、我々はさらに多くのユーザーにNeoMLライブラリをご利用いただくことを目指しています。こうすることで、機械学習分野の世界中の開発者スペシャリストから支援を受け、当社のテクノロジーを使用、テスト、改善してもらうことができます。さらには、新しいビジネスシナリオでABBYYアルゴリズムを使用する可能性を探ることができます。そして、さまざまな課題に対し社内テクノロジーを使用しつつ、将来、当社のソフトウェアで実行されるエコシステムを作成できるようになることを期待しています。
最初のバージョンのリリースから何が変わったか?
- NeoML 2.0の方がより高速になりました。従来のアルゴリズムの実行速度が最大10倍になり、ニューラルネットワークのトレーニングが30%速くなりました。この最適化は、クラウドサービスでML(機械学習)モデルをトレーニングする専門家や企業に特に役立ちます。また、クライアント向けのモバイルアプリケーションの開発も簡素化します。
- このライブラリは、10の新しいネットワークレイヤーと新しい最適化メソッドを含む、約20の新しい機械学習メソッドをサポートしています。従って、ビジネス、サイエンス分野のユーザーは、最新のプラットフォームとアーキテクチャを使用して、オブジェクトの識別、分類、回帰、クラスタリング、セマンティックセグメンテーション、検証のリソースを使ってアプリケーションを補完できるようになります。
- 新しいバージョンは、自動勾配計算をサポートしています。これは、さまざまなアーキテクチャのニューラルネットワークを高速に実装するための重要な機能です。
- このフレームワークを使用すると、Apple M1プロセッサ、Linux環境のGPU、Intelの統合モデルといった最新環境で作業できます。これにより、クライアント向けのアプリケーション開発の可能性が大幅に広がります。
Python
データ分析と機械学習で最も一般的なプログラミング言語の1つであるPythonのユーザーがこのライブラリを使用できるようになりました。
新しいPythonインターフェースにより、ライブラリの範囲を拡張できるだけでなく、NeoMLをどう動かすかも改善していくこともできるようになりました。サードパーティのML(機械学習)フレームワークを使用するための多くのシナリオの公開を止め、ABBYYエンジニアの作業を大幅に簡素化および最適化しました。また、新しいインターフェースを作成するプロセスそのものが、既存のプラットフォームを見直し、不具合を修正するのに役立ちました。加えて、Pythonの世界で、簡単にライブラリを使って、試すことができます。
さらに、NeoMLのPythonバージョンは、C ++バージョンと完全に互換性があります。標準ライブラリエレメントを使用するすべてのモデルは、C ++バージョンでロードして使用でき、その逆も可能です。
使用分野と方法
ABBYYは、インテリジェントな文書処理ができるABBYY FlexiCaptureやABBYY Vantage、そしてモバイルアプリケーション、その他のグローバル市場向けの革新的なソリューションなど、自然言語処理とコンピュータービジョンのすべての製品でNeoMLライブラリツールを使用しています。
さらに、NeoMLは、米国、カナダ、ドイツ、オランダ、ロシア、ブラジル、中国、インド、ベトナム、韓国、その他の国の独立した開発者や研究者によって、プロジェクトですでに使用されています。
ソースコードには、プロジェクトの公式GitHubリポジトリからアクセスできます。NeoMLは、Windows、Linux、macOS、iOS、およびAndroidで使用できます。ライブラリはCPUとGPUプロセッサを共にサポートしています。オープンソースフレームワークは、Apache 2.0 Licenseの下で提供されています。
今後の計画
近い将来、ABBYYチームは、Pythonインターフェースの改善を継続し、分散機械学習とJITコンプライアンスに取り組み、新しいメソッドの実装を追加し、古いメソッドを最適化する予定です。