Forum: PC-Programmierung Open AI Whisper Modelle


von Matthias K. (koellomat)


Lesenswert?

Hallo,

ich habe ein Verständnisproblem zu den Modellen von Open AI Whisper.
Jetzt gibt es diese netten Milk-V Boards mit TPU.
Dann könnte man ja auf die Idee kommen, dass man ein Modell dort 
hineinsteckt und von dieser rechnen lässt.
Ok, es müsste halt das richtige Format haben.
Allerdings finde ich nichts darüber, welches Format die Modelle haben.
Zur Benutzung findet man immer wieder nur die Anleitungen zu Python.
Es gibt auch einen Port whisper cpp. Aber da ist die Dokumentation auch 
nicht besser.
Wie müsste man vorgehen?

Gruß Matthias

von Markus K. (markus-)


Lesenswert?

Matthias K. schrieb:
> Allerdings finde ich nichts darüber, welches Format die Modelle haben.
Das ist normal.

> Zur Benutzung findet man immer wieder nur die Anleitungen zu Python.

Damit konvertierst Du das Netz in dieses cvi-Format, das die Hardware 
braucht.

Hast Du Dir mal den Speicherbedarf von Whisper angeschaut?
https://github.com/openai/whisper

von Matthias K. (koellomat)


Lesenswert?

Na ja, ich muss mir wohl kaum Gedanken über den Speicherbedarf machen, 
wenn es scheinbar keinen Hebel zum Ansetzen gibt.
Als alter Sack, der als embedded System etwas ohne Linux versteht, 
dachte ich, man könnte die TPU wie eine Pripherieeinheit nutzen.
Dann hätte man die Tensorrechnung aus whisper cpp in die TPU 
ausgelagert.
Aber so läuft das scheinbar heutzutage nicht mehr.
Man braucht ein Tool, in das man die Modelle reinsteckt und das Frontend 
definiert. Dann wird irgendetwas umeinander geschwurbelt, durch 10000 
Kommandozeilentools gejagt und ein Linuximage erzeugt, dass man per SD 
laden kann.
Ok, war eine nette Idee von mir. Aber dazu bin ich dann doch wohl zu 
alt.

von Markus K. (markus-)


Lesenswert?

Matthias K. schrieb:
> Als alter Sack, der als embedded System etwas ohne Linux versteht,
> dachte ich, man könnte die TPU wie eine Pripherieeinheit nutzen.

Im Prinzip geht das schon. Du brauchst halt eine detaillierte 
Beschreibung der NPU. Keine Ahnung ob es die hier gibt.

> Dann hätte man die Tensorrechnung aus whisper cpp in die TPU
> ausgelagert.

Das ist halt viel Arbeit.

> Aber so läuft das scheinbar heutzutage nicht mehr.
> Man braucht ein Tool, in das man die Modelle reinsteckt und das Frontend
> definiert. Dann wird irgendetwas umeinander geschwurbelt, durch 10000
> Kommandozeilentools gejagt

Das liegt daran, dass es einfach sehr viele Modelle gibt und ständig 
neue, noch bessere Modelle rauskommen und es andererseits viele 
verschiedene NPUs gibt. Wenn man einfach mal 5 verschiedene Netze 
ausprobieren möchte, dann will man den Aufwand pro Versuch möglichst 
gering halten.

Was Du machen möchtest ist im Prinzip Assemblerprogrammierung. Du 
schaust, welche Operatoren hat das Netz, welche Operatoren kann die NPU 
und schaust, wie man das am Besten zuordnen kann. Welche fehlenden 
Operatoren muss man nachbilden, wie kann man das am besten im Speicher 
ablegen usw. usf.

Kann man machen, kann auch spannend und lohnend sein, ist aber definitiv 
viel Aufwand.

> und ein Linuximage erzeugt, dass man per SD laden kann.

Ja, aber das hat nichts mit dem Netz zu tun. So große Systeme lässt man 
heutzutage halt gerne unter Linux laufen und dann will man dafür auch 
einen Generator haben

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.