ゼファーネットのロゴ

機械学習の博士号を取得する前に習得したいXNUMXつのツール

日付:

機械学習の博士号を取得する前に習得したいXNUMXつのツール

新興企業を構築する場合でも、科学的な進歩を遂げる場合でも、これらのツールはMLパイプラインを次のレベルに引き上げます。


By アリアクセイ・ミハイリュク、AI科学者



著者による画像。

 

技術の進歩におけるその記念碑的な役割にもかかわらず、学界はしばしば産業の成果を知らない。 博士号の終わりまでに、学界では見過ごされてきたが、産業界では広く採用されている、無数の優れた補助ツールがあることに気づきました。

私の個人的な経験から、新しいツールの学習と統合は、特に現在の設定が非常に馴染みがあり、機能している場合、退屈で恐ろしく、元に戻してやる気をなくさせる可能性があることを知っています。

悪い習慣を落とすのは難しいかもしれません。 以下に概説するすべてのツールで、私は物事を行う方法が最適ではないことを受け入れなければなりませんでした。 しかし、その過程で、現時点では見られない結果が後の段階でXNUMX倍になることもあることを学びました。

以下では、アカデミックエンジニアとAIエンジニアの両方として、機械学習アプリケーションの研究と構築に非常に役立つことがわかったツールについて説明します。 ツールを目的別にXNUMXつのセクションにグループ化します。環境の分離、実験の追跡、コラボレーション、視覚化です。

隔離環境

 
 
機械学習は非常に急速に発展している分野であるため、一般的に使用されるパッケージは非常に頻繁に更新されます。 開発者の努力にもかかわらず、新しいバージョンは以前のバージョンと互換性がないことがよくあります。 そして、それは多くの痛みを引き起こします!

幸い、この問題を解決するためのツールがあります。

デッカー

 
 



著者による画像。

 

それらのNVIDIAドライバーは何回あなたに問題を引き起こしましたか? 博士号を取得している間、大学が管理するマシンが定期的に更新されていました。 一晩、予告なしに更新されました。 更新後の朝、私の作業のほとんどが最新のドライバーと互換性がないことに気付いたときの驚きを想像してみてください。

直接的な意味ではありませんが、dockerは、締め切りの不幸の前に、これらの特にストレスの多い状況からあなたを救います。

Dockerを使用すると、ソフトウェアをコンテナーと呼ばれるパッケージにラップできます。 コンテナは、独自のソフトウェア、ライブラリ、および構成ファイルを持つ分離されたユニットです。 簡略化したビューでは、コンテナは、外部と通信する手段を備えた、独立した独立した仮想オペレーティングシステムです。

Dockerには、すべてを自分で構成する方法に関する広範な知識がなくても、使用できる既製のコンテナーが多数あります。基本を始めるのは非常に簡単です。

クイックスタートをしたい人は、これをチェックしてください チュートリアル。 また、Amazon AWSは、機械学習にDockerを使用する理由と方法を説明する素晴らしい仕事をしました こちら.

コンダ

 
 
今日、誰かのコードを再利用することが新しい標準になりました。 誰かがgithubに便利なリポジトリを作成し、コードのクローンを作成し、自分で何も書かなくてもソリューションをインストールして取得します。

ただし、少し不便があります。 複数のプロジェクトを一緒に使用すると、パッケージ管理の問題が発生します。プロジェクトごとに異なるバージョンのパッケージが必要になります。

博士号の後半にコンダを発見できてうれしいです。 Condaは、パッケージおよび環境管理システムです。 複数の環境を作成し、パッケージとその依存関係をすばやくインストール、実行、更新できます。 分離された環境をすばやく切り替えることができ、プロジェクトが期待するパッケージとのみ相互作用することを常に確認できます。

コンダは独自のものを提供します チュートリアル 最初の環境を作成する方法について。

実験の実行、追跡、記録

 
 
応用分野で博士号を取得することはほぼ不可能であるXNUMXつの重要な柱は、厳密さと一貫性です。 また、機械学習モデルを使用しようとしたことがあれば、テストしたパラメーターを簡単に追跡できないことをご存知でしょう。 実験ノートでパラメータ追跡が行われていた当時、これらは他の分野でも非常に役立つと確信していますが、コンピュータサイエンスでは、それよりもはるかに強力なツールが利用できるようになりました。

重みとバイアス

 
 



一連の単純なメトリック(列車損失、学習率、平均検証損失)のwandbパネルのスナップショット。 システムパラメータも追跡できることに注意してください。 著者による画像。

 

experiment_res_1.csv
experiment_res_1_v2.csv
experiment_res_learning_rate_pt_5_v1.csv
...


これらの名前は見覚えがありますか? もしそうなら、あなたのモデル追跡スキルを強化する必要があります。 これは私の博士号の最初の年の私でした。 言い訳として、私はすべての実験の詳細とすべての関連ファイルを記録するスプレッドシートを持っていたと言わなければなりません。 ただし、それでも非常に複雑であり、パラメータロギングを変更するたびに、後処理スクリプトに必然的に影響を与えます。

重みとバイアス(W&B / wandb)は、私がかなり遅れて見つけた宝石のXNUMXつですが、現在はすべてのプロジェクトで使用されています。 わずか数行のコードで機械学習実験を追跡、比較、視覚化、最適化できます。 また、データセットを追跡することもできます。 多数のオプションがあるにもかかわらず、W&Bは非常に使いやすいWebインターフェイスで簡単にセットアップして使用できることがわかりました。

興味のある方は、クイックセットアップチュートリアルをご覧ください。 こちら.

MLフロー

 
 



著者による画像。

 

W&Bと同様に、MLFlowは、モデルがトレーニングされたコード、モデル、およびデータセットをログに記録するための機能を提供します。 データ、モデル、コードをログに記録する目的でのみ使用しましたが、それをはるかに超える機能を提供します。 これにより、実験、再現性、デプロイを含むMLライフサイクル全体を管理できます。

モデルにすばやく統合したい場合は、こちらをご覧ください チュートリアル。 データブリックスも非常に素晴らしいものを共有しています 説明 MLflowの。

画面

 
 
実験を一晩実行したままにして、マシンがスリープ状態にならないことを期待することが、博士号の前半の私の選択肢でした。 作業がリモートに移動したとき、私はsshセッションの中断を心配していました—コードは数時間実行され、ほぼ収束していました。

私はについて学びました screen 機能がかなり遅いので、朝の半分の裏付けの結果から自分自身を救うことができませんでした。 しかし、この場合、それは確かに決して遅くなるよりはましです。

画面 XNUMXつのsshセッションから複数のシェルセッションを起動して使用できます。 プロセスはで始まりました screen セッションから切り離して、後で再接続することができます。 そのため、セッションの終了や端末のクラッシュを心配することなく、実験をバックグラウンドで実行できます。

機能がまとめられています こちら.

コラボレーション

 
 
アカデミアは、効果的なチーム管理のための適切なメカニズムがないことで有名です。 ある程度、これは個人的な貢献に対する非常に厳しい要件によって正当化されます。 それにもかかわらず、機械学習の進歩のペースには共同の努力が必要です。 以下は、特にリモートワークの新しい領域で効果的なコミュニケーションに役立つXNUMXつのかなり基本的なツールです。

GitHubの

 
 
かなり基本的ですねアカデミアで人々がコードを追跡する方法のすべての恐怖を見た後、バージョン管理に精通していることがどれほど重要であるかを強調することはできません。 code_v1、code_v2という名前のフォルダーはもうありません。

Githubは、コードの追跡、マージ、レビューに非常に便利なフレームワークを提供します。 チームが構築しているときはいつでも 深い画質メトリック 各メンバーは、並行して機能する独自のコードブランチを持つことができます。 その後、ソリューションのさまざまな部分をマージできます。 誰かがバグを導入するたびに、作業バージョンに戻すのは非常に簡単です。 全体として、私はgitをこの記事で言及したすべてのツールの中で最も重要なものとしてランク付けしています。

このステップバイステップをチェックしてください ガイド すばやく起動する方法について。

Lucidchart

 
 
Lucidchartは最近私に紹介されましたが、その前は私が使用していました draw.io —図を作成するための非常にシンプルなインターフェイス。 LucidchartはXNUMX倍強力で、はるかに用途の広い機能を備えています。 その主な強みは、コラボレーションのための共有スペースと、図の横にメモを作成する機能です。 膨大な数のテンプレートを備えた巨大なオンラインホワイトボードを想像してみてください。

クイックスタートについては、これを確認してください チュートリアル Lucidchartによるページ。

可視化

 
 
多くの論文の提出、特に失敗したものは、プレゼンテーションが結果と同じくらい重要であることが多いことを私に教えてくれました。 普段あまり時間がないレビュアーが文章を理解できないと、すぐに却下されます。 急いで作った画像は印象が悪い。 ある人が私にこう言ったことがあります。「チャートを作成できない場合、どうすれば結果を信頼できますか?」 私はこの声明に同意しませんが、印象が重要であることに同意します。

Inkscapeの

 
 
写真は千の言葉の価値があります(実際には、 訂正84.1 言葉)。

Inkscapeは、ベクターグラフィックス用の無料ソフトウェアです。 実際、私は学部生のWeb開発コースでそれを使用する方法を教えられました。 しかし、私は博士号を取得している間だけ、それを完全に楽しむ方法を学びました—論文のためにそれらのきれいな写真に取り組んでいます。

Inkscapeが提供するすべての機能の中で特に価値のあるものは テキストテキスト 拡大。 このパッケージを使用すると、 ラテックス 数式をシームレスに画像に変換します。

チュートリアルは無数にありますが、基本的な機能については、Inkscapeチームが提供するものをお勧めします こちら.

ストリームライト

 
 
結果を紹介するための簡単なウェブサイトや、簡単な機械学習アプリケーションを作成する必要がありましたか? ほんの数行のPythonコードで、Streamlitを使用できます。

紙の補足資料には特に便利ですが、簡単に展開してプロジェクトのデモをクライアントに紹介する場合はさらに便利です。

クイックスタートアップについては、これをチェックしてください チュートリアル.

まとめ以降

 
 
業界に身を置きながら博士号を取得するのは簡単ではありませんでした。 しかし、それは私が博士号の初期段階で受けたかったいくつかの重要な教訓を私に教えてくれました。

最も重要な教訓は、学び、変化する好奇心と準備があなたの仕事の質に大きな影響を与える可能性があるということです。

以下は、各セクションで説明したチュートリアルの要約です。

デッカーチュートリアル
コンダチュートリアル
重みとバイアスチュートリアル
MLフローチュートリアル
GitHubのチュートリアル
画面チュートリアル
Inkscapeのチュートリアル
ストリームライトチュートリアル
Lucidchartチュートリアル

この記事が気に入ったら、友達と共有してください! 機械学習と画像処理のトピックの詳細を読むには、サブスクライブを押してください!

私は何かを逃したことがありますか? 私に直接メモ、コメント、またはメッセージを残すことを躊躇しないでください!

 
バイオ: アリアクセイ・ミハイリュク Computer Vision、Preference Aggregation、Natural Language Processingで機械学習アルゴリズムを研究、開発、展開、維持してきた確かな実績があります。

元の。 許可を得て転載。

関連する


PlatoAi。 Web3の再考。 増幅されたデータインテリジェンス。
アクセスするには、ここをクリックしてください。

出典:https://www.kdnuggets.com/2021/09/nine-tools-mastered-before-phd-machine-learning.html

スポット画像

最新のインテリジェンス

スポット画像