Industria: Desarrollo de software

Productos de JetBrains utilizados: PyCharm

Tamaño de la organización: 30+

País: Alemania

Scieneers

Scieneers es una empresa de TI integrada por 35 expertos en TI, datos y ciencia de datos que comparten la pasión por los datos y por extraer valor de ellos. Ofrecen servicios centrados en la ingeniería y la ciencia de datos para extraer información valiosa y maximizar el potencial de los datos.

“PyCharm tiene un conjunto único de funcionalidades en comparación con otros IDE. La más importante es su capacidad de refactorización fiable y completa. Otra característica única de PyCharm es su compatibilidad con configuraciones de ejecución avanzadas. Además, me gusta la «sensación de cabina» de PyCharm: es un espacio centralizado que me permite acceder rápidamente a todas las herramientas necesarias para mi trabajo.”

— Moritz Renftle, científico de datos, Scieneers GmbH

¿Podría presentarse y explicar a qué se dedica su empresa?

Estudié Ciencias Informáticas en la Universidad de Constanza y en el Instituto de Tecnología de Karlsruhe (KIT), con especialización en bases de datos y ciencia de datos. Me incorporé a Scieneers en 2022 y, desde entonces, he estado desarrollando e implementando soluciones de datos para empresas de diversos sectores. Mi trabajo requiere un amplio conjunto de habilidades que incluyen el análisis de datos, el desarrollo de modelos personalizados, la lectura de técnicas recientes de aprendizaje automático y la implementación de procesos de datos en la nube.

Scieneers refuerza los equipos de nuestros clientes o les ofrece nuestros equipos para diseñar y desarrollar productos de datos completos y llevarlos a producción. Además de nuestros clientes del sector empresarial y de la investigación, también apoyamos varios proyectos de sectores sin fines de lucro. Puede consultar varias muestras de nuestro trabajo en nuestro sitio web: https://www.scieneers.de.

¿Qué motivó la elección de PyCharm como su IDE principal?

En primer lugar, me gusta la «sensación de cabina» de PyCharm: es un espacio centralizado que me permite acceder rápidamente a todas las herramientas necesarias para mi trabajo. Entre ellas, un editor de código, un sistema de control de versiones, un terminal y un navegador de bases de datos. En comparación con el uso de estas herramientas en aplicaciones separadas, PyCharm funciona con menos fricciones y consume menos «energía cerebral» en los cambios de contexto.

Además, PyCharm tiene un conjunto único de funcionalidades en comparación con otros IDE. La más importante es su capacidad de refactorización fiable y completa. En comparación con otras herramientas, PyCharm realiza dichas refactorizaciones de forma muy fiable y garantiza que mi código existente siga funcionando.

Otra característica única de PyCharm es su compatibilidad con configuraciones de ejecución avanzadas. Por ejemplo, puedo establecer sin esfuerzo una configuración de ejecución que ejecute un script de Python de forma local como una tarea «Before launch» antes de ejecutar la aplicación principal en una máquina remota.

También me gusta la integración del intérprete de SSH remoto en PyCharm. El intérprete mediante SSH puede ser un poco difícil de configurar, en función de la configuración de red y otros factores. Pero una vez en marcha, funciona de forma muy fiable. Además, me encanta la posibilidad de depurar código en una máquina remota. Por ejemplo, es especialmente útil cuando entreno un modelo de aprendizaje automático en una máquina remota que tiene una GPU determinada que no puedo probar de forma local. También me encanta lo fácil que es ejecutar notebooks de Jupyter remotos mediante SSH en PyCharm. Por último, pero no menos importante, PyCharm me ayuda a prevenir cargas accidentales de código entre diferentes clientes especificando exactamente qué directorios cargar a qué máquina remota.

¿Qué desafíos le ha ayudado a superar PyCharm en su desarrollo?

PyCharm me ha ayudado a lo siguiente:

  • Reducir el cambio de contexto entre distintas aplicaciones y herramientas.
  • Realice refactorizaciones de forma rápida y fiable.
  • Encapsular fácilmente varios pasos de ejecución local o remota en una única configuración de ejecución.
  • Ejecutar y depurar código en máquinas remotas, conservando la privacidad de los datos.
  • Experimentar y crear prototipos con notebooks de Jupyter remotos.

¿Cuáles son algunos de los beneficios asociados específicamente con el uso de notebooks de Jupyter en PyCharm?

Estas son algunas de las funcionalidades que más me llamaron la atención mientras usaba notebooks de Jupyter en PyCharm:

  • Acceso a las refactorizaciones de PyCharm.
  • Extracción sin fricciones de código desde el notebook a un paquete separado.
  • Acceso al depurador de PyCharm desde las celdas del notebook.
  • La capacidad de ejecutar Jupyter en una máquina remota mediante un intérprete SSH.

¿Puede compartir un ejemplo en el que las herramientas de depuración de PyCharm fueron fundamentales para identificar y resolver incidencias en un proyecto de aprendizaje automático?

Tuvimos un error en un paso de preprocesamiento de nuestro proceso de aprendizaje automático que generó valores inverosímiles de nuestros modelos. Para depurar este problema, utilicé el depurador de PyCharm en una máquina GPU remota que ejecutaba el proceso de aprendizaje automático. Estábamos seguros de que el error se encontraba en nuestro propio código y no en una biblioteca externa. Por eso, durante la depuración, utilicé la función «step into my code» de PyCharm y omití cualquier llamada intermedia al código de la biblioteca. Pudimos localizar y solucionar el problema de forma eficaz estableciendo puntos de interrupción y trazando marcos de datos intermedios.

¿Podría comentar el rol de PyCharm en el escalado de modelos de aprendizaje automático?

PyCharm permite escalar y probar de forma realista los modelos de aprendizaje automático ejecutándolos de forma remota en una máquina con el mismo hardware que el entorno de implementación.

¿Ha utilizado ya o piensa utilizar alguna de las funcionalidades de AI Assistant de PyCharm?

Pienso probarlos en la primera oportunidad que tenga. Sería genial poder utilizar un modelo de aprendizaje automático local o uno autoalojado para la finalización de código mediante IA.

Contacto