開発から生産まで: 機械学習に関する 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 になる?

人工知能は私たちの日常生活にますます大きな影響を与えており、研究分野に革命をもたらしています。 ET...

金融を専攻する学生は人工知能をどのように学ぶべきでしょうか?

[[209094]]大学時代の専攻は自動制御で、当時は人工知能の冬でした。ある日、ニューラルネット...

Golang と OpenCV ライブラリ: 顔認識を実装するには?

Go 言語で顔認識を実装するには、通常、OpenCV ライブラリを使用する必要があります。 Go ...

機械学習の人気のトレンドの概要

Google トレンドを使ったことがありますか? かなり便利です。キーワードをいくつか入力すると、G...

顔認識技術の倫理原則は何ですか?

顔認識技術がさまざまな分野で持つ大きな可能性は、ほとんど想像できないほどです。ただし、最も洗練された...

知能の時代に、人工知能はこれらの歴史上の人物を復元し、AIの現実的な技術を完全に実証しました

Nathan Shipley は、サンフランシスコを拠点とするテクノロジー ディレクター、クリエイテ...

中関村科学技術の張傑氏との対話:大規模モデルを実装するには従うべき「テクニック」がある

ゲスト | 張潔インタビュー | 張小南編集者 | 徐潔成制作:51CTO テクノロジースタック(W...

「何千人もの人々の何千もの顔」を解読し、ユーザーのポートレートを深く解釈する方法

[[201075]]ユーザー ポートレートの概念は非常に人気があります。多くの企業が「ユーザー ポー...

SAPはイノベーションで顧客の成功を支援し、AI時代のデータ主導のビジネス変革の未来を形作ります

SAP は、AI 時代において顧客がデータの潜在能力を最大限に活用し、より深い洞察、より速い成長、よ...

...

セキュリティにおける機械学習の 5 つの優れた使用例

機械学習は、企業が直面するセキュリティ上の脅威をより深く理解し、従業員がより価値のある戦略的タスクに...

500以上の研究と50以上のモデルを網羅したコードビッグモデルレビューがここにあります

BERT や GPT などの事前トレーニング済みのトランスフォーマーの登場により、言語モデリングは近...

新しい調査によると、アメリカ人の48%は自動運転車に乗りたくないと考えている。

自動運転の開発は本当に難しいです。この困難は技術的な難しさだけでなく、人々の直感的な不信感によっても...