# Not good: AI is a problem, not a solution

**URL:** <https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798>\
**Category:** Offtopic\
**Created:** [August 4, 2024, 1:22am UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798 "2024-08-04T01:22:21Z")\
**Posts on this page:** 9\
**Page:** 2

<div class="post-metadata">

**Author:** ![abraemer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abraemer/32/51403_2.png) [@abraemer](https://discourse.julialang.org/u/abraemer)\
**Post date:** [August 10, 2024, 4:13pm UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/21 "2024-08-10T16:13:08Z")

</div>

My point is that the usage of MFLOP is completely arbitrary. Your argument would not work for GFLOP. So what is special about MFLOP? If there is no reason why that unit is special, then you can find a “square-root relationship” for any 2 numbers…

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [August 10, 2024, 4:15pm UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/22 "2024-08-10T16:15:45Z")

</div>

Did you notice that MFLOP is in non-dimensional units? If I switch to GFLOP, I use C\*2^10, but I get the same energetic cost…

---

<div class="post-metadata">

**Author:** ![abraemer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abraemer/32/51403_2.png) [@abraemer](https://discourse.julialang.org/u/abraemer)\
**Post date:** [August 10, 2024, 4:19pm UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/23 "2024-08-10T16:19:57Z")

</div>

Yes so there is an arbitrary factor isn’t it? With this factor you can find a “square-root” relationship for any pair of numbers

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [August 10, 2024, 4:21pm UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/24 "2024-08-10T16:21:21Z")

</div>

No, it is not arbitrary. C is measured (presumably). It works like this:

```julia
julia> C = 0.3; # J / GFLOP

julia> M = 5000; # GFLOP

julia> train = M*10^9 * C/10^9
1.50000e+03

julia> query = sqrt(M*10^9) * C/10^9
6.70820e-04

julia> 

julia> C = 0.3 / 1000; # J / MFLOP

julia> M = 5000*1000; # MFLOP

julia> train = M*10^6 * C/10^6
1.50000e+03

julia> query = sqrt(M*10^6) * C/10^6
6.70820e-04

julia> 

```

All needs to be brought to a common base unit, FLOP.

Edit: @abraemer You are right, as I wrote it above ([Not good: AI is a problem, not a solution - #20 by PetrKryslUCSD](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/20)) it wouldn’t work.

---

<div class="post-metadata">

**Author:** ![oOosys](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ooosys/32/209566_2.png) [@oOosys](https://discourse.julialang.org/u/oOosys)\
**Post date:** [August 10, 2024, 11:51pm UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/25 "2024-08-10T23:51:42Z")

</div>

I suppose you underestimate here the amount of data considering only the relative increase instead of the entire amount. It is as if you would compare the time of training on Gigabytes of data with time needed to incorporate some more bytes of additional data into a ready to use model.

---

<div class="post-metadata">

**Author:** ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)\
**Post date:** [August 11, 2024, 5:56am UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/26 "2024-08-11T05:56:13Z")

</div>

> [@abraemer](#):
>
> This whole square root does not make sense to me at all because it depends on the base units used. You cannot just square root the “number” in front of the units. Example: Suppose you nee 100MWh to train the model, then what would this “square-root” cost of an inference be?
> 
> - \sqrt{10^2} MWh=10MWh√102MWh=10MWh\sqrt{10^2} MWh=10MWh?
> - \sqrt{10^5}kWh \approx 320kWh√105kWh≈320kWh\sqrt{10^5}kWh \approx 320kWh
> - \sqrt{10^8}Wh = 10^4Wh=10kWh√108Wh=104Wh=10kWh\sqrt{10^8}Wh = 10^4Wh=10kWh

Yes, that’s basically what I said: you cannot sqrt energy.

> [@abraemer](#):
>
> Similarly with “operations” or “cycles”.

Not quite: number of operations is just a number without units, and one can sqrt them. This not an arbitrary units, but a concrete number.

---

<div class="post-metadata">

**Author:** ![abraemer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abraemer/32/51403_2.png) [@abraemer](https://discourse.julialang.org/u/abraemer)\
**Post date:** [August 11, 2024, 6:39am UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/27 "2024-08-11T06:39:51Z")

</div>

> [@aplavin](#):
>
> Not quite: number of operations is just a number without units, and one can sqrt them. This not an arbitrary units, but a concrete number.

I don’t agree: “cycles” is a unit - it has just the same dimension as a number. I could totally define “kilo cycles = 1000 cycles” and have the conceptual problem. Or if you decide to count something like `muladd`s instead of `FLOP`

---

<div class="post-metadata">

**Author:** ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)\
**Post date:** [August 11, 2024, 6:54am UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/28 "2024-08-11T06:54:14Z")

</div>

> [@abraemer](#):
>
> I could totally define “kilo cycles = 1000 cycles” and have the conceptual problem

You could also define “kilo ones = 1000 ones”, and then `sqrt(100) = 10` but `sqrt(0.1 kilos) != 0.01 kilos` (:

> [@abraemer](#):
>
> Or if you decide to count something like `muladd`s instead of `FLOP`

Technically yes, but the result is basically the same no matter if you choose basic arithmetic or muladds. The statement isn’t “inference #ops = sqrt(training #ops)” exactly, it’s just an order of magnitude.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [August 11, 2024, 4:11pm UTC](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/29 "2024-08-11T16:11:39Z")

</div>

As shown [here](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798/24), the decisive quantity is the number of FLOP. One can certainly take a square root of a ND number. The total of FLOP is then multiplied with a suitable constant converting FLOP to energy.

[Previous page](https://discourse.julialang.org/t/not-good-ai-is-a-problem-not-a-solution/117798.md?page=1)
