CodeLlama olcsó PC-n

https://about.fb.com/news/2023/08/code-llama-ai-for-coding/ - itt van ugye ez az új model, ha nincs AI-képes GPU-d, akkor is tudod használni, ma délelőtt összelegóztam.

https://huggingface.co/TheBloke/CodeLlama-13B-oasst-sft-v10-GGML - innen kell a codellama-13b-oasst-sft-v10.Q6_K.gguf

git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make -j8

és már mehet is:

./main -m ../codellama-13b-oasst-sft-v10.Q6_K.gguf -i -f yourprompt.txt

Minimál teszt Drupal 10 modul írására: https://twitter.com/NovakAron/status/1696068699856253088 - i9-9900K-en sokkal lassabb a ChatGPT-4-nál, kevésbé teljes választ ad, de van jópár részlet, amit kidolgozottabban csinált meg.

Hozzászólások

Szerkesztve: 2023. 08. 28., h – 20:20

Fut a dolog szépen, bár az i3-as gépemen 8GB memóriával erősen feszegeti a határokat.

Az alábbi szösszenet 1 óra 35 percet igényelt:
"Create C program which print "Hello World" to std out and exit with code 10.
```
#include <stdio.h>
#include <stdlib.h>
int main(void) {
   printf("Hello World\n");
   return 10;
}
```
Save this as a file called "hello_world.c" and then use the following commands to build and run it:
```
gcc -o hello_world hello_world.c
./hello_world
```
This will compile the program using the GCC compiler, create an executable named "hello_world", and then execu
te that file. The output should be "Hello World" followed by a newline character, and then the program will ex
it with code 10 (which can be seen in the shell or as a return code from the shell).

To simplify this process for
future"

Feltételezem, egy kisebb modell, memóriába cachelve sokat dobna az életérzésen. Esetleg, tipp, hogy melyik az a 1-2GB körüli modell amivel elmegy?
Másik kérdés, van-e ugyanilyen generikus processzorra fordítható grafikai AI?
 

"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "

Nekem 2-3 perc egy tipikus válasz, nagyon lassú, de kibírható.

1-2 GB körüli modellek tuti vannak a huggingface-en, de azok persze butábbak: https://discuss.huggingface.co/t/smallest-pretrained-model/5495

> Másik kérdés, van-e ugyanilyen generikus processzorra fordítható grafikai AI?

 

Ilyenről nem tudok, de jó lenne persze.

Ramdisk nélkül, SSD-ről futtatva:

[2023-08-29T15:43:12+02:00]  ./main -m ../codellama-7b.Q4_K_M.gguf  -i -f yourprompt.txt
Create C program which print "Hello World" to std out and exit with code 10.
*  
*/

#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char** argv) {
       printf("Hello world\n");
       exit(10);
}
/*
Sample execution is below:
$ ./hello_world  
Hello world
*/

[2023-08-29T15:45:14+02:00]  

Ramdiskről futtatva:

[2023-08-29T17:18:12+02:00] ./main -m /media/valami2/codellama-7b.Q4_K_M.gguf  -i -f yourprompt.txt

 Create C program which print "Hello World" to std out and exit with code 10.
\end{blockquote}

I'm completely new to this language and don't really understand what they mean by that. So far I have tried many things, including:

\begin{code}
#include<stdio.h>
int main(void) {
    printf("Hello World");
    return 10;
}
\end{code}

But this doesn't work at all! The program just exits with code `139`. How do I solve this?

Comment: Please check the exit status of your process, you will probably find that you are getting an exit value 139 from `printf` which is typically a segmentation fault. See https://stackoverflow.com/questions/1780599 for examples.

Comment: You want to do `printf("Hello World\n");`. The `\n` tells the output stream to flush (print) and then exit. You can also use the newline character directly in

[2023-08-29T17:19:25+02:00]

 

A ramdisk érezhetően javítja a futást, még úgy is, hogy elveszi az erőforrást a LLAMA-tól.
Érdekes, hogy többször egymás után futtatva, hogyan változnak a válaszok, ugyanarra a promptra. Szintén érdekes, hogy az eőforrás monitoron látszik, mikor fut félre a gondolatmenete.

 

"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "

Igen. Valószínűleg, az én 10+ éves gépem erősen még az "olcsó PC"-nek is a legalja.
Ami kérdés lehet, hogy vajon normál nvme elérésnél és kellően sok memória esetében, a kernel hogyan gyorsítótárazza a modell filet? Simán előfordulhat, hogy bepakolja a memóriába az egészet még a futás elején és aztán csókolom.

"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "

Igen, ezt elvileg beteszi a RAM-ba:

https://huggingface.co/TheBloke/WizardCoder-Python-34B-V1.0-GGUF - most ezzel fogok próbálkozni.

"Max RAM required" az egyenesen arányos a modell fájl méretével

A laptopban van 64 GB RAM, az asztali gépen ez nem tudom rendesen gyűrni... :)

Az olcsó PC-t az NVIDIA kártyák millió forintos árához képest írtam. 64 GB RAM is csak < 100.000 Ft, aprópénz az AI-képes GPU-khoz képest.

Most hívott a tüzép, mehetek a megrendelt építőanyagért, akár biciklivel is eltologathnám 463 körben, de inkább bérelek egy kisteherautót...

Mi értelme van nyekegtetni a CPU-t ilyen feladatokkal?

Ha tartós rendszert építesz és okos csapatot nevelsz, akkor száz kiadásban sem érheti baj; ha csak a gépekre hagyatkozol, akkor egyszer jól jársz, máskor rosszul; de ha sem a rendszer nem bírja a terhet, sem a csapat nem tanul a hibákból, akkor minden egyes kiadás kockázat.