> ## Content Index
> Fetch the complete content index at: https://www.taivo.ai/llms.txt
> Use this file to discover other available public pages before exploring further.

# How data is used for LLM programming
- URL: https://www.taivo.ai/__how-data-is-used-for-llm-programming/
- Published: 2023-05-09T11:54:28.000Z
- Updated: 2024-01-23T12:42:43.000Z
- Author: Taivo Pungas
- Tags: Systems, stream

Software 1.0 -- the non-AI, non-ML sort -- extensively uses testing to validate things work. These tests are basically hand-written rules and assertion. For example, a regular expression can be easily tested with strings that should and should not give a match.

In software 2.0, and specifically supervised learning, the program is automatically learned from the dataset. It is similar to unit tests: the input and output define the system's expected behaviour. But the dataset is much larger. Thousands to millions of data points are needed to learn the program effectively.

Funnily enough, **LLM* programming looks a bit more like software 1.0 than software 2.0\. You can do tasks zero-shot ("give me 10 dog names"), or few-shot ("give me 10 dog names like Luna or Chippy"), but in both cases this looks more like writing code ("prompt") or unit test ("example") as opposed to training on a large dataset. Of course, training on lots of examples is still possible via fine-tuning, but it is optional. The capability of the model relies on it having been trained on large datasets beforehand in an unsupervised manner.

From what I have heard, the combination of all the above is the most effective. That is, to make **LLM*s work well for you, you want to both craft an effective prompt and fine-tune the base LLM you are using.