Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
In short: LLMs are trained based on what we already know. I'm oversimplifying massively, but essentially they produce a string of words which is likely to follow the prompt you provide based on ext...
#1: Initial revision
In short: LLMs are trained based on _what we already know_. I'm oversimplifying massively, but essentially they produce a string of words which is likely to follow the prompt you provide based on extensive training on samples of language, code, etc. At their core, they are _statistical_ models, and as the saying goes— lies, damned lies, and statistics. They are _not_ general artificial intelligence; they carry no intrinsic _understanding_ of their input or output, and are therefore not capable of knowing that their output is correct in the same way a human is. They're useful for some things, in the same way data and statistics are. Here is an example of a model:  The points are my _training data_; the dotted line is my _model_. My model predicts that given an input of 11, the output will also be 11. In this way, a good model can make good predictions for what comes next; LLMs work essentially the same way, but on billions of input parameters and training data points. That said, what's to say that my graph doesn't show a sequence which maintains $x=y$ from 1 to 11, but then jumps to 13, then 24, then 35, etc? It's not possible for my model to know or predict this, in the same way that it's not possible for an LLM to predict with 100% accuracy the _correct_ answer. Sorry, slight tangent. --- What does that mean for Q&A sites? An LLM may be able to give you a correct answer a lot of the time, particularly for predictable or repetitive tasks; computer code often follows a very well-defined syntax and API so _is_ often predictable enough for an LLM to get it right. What the LLM doesn't know is anything that it hasn't been trained on. Anything _new_. If I were to create a new programming language and not share a formal syntax or API with anyone, then—quite apart from the fact that it would be useless—LLMs would be unable to accurately predict what comes next. That goes for anything that's new. For Q&A communities like this, perhaps that means a pivot _away_ from asking simple questions looking for help debugging code, and _towards_ asking complex questions looking for ideas that only humans can generate. What should I consider when structuring this large and complicated project? What are the trade-offs of this niche technical decision? Just what _is_ a `foo`, anyway?
