
近年、自然言語処理(NLP)は品質と使いやすさが急速に成長しており、これが人工知能(AI)ソリューションのビジネス採用を促進するのに役立ちました。ここ数年、研究者はNLPに新しい深い学習方法を適用してきました。データサイエンティストは、従来の方法から、大規模なテキストコーパスで事前に処理された言語モデルを使用する最先端の(SOTA)ディープニューラルネットワーク(DNN)アルゴリズムに移行し始めました。
このリポジトリには、Jupyterノートブックおよびユーティリティ機能として提供されるNLPシステムの構築の例とベストプラクティスが含まれています。リポジトリの焦点は、テキストと言語を含む問題に取り組んでいる研究者や実践者の間で人気のある最先端の方法と一般的なシナリオにあります。
このリポジトリの目標は、NLPアルゴリズム、ニューラルアーキテクチャ、および分散型機械学習システムの最近の進歩を活用する包括的なツールと例を構築することです。コンテンツは、顧客との過去および潜在的な将来のエンゲージメント、およびパートナー、研究者、およびオープンソースコミュニティとのコラボレーションに基づいています。
ビジネスの問題を数桁定義することからソリューションの開発までのエクスペリエンスを簡素化することにより、ツールが「市場までの時間」を大幅に削減できることを願っています。さらに、ノートブックの例はガイドラインとして機能し、さまざまな言語でのツールのベストプラクティスと使用を紹介します。
トランスファーラーニング、トランス、および深いアーキテクチャの時代において、当初のモデルは多くの現実世界の問題に対する統一されたソリューションを提供し、さまざまなタスクや言語を簡単に処理できると考えています。したがって、そのようなモデルは、接着剤やチームリーダーボードなどのいくつかのNLPベンチマークで最先端の結果を達成するため、そのようなモデルに優先順位を付けます。このモデルは、単純なテキスト分類から洗練されたインテリジェントチャットボットまで、多くのアプリケーションで使用できます。
特定の種類のNLP問題については、独自のモデルを構築する必要がない場合があることに注意してください。代わりに、カスタムコーディングや機械学習の専門知識を必要としない事前に構築または簡単にカスタマイズ可能なソリューションが存在します。これらがあなたの問題を十分に解決できるかどうかを評価することを強くお勧めします。これらのソリューションが適用できない場合、またはこれらのソリューションの精度が十分ではない場合、より複雑で時間のかかるカスタムアプローチに頼ることが必要になる場合があります。次の認知サービスは、一般的なNLPタスクに対処するための簡単なソリューションを提供します。
テキスト分析は、センチメント分析、キーフレーズ抽出、言語検出、名前付きエンティティ検出など、事前に訓練された休憩APIのセットです。これらのAPIは箱から出して機能し、機械学習に関する最小限の専門知識が必要ですが、カスタマイズ機能は限られています。
QNA MakerはクラウドベースのAPIサービスであり、既存のデータ上に会話型の質疑応答レイヤーを作成できます。それを使用して、FAQ、マニュアル、ドキュメントなど、半構造化されたコンテンツから質問と回答を抽出することにより、知識ベースを構築します。
言語理解は、ユーザーが提供するトレーニングセットを考慮して、レストAPIとしてモデルをトレーニングおよび展開するためのSaaSサービスです。意図的な分類と、例の発話を提供してラベル付けする簡単な手順を実行することにより、名前付きのエンティティ抽出を行うことができます。アクティブな学習をサポートするため、モデルは常に学習と改善を続けます。
このリポジトリでは、ターゲットオーディエンスには、コンテンツがソースのみであり、カスタムマシン学習モデリングをターゲットにするため、さまざまなレベルのNLP知識を持つデータサイエンティストと機械学習エンジニアが含まれています。提供されるユーティリティと例は、実際のNLP問題のソリューションアクセラレータであることを目的としています。
リポジトリは、NLP機能を3つの個別の次元に沿って拡張することを目指しています
一般的なタスクのエンドツーエンドの例と、テキスト分類、エンティティ認識などのテキスト分類などのシナリオのエンドツーエンドの例があることを目指しています。
サポートされている各シナリオの複数のモデルをサポートすることを目指しています。現在、トランスベースのモデルは、ほとんどのシナリオでサポートされています。私たちは、トランスフォーマーパッケージを抱きしめている顔からの統合に取り組んできました。
「エミリーベンダー」によって定められた多言語の原則を強く購読しています
リポジトリは、すべてのシナリオで英語以外の言語をサポートすることを目的としています。 Bertなどのリポジトリで使用される事前に訓練されたモデル、FastTextは、箱から出して100以上の言語をサポートしています。私たちの目標は、できるだけ多くの言語でエンドツーエンドの例を提供することです。この分野でのコミュニティの貢献をお勧めします。
以下は、リポジトリでカバーされている一般的に使用されるNLPシナリオの概要です。各シナリオは、モデルとリポジトリユーティリティのコアコードベースを使用する1つまたは複数のJupyterノートブックの例で実証されています。
| シナリオ | モデル | 説明 | 言語 |
|---|---|---|---|
| テキスト分類 | Bert、Distillbert、XLNet、Roberta、Albert、XLM | テキスト分類は、テキストコンテンツを指定したドキュメントのカテゴリまたはクラスの学習と予測の監視された学習方法です。 | 英語、中国語、ヒンディー語、アラビア語、ドイツ語、フランス語、日本語、スペイン語、オランダ語 |
| 名前付きエンティティ認識 | バート | 名前付きエンティティ認識(NER)は、テキストの単語または重要なフレーズを事前定義された関心のあるエンティティに分類するタスクです。 | 英語 |
| テキストの要約 | bertsumext バートスマブ Unilm(S2S-FT) ミニルム | テキストの要約は、入力テキストをテキストのより短い段落に要約する言語生成タスクです。 | 英語 |
| 含む | バート、xlnet、ロベルタ | テキストの誘惑は、テキストが仮説と一致するかどうかを判断するために、2つの自然言語テキスト、テキストと仮説の間のバイナリ関係を分類するタスクです。 | 英語 |
| 質問に答える | Bidaf、Bert、xlnet | 質問回答(QA)は、クエリに関連するパッセージが提供された、自然言語の特定のクエリに対して有効な回答を取得または生成するタスクです。 | 英語 |
| 文の類似性 | バート、ジェンセン | 文の類似性は、一対のテキストドキュメントを与えられた類似性スコアを計算するプロセスです。 | 英語 |
| 埋め込み | word2vec fastText グローブ | 埋め込みとは、単語またはテキストを、通常は低次元での連続ベクトル空間に変換するプロセスです。 | 英語 |
| 感情分析 | 依存関係パーサー グローブ | Azure MLおよびIntel NLP Architectを使用して、列車と使用の例を提供します。 | 英語 |
NLPの問題を解決しながら、事前に構築された認知サービスから始めることは常に良いことです。ニーズが事前に構築された認知サービスの範囲を超えており、カスタム機械学習方法を検索したい場合、このリポジトリは非常に便利です。開始するには、セットアップガイドに移動します。これには、環境と依存関係のセットアップ方法に関する指示がリストされています。
Azure Machine Learning Serviceは、クラウドが提供する大規模に、機械学習モデルのトレーニング、展開、自動化、および管理に使用されるクラウドサービスです。 AZUREMLは、さまざまなシナリオのノートブックに記載されており、大規模な自然言語システムの開発効率を高め、次のようなさまざまなAIモデル開発関連タスクの効率を高めます。
これらのノートブックを正常に実行するには、 Azureサブスクリプションが必要であるか、 Azureを無料で試すことができます。ノートブックで使用されている他のAzureサービスまたは製品が存在する場合があります。それらの紹介および/または参照は、ノートブック自体で提供されます。
オープンソースコミュニティがコンテンツに貢献し、最新のSOTAアルゴリズムを導入することを願っています。このプロジェクトは、貢献と提案を歓迎します。貢献する前に、貢献ガイドラインをご覧ください。
NLP-Recipesの最新リリースでテキスト要約ソリューションをブートストラップする
テキスト注釈はドッカノで簡単になりました
NLPリポジトリを使用してヒンディー語のテキストデータを分析するJumpStart
Azure Machine Learningを使用した自然言語処理ソリューションの開発をスピードアップする
以下は、NLPタスクに役立つと考えている関連リポジトリのリストです。
| リポジトリ | 説明 |
|---|---|
| トランス | 人気のある変圧器ベースのモデルの実装で顔を抱き締める素晴らしいPytorchライブラリ。私たちは彼らのパッケージをこのレポで広範囲に使用しており、彼らの努力に大いに感謝しています。 |
| Azure Machine Learning Notebooks | Azure Machine Learningを使用したMLおよびディープラーニングの例。 |
| azureml-bert | Azure Machine Learning Serviceを使用した、トレーニング前および微調整バートのエンドツーエンドのレシピ。 |
| 質量 | 質量:言語生成のためのトレーニング前のシーケンスへのマスクされたシーケンス。 |
| mt-dnn | 自然言語理解のためのマルチタスクディープニューラルネットワーク。 |
| ユニルム | 統一言語モデルの事前トレーニング。 |
| Dialogpt | ダイアログプ:会話対応の生成のための大規模生成事前トレーニング |
| 建てる | 支店 | 状態 |
|---|---|---|
| Linux CPU | マスター | |
| Linux CPU | ステージング | |
| Linux GPU | マスター | |
| Linux GPU | ステージング |