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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.