【51CTO.com クイック翻訳】 データ サイエンティストとして、私たちは時々自分たちの仕事を忘れてしまいます。私たちは主に開発者であり、次に研究者であり、そして最終的には数学者になるかもしれません。私たちの第一の責任は、バグのないソリューションを迅速に開発することです。 モデルを構築できるからといって、私たちが神であるわけではなく、くだらないコードを書く自由が与えられるわけでもありません。 最初から、私は多くの間違いを犯してきましたが、機械学習エンジニアリングで最も一般的なスキルは何だと思うかを明らかにしたいと思いました。これは現在業界で最も不足しているスキルでもあると思います。 私は彼らをソフトウェアを理解していないデータ サイエンティストと呼んでいます。なぜなら、彼らの多くはコンピューター サイエンスの正式なトレーニングを受けたエンジニアではないからです。それが私です。 優秀なデータ サイエンティストと優秀な機械学習エンジニアを雇わなければならない場合、私は後者を採用します。 1. 抽象クラスの書き方を学びます。 抽象クラスの記述を開始すると、コード ベースをはるかにクリーンにできる方法がわかります。同じメソッドとメソッド名が適用されます。多くの人が同じプロジェクトに取り組む場合、各人が異なるアプローチを取り始めます。これは深刻な混乱を引き起こすでしょう。
2. トップシードを獲得する。 実験の再現性は重要であり、種は敵です。種を大切にしてください。そうしないと、トレーニング/テスト データの分割が異なり、ニューラル ネットワークの重みの初期化も異なります。これにより、一貫性のない結果が生じる可能性があります。
3. 数行から始めます。 データが非常に大きく、プログラミングの後期段階(データのクリーニングやモデリングなど)にある場合は、毎回膨大なデータをロードしないように nrows を使用します。実際に全体を実行せずにコードをテストしたいだけの場合は、このトリックを使用します。 このトリックは、ローカル PC の構成がデータ サイズを処理するのに十分ではないが、Jupyter/VS code/Atom でローカル開発を行う場合に役立ちます。
4. 失敗を覚悟する(成熟した開発者の証)。 後で問題が発生する可能性があるため、データ内の NA を常に確認してください。現在のデータに NA が含まれていない場合でも、将来の再トレーニング サイクルで NA が表示されなくなるわけではありません。とにかく確認してください。
5. 処理の進行状況を表示します。 大量のデータを処理しているとき、どれくらいの時間がかかるか、またプロセスのどこにいるのかがわかれば、間違いなく安心できます。 方法 1 — tqdm
方法 2 — fastprogress
6. パンダは遅くなることがあります。 pandas を使用したことがあるなら、特に groupby 操作を実行するときに、それがどれほど遅くなることがあるかご存知でしょう。処理速度を上げるための「素晴らしい」解決策を見つけるために頭を悩ます必要はありません。コードを 1 行変更して modin を使用するだけです。
7. 関数の時間を計ります。 すべての機能が同じように作成されるわけではありません。 すべてのコードが正常であっても、素晴らしいコードを書いたことを意味するわけではありません。いくつかのソフト エラーは実際にコードの実行速度を低下させるため、そのエラーを見つける必要があります。このデコレータを使用して関数の時間を計測します。
8. クラウドにお金をかけないでください。 クラウド リソースを無駄にするエンジニアを好む人はいません。 一部のテストは数時間かかる場合があります。実験を追跡することは困難であり、クラウド インスタンスは使用されなくなるとシャットダウンされます。私自身もこの間違いを犯したことがありますし、インスタンスを何日も実行したままにしている人も見てきました。 実行の最後に関数を呼び出すだけで、問題は発生しません。 ただし、このアプローチを実装するには、メイン コードを try と use except でラップします。そうすることで、エラーが発生した場合にサーバーが実行を継続できない状態になります。はい、私もこの状況に対処したことがあります。 責任を持って二酸化炭素の排出をやめたほうがいいでしょう。
9. レポートを作成して保存します。 モデリングの特定の段階を過ぎると、すべての貴重な情報はエラーとメトリックの分析からのみ得られるようになります。自分自身と上司のために、適切にフォーマットされたレポートを作成して保存するようにしてください。 結局のところ、経営陣はレポートを読むのが大好きですよね?
10. 優れた API を作成します。 悪い結末を持つコードはすべて悪いです。 データのクリーニングとモデリングをうまく行っても、最終的には大きな混乱が生じることがあります。経験から、多くの人が適切な API、ドキュメント、サーバー構成の書き方を知らないことがわかりました。 以下は、負荷がそれほど高くない (例: 1000/分) 一般的な機械学習およびディープラーニングの展開に適したアプローチです。 Fastapi + uvicornの組み合わせを見てみましょう
4 つのワーカーを使用してデプロイするには、次のコマンドを実行します。負荷テストを通じてワーカーの数を最適化します。
原題: Python 開発者のための 10 の有用な機械学習プラクティス、著者: Pratik Bhavsar [51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください] |
<<: 都市の気質を改善し、住みやすい環境を守る。AIはガバナンスの閉ループを開く
>>: ファーウェイマシンビジョンが16の新製品を連続発売、数千億元相当のセキュリティの新たな戦場を切り開く
GenAI は 2024 年の最大のテクノロジー トレンドとなり、新しいツールのレビュー、インフラス...
先日開催されたX-Talkでは、米国工学アカデミーの外国人会員であり、XiaoIce会長でもあるハリ...
Business Insider によると、製造業ではモノのインターネット (IoT) と AI ...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
情報の海の中で、価値ある洞察を見つけることが重要です。最新の情報管理は、高度なテクノロジーと革新的な...
10月15日、記者はアリババが主催する2020 ACMマルチメディア(以下、ACM MM 2020)...
人生で、私たちは誰でもぼやけた画像に遭遇します。昔は、ぼやけた画像を復元することは不可能でした。PS...
夢の中で目覚めるという不思議な体験をしたことがありますか?その時点では、周囲に夢があるのを感知できる...
この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...
フレーム補間は、コンピューター ビジョンの分野における重要なタスクです。モデルは、指定された 2 つ...
最近、International Data Corporation (IDC) は、2020H1「W...
GPT や PaLM などの独自のソフトウェアが市場を支配していますが、多くの開発者は依然としてオー...