> As I understand AI "Training" (and I'm pretty much an idiot here) you have a 
> given neural net which is initially filled with hundreds of GB  random data, 
> then you run input data through itand get the result.    So I guess you input 
> a picture of a "bicycle" and it spits out "doggie", and you say "bad 
> computer", here is how you adjust  your net values to becloser to the result 
> "bicycle".

Think of it like the very simplest pachinko machine:

https://www.instructables.com/Pachinko-Machine/

…but typically very large.  The “hundreds of GB of random data” are the 
_likelihoods_ of the ball going left or right at each junction.  You drop a 
ball in somewhere along the top (the “somewhere” is the value of the input 
data), and it falls through the pins, and comes out somewhere at the bottom 
(that “somewhere” is the output data).

When you’re _training_ the machine, you already know what a “good” output is, 
for any given input.  So you drop the ball in the top, let it bounce its way 
threw off various pins, and see where it comes out on the bottom.  If the 
output was “good,” you increase the weightings on each of the bounce directions 
of each of the pins it hit.  Instead of 50%/50% left/right, if the ball went 
left, now it’s 51%/49%, for that pin.  And so on for each pin that the ball hit 
on its way down.  If the output was “bad,” you decrease the weightings for each 
pin/direction on the path traveled.  Repeat many many times, and you wind up 
with a system which produces fairly replicable results.  So, this is the 
“training” mechanism.  It’s fairly complicated, and requires quite a bit of 
hardware and time.

Now, take a snapshot of all of those probabilities and paths.  Some paths have 
zero probability of being exercised, so you can trim those out of the model, 
making it smaller.  Some paths have very low probability, so you can decide 
whether to prune them or not, depending how compact you need your model to be.  
Now you have a much smaller model.  You can fit that in a very simple machine, 
which doesn’t need to understand the difference between “good” and “bad,” and 
doesn’t ever need to adjust any probabilities.  Not only is it simple, it’s 
also fast and cheap.  When you run it, it will always give you the same results 
with the same probabilities, but it will never “learn” anything new.  This is 
“inference.”

So, training requires very expensive hardware, and a lot of time.  Like, 
thousands of these:

https://www.ebay.com/sch/i.html?_from=R40&_nkw=nvidia+a100+80gb&_sacat=0&Brand=Nvdia&_dcat=27386&rt=nc&LH_ItemCondition=1000
https://www.nvidia.com/en-us/data-center/a100/

…for many weeks, for a large complicated model.  So, training can cost tens or 
hundreds of millions of dollars, for big models.

Inference can be done very inexpensively.  If you have a recent Apple computer, 
you’ve already got excellent inference hardware built in.  This has very good 
price/performance, if you don’t want to use an Apple:

https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=nvidia+RTX+4090&_sacat=0&_odkw=geforce+RTX+4090&_osacat=0

If you want to buy something stand-alone, something like this works very well:

https://www.amazon.com/NVIDIA-Jetson-Orin-64GB-Developer/dp/B0BYGB3WV4?th=1

Or at a smaller scale, this also has excellent price-performance, if you want 
to integrate it into a project, like a car:

https://coral.ai/products/m2-accelerator-dual-edgetpu/

But the real price/performance killer is the Apple Mac Studio with the 76-core 
GPU and 192gb of RAM:

https://www.apple.com/shop/buy-mac/mac-studio/24-core-cpu-60-core-gpu-32-core-neural-engine-64gb-memory-1tb#

So, inference can be done with good price/performance anywhere from $20 to 
$6600, mostly depending on the size of the model (amount of RAM to hold it in 
memory) you want to load.

                                -Bill

_______________________________________________
Address messages to ev@lists.evdl.org
No other addresses in TO and CC fields
HELP: http://www.evdl.org/help/

Reply via email to