開発から生産まで: 機械学習に関する 7 つの実践的な提案

開発から生産まで: 機械学習に関する 7 つの実践的な提案

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discovery)から転載したものです。

私がスタートアップ企業で働き始めた主な理由はプロジェクトを遂行するためだったので、緊急のタスク、小規模なチーム、頻繁に変更されるプロジェクト要件、その他の些細な問題にもかかわらず、私は働き続けました。残念ながら、機械学習エンジニアとしての私の最初のプロジェクトは、始めるのがそれほど簡単ではありませんでした。

[[360184]]

それは大きなクライアントを抱えた大きなプロジェクトであり、大きな責任を伴うものでしたが、プロジェクトを担当するチームは小規模で、そのチームのメンバーの1人は私のような新人でした。プロジェクトリーダーが私に 12 個のモデルの処理を指示した日のことを、思い出すだけでも今でも怖くなります。さらに悪いことに、チームメンバーの一人が別のプロジェクトに異動になったため、彼の仕事量は私にかかってきました。

しかし、私はあなたに不満をぶちまけるためにここに来たわけではありません。このプロセスは非常に困難でしたが、著者は予想外の経験をたくさん得ることができました。

継続的な研究

私が犯す最大の間違いの 1 つは、特定のデータに最適であるという理由だけで、すべてのデータに特定の方法を使用することです。つまり、プロジェクトの開始時にのみ実験を行ったことになります。ショートカットを見つけてからは、データがどんどん大きくなっても、私はその方法を使い続けています。

著者はそれが当時最も効果的な方法であったと信じています。しかし、機械学習エンジニアとしては、システムを構築するだけでなく、そのパフォーマンスを継続的に改善する必要もあります。この事実を受け入れるのに一ヶ月かかりました。

私の元上司は、機械学習エンジニアはソフトウェアエンジニアであると同時に研究者でもあると言っていました。研究とソフトウェア エンジニアリングは同じではありません。システムが正常に構築され、バグがなかったとしても、研究はそこで終わりません。研究は終わりのないプロセスであり、目を離さずにいられる限り、常に新しい試みが見つかります。

モデルが学習している間、じっと座っていてはいけない

「モデルが実行中です!しばらく休ませてください!」データがどんどん大きくなるにつれて、使用される方法はますます複雑になります。完全なトレーニングプロセスには 2 ~ 3 時間かかります。

私はプログラムの実行中にこれを言い訳にして先延ばしにすることがよくありましたが、今では後悔しています。実行の終わり近くにプログラム エラーが発生したり、以前よりもスコアが下がったり、メモリ エラーが発生したり、最後まで気づかなかったその他の愚かなミスなど、いくつかの驚きがありました。

モデルが学習している間に、多くの意味のあることを行うことができます。

作業手順を事前に計画できます。プログラムが正常に実行され始めたら、別のアプローチを使用して次のプログラムに進みます。最初のプログラムの実行が終了すると、他のプログラムの実行を開始できます。新しいプログラムの実行中に、以前のプログラムの結果を評価および分析できます。したがって、以前のモデルに改善点が見つかった場合は、すぐに修正して再度実行することができます。

この時間は、上司や他のエンジニアと新しい方法やアイデアについて話し合うのにも最適です。つまり、時間を無駄にしないことです。

情報に基づいた選択を

場合によっては、異なる方法で得られた結果の違いがそれほど明白でないことがあります。この方法によって生成された結果が他の方法よりもわずかに優れている場合、この方法は最終的な選択として十分でしょうか? いいえ。多くの要素を考慮する必要があります。分析プロセスは、単一の観点から最善のアプローチを見つけることだけではありません。分析は長期的なプロセスです。

たとえば、F1 値がそれぞれ 0.95 と 0.96 である 2 つのスパム分類モデルがあるとします。 2 番目のモデルは精度が低く、再現率が高く、1 番目のモデルは精度と再現率のバランスが取れています。

この場合、スパムの分類をより適切に処理するため、最初のモデルの方が 2 番目のモデルよりも優れています。 2 番目のモデルでは、通常のドキュメントがスパムとして分類される可能性が高くなるため、スパムではないドキュメントがスパムとして分類される可能性が高くなり、これは非常に悪いことです。

考慮すべき他の重要な問題は、出力に関連する問題です。場合によっては、リソースと時間が限られている場合は、シンプルなモデルを選択すると役立ちます。これは、モデルのパフォーマンスが依然として良好であり、より複雑なモデルとそれほど変わらないことを前提としています。

データを混同しない

データは、モデルのパフォーマンスに影響を与える上で明らかに最も重要です。したがって、プロジェクトの開始時に、抽出する情報の種類、注釈のガイドライン、さまざまなデータ カテゴリ間のバランス、要件に応じたその他の重要な考慮事項など、詳細なデータセットを綿密に確立することが不可欠です。

特に NLP モデルの場合、アノテーターを使用してデータセットを構築する場合は、技術的知識と言語的知識の両方が同期していることを確認する必要があります。言語学者は、特定の注釈方法が既存のモデルで実行可能かどうか理解できない場合があります。同様に、エンジニアも言語を理解していないことがあります。

データが多ければ多いほど良いというわけではないことに注意することが重要です。どれだけ多くのデータをトレーニングしても、実際の状況をすべて効果的に反映できなければ無駄になってしまいます。さらに、データラベルの不一致も大きな問題です。

さらに、特にデータが大きくなると、トレーニング データ、検証データ、テスト データの構造と割合は各実験で同じである必要があります。モデルのパフォーマンスを確保するには、ケース タイプの分布も考慮する必要があります。トレーニング データを追加した後、モデルのパフォーマンスを比較するのに役立つ専用のテスト データがあると便利です。

ステップを接続する

エンドツーエンドのシステムを構築できることは、機械学習エンジニアとして必須のもう 1 つの重要なスキルです。さらに重要なのは、複数のモデルを同時に処理する場合、パイプラインを使用する方がはるかに便利だということです。データセットの読み込み、前処理と特徴の抽出、モデルのトレーニングと評価、予測の実行はすべて、単一の命令に簡素化できます。

一度で満足のいく結果が得られると期待しないでください。また、何かを長期間繰り返して行うことはストレスになることもあります。したがって、時間を節約し、ストレスを軽減するために、機械学習ワークフローを自動化することが重要です。

その他のフレームワークとツール

何か問題が起きると怒鳴られることもあります。システムを本番環境にデプロイする際にエラーが発生し、私は再びフラストレーションを感じました。したがって、展開に使用できるいくつかの実用的なフレームワークと効果的なツールを理解する必要があります。これまでに使用したフレームワークやツールをいくつか比較し、ニーズに応じて最も適したものを選択できます。

私にとって、Docker はデプロイメントにおいて非常に重要です。コンテナ内に複数のモジュールをデプロイするのに役立ちます。さらに、Tensorflow Serving も非常に使いやすく、トレーニング済みのモデルを予測リクエストに簡単に適用できます。

誰にでも理解できるように

自分自身のためだけでなく、他の人のためにもドキュメントを作成してください。他のエンジニアが実験を続けたい場合、または単にあなたのプログラムを使いたい場合、あなたが作成したドキュメントが役に立つでしょう。ドキュメントがあなたの分野以外の人にも読まれ、理解されることができれば、さらに良いでしょう。

優れたドキュメントには通常、ハイパーパラメータ設定、エポック、メソッド、データ、スコアなどの情報が含まれています。さらに、最初にコード全体を読まなくてもプログラムを実行するための自動スクリプトを他のエンジニアに提供することは役立ちます。

確かに、まだ学ぶべきことがたくさんあります。しかし、理解すべき最も重要なことは、失敗を恐れないことです。なぜなら、研究と実験自体が、試行、失敗、そして再試行のプロセスだからです。

<<:  調査レポート:2021年にAI機能を導入する企業が増加

>>:  データサイエンティストになりたいですか?機械学習を最初のコースとして受講しないでください

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

AIがサプライチェーンと物流に与える影響

1. サプライチェーンにおける人工知能の応用テクノロジーの変革の可能性のため、多くの業界で AI の...

人工知能は前例のないキャリア革命をもたらすだろう

最近、サンフランシスコでEatsaというアメリカンレストランが人気になっています! [[203610...

クラウドがチャットボットの体験をどのように変えるか

チャットボットの無限ループや同じ質問の繰り返しにイライラしていませんか? これは顧客にとってよくある...

データから洞察まで、IBMは企業の人工知能への取り組みを加速します

[51CTO.com からのオリジナル記事] インテリジェンス + の時代では、データは企業の中核資...

自然言語処理はビジネスに革命をもたらす

顧客対応チャットボットの強化から契約コミットメントの追跡、会議の議事録の最大限の活用まで、自然言語処...

OpenAI DALL·E 3が登場、ChatGPTと統合、生画像の効果は素晴らしい

ついにOpenAIの画像処理AIツール「DALL-Eシリーズ」が最新バージョン「DALL・E 3」に...

Google が 13GB の 3D スキャン データセットを公開: 17 のカテゴリ、1,030 個の家庭用品

近年、ディープラーニング技術によりコンピュータービジョンやロボット工学の分野で多くの進歩が遂げられて...

人工知能の3つの柱:アルゴリズム、計算能力、データ

AlphaGoとイ・セドルの世紀のマンマシン対決で、ついにAlphaGoが勝利した。では、人工知能の...

...

自分のIQに挑戦してみませんか? 10 種類の機械学習アルゴリズムを理解してデータ サイエンティストになろう

データ サイエンティストになりたいですか? 十分な知識と新しいことに対する好奇心が必要です。このため...

このアルゴリズムに関する優れた本を読めば、AIを本当に理解できる

[[240202]]新しい技術を学ぶとき、多くの人は公式ドキュメントを読み、ビデオチュートリアルやデ...

人工知能の新時代が近づいています。従来の産業の従事者はどこへ向かうのでしょうか?

世間の好むと好まざるとにかかわらず、人工知能の新しい時代が静かに到来した。しかし、人工知能が本格的に...

コンピューティングパワーのコストが急激に上昇したため、AIスタートアップがGoogleやMicrosoftなどの大手に挑戦することが難しくなった。

2月20日のニュースによると、コンピューティングコストが急騰しているため、人工知能業界の新興企業は...

ディープラーニングを理解するには、より低い次元からアプローチするべきでしょうか、それともより高い次元で考えるべきでしょうか?

今日のトピックは、複数選択問題から始めましょう。ニューラルネットワークとは何ですか?次の説明のうち正...

...