# Andrej Karpathy (Tesla)

{% embed url="<https://youtu.be/ZVJTqAuPvTU>" %}
Programming The Software 2.0 Stack
{% endembed %}

### Andrej's Landmark Post - "[Software 2.0](https://medium.com/@karpathy/software-2-0-a64152b37c35)"

* **Software 1.0** consists of explicit instructions to the computer written by a programmer.
* **Software 2.0** can be written in much more abstract, human unfriendly language, such as the weights of a neural network.
* In software 2.0, we restrict the search to a continuous subset of the program space where the search process can be made efficient with back-propagation and stochastic gradient descent.

![Source: https://medium.com/@karpathy/software-2-0-a64152b37c35](/files/-MCYk76zsvlICuoeFKWS)

### Programming In The 2.0 Stack

* If optimization is doing most of the coding, what are the humans doing?
  * 2.0 programmers label data
  * 1.0 programmers maintain the surrounding "dataset infrastructure":
    * Visualize data
    * Create and edit labels
    * Bubble up likely mislabeled examples
    * Suggest data to label
    * Flag labeler disagreements
* **Data labeling** is highly iterative and non-trivial.
  * Lane lines are different across the world.
  * Cars have different shapes and sizes.
  * Even traffic lights and traffic signs can be ambiguous.
* **Label imbalances** are very frequent.
* **Data imbalances** are very common.

⇒ **Realistic datasets**: high label and data imbalances, noisy labels, highly multi-task, semi-supervised, active.

### 2.0 IDEs

* Show a full inventory and statistics of the current dataset.
* Create and edit annotation layers for any data point.
* Flag, escalate, and resolve discrepancies in multiple labels.
* Flag and escalate data points that are likely to be mislabeled.
* Display predictions on an arbitrary set of test data points.
* Auto-suggest data points that should be labeled.

⇒ **Can we build GitHub for Software 2.0?**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://fall2019.fullstackdeeplearning.com/guest-lectures/andrej-karpathy-tesla.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
