PyCharm には他の IDE とは異なる固有の機能一式が備わっています。信頼性の高い包括的なリファクタリング機能はその中で最も重要な機能です。高度な実行構成をサポートしていることも PyCharm ならではの特徴です。作業に必要なすべてのツールが 1 箇所に集約され、すぐに使用できる PyCharm は「コックピット」のようで気に入っています。
— Moritz Renftle、Scieneers GmbH データサイエンティスト
私はコンスタンツ大学とカールスルーエ工科大学(KIT)でデータベースとデータサイエンスを中心にコンピューターサイエンスを学びました。 Scieneers には 2022 年に入社して以来、多様な部門の企業向けにソリューションを開発し、提供しています。仕事ではデータ分析、カスタムモデルの開発、最近の機械学習技術に関する資料の読み込み、クラウドでのデータパイプラインのデプロイを含む広範なスキルセットが要求されています。
Scieneers は完全なデータ製品の設計と開発を行って本番環境で稼働できるようにお客様のチームを強化するか、弊社のチームを派遣しています。ビジネスや研究分野のお客様の他に非営利部門のプロジェクトも多数サポートしています。弊社の多様な活動の一部は弊社ウェブサイト(https://www.scieneers.de)に掲載されています。
何よりもまず、PyCharm の「コックピット感覚」が気に入っています。作業に必要なすべてのツールが集約され、素早くアクセスできる空間であるということです。コードエディター、バージョン管理システム、ターミナル、データベースブラウザーが 1 箇所にまとまっているため、PyCharm ではそれぞれを個々のアプリケーションで使用する場合よりもコンテキストを切り替える手間が減り、それに費やされる「脳エネルギー」も少なくて済みます。
さらに、PyCharm には他の IDE とは異なる固有の機能一式が備わっています。信頼性の高い包括的なリファクタリング機能はその中で最も重要な機能です。PyCharm はそのようなリファクタリングを他のツールと比較して非常に高い信頼性で実行するため、既存コードの動作を確実に維持してくれます。
高度な実行構成をサポートしていることも PyCharm ならではの特徴です。たとえば、リモートマシンでメインのアプリケーションを実行する前の「Before launch」タスクとして Python スクリプトをローカルで実行する実行構成を簡単にセットアップできます。
PyCharm のリモート SSH インタープリター統合も気に入っています。ネットワーク設定やその他の要因によって SSH インタープリターのセットアップに多少苦労することもありますが、一度動き始めたらかなり確実に動作します。さらに、リモートマシンでコードをデバッグする機能も重宝しています。たとえば、ローカルではテストできない特定の GPU を搭載したリモートマシンで機械学習モデルをトレーニングする場合に特に役立ちます。また、PyCharm では SSH 経由でリモートの Jupyter ノートブックを簡単に実行できることにも感激しています。PyCharm ではどのディレクトリをどのリモートマシンにアップロードするのかを正確に指定できるため、異なる顧客間で誤ってコードをアップロードしてしまうのを防ぐことができます。
PyCharm によって以下が可能になりました。
私が PyCharm で Jupyter ノートブックを使用する際には以下の機能に注目しています。
ML パイプラインの前処理ステップにバグがあり、モデルからあり得ない値が得られたことがありました。この問題をデバッグするため、PyCharm のデバッガーを ML パイプラインを実行したリモート GPU マシンで使用しました。バグは外部ライブラリではなく、自分たちのコードにあるとかなり確信していたため、デバッグ中に PyCharm の「step into my code(コードへのステップイン)」機能を使用し、ライブラリコードの中間呼び出し部分を省略しました。ブレークポイントを設定して中間データフレームをプロットすることで、問題を効果的に追跡して修正することができました。
PyCharm ではデプロイ環境と同じハードウェアを使ったマシン上でリモートに ML モデルが実行されるため、モデルのスケーリングとテストを現実的に行えます。
機会があれば試そうと考えています。AI コード補完でローカルの ML モデルか自己ホスト型のモデルを使用できれば助かります。