Search Blogs

Monday, April 24, 2023

A Wave of Information Overload

As a scientist and researcher, I constantly find myself in a state of awe and helplessness due to the vast ocean of information and knowledge that surrounds me. Today's world is evolving at breakneck speed, and I often feel like I'm struggling to stay afloat. This is particularly the case in science, engineering, and technology. It's a mixture of excitement, fear, and a deep-rooted curiosity that drives me forward as a continuous learner, but at times, the weight of information overload can be overwhelming. It seems so easy to fall behind if you don't invest every ounce of effort you have to be knowledgeable.

It is true that navigating this ever-changing landscape is both exhilarating and exhausting. Furthermore, as I delve into the realm of ML/AI tools like LLM and generative AI, I'm amazed by the potential they offer in helping researchers like myself manage and digest the wealth of information available. I do believe these tools will change the pace and ease of research. However, as these technologies continue to advance, I can't help but feel a sense of inadequacy in keeping up with the myriad of developments and research papers published daily.

Despite the challenges, my passion for learning remains undiminished. The thrill of discovering something new or understanding a complex concept continues to propel me on my journey as a self-proclaimed student of Dirac. I wonder how Ph.D. students, post-docs, and early career researchers feel? Do they share these sentiments, as we collectively traverse an era characterized by rapid change and uncharted territory? What about more senior scientists and engineers? What do they think, is it all hype? Have they seen this before? Then there are the powerhouse PIs/researchers who dominate in output and productivity. These individuals and groups are amazing, but how do they feel about this? Also, do they have any suggestions for the underdogs (i.e., me) and how do they suggest we swim in the sea of information they produce?



Reuse and Attribution

Thursday, April 13, 2023

Consensus Chat LLMs

As I continue my foray into large language models (LLMs), exploring how they can be used and tuned for my areas of interest (materials science, physics, and chemistry), I have started contemplating how the rapid development of fine-tuned or use-case-specific LLMs by various groups and companies might eventually lead to an extraordinary comprehension of the human-constructed world. Currently, tools like ChatGPT and GPT-4 are capable of performing a wide range of intelligent tasks. However, in many instances, they don't quite meet our expectations or aren't able to produce exceptional results. For example, if you ask ChatGPT-4 to draw a car using scalable vector graphics, it will generate something that most would recognize as a car, complete with tires, trunk, and windows. Yet, it doesn't fine-tune the drawing the way a human would. Of course, you could pass this output to Stable Diffusion or another image-generative platform to get a better result, but I'm focusing on the text-, markup-, or code-generating LLMs here.

This brings me to my thoughts on domain-specific LLMs. I believe that eventually, we will have hundreds or thousands of highly intelligent domain-specific LLM systems. While this is undoubtedly exciting, what if we connect these systems so they can send queries to one another? Furthermore, what would happen if we invoke a consensus policy based on a human user's prompt? Let's consider a question containing a factoid (i.e., something taken as true by some but not verifiable), for example:

Based on our understanding of the universe, is the following statement true: 

"There is said to be an omnipresent entity that seeded the Big Bang, which brought forth our existence. This entity is believed to remain hidden indefinitely."

If you rely on faith to describe our existence, you might consider this factoid nearly true. However, if you are a staunch atheist, this statement would be an unverifiable claim and of little value.

For the sake of this blog, let's assume that these highly capable domain-specific LLMs have no guardrails limiting how they might answer the question. If these LLMs capture the distribution of human beliefs and behaviors, each one might provide a different response that either finds the factoid compelling or purely speculative. However, if we now have the LLMs query one another, what would happen? Would they reach a consensus that aligns with the majority of humanity's beliefs, which might be in favor1 of the factoid? I'm not certain, but it seems plausible that these hundreds or thousands of LLMs could eventually encompass nearly all of humanity's collective "wisdom" or abstract constructions of our behaviors and existence.

I'm not entirely sure if what I'm proposing makes sense, but it seems possible that there could come a time when all these capable and impressive LLM systems are interconnected and start exhibiting collective behavior that surprises us. Alternatively, this could merely lead to a series of frustrating dialogues that produce dead-end responses. I eagerly anticipate discovering what the future holds for these advanced LLMs and their potential impact on our understanding of the world.



Reuse and Attribution

Thursday, April 6, 2023

Dual Numbers

A while back when I was doing some exploration of writing a simple NN code to improve my understanding of neural networks and deep learning in general, I came across dual numbers. They're a type of number that generalizes the concept of real and complex numbers. But what makes them so interesting is that they can encode both a function value and its derivative in a single number. This means that we can use them to simplify the calculation of derivatives and solve complex problems efficiently.

So how does one think of dual numbers? What's the difference between a dual number and a complex number? One way to think about dual numbers is that they consist of two parts: a scalar part and a skew part. The scalar part is just a regular real number, while the skew part is a multiple of a new number, often denoted as $\epsilon$, that satisfies the property $\epsilon^2=0$. This means that every dual number can be written as $a+b\epsilon$, where $a$ and $b$ are real numbers.

What's most interesting is that the skew part of a dual number is that it provides an approximation of the first derivative of a function evaluated at a particular point. By using the dual number representation of the function at that point, one can calculate both the function value and its derivative in one shot.  One reason dual numbers have applications in deep learning is that algebra on dual numbers provides the chain rule for calculus, therefore they can be used to compute derivatives of complicated functions involving multiple variables and interdependencies.

As an example, say I want to evaluate the function $f(x)=x^2+2x$ at $x=3$. The dual number representation of $f(3)$ is $f(3+\epsilon)=f(3)+f'(3)\epsilon$, where $f'(x)=\frac{df(x)}{dx}$. We can compute $f(3)$ directly as $f(3)=3^2+2\cdot3=9+6=15$. To compute $f'(3)$, we can take the derivative of $f$ with respect to $x$: $f'(x)=2x+2$. Evaluating this at $x=3$, we get $f'(3)=2\cdot3+2=8$. Therefore, the dual number representation of $f$ at $x=3$ is $15+8\epsilon$.

One of the benefits of dual numbers is the derivative of the composition of two functions, $f(g(x))$ requires only the derivatives of the individual functions. Specifically, if $f(x)$ and $g(x)$ are two functions, then the dual number representation of their composition $f(g(x))$ is $(f(g(x)), f'(g(x))g'(x))$. This is especially useful when dealing with complex functions involving multiple variables and complicated interdependencies.

Dual numbers are actually a useful mathematical concept because they have practical applications in a wide range of fields. It's pretty cool that one can encode function values and derivatives in a single number, which makes it possible to simplify the calculation of derivatives and solve complex problems efficiently. On my computational blog, I have an example using dual numbers to calculate the derivative of an interatomic potential, Dual Numbers Pluto blog.


Reuse and Attribution