PINA  by PINA-org

Accelerating Scientific Machine Learning development

Created 4 years ago
781 stars

Top 44.0% on SourcePulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

<2-3 sentences summarising what the project addresses and solves, the target audience, and the benefit.> PINA is an open-source Python library designed to simplify and accelerate the development of Scientific Machine Learning (SciML) solutions, including Physics-Informed Neural Networks (PINNs) and Neural Operators. It targets researchers and engineers, offering a flexible and scalable framework for complex modeling tasks.

How It Works

PINA employs a modular architecture built on PyTorch and PyTorch Geometric, facilitating easy component swapping and extension. It structures complex SciML workflows into a clear four-step pipeline: defining problems and constraints via the Problem API, designing neural network models with the Model API, selecting or building appropriate solvers from the Solver API, and finally training models using the Trainer API, which is powered by PyTorch Lightning. This design emphasizes composable abstractions, such as lightweight, single-responsibility mixins for preprocessing, forward passes, and postprocessing, enabling both high-level abstraction for rapid prototyping and granular control for expert users, ensuring efficient experimentation and customization.

Quick Start & Requirements

Install the stable release with pip install "pina-mathlab". Development installations require cloning the repository and running pip install .. Additional dependencies for development, tests, or tutorials can be installed via pip install "pina-mathlab[extras]". GPU acceleration is recommended for training. Official tutorials are available for deeper dives.

Highlighted Details

  • AI Agents: Version 0.3.2 introduced AI agents that guide users through the PINA workflow via natural conversation, assisting with problem setup, model/solver selection, and training configuration.
  • Modular Mixin Architecture: Internals were redesigned around lightweight, single-responsibility mixins for composable components like preprocessing, forward passes, and postprocessing, with residual computation and loss aggregation clearly separated.
  • Advanced Solvers & Conditions: Includes new autoregressive and multi-model solvers (v0.3), alongside refactored, solver-agnostic conditions. Dedicated support for time-dependent problems and graph time series conditions is also provided.
  • KAN Support: Native integration with Kolmogorov–Arnold Networks (KANs), featuring fully vectorized spline basis and analytical derivatives, is available.

Maintenance & Community

The project encourages community contributions, pointing to good-first-issue issues and a Contributing Guide. While specific community channels like Discord or Slack are not detailed, the project actively seeks collaboration.

Licensing & Compatibility

The license type is not explicitly stated in the provided README content. PINA is built on PyTorch and PyTorch Geometric, ensuring compatibility with their ecosystems.

Limitations & Caveats

No specific limitations, alpha status, or known bugs are detailed in the provided README content. The AI agent features, being recent additions (v0.3.2), may be subject to ongoing development.

Health Check
Last Commit

3 days ago

Responsiveness

Inactive

Pull Requests (30d)
4
Issues (30d)
2
Star History
14 stars in the last 30 days

Explore Similar Projects

Starred by Aravind Srinivas Aravind Srinivas(Cofounder of Perplexity), Li Jiang Li Jiang(Coauthor of AutoGen; Engineer at Microsoft), and
6 more.

numpy-ml by ddbourgin

0%
16k
ML algorithms implemented in NumPy
Created 7 years ago
Updated 2 years ago
Feedback? Help us improve.