【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の新製品を連続発売、数千億元相当のセキュリティの新たな戦場を切り開く
百度は4月28日、「世界に知恵を、未来に人材を育成」をテーマに百度技術研究所の開所式を開催し、もとも...
全体像を捉えるモデルに関して言えば、Stability AI が 2022 年にリリースした Sta...
[[235638]]人工知能は、誰もが「データ サイエンティスト」になるという、2、3 年前のビッ...
人工知能 (AI) と機械学習 (ML) は、職場でも家庭でも、私たちの生活に欠かせないものになりつ...
パーソナライズされたサービスが大きなメリットをもたらすことは間違いありません。うまく行けば、投資収益...
長すぎて読めないこの論文では、新しいタスクである方向リモートセンシング画像セグメンテーション (RR...
ビッグデータを活用する方法を学ぶには、新しく開発されたソフトウェアである Salesforce Ei...
[PConline News] ジャカルタアジア競技大会が閉幕し、アジア競技大会は正式に杭州タイムに...
英国の雑誌「ネイチャー」は26日、ロボット工学の最新成果を発表した。ロボットを動かすための重要な部品...
2008 年の金融危機後、都市化とサービス提供に対する新たなアプローチが世界中で定着し始めました。テ...
音声テキスト変換(STT)システムは、話した言葉をテキストに変換できる方法です。私たちがよく使うWe...
自動運転がどれだけ遠い未来の話なのか議論されている中、自動運転の旅客バス、アルファバス・スマートバス...