Hallo zusammen,
Ich habe vor kurzem ein kleines Beispiel gebaut wie man PyTorch in PureBasic für die Inferenz Neuronaler Netze verwenden kann und habe es auch schon im englischen Forum gepostet, aber vielleicht ist es hier auch hilfreich.
https://github.com/Bradan/pytorch-in-purebasic
Wenn ihr mehr Features braucht müsst ihr den C Wrapper entsprechend erweitern, aber die meisten Netze erwarten einfach einen richtig dimensionierten Tensor als Input und geben auch einen Tensor zurück. Das sollte damit gehen. Das Beispiel funktioniert hier unter Linux, unter Windows bin ich zur Zeit nicht unterwegs, aber es würde denke ich auch dort klappen wenn man ein paar Dateinamen anpasst. Das Beispiel ist ein einfaches CNN.
Modelle werden in der Regel immer in Python designed, dann wird es als torch.jit.script exportiert und in C++ wieder importiert. Man könnte auch darüber nachdenken ONNX Runtimes an PB anzubinden, dann könnte man PyTorch und Tensorflow Modelle auswerten.
Viel Spaß damit.
PyTorch für Inferenz in PureBasic
-
- Beiträge: 6249
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
PyTorch für Inferenz in PureBasic
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- NicTheQuick
- Ein Admin
- Beiträge: 8655
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: PyTorch für Inferenz in PureBasic
Sehr cool! Ich habe es jetzt nicht ausprobiert, weil ich lieber bei den Programmiersprachen bleibe, die sich etabliert haben um mit pytorch oder tensorflow zu arbeiten. Und abgesehen davon stecke ich da eh noch in den Kinderschuhen
Aber echt cool, dass du dir die Arbeit gemacht hast. Machst du aktiv damit etwas?

Aber echt cool, dass du dir die Arbeit gemacht hast. Machst du aktiv damit etwas?
-
- Beiträge: 6249
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: PyTorch für Inferenz in PureBasic
Ich finde auch, dass man gerade in dem Bereich eher etablierte Standards verwenden sollte. Aus dem Grund ist das Beispiel auch nur so klein geworden. Privat mache ich relativ wenig in dem Bereich, da mein Rechner langsam zu alt wird für alles und ich mir keinen neuen mehr zulegen will. Ich wollte einfach die Machbarkeit hier demonstrieren, da doch langsam immer wieder die Frage nach ML in PB aufkommt. Aber beruflich bin ich durchaus in Richtung OCR und co unterwegs. Was genau machst du denn damit wenn ich fragen darf?NicTheQuick hat geschrieben: ↑22.10.2023 13:40 Sehr cool! Ich habe es jetzt nicht ausprobiert, weil ich lieber bei den Programmiersprachen bleibe, die sich etabliert haben um mit pytorch oder tensorflow zu arbeiten. Und abgesehen davon stecke ich da eh noch in den Kinderschuhen![]()
Aber echt cool, dass du dir die Arbeit gemacht hast. Machst du aktiv damit etwas?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- NicTheQuick
- Ein Admin
- Beiträge: 8655
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: PyTorch für Inferenz in PureBasic
Noch mache ich damit nicht viel, aber ich fange diese Woche an damit ein wenig herumzuspielen. Zuerst wollte ich mich ein bisschen mit Bild-Generierung beschäftigen, und später dann mit LLMs. Ich würde ein LLM gerne Dokumente lesen lassen, damit ich ihm später Fragen darüber stellen kann. Also ähnilch wie ChatGPT es kann. Meine erste Idee war alle meine Mails als Prompt reinzuhauen und dann mal schauen, was es darüber am Ende weiß.
Ich habe mir deshalb extra eine RTX 3080 TI gekauft, die zwar von der RTX 4070 TI in Gaming-Performance schon überholt wurde, aber in Sachen AI anscheinend immer noch besser ist. Die Karten sind momentan etwa gleich teuer. Schade ist nur, dass sie nur 12 GB VRAM haben.
Ich habe mir deshalb extra eine RTX 3080 TI gekauft, die zwar von der RTX 4070 TI in Gaming-Performance schon überholt wurde, aber in Sachen AI anscheinend immer noch besser ist. Die Karten sind momentan etwa gleich teuer. Schade ist nur, dass sie nur 12 GB VRAM haben.
-
- Beiträge: 6249
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: PyTorch für Inferenz in PureBasic
Das klingt spannend. Viel Erfolg. Das wichtigste Paper ist dann wohl "Attention Is All You Need". Wenn dein LLM zwar sachlich korrekt aber vielleicht zu unnatürlich ist gabs erst neulich dutzende Vorträge zu "Reinforcement Learning with Human Feedback" im Bereich Transformer auf der ICML 2023, deren Videoaufzeichnungen nun für jeden online einsehbar sind. Anstelle einer vordefinierten Loss Funktion trainiert man eine anhand von binären, menschlichen Entscheidungen an um dann ein bereits vorhandenes Netz natürlicher zu trainieren.
Für Bildgenerierung sind Diffusion Models ("Denoising Diffusion Probabilistic Models") aktuell die Präferenz, wobei Progressive Generative Adversarial Networks auch recht gute Ergebnisse erzielen.
Wenn du ein allgemeines Modell zur Verbindung von Sprache und Bildern suchst schwören die meisten auf CLIP, ein vortrainiertes Modell: https://github.com/openai/CLIP
Für Bildgenerierung sind Diffusion Models ("Denoising Diffusion Probabilistic Models") aktuell die Präferenz, wobei Progressive Generative Adversarial Networks auch recht gute Ergebnisse erzielen.
Wenn du ein allgemeines Modell zur Verbindung von Sprache und Bildern suchst schwören die meisten auf CLIP, ein vortrainiertes Modell: https://github.com/openai/CLIP
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- NicTheQuick
- Ein Admin
- Beiträge: 8655
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: PyTorch für Inferenz in PureBasic
Interessant, Danke schön! Für die Bildgenerierung habe ich schon viele Tipps bekommen von meinem Arbeitskollegen, der bereits tolle Ergebnisse erhalten hat. Aber ich nehme natürlich alles, was ich kriegen kann. 
