開発から生産まで: 機械学習に関する 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機能を導入する企業が増加

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

ブログ    
ブログ    
ブログ    

推薦する

顔認識のゴッドファーザー、李自青氏:技術革新が業界の未来を力づける

NVIDIA の GTC CHINA 2016 テクノロジー カンファレンスでは、数多くの業界リーダ...

...

...

IoTとAIを活用した依存症治療

IoT によって促進される相互接続性と AI の学習機能は、幅広い問題を解決する可能性を示しています...

2024年の会話型AIの商用利用ガイド

会話型 AI と認知機能を現代のビジネス戦略に統合することは、特にそれが顧客体験をどのように変革する...

機械学習とデータサイエンスのための最も人気のある Python ライブラリ トップ 10

2018 年は人工知能と機械学習が急速に発展する年となるでしょう。一部の専門家は、Python は...

半導体市場における人工知能の可能性と重要性

人工知能プロセッサは世界の半導体産業を活性化させており、少なくとも1つの市場調査会社は、AIチップの...

チャットボットのさまざまな種類について学ぶ

チャットボットの種類は、提供されるさまざまな機能と応答に使用する方法によって決まります。チャットボッ...

顔認識技術の応用における認知的誤解

[[286435]]カメラはどこにでもあり、顔認識は生活のほぼあらゆる場面で使用されています。どのよ...

Nvidia、世界最速のAIスーパーコンピュータがイタリアにやってくると発表

エヌビディアは木曜日、同社の高速コンピューティングプラットフォームを使用して、世界最速のAIスーパー...

BEV におけるデータセット間レーダーカメラ融合に関する実験的研究

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

1,000元の予算で半日のトレーニングを実施し、その効果は主流の大型モデル、オープンソース、市販の中国製LLaMA-2に匹敵する。

LLaMA-1 と比較して、LLaMA-2 はより高品質のコーパスを導入し、大幅なパフォーマンスの...

李碩:AIは産業知能の波を促進する

2020年12月29日、2020年産業インターネットイノベーション大会(第4回)が盛大に開幕しました...

...