Search Blogs

Showing posts with label Thinking Out loud. Show all posts
Showing posts with label Thinking Out loud. Show all posts

Sunday, August 9, 2026

My Intellectual Sehnsucht

During my casual reading on other science blogs this weekend, I came across Martin Schwartz's short essay "The importance of stupidity in scientific research" [1] and immediately felt like I was reading about my own thoughts and feelings at times. By Sehnsucht1 here I just mean that bittersweet itch to understand something while feeling incompetent the whole way through. I feel stupid a lot when I work on technical or scientific challenges. Plenty of times I've felt discouraged or demotivated, but I keep going because I'm fascinated and I want to know, uncover, and solve problems, even if I have no idea how, or even if I'm completely naive to the field.

Figure 1. Journal of Cell Science page for Schwartz 2008

Science makes me feel stupid too. It's just that I've gotten used to it. So used to it, in fact, that I actively seek out new opportunities to feel stupid.

That is pretty much how I've felt my entire life. The difference is I didn't go into science or math because I was necessarily "good" at them, but rather because of my deep curiosity and need for understanding.

Throughout my education and career I've wandered into domains of science and engineering that I have no formal training in and took the mindset that I can kind of figure things out as I go. This is both exciting and demoralizing at times. I will say though that with emergence of AI tooling for research and engineering tasks, the feeling of incompetence is not as pronounced as it used to be.

I like Schwartz's framing of productive stupidity, though I'd tweak the wording a bit. The useful version, for me, is informational naivety, not bad judgment and not performance ignorance or skipping foundations. It's that you lack the context or domain knowledge, so you feel out of place. Sometimes that shows up as hesitation about what to do next. Sometimes it shows up as being overly excited about the impact, or overconfident that you can pull off something that is highly complex and a huge lift. It is probably true that everyone sits in this state at some point. Either you don't know that you don't know, or you think you know because nothing has proven you wrong yet. That kind of gap is what research actually lives in.

... if we don't feel stupid it means we're not really trying. ... Productive stupidity means being ignorant by choice.

The quote lands for me because the useful move is choosing the hard questions anyway, then converting that missing context into something workable as you go. Embracing the risk of failing is part of that, which I do a lot. Failing because you do not know is often how you end up knowing something later. It is a fine line, though, between usefully ignorant and just being a buffoon.

I think that is also why I was particularly open to research and remained persistent, whether or not I was actually good at the hypothesis generation, planning, execution, data analysis, and conclusions. Those are harder to quantify and I'm not sure I am even actually any good at those things. I try to be careful and principled, but it is hard because research and development, in my view, are like a river. You start cleanly at point A with all your provisions and try to get to point B as intact as possible, but along the way you hit confluences, bifurcations, rapids, waterfalls, and shallows that break things, make you lose stuff, and forget where the final destination is. Research is very much like that!

The point is I enjoy research because I don't treat it like a homework or test problem. A pattern I've seen is people treating it as if there is some generally understood answer and the goal is to show your work toward that known answer, or to state a hypothesis and just assume you were always going to affirm the premise. The truth is most research questions or hypotheses are either poorly framed or most likely not going to be answered cleanly ... this isn't to say thats a bad thing its just the typical way things are actually done. I would say that the culumnation of your research endeavor can often be stated in some three sentences or so:

We thought this was a good question or idea. We couldn't do the experiment or research as we thought, so our hypothesis couldn't be tested. But here is what we found though.

I agree with Schwartz that "productively stupid" is a useful framing if you want to keep moving in R&D. For me it's mostly about being willing to sit in ignorance long enough to turn it into knowledge. That is my provisional stance anyway ... get comfortable being naive without turning it into an excuse or acting like a buffoon.

Footnotes


  1. Sehnsucht is a German compound of sehnen (to yearn) and Sucht (craving, obsession). It is a bittersweet longing for something elusive. I'm using it here for how eager I am to solve challenges while dealing with the recurring sense of incompetence along the way. ↩

References

[1] M.A. Schwartz, The importance of stupidity in scientific research, Journal of Cell Science. 121 (2008) 1771--1771. https://doi.org/10.1242/jcs.033340.

Reuse and Attribution

Saturday, January 17, 2026

Origins of Morality

Note to Reader

This post discusses views on morality and philosophy that some may find personally challenging. Its best to read as an open discussion and not as a challenge to the reader. Additionally, I'm not formally trained at all in any of these topics and the post was drafted approximately 2 years ago and represents my thinking at that time.

Sometimes I think about life and society in ways that make me really think about deep philosophical questions. One such topic is the origins of morality. A while back (~2 years or so) I had an intriguing discussion with a family member about the origins of morality. The seed for the discussion was the ongoing conflicts in the world and how different groups of people view what is "right" and what is "wrong".

So what was the take? Well, my family member posited that morality must be absolute for humanity to continue to exist. I take the contrary view that morality is subjective (i.e., relative) in all circumstances.

Before moving forward, I need to define what is meant by moral absolutism and moral relativism. You can of course get more details on the exact topic by going through the reference links, but let me first start with moral absolutism.

Moral Absolutism

The main guiding feature of moral absolutism is that certain actions are intrinsically right or wrong, regardless of context or consequences. This means there should be, at minimum, one principle that ought never be violated. An example is unjustified killing of a person. Here the "unjustified" refers to an absolute understanding of what constitutes an unjust cause.

My objection to this is there must be some seed of comprehension that leads to this "absolute understanding", but where does one derive from first principles the "absolute" nature of the morality? It is unclear that such a process is possible without some faith, credence, or belief in a "higher power" or a governing entity. This, however, leads to a dilemma because it is not provable (in terms of logic) that such a seed of truth exists. In my view, all we can assume is that groups of people over time develop ideas and concepts that tend to be beneficial in societies, and thus this acts as the seeds of truth to validate or confirm their self-derived view as "absolute". Religion is one such example of a seed of truth that is used to justify the "absolute" nature of morality. Many groups of humans have developed religions and they converge on some top-level principles that, in my view, happen because the net value in general benefits all the most.

I should add some additional discussion on a related view of "moral universalism", which argues that some moral principles apply universally to all individuals regardless of group or society. Unlike absolutism, universalism allows for some flexibility in application and does not necessarily claim that moral principles are completely context-independent. However, it maintains that there are objective moral truths that hold across all groups of people.

I believe my family member was taking the vantage point of moral absolutism, not universality. Both, in my opinion, are difficult to justify, but universality would require that one takes the sentiment that moral principles apply universally, though with some contextual flexibility. Absolutism, in contrast, simply requires some guiding or seeding principle that certain actions are intrinsically right or wrong. Thus one's axiom could be:

"I believe a higher power exists, and this divine entity mandates that unjust killing is wrong."

There are two problems here that I find:

  1. What if you don't believe in this "higher-power" and moreover you can't prove with logic or observation the existence or divinity of such entity?
  2. Assume you do believe; clearly defining "unjust" in the nuance of every possible circumstance is exceedingly difficult. We do not really know how unjust something is because it's always relative to the context of the situation and previous experiences.

Moral Relativism

In contrast, moral relativism posits that all of morality is subjective and is a matter of lived experiences and environment. If that's the case, how are morals seeded in an individual? How does society birth morality? I argue that this is simply a result of the local social dynamics between humans and their environments.

We clearly see this with the diversity of cultures and religions across the world. What some might view as morally bankrupt, others may view as the commandments of their deity or elders. There is no right or wrong in an absolute sense, but rather in a local, relative sense.

But then you may ask: "Then why is it that most human groups have converged towards the idea that murder1 is fundamentally wrong?"

For which I would argue, there is a natural ranking of emerged morality within human social groups and murder seems to be one that continually occurs. Most likely due to the mutual benefit among members of those groups who maximize their self-objective function (i.e., survival) by agreeing on a set of conditions (i.e., morals/ethics) where one of them is don't murder each other. This usually is codified through religion. An analogy I think of from physics is we see this kind of behavior with, say, spin-glass systems; entropy would drive these systems to have a state of disordered spins (think of murdering each other which gives you advantage because of less competition for resources), but yet due to high energy penalty (i.e., you might get murdered too!) of such configuration, the spins self-arrange into ordered states (i.e., don't murder each other because although I(we) don't benefit as much in short term, I(we) do in the long term because we live longer and have progeny).

My Stance

So it's probably apparent from the tone above that I'm a staunch relativistic moralist. The reason being is, I don't see how you get to absolutism without a "higher-power"2 or governing entity. However, if one goes with absolutism, the debate between an absolutist and a relativist is dead on arrival because the axiomatic difference, i.e., one says god exists, the other does not, and no proof can be given to the other side. As for arguing absolutism through governing physical laws, well it's possible one can argue these laws of morality exist, but again it's hard to see how you get there; your best bet is to try and argue it through physics and complexity theory, but my gosh that is a challenging burden of proof for one to steelman.

Thus I stand by my view that morality is subjective. In the grand scheme of things, if we are lucky, there might be by happenstance a convergence of morals that align well with many groups of people. With globalism this could be more likely; however, with the rise of nationalism it might appear that one group is immoral beyond belief, but in reality it's just a perspective that we're not attuned to. So while many will disagree about what is right and wrong with events going on around the world, it's because of moral relativism and nothing more. It is simply a matter of relative perspective.

Footnotes


  1. Note that murder is specific to intentional malice killing. So killing and murder are not synonyms. ↩

  2. Here I use "higher power" broadly to refer to any governing entity, principle, or force that is above human comprehension or ability; not necessarily a deity or god. This could include divine entities, but also abstract principles, natural laws, or any authority that transcends individual human understanding or capability. ↩


Reuse and Attribution

Sunday, December 28, 2025

2025 Reflections: Year of catch-up

The pace at which science and engineering is moving is pretty hard to keep up with. I've always felt things move really fast, or appear that way, because of the real time updates we get through various outlets like arXiv, LinkedIn, and other platforms. The problem is that as a researcher/scientist/engineer/technologist it's pretty hard to keep up in a competent and competitive way. From my perspective, I'm always trying to ensure my understanding and technical ability stays as close as possible with what's coming into the spotlight. This year was no different, but it was really hard to stay on top of all the emerging developments in computational science, self-driving labs, AI for science, materials science, etc.

In terms of the category coverage of my posts this is what the 2025 treemap looks like:

2025 category coverage

Top 5 labels were: Machine Learning, Research, Atomistics, Tools, and AI. The research label must be related to research papers I've read or looked at, not research I'm doing myself2. I'm not surprised about ML and AI as I've had an interest in this more and more over time. The tooling is interesting since most people probably don't think to write about this, but I'm finding this blog a good place to document things related to Linux and Python tooling.

I missed a lot of good stuff this year but I'm going to try to summarize what I thought were some of the most interesting things I came across and wrote about, as well as what I am hoping to catch up on.

Self-driving labs

My hope for this year was to cover the rise and acceleration of self-driving lab research, development, and deployment. There was a lot of good stuff from topics brought up by people like Sterling Baird, who will now lead a new vertical cloud lab at Bringham Young University. In general the field has a lot of good momentum; the challenge will of course be orchestration and integration of different synthesis, characterization, and testing equipment to form self-driving loops that are either fully autonomous or have limited human intervention. I think I only wrote one post in the beginning of the year where I tried to argue that 2025 was the year of robotics in labs. I think this wasn't a bad prediction, as the number of publications on the topic increased by ~54% over 2024 1. So the growth is strong and led by some really capable academics and start-ups in my opinion.

What I'm hoping to see is more open standards by hardware vendors to allow more rapid integration. For robotic manipulation systems, this is probably in a good place and not the major issue, but rather characterization and testing equipment don't have easy IO and primitives to make integrating with decision making loops easy. I could be wrong since I'm not an active researcher or developer in this space but rather just a tinkering enthusiast, but from what I've done, unless you're building your own equipment (i.e. think open source optical microscope), it's going to be hard to fully integrate and automate SEM characterization in a decision making loop.

Materials discovery

This in my opinion is the topic du jour in computational materials science and this is another area where the number of publications is exploding, not so much on actual new materials but rather on the computational tools and techniques to accelerate the discovery and design of new materials. I'm not going to opine so much on whether this is legit or fraught with false promises, for that there are a lot of good people who are opining on that [1]. The main thing is this is here to stay for some time as both big companies, start-ups, and academics are all racing to make their impact in the computational and lab aspects of materials discovery.

I don't think this will slow down at all in 2026; it will probably see more growth, although I don't think it will be so much on a slew of new GNN or transformer model architectures, but probably rather more data and improved integration in workflows. Fine-tuning and distillation of pre-trained models is my guess where a lot of the research action will be.

Computing & simulations

I wrote a fair amount about tooling this past year, I'm not sure why but I think it was mainly as a way to document to myself things I always come back to and am tired of figuring out over and over again. Truth is I tend to refresh my Linux machine fairly often just to keep me from getting stale or too comfortable with forgetting how to do things. I wrote a post on the awesome uv package manager for python. I strongly suggest people check out uv for their python projects. I also wrote about backing up headless Linux machines using rclone and restic/borg/rsnapshot here ... to be honest I've used deduplicated backups several times to recover things I messed up.

On the simulation side I played around with g-xTB [2] and then wrote an ASE wrapper for it and a simple react UI that I wrote a post on. This was a nice little weekend project that I enjoyed doing, though I wish I could have spent more time making it robust and generally useful for scientific work.

I also very much enjoyed the paper on Boron carbide by Ghaffari et al. [3] which I summarized in the post I now know why boron carbide shatters. It just showed the good progress data-driven methods are making in terms of capturing the mechanisms behind material response and behavior.

AI for science

I spent quite a bit of time writing posts on AI for science, as it's just so active and interesting to follow. Most of my posts are improving my understanding and knowledge of the techniques and methods being developed and used. I started off the year by looking at graph-pes since I thought it was one of the cleanest implementations to quickly build and train MLIP models. I haven't played around with it in a while but hoping to find some fun use cases for it in 2026. Related to this was a post mentioning that mace uses the total energy rather than cohesive/binding energies so this subtle point should be kept in mind when using it.

Then I wrote about the ORB v3 MLIP model and my perspective on their equigrad loss regularization technique. I thought this was a really clever/efficient way to learn the rotational equivariance without having to use any SO(3) equivariant layers, which are computationally intensive and architecturally complex. In truth it may not be as necessary if libraries like cuEquivariance and FlashTP make the tensor products faster and more efficient.

Related to MLIPs I wrote a post on synthetic datasets & model distillation and how one can efficiently create synthetic datasets from fine-tuned foundation models to train cheaper student/surrogate models. I actually really think this is the direction things will head once foundation models all start to saturate the benchmarks. We will see most researchers taking them, fine-tuning, and then building more efficient models. I even believe some of these models will be fitted to physics-based potentials rather than just pure data-driven models.

I also wrote about the Skala XC functional and how it was able to achieve near chemical accuracy while doing it at computational cost comparable to meta-GGA functionals. This is probably going to continue getting more attention and improve. As discussed in computing & simulation, the post on g-xTB discussed how semi-empirical methods for molecules are showing DFT level accuracy but at tight-binding computational cost.

More on the ML/AI side I wrote a few posts on some topics I wanted to improve my foundational understanding. One of them was writing a post that was akin to me taking notes based on Petar Veličković's review talk on GNNs. I enjoyed this because it made me feel more confident in my understanding; but as always I need to ensure I truly understand the maths and the implementation. There was also the post on conformal prediction, which was something I had not been familiar with before and after reading and posting on this topic I see the value in this approach. Finally I wrote a post on trying ChatGPT's image generation tool for science illustrations and how it was a bit of a let down, not awful just not good enough for making scientific illustrations that one would want to use in a paper.

I also wrote in the beginning of the year a blog post on Bayesian parameter estimation and how it can be used to estimate the parameters of a line or other simple models. I just like these basic posts even though for many they are elementary topics, but for me it makes me ensure I understand things from basic principles. I say this because it is very easy to get confused in the advanced aspects of these topics if you can't tie it back to the basic things. Additionally, I'm sure I'll come back to posts like this in the future and say "wait, maybe I don't understand" or "what was I saying this is wrong". The beauty of a personal blog is it is not a formal publication or communication (as long as you indicate such), and so mistakes are less embarrassing3.

Books

This was the area that I'm a little down about since I didn't get to reach my reading goal for this year. I read a few books as listed in my reading list, but far from the 10 books I wanted to read. The issue is that many of them are dense technical monographs that take a lot of concentration to sit down and read, whereas the ones I finished were more the kind you pick up and read in a few hours during those random lull moments in my life. For sure this is something I will work on in 2026.

Right now, my reading list target for 2026 that are not technical books is:

I'll be lucky if I get through 2 of these books in 2026, but I'll aim for all as I'm really eager to read these in addition to the technical books I have stacked up 😞.

Statistical mechanics & quantum mechanics

This was a bit off-topic I wrote about but it's just something that throughout the years I feel like I've become less strong in. From 2013-2016 I was in tip-top shape with my knowledge of stat-mech. I wrote towards the end of the year a post on the two roads to thermal equilibrium and how they relate. Then I wrote two posts on quantum related thoughts and topics. I felt like I need to write on this since in 2019-2021 quantum computing was my main research focus. But in recent years it's been off and on and I just feel like I've lost my sharpness in these areas. So I wanted to just write about them either in review of what I had done or just one of the topics to refresh my thinking. I'm sure mistakes were made in the post but at least I tried to put something together.

My hope is to continue on writing about these topics in 2026 to maintain my knowledge and understanding; you never know when this might come back into my main focus and thus good to ensure I'm sharp and knowledgeable about these foundational topics.

Outlook for 2026

So question is what will I try to write about in 2026? Don't know, but I'm hoping some good stuff. For one I will probably try to write posts similar to the ones that discuss papers I read. These posts help me dissect these dense papers and keep a nice log so I can refer back to them later and read something in my own words. I'd like to write some more blogs on weekend coding projects but I just don't get that much time to do this anymore. For example I have some synthetic data workflow that uses CrystaLLM and I'm hoping to write a post on it and post the dataset on Zenodo for others to explore and gauge its usefulness. I'm also hoping to write a little more on thermodynamic computing and of course self-driving labs.

Also I'm going to try to write/code a bit more on causal and Bayesian related topics since I want to become more proficient in actually building tools around these topics. Towards the other end of things I'm going to try to update my online presence, profiles, and such to keep my engagement with others in the community. So with that happy new year and see you in 2026! 🥳

Footnotes


  1. I used OpenAlex API to query the number of publications on the topic of self-driving labs. These were the query results for 2024 and 2025 as of 12/24/2025. ↩

  2. I don't post my work research here as this is my personal blog. Sometimes I'll post weekend projects or research-related efforts but always within my own time and not using any resources or results from work. ↩

  3. I never understood why making mistakes in science or technical research is viewed so negatively. I understand feeling embarrassed, but it seems like mistakes can ruin your reputation. It hasn't happened to me yet, but I've always felt that if I published a paper with a major mistake that needed to be retracted, I would (1) be grateful if someone caught and pointed it out... since we (I) don't want erroneous research to mislead others and (2) feel embarrassed, but as long as my intentions were unbiased, objective, and honest, I would acknowledge the mistake and learn from it. ↩

References

[1] J. Leeman, Y. Liu, J. Stiles, S. Lee, P. Bhatt, L. Schoop, R. Palgrave, Challenges in high-throughput inorganic material prediction and autonomous synthesis, (2024). https://doi.org/10.26434/chemrxiv-2024-5p9j4.

[2] T. Froitzheim, M. Müller, A. Hansen, S. Grimme, g-xTB: A General-Purpose Extended Tight-Binding Electronic Structure Method For the Elements H to Lr (Z=1–103), (2025). https://doi.org/10.26434/chemrxiv-2025-bjxvt.

[3] K. Ghaffari, S. Bavdekar, D.E. Spearot, G. Subhash, Influence of Crystal Orientation and Polymorphism on the Shock Response of Boron Carbide, SSRN Preprint, (2025). https://ssrn.com/abstract=5186595.



Reuse and Attribution

Thursday, May 15, 2025

Quantum State, Non-Locality, and Interpretation

As someone coming from a materials science and engineering background, I've always approached quantum mechanics with a pragmatic mindset: it's a tool to make useful predictions. My guess is most in applied disciplines have a smiliar perspective. But sometimes I find myself asking detailed questions on the language used to describe the theory itself. I mean what does non-local actually refer to? When you try to find out just plain boring explanations I think your meet with assumptions that both reader and author are on the same standing about the meaning of words. This poor assumption is where I think, or at least I found for me, the confusion surrounding QM stems from sloppy language and mismatched conceptual frameworks, particularly around the nature of the quantum state space (i.e., wave function) and the term non-locality. I'm going to write about how I've come to understand the perspectives on the foundations of quantum mechanics.

Quantum State/Wave Function

I will use the quantum state and wave function interchangeably, but this is ironic because I've just lambasted about the lack of clarity in the language used to describe QM. The specifics are the quantum state is a complex-valued vector in a Hilbert space, while the wave function is the projection2 of this quantum state onto a physical space(i.e., our 3D space and 1D time) basis of position eigenstates.

The Core Question: What Is the Quantum State?

At the heart of QM is the quantum state/wave function ($\Psi$), a complex-valued mathematical or physical object, depending on your view, that is used to compute probabilities of outcomes of observables, thats really all its utility! The fundamental nature of the quantum state is where things become difficult to wrap your head around (for a review see [2]). The nature of the quantum state, $\Psi$ has two "beliefs"1, which are:

  1. It is an ontological object, meaning it is something real, part of the physical world we observe and exist in.
  2. Or it is an epistemological object meaning it is a representation of our knowledge or information about the world that we inhabit.

The view one takes fundamentally determines how one interprets the foundations of quantum behavior: entanglement and "non-local" (more on this next) correlations. But from a "shut-up and calculate" [1] perspective, it doesn't matter.

Non-Locality

In QM, the word "non-locality" is thrown around often, but it's crucial to disentangle (😆) its usage in physical reality versus mathematical contexts. Non-locality is an underpinning concept of the mathematical formalism of QM; it refers to a property of a mathematical space (not our physical space and time) that has a structure allowing for correlations (i.e., entanglement) which appear coordinated over spatial separations without a direct mediating causal signal limited by the speed of light. This 'acausal' nature of correlations in the mathematical formalism is distinct from, and does not enable violation of the principles of causality in physical spacetime as described by special relativity. How can this be? What such space has that feature? Turns out in information theory, the space of all possible distributions of probability over a finite set of outcomes has such a property.

Digression: Bell's Theorem

Bell's theorem shows that no theory of local hidden3 variables can reproduce all the predictions of QM [3]. John S. Bell formulated this as an mathematical inequality, which if violated, rules out the possibility of combining locality AND hidden variables.

So far all experiments have verified violation of Bell's inequality, and thus we can have a local theory with hidden variables or a non-local theory without hidden variables. The former (i.e., local hidden variables) is not consistent with any observations and thus is not considered a valid theory. This means we must give up either locality or hidden variables (or both). Various interpretations of QM make different choices: Copenhagen and QBism interpretations maintain locality by giving up hidden variables, while Bohmian mechanics maintains hidden variables by embracing non-locality. The theorem doesn't force us to conclude QM is inherently non-local, its more that it depends on your interpretational framework.

Physical Space (Spacetime)

In physical spacetime, which has a continuous geometric structure defined by coordinates, metrics, and causality, locality is built-in. Things happen through the continuity of the space and time. Events occur at points in space and time. Forces and interactions are local as they propagate through space over time and cannot influence distant points instantaneously without violating causality. Putting it more basic, point A cannot go to point B without going through the points in between.

This geometric structure ensures that:

  • Causality is respected.
  • Influence is constrained by light cones.
  • Distances and continuity matter.

Hilbert Space (Quantum State Space)

In contrast, the quantum state lives in Hilbert space, which is a mathematical geometric space, again its mathematical not the physical space that we are familiar with. It has a structure:

  • Inner product
  • Norms
  • Angles

This allows for some very important and convenient mathematical results. But again, it is not directly apart (embedded?) of spacetime, and therefore:

  • Does not need to have spatial locality, i.e., the distance between two points can be disjointed in this space.
  • Does not need to obey causal propagation in this geometric space.
  • Can encode non-local correlations purely as part of its informational structure

I think this is a big reason people often get confused. More over we are usually taught from the position basis projection2 perspective of the quantum state onto physical space so it makes this decoupling something we have to backtrack on to understand. Physics PhDs and mathmeticians probably have no issues here, but others I think might (I know I did!). The key point is Hilbert space is geometric, but not physically local in our familiar spacetime. The language used in our courses/textbooks tends to blend physical and mathematical notions carelessly.

Two Views of the Quantum State

Ontological Interpretation

If you treat the Quantum State as a real object in the physical world, then you're saying there exists an object -- the quantum state -- that is part of everything. This assumption then leads to:

  • The Quantum State can be non-local in that it encodes information (i.e., entanglement), even if in a projected position-basis that information is spatially separated systems.
  • It evolves unitarily even across space-like separations.
  • Measurement collapse (i.e., observables/observational outcomes) is a physical process, albeit a non-unitary one.

This leads to ideas like Many-Worlds and Bohmian mechanics [4]. It demands that we expand our notion of physical reality beyond just local spacetime. Space and time are still very much local, but the quantum state is not.

Epistemological Interpretation

If one views the quantum state as just a tool that encodes information (as in Copenhagen or QBism [5]), then it's not a real object. It reflects an observer's state of belief about outcomes.

  • Measurement collapse isn't physical, it's a Bayesian update (i.e., we got more info from observing).
  • Entanglement reflects only non-local information, not non-local causes.
  • No signal travels faster than light—only correlated expectations are updated.

This is why the quantum state can have non-local structure without violating causality. It's not describing the world directly as it is but describing what we know (or can infer) about it.

In this view, quantum mechanics becomes an information theory, with the quantum state as a formal device for encoding and updating expectations.

  • This "information" doesn't have to live in physical space.
  • It can exist in mathematical abstract spaces (e.g., Hilbert space), where correlations span across what would be distant points in spacetime.
  • There's no requirement for continuity, geometry, or causality in this mathematical space.

This aligns with modern perspectives from quantum information theory, where entanglement is a resource, and non-locality is an informational, not physical, phenomenon.

Thoughts on how to communicate this

First, its okay to be verbose and expressive when explaining. We can say things like:

  • Our reality of physical geometry means space and time is always local because it is continuous, if we say otherwise then causality is violated and we've got a problem because we don't observe this nor does general relativity tell us this!
  • Mathematical geometries which refers to abstract concepts like Hilbert space have a structure that has similar properties of physical geometry (i.e., a metric4), but does not have to maintain locality. Things can be far apart in this geometric space and still be connected by the metric (i.e., entanglement).

Making these distinctions should help fade the confusion with these conceptual aspects. I could be wrong, but I think it helps.

The quantum state, depending on your interpretation, is either a very weird, non-local physical object or an informational object living in a non-local, non-physical space. Either way, the math is consistent and making predictions occurs without conflict. The confusion is in the language we use to describe such perspectives, well at least its confusing for me.

Footnotes


  1. Yes, seems like a strange word to use, surely I can't mean ones evidence lacking perspective and feelings about something. But this is exactly what I mean. I think whether you view the quantum state as an ontological or epistemological object is a question of your prior. ↩

  2. Hilbert space states can be projected onto physical space through a choice of basis—commonly the position basis $( |x\rangle )$. The Hamiltonian operator, which encodes dynamics and interactions, is expressed in this basis to produce differential equations in space and time (e.g., the Schrödinger equation). This projection allows abstract quantum states to manifest as real-space amplitudes and enables direct modeling of physical interactions in quantum field theory and many-body systems. ↩↩

  3. Hidden variables are variables that are not directly observable, but are used to explain the results of experiments, they are not part of the quantum state. ↩

  4. A metric is a function that defines the distance between any two points in a space. Its a "ruler" that can be adjusted to work correctly in the space of interest. ↩

References

[1] N.D. Mermin, Could Feynman Have Said This?, Physics Today 57 (2004) 10–11. https://doi.org/10.1063/1.1768652.

[2] Leifer, M. S. (2014). Is the quantum state real? An extended review of $\psi$-ontology theorems. Quanta, 3(1), 67-155. https://doi.org/10.12743/quanta.v3i1.22.

[3] Brunner, N., Cavalcanti, D., Pironio, S., Scarani, V., & Wehner, S. (2014). Bell nonlocality. Reviews of Modern Physics, 86(2), 419–478. https://doi.org/10.1103/RevModPhys.86.419.

[4] Maudlin, T. (2011). Quantum Non-Locality and Relativity: Metaphysical Intimations of Modern Physics (3rd ed.). Wiley-Blackwell. URL.

[5] Fuchs, C. A., Mermin, N. D., & Schack, R. (2014). An introduction to QBism with an application to the locality of quantum mechanics. American Journal of Physics, 82(8), 749-754. https://doi.org/10.1119/1.4874855.



Reuse and Attribution

Thursday, September 19, 2024

Some Updates

I haven't been writing many blog posts over the last two months—just playing catch-up with daily life. However, I came across a few tools during my last post that I wanted to share.

ML Potentials

The pace of new universal ML potentials for atomistic simulations is ramping up, with proprietary models currently leading the way. It seems like much of the activity is following the trend set by large language models (LLMs), 🤷‍♂️. Earlier this month, I spent an evening setting up the Orbital Materials pre-trained potential models to test some property predictions on specific systems and compare them to other physics-informed potentials. I haven't fully benchmarked this yet but plan to include it in my draft pre-print1.

As I mentioned in a previous post, if you're looking for a good overall comparison of different ML potentials, check out the Matbench Discovery paper [1]. There is also this recent effort aimed at benchmarking more specifically for MD simulations, though it’s still under development and hence sparse in detail.

The Orbital pre-trained model(s) seems to perform reasonably well, on par with the MACE-MP2 model [3]. One thing I wanted to achieve was to make the Orbital models ASE calculator available for use with LAMMPS via a Python wrapper. Fortunately, the skeleton code for this had already been done by the AdvancedSoft Corp team for M3GNet, making it straightforward to implement a similar wrapper. I went ahead and did so; you can find it here. It seems to work correctly, but I have yet to fully stress-test the implementation. The benefit of having the LAMMPS interface is that you can now utilize many of the compute and fix commands available in LAMMPS.

One thing I want to refactor in the Orbital LAMMPS wrapper is to eliminate the use of the Python driver script. While this approach allows modifying the ASE Calculator interface, I'm unsure if it's the most efficient solution. It seems more robust to instantiate the Python class and directly call its methods from within the C++ code with PyBind11, particularly for better memory management and reduced overhead.

Turning Papers into Podcasts

Reading research papers is something I spend a lot of time on—it's part of being a scientist or engineer. The challenge is the sheer volume of papers being published, making it practically impossible to keep up by reading them all. You need to find ways to efficiently digest and select the ones worth your time3. One of the best outcomes of the recent advancements in generative AI and LLMs is the ability to consume information in one medium and convert it into another. In other words, you can now turn papers into podcasts or lectures and listen to them during your commute to school or work. I'm not referring to mere dictations (although you can do that too), but using AI to distill the important details of a paper into a script and then have it narrated.

There are a few tools out there that do this. The two I've been experimenting with are PDF to Audio Converter [4] from the Buehler LAMM Group at MIT and PDF to Podcast4. So what kind of quality do you get? I’d say it's pretty impressive. Here's an audio lecture based on the tutorial paper "How to train a neural network potential" by Tokita and Behler [5]:

It definitely captures the university lecture style, although it may not convey all the nuances of the tutorial paper. Still, it’s a great way to decide if you want to dive deeper into the paper. I'm not sure how it handles figures or equations, but it would be interesting if it tried to describe them. If you prefer a conversational style (e.g., question-answer format), you can switch the profile.

Setting up PDF to Podcast locally is fairly straightforward, but you can also use the HuggingFace web app. You’ll need your OpenAI API key, and the cost for the example above was about $0.30 USD using GPT-4o. You also get the transcript of the paper, so you can review it afterward if you want to find a specific detail.

My goal is to use this method to go through papers while I'm in the car, at least to determine if they are of interest and worth my limited time to read. After all, nothing beats reading a good paper in depth.

Footnotes


  1. Yes I know its kind of funny to say "draft pre-print" but I just haven't had the time to turn this into a arXiv uploadable preprint yet. ↩

  2. This is just the model parameters the actual model code is here. ↩

  3. Most papers are a waste of time and really are making an impact in a meaningful way. ↩

  4. This was actually the code the Buehler LAMM group used for their project. ↩

References

[1] Riebesell, J., Goodall, R., Jain, A., Persson, K., & Lee, A. (Date TBD). Can machine learning identify stable crystals? [Preprint]. Matbench Discovery. Retrieved from https://matbench-discovery.materialsproject.org/preprint.

[2] Y. Chiang, MLIP Arena, https://github.com/atomind-ai/mlip-arena.

[3] I. Batatia, D.P. Kovacs, G.N.C. Simm, C. Ortner, G. Csanyi, MACE: Higher Order Equivariant Message Passing Neural Networks for Fast and Accurate Force Fields, in: A.H. Oh, A. Agarwal, D. Belgrave, K. Cho (Eds.), Advances in Neural Information Processing Systems, 2022. https://openreview.net/forum?id=YPpSngE-ZU.

[4] A. Ghafarollahi, M.J. Buehler, SciAgents: Automating scientific discovery through multi-agent intelligent graph reasoning, (2024). https://arxiv.org/abs/2409.05556.

[5] A.M. Tokita, J. Behler, How to train a neural network potential, The Journal of Chemical Physics 159 (2023) 121501. https://doi.org/10.1063/5.0160326.



Reuse and Attribution

Thursday, June 20, 2024

Terminal Diary Galore

I had this idea the other day about tracking my entire life in the Linux terminal. My thinking is that I have probably typed hundreds, if not millions, of content into the terminal and when I try to recall them I end up doing a Google search1 to reproduce something I've probably done hundreds to thousands of times. The idea I had of tracking my terminal input/output by recording it, came about when I stumbled accidently upon asciinema and thought "well this might be useful". At first I thought "oh I'll just use this to record workflows that are complicated and I might forget", but then I realized I'll just forget what recording I need to watch.

Then I saw an interesting [post] by Miles Cranmer regarding an approach on how he is using a vector database to make finding and pointing others to github discussions more streamlined. In my head something went off. I was like: "Okay, I think I'm going to record my terminal sessions everytime and feed them into a vector database". Seems straightforward to do so.

Well what use is a vector database really? I mean its just semantic search, and even if I get the retrieved text I'm most likely looking for, will I really remember what I wanted to do with it or what it did. This is where using a LLM would be a tremendous utlity. I basically can have it re-teach me my terminal workflows2 and what I did by adding in context, instruction, and descriptions.

So I'm going to try proofing this out. I think the utility of this approach needs to have 2 components:

  1. It's easy to start recording and update the vector database.
  2. Querying and LLM to find what I'm looking for is straight forward.

For the vector database could use something like Pinecone or Chroma. Then need to regularly update the vector database. Once that is done, I can get the embedding for user input and then query the vector database. This will give me some number of top retrieved results but then the goal should be to use an instructed LLM to always output some useful script or set of steps. Here is an illustration of what I envision:

$ querylog "Show me how to install materials project api/pymatgen, then query the most stable copper oxide structure, and analyze the structure factor (i.e., radial distribution function)"

Which then outputs something like:

To achieve the the desired workflow:
1. In the terminal, create a python venv: python -m venv .venv and activate source .venv/bin/activate 2. In terminal, install materials project api and pymatgen: pip install -U mp-api pymatgen pymatgen-analysis-diffusion 3. To query materials project for Cu-O stable structures in python:

with MPRester(apikey) as mpr: # Query the database for all materials containing copper copper_oxide = mpr.summary.search(chemsys="Cu-O", is_stable=True, fields=["structure"])
structure = copper_oxide[0].structure

Get RDF

from pymatgen.analysis.diffusion.aimd.rdf import RadialDistributionFunctionFast rdf_func = RadialDistributionFunctionFast(structures=structure, ngrid=101, rmax=10.0, sigma=0.2) r,rdf = rdf_func.get_rdf(["Cu","O"],["Cu","O"]) plt.plot(r,rdf)

The example above is a bit generic and your standard LLM would probably get this correct on its own, but if you had some idiosyncratic way of doing things you would need to prompt the LLM so that it would know those specific details. Here the idea is to just find previous examples and have a generic LLM organize, format, and style in a informative way. Lets see if I can get something working.

Footnotes


  1. Now its more common for me to use an LLM or something like perplexity. ↩

  2. A user on the asciinema site replied to a question post I made, their thinking was to use the .history for capturing all my terminal IO. The issue is that will not capture things that go on in emacs or python interpreter. I really want to capture ever IO that goes on int the terminal. ↩



Reuse and Attribution

Tuesday, June 11, 2024

Acutely Tuned & Karpathy Aware

In the world of AI there is a whole subfield dedicated to making sure AI systems work in the best interest of humanity. From my understanding this is called AI alignment or safety. My guess is that this field researches AI systems by putting them through a serious of tests (in a sandbox) to ensure they behave in the most responsive way. Other than that presumption, I'm not really sure what AI alignment or safet really means.

The reason I bring it up in this post is there was a very interesting [report] posted by Leopold Aschenbrenner1, a leading AI safety researcher at OpenAI who was fired[1]. In summary the report discusses topics related to energy consumption and security needs for artificial general intelligence (AGI) and artificial superintelligence (ASI) systems, as well as other aspects of national security. My view is that I don't really think AI researchers really know if current neural network architecture will enable AGI or ASI, or what will, but the analysis is quite through and detailed and provides some aspects to think about.

After skimming the report, what stood out to me is the fact that we (the U.S.) would need to improve our energy production and security greatly. I do think Aschenbrenner's analysis brushes aside anticipated improvements in energy efficient hardware for inference. Regardless, there is going to be a huge demand for compute based on AI systems. The other concern is in the global arena, we will be competing with each other and dominence of the world order is on the table. While I'm not so sure the gloom and doom is so pressing, it is something that cannot be ignored.

I suggest reading it even if your not really interested in these types of topics because Leopold, whether you agree with him or not, seems to be very through and brilliant in thought.

Coding GPT-2 from Scratch

I've followed Andrej Karpathy for some time since the release of ChatGPT because he is one of the few people who showed how to build these type of AI architectures from scratch2. My plan is to follow Karpathy's 4-hour video and reproduce it using Julia's Flux.jl and Transformers.jl. I'm using Julia so that I avoid copying exactly the same PyTorch code that Karpathy is implementing. I was thinking about using JAX but decided to go with Flux.jl because its more familiar to me at the moment.

Footnotes


  1. I had never heard of this person but seems very well known in the AI community. Also find him to be very interesting. ↩

  2. For whatever reason I am draw to people who build things from first-principles. Yes this is not efficient for useful tools or applications but in my experience it has been really hard to get to a 90% "expertise" level without building the darn thing from scratch. When I was learning Finite-Difference Time-Domain Methods, moelcular dynamics, or density functional theory, I always wrote a basic code from scratch to prove to myself that I knew how the guts worked. ↩


References

[1] L. Aschenbrenner, Situational Awareness, (2024). https://situational-awareness.ai/leopold-aschenbrenner (accessed June 10, 2024).



Reuse and Attribution

Tuesday, April 23, 2024

Should I stick with Blogger?

This is probably a bit of a strange blog post, but I wanted to document it here because it's related to the blog itself, and I'm going through a bit of an internal decision crisis. You see, the blog you are reading is actually written in pure Markdown. If you have any experience with the antiquated Blogger platform, you might be asking, "Uh, how?" Well, it turns out that it's pretty simple to convert Markdown to HTML. A while back, I decided to write1 a python utility/script to help me do this2. In my specific Blogger template, I have some JavaScript code and libraries to allow for code highlighting and $\LaTeX$ equation rendering via MathJax.

But how do I get these blogs, once converted to HTML, onto Blogger, you may ask? Well, the easiest route is to just copy and paste the HTML code into a new post via the HTML editor. This is clunky and old-fashioned, so I wanted something a bit more programmatic and took a deep dive into the rabbit hole of Google's APIs. It turned out that they do support Blogger API calls, and there is a Python library to do so. I was thus able to make the conversion and uploading of my markdown blogs pretty straightforward. There are a few things like not being able to set the labels, so this still needs to be done manually. I also only upload as a draft, but the API does let you upload to publish.

So, what about figures or graphics? Well, this is where I borrowed an idea from Pluto.jl notebooks. If you've ever saved these notebooks to HTML, you will find that they encode the images into base64 strings, which are easily decoded by your modern browser. This does have the downside that the HTML files are large, but so far, Blogger doesn't seem to care, other than some posts take a few seconds to load. Here is an example figure that was inserted via Markdown:

Funny markdown comic
Funny comic related to Markdown syntax

Now, I probably should have opened this blog post with the fact that not many, if any, actually read my blog – that's okay; I set it up mostly for my own personal use – but those who do would immediately probably ask, "Why are you still using Blogger? Why not use a static site generator?" For which I say, yes, I know, and this is what I'm struggling to decide over. Initially, I remained loyal to Blogger because I spent a good amount of time learning some HTML and JavaScript to get the look and feel the way I wanted. The thing is, now with LLMs, it's much easier to style and set up a new blog. Furthermore, almost every static site generator uses Markdown and has really good extensions and support for the features I like to use, for example, footnotes, $\LaTeX$, references. I'm just hesitant, but we will see. One idea I have is to use Quarto to write my blog posts, but also actually have multiple blogs on a single site. This might be interesting because I could have a blog that just contains posts on my opinions on science policy and then a blog that focuses on technical topics; but maybe this is just for my liking and doesn't make much of a difference for potential readers.

So, I am at a dilemma. I have my Blogger blog set up to my liking; it works most of the time as I anticipate, and I do go back to older posts to refresh my memory on things. I've found it to be very useful for posts I can re-read3, and because this is public-facing, I somewhat have to put in much more effort to ensure the quality and presentation is higher than if I just take notes that no one will ever see.

Footnotes


  1. As most these days, with the aid of LLMs. ↩

  2. The utility script is very much tailored to the type of markdown flavor I write and is not really designed to be used as a general-purpose markdown to HTML converter. ↩

  3. The other way I do this is to use Obsidian, which creates a web of knowledge for you based on your notes, and you can turn it into ↩


Reuse and Attribution