この記事は公開アカウント「Reading Core Technique」(ID: AI_Discovery)から転載したものです。 データ サイエンスに興味がある方なら、このワークフローに馴染みがあるかもしれません。プロジェクトを開始するには、まず Jupyter ノートブックを実行し、次に Python コードの記述、複雑な分析の実行、さらにはモデルのトレーニングを行います。関数、クラス、グラフ、ログなどによりノートブック ファイルのサイズが大きくなると、目の前に巨大なコード ブロックが現れることがあります。運が良ければ、すべて順調に進むでしょう。じゃああなたは本当にすごいですね!
ただし、Jupyter ノートブックには、コーディングを悪夢に変える可能性のある重大な落とし穴がいくつか潜んでいます。これがどのように起こるのかを見て、それを防ぐための適切なコーディング方法について説明しましょう。 Jupyter Notebook の問題 Jupyter プロトタイピングを次のレベルに引き上げたい場合、期待どおりにいかないことがよくあります。以下は、このツールを使用しているときに私が遭遇した、皆さんもよくご存知の状況の一部です。
その結果、チームのコラボレーションは非効率かつ不器用なものとなり、チームメンバーは電子メールや Slack 経由でコード スニペットやノートブックを交換し始め、以前のコード バージョンへのロールバックは悪夢となり、ファイルの整理は乱雑になり始めます。適切なバージョン管理を行わずに Jupyter ノートブックを 2 ~ 3 週間使用した後、プロジェクトでよく見られるのは次のようになります。
Jupyter ノートブックは、探索や迅速なプロトタイピングに最適です。これらは、再利用性や実稼働での使用を目的として設計されたものではありません。 Jupyter ノートブックを使用してデータ処理パイプラインを開発する場合、最良のシナリオは、セルが実行される順序どおりに、ラップトップまたは VM 上でコードが線形かつ同期的に実行されることです。 しかし、これは、より複雑な環境、たとえば、より大きな入力データセット、他の非同期並列タスク、またはより少ない割り当てリソースでコードがどのように動作するかについては何も述べていません。実際には、ノートブックの動作は予測できない場合があるため、テストするのは困難です。
はい、文句はもう十分です。私は Jupyter がとても気に入っており、デザイン作業に非常に役立つと思います。小規模なプロジェクトを立ち上げたり、アイデアのプロトタイプを素早く作成したりするためにこれを使用することもできますが、ソフトウェア エンジニアリングの原則に従う必要があります。データ サイエンティストがノートブックを使用するときにこれらの原則が見落とされることがあるので、いくつか確認してみましょう。 コードを再び素晴らしいものにするためのヒント これらのヒントは、さまざまなプロジェクト、私が参加したミートアップ、および過去一緒に働いたソフトウェア エンジニアやアーキテクトとのディスカッションからまとめたものです。以下では、ノートブックではなく Python スクリプトを記述していることを前提としていることに注意してください。 1. コードを整理する コード品質の最も重要な側面は明確さです。明確で読みやすいコードは、コラボレーションと保守性にとって不可欠です。これを行うと、より簡潔なコードが得られます。
2. コードをモジュール化する 同じプロジェクトまたは他のプロジェクトで再利用できるものを構築し始めるときは、コードを論理的な関数とモジュールに整理する必要があります。これにより、組織化と保守性が向上します。 たとえば、NLP プロジェクトに取り組んでいて、テキスト データを処理するためのさまざまな処理関数 (トークン化、URL の削除、単語の変更など) が必要になる場合があります。これらすべてのユニットを text_processing.py という Python モジュールに入れて、そこからインポートすることで、メイン プログラムをより軽量にすることができます。 モジュールコードを書く際のヒントをいくつか紹介します。
3. コードをリファクタリングする リファクタリングは、コードの機能を変えずにコードの内部構造を再編成することを目的としており、通常は動作中の(ただしまだ完全には編成されていない)バージョンのコードに対して実行されます。重複する機能を排除し、ファイルを再構築し、抽象化を追加するのに役立ちます。 4. コード効率を向上させる 実行速度が速く、メモリとストレージ容量の消費量が少ない効率的なコードを書くことは、ソフトウェア開発におけるもう 1 つの重要なスキルです。効率的なコードを書くには何年もの経験が必要ですが、コードが遅いかどうかを判断し、どのように高速化するかを判断するのに役立つヒントをいくつか紹介します。
5. GITまたはその他のバージョン管理システムを使用する GIT + Github を使用することで、コーディング スキルが向上し、プロジェクトをより適切に整理できるようになりました。友人や同僚と協力して使用していたため、これまでは従っていなかった基準に従うことになりました。
データ サイエンスでもソフトウェア開発でも、バージョン管理システムを使用すると多くの利点があります。
6. コードをテストする 一連の操作を実行するデータ パイプラインを構築する場合、設計どおりに実行されることを確認する 1 つの方法は、予想される動作をチェックするテストを作成することです。テストは、関数の出力形状や期待値を確認するのと同じくらい簡単です。 関数とモジュールのテストを記述することには多くの利点があります。
7. ログを使用する コードの最初のバージョンを実行したら、各ステップを監視して、何が起こっているかを把握し、進行状況を追跡し、エラーを検出する必要があります。ログ記録を使用できます。ログを効果的に使用するためのヒントをいくつか紹介します。
コードの悪夢に別れを告げて、これらのヒントを学びましょう。 |
<<: プログラム可能な磁気駆動ソフトロボットが登場しました!科学サブジャーナル:この原理は19世紀後半に提案されました
>>: 重要なポイントを強調します。最大2億元の支援、AIイノベーション開発パイロットゾーンの5つの重点政策を理解する
「今夜の予定は全部キャンセル!」多くのAI開発者は寝ないことを決意しました。最初のオープンソース M...
無線通信ネットワークの発展に伴い、今後のネットワークは周波数帯域やネットワーク構成の面でより複雑化し...
人形アニメーションの制作は、クリエイターの手描きに頼るアニメーションと比べると、非常に手間のかかる作...
7月16日、OpenAIが開発した人工知能チャットボット「ChatGPT」は、ユーザーと自然言語で会...
現在、JavaScript および TypeScript リポジトリで開発およびテストが行われて...
本文を始める前に、写真を見てみましょう。下の図では、写真の右半分に豊富な情報と明確な構造が表れている...
アリババAIは、常識QA分野の権威あるデータセットであるCommonsenseQAで新たな世界記録を...
6月29日のニュースによると、新たな研究によると、人間が書いたツイートよりも、人工知能の言語モデルに...
データの問題は、企業の AI プロジェクトが意図した目標を達成できない主な理由です。しかし、企業が失...
Appleの春のカンファレンスまで残り4日となりました。カラフルなAR招待状が届きました。これはク...