開発から生産まで: 機械学習に関する 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は中所得層に影響を与えるでしょうか?周連:移行の痛みに対処するには政策支援が必要

[[403918]]近年、経済の継続的な発展に伴い、わが国では中間所得層の総数が増加しています。現在...

Python データ分析の基礎: 外れ値の検出と処理

機械学習において、異常検出と処理は比較的小さな分野、または機械学習の副産物です。一般的な予測問題では...

OpenAIは低コストで開発者を引き付けるために大規模なアップデートを計画している

10月12日、外国メディアは関係者の話として、人工知能(AI)研究企業OpenAIが来月、開発者向け...

...

[詳細] 人工知能の生涯を10分で読む

AIは2016年以来最もホットなキーワードであり、それについてはさまざまな意見があります。バブルがは...

2030年までに、仕事の70%が人工知能に置き換えられるでしょう。子どもたちが競争力を維持できるよう、私たちはどう支援できるでしょうか?

10年前は多くの人が必死に五線譜を練習していましたが、今ではほとんど誰も使っていません。 5年前は...

...

...

Huggingfaceによる大規模モデル進化ガイド:GPT-4を完全に再現する必要はない

ビッグデータダイジェスト制作ChatGPTが人気を博した後、AIコミュニティは「百式戦争」を開始しま...

患者が人工知能から得られる恩恵

今日では、データの分析や解釈、問題解決の支援など、以前は人間が行っていたタスクを実行する高度なマシン...

...

企業は AIGC の生産性向上のメリットをどのように活用できるでしょうか?

全米経済研究所が実施した最近の調査によると、ChatGPT のような AIGC を導入すると、従業員...

...

人工知能は希少疾患を患う4億人の患者がより効果的な診断を受けるのに役立っている

[[284630]] ▲人工知能は数百万の遺伝子変異を高速で検索し、希少疾患の原因を特定することがで...