Sources for Guides & Tutorials on Sustainable AI
Welcome to Guides & Tutorials! This is a collaborative space where we, the SustainAI group members share our insights, tutorials, and ideas to spark curiosity and foster dialogue. Here you’ll find a blend of practical how-tos, thought-provoking commentaries, and innovative approaches—all crafted to inspire new perspectives, and encourage the free exchange of knowledge. Dive in, share your thoughts, and join the conversation.
Large Language Models
A Step-by-Step Guide to Building Your First Agent with OpenAI’s Agent Builder - Souvik
If you’ve explored building AI agents, you know the process can feel like a complex puzzle. Until now, it often meant juggling fragmented tools — stitching together orchestration logic, building custom connectors, creating manual evaluation pipelines, and spending weeks on frontend work just to see your agent in action. That era of complexity is coming to an end.
This week, OpenAI introduced AgentKit, a complete set of tools designed to unify the entire lifecycle of building, deploying, and optimizing agents. AgentKit provides developers with a powerful, integrated toolkit to move from idea to production faster and more reliably. Read More
Which LLM model gives best value? A deep dive into Cost, Accuracy, and Latency for OpenAI, Gemini, Claude, etc. - Souvik
We live in a golden age of AI. Every few weeks, it seems a new, more powerful model is released by OpenAI, Google, Anthropic, or another major lab, each claiming state-of-the-art performance. For developers and product managers, this is both a blessing and a curse. With so many incredible options, how do you choose the right LLM model for your project?
The truth is a single “#1” ranking on a leaderboard doesn’t tell the whole story. The “best” model is rarely the one with the highest score — it’s the one that strikes the perfect balance for your specific needs. Every choice involves a negotiation within a critical “trade-off triangle”: Read More.
LangGraph Deep Dive: A Step-by-Step Guide to Building ReAct Agents and debugging with LangSmith - Souvik
The earliest wave of Large Language Model (LLM) applications was built on chains — simple, linear sequences of prompts and function calls. Chains worked well for straightforward tasks like summarization or Q&A, but they quickly showed their limits. Real-world problems often require agents that can reason over multiple steps, call tools, when necessary, recover from mistakes, and even incorporate human feedback. Linear pipelines weren’t designed for that level of complexity.
This is where the agentic paradigm emerged. Instead of a one-shot chain, agents run in a loop: they think, take an action, observe the result, and then decide what to do next. One of the most influential frameworks for this style of reasoning is ReAct (Reasoning + Acting) — a technique that encourages LLMs to interleave internal reasoning with external tool use. Read More.
A Definitive Guide to Vector Databases for RAG: A Hands-on Guide to FAISS with Python Code - Souvik
Ever tried asking a traditional database a fuzzy question like “What articles are semantically similar to this paragraph about quantum computing?” Yeah, good luck with that.
Traditional databases are great at matching exact values: dates, customer IDs, numeric ranges. But when it comes to meaning, they’re basically like that one friend who takes everything literally. If you want to search by “what something means” instead of “what something is”, you need something more powerful.
The Definitive Guide to Chunking Strategies for RAG and LLMs - Souvik
From Fixed-Size to Semantic and Hierarchical Splits — A Practical Guide to Structuring Text for Smarter AI Systems
Physics-informed Machine Learning (PIML)
Solving Differential Equations with Physics-Informed Neural Networks (PINNs): A mild introduction with Pytorch - Souvik
In science and engineering, partial differential equations (PDEs) are foundational tools used to describe a wide range of natural phenomena — from the vibrations of a guitar string to the diffusion of heat in a metal rod or the flow of fluids in porous media. Traditionally, solving these equations has required numerical methods such as finite difference or finite element techniques, which discretize the space and time domain into meshes and solve iteratively.
But with the rise of machine learning, a new idea emerged: what if we could use artificial neural networks (ANNs) to learn the solution of a PDE directly?
https://medium.com/@souvikat/solving-differential-equations-with-physics-informed-neural-networks-pinns-a-mild-introduction-5570634149b8
Machine Learning Strategies
A Practical Guide to Automatic Differentiation in Python: Operator Overloading from Scratch and other implementation strategies
Welcome back, gradient enthusiasts! If you caught my last article on Differentiation Techniques, you already know how crucial gradients are for optimizing machine learning models. [Link to First Article]. Today, we’re diving deeper into the fascinating world of Automatic Differentiation (AD) — the unsung hero that powers much of modern machine learning and deep learning.
So, what exactly is Automatic Differentiation? In simple terms, AD is a set of techniques that allows us to compute the derivatives of complex functions specified by computer programs with incredible precision and efficiency. Unlike numerical differentiation, which approximates derivatives and can be prone to errors, or symbolic differentiation, which can become unwieldy with complicated expressions, AD strikes the perfect balance by leveraging the exactness of symbolic methods without the associated complexity...
Continue to read: https://medium.com/@souvikat/a-practical-guide-to-automatic-differentiation-in-python-operator-overloading-from-scratch-and-6cb5393343db
Cracking the Gradient Code: Exploring Differentiation Techniques for Machine Learning - Souvik
When it comes to Machine Learning and other data-driven optimization techniques, the ultimate goal is often to optimize a loss function to find its minimum. This process is essential because it helps models learn by adjusting their parameters to minimize errors. Among the various methods available, Gradient Descent stands out as the most widely embraced approach for optimizing loss functions. But here’s the kicker — any gradient-based optimization method hinges on one crucial step: calculating those gradients first. It might sound obvious, but this fundamental computation is what drives the entire optimization process forward...
Nonlinear Parameter Identification Using Optimization Based Prediction Error Method - Souvik
In the world of dynamic system modeling, accurately identifying system parameters is essential for building models that not only represent real-world behaviors but also enable effective prediction, control, and optimization. In the previous article, we explored how optimization-based parameter identification, particularly using the Prediction Error Method (PEM), effectively handles linear systems, offering improvements over traditional techniques like Ordinary Least Squares (OLS). However, real-world systems are rarely purely linear. From mechanical oscillators to chemical reactors and biological networks, most systems exhibit nonlinear dynamics that demand more sophisticated identification approaches.
Nonlinear parameter identification introduces new layers of complexity that go beyond the challenges encountered in linear systems. While linear models benefit from well-defined cost landscapes and closed-form solutions, nonlinear models often involve complex cost functions riddled with multiple local minima, sensitivity to initial conditions, and increased computational demands. These challenges make parameter estimation in nonlinear systems a far more intricate task, where traditional optimization methods can fall short...
An Introduction to Linear Model Identification: Ordinary Least Squares (OLS) with Python
In the realm of dynamic systems modeling — particularly in engineering, control theory, and systems biology — the State Space Model provides a robust framework for analyzing how systems evolve over time. This approach enables a structured way to model complex systems using a set of linear equations that describe the behavior of internal states, inputs, and outputs over discrete time steps.
A special case of state space models is the Linear Time-Invariant (LTI) model, where the relationships between input and output remain constant over time. This makes the LTI model especially useful for systems that exhibit predictable, time-invariant behavior, which is common in many engineering applications.
The Linear Time Invariant State Space Model consists of three primary components...
Continue to read: https://medium.com/@souvikat/an-introduction-to-linear-model-identification-ordinary-least-squares-ols-with-python-4e358e70d642
Numerical Solutions of ODEs with Python: Euler, Runge Kutta and Beyond - Souvik
Solving Ordinary Differential Equations (ODEs) lies at the core of modeling dynamic systems in engineering. From predicting chemical reactions to simulating mechanical oscillations, numerical solutions to ODEs are crucial for understanding time-dependent processes. While some simple systems have closed-form solutions, most real-world scenarios — especially in chemical engineering — are too complex for analytical approaches. This is where numerical methods come in...
Continue to read: https://medium.com/@souvikat/numerical-solutions-of-odes-with-python-euler-runge-kutta-and-beyond-421d4926d1fd
