Warum gibt es noch keinen GPT-3 Sprachassistenten?

Hallo,

wir alle kennen ja die bekannten Sprachassistenten wie Google Assistant, Alexa und Siri. All diese Assistenten, kann man ja nicht wirklich als "künstliche Intelligenz" bezeichnen, da sie nur auf simplen Algorithmen basieren und sie lediglich bei spezifischen Dingen helfen können, wie z.B. einen Wecker stellen, die Nachrichten vorlesen oder die Smart Home Geräte steuern. Man merkt schnell, dass diese Assistenten oft ungenau/fehlerhaft sind und besonders bei komplexeren Fragen nicht weiterhelfen können.

All diese Probleme, sind bei dem Sprachverarbeitungsmodell GPT-3 nicht vorhanden. Es gibt viele Videos im Web, die das enorme Potential von GPT-3 zeigen:

https://youtu.be/kg9-3_GRSeY

Ich finde es fast unheimlich, wie intelligent und realistisch GPT-3 ist. Man kann es im Grunde die komplexesten philosophischen Fragen stellen und erhalt hochqualitative Antworten. Im Grunde könnte GPT-3 einem bei wirklich allem helfen.

Da frage ich mich, warum es noch kein wirkliches Produkt auf dem Massenmarkt gibt, mit dem man wie in dem obigen Video mit GPT-3 wie mit einem Sprachassistenten aber in Echtzeit interagieren kann. Weil die Technologien dafür sind ja vorhanden: Spracherkennung zur Eingabe, GPT-3 als den Assistenten und beispielsweise ein "MetaHuman" in der Unreal Engine 5 zur Echtzeitausgabe über einen Avatar.

Mit so einem Sprachassistenten, hätte man ja unendlich viele Anwendungsmöglichkeiten: von Beschäftigung/Betreuung der Kinder, Nachhilfe geben, bei komplexen Aufgaben und Entscheidungen in der Schule, Arbeit und Alltag helfen bis hin zu Konversationen über alle mögliche Themen führen.

Ich kann einfach nicht verstehen, warum es so etwas noch nicht gibt? Das würde doch bei weitem das hilfreichste Tool in der Menschheitsgeschichte sein. Letztendlich könnte damit jeder Mensch der Welt einen persönlichen Butler haben, der einem bei allen möglichen Themen, die über Sprache und Bild kommunizierbar sind helfen kann! Ist das nicht die logische Konsequenz dieses Fortschrittes?

Natürlich ist mir bewusst, dass GPT-3 sehr viel Rechenleistung braucht, jedoch könnte man das Produkt ja über Werbungen oder (was ich bevorzugen würde) durch monatliche Gebühren wie z.B. bei Netflix finanzieren.

Und wenn dann erstmal GPT-4 rauskommt, müssten wir uns um fast gar nichts mehr kümmern, weil GPT-4 dann wirklich alles für uns erledigen könnte..

Computer, Software, Englisch, Zukunft, Technik, Wissenschaft, Fortschritt , GPT, Informatik, künstliche Intelligenz, Menschheit, Technologie, Elon Musk
Java eigne Klasse (Bücher ausleihen)?

Hi, also ich soll eine Klasse erstellen nach folgenden Kriterien:

Erstmal sry für den vielen Text, wollte nicht , dass durch das Zusammenfassen mögliche wichtige Informationen verloren gehen ;)

Nun sieht mein Ansatz bis jetzt so aus:

public class Book {
    private String author;
    private String title;
    private LocalDate returnDate;
    private String status;
    public Book(String author, String title, String Status) throws IllegalArgumentException{
        setAuthor(author);
        setTitle(title);
        setReturnDate(returnDate);
        setStatus(status);
    }
    private static boolean checkAuthor(String author){
        return (author.matches("[a-zA-ZäÄöÖüÜß ]") && author.length() >= 2);
    }
    private static boolean checkTitle(String title){
        return (title.length() >= 1 && title.length() < 10);
    }
    public static boolean checkReturnDate(LocalDate returnDate){
        return (  );
    }
    public static boolean checkStatus(String status){
        return (status.equals("rent") || status.equals("not rent"));
    }
    public final void setAuthor(String author) throws IllegalArgumentException{
        if(!checkAuthor(author)){
            throw new IllegalArgumentException("author not valid: "+ author);
        }
        this.author = author;
    }
    public final void setTitle(String title) throws IllegalArgumentException{
        if(!checkTitle(title)){
            throw new IllegalArgumentException("title not valid: "+ title);
        }
        this.title = title;
    }
    private void setReturnDate(LocalDate returnDate) throws IllegalArgumentException{
        if(!checkReturnDate(returnDate)){
            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd.MM.yyyy");
            throw new IllegalArgumentException("Return Date not valid: " + returnDate.format(dtf));
        }
        this.returnDate = returnDate;
    }
    private void setStatus(String status){
        if(!checkStatus(status)){
            throw new IllegalArgumentException("Status not valid:" + status);
        }
        this.status = status;
    }

Mir fehlt noch eine Check Methode für LocalDate returnDate, hier bin ich nicht so ganz weiter gekommen.

Nun war meine Idee eine Unterklasse zu erstellen die von der Klasse Book erbt. In dieser soll dann der ganze Vorgang mit Ausleihen usw geschehen . Macht dies so Sinn?

Sollte ich dann returnDate erst in dieser erstellen?

Bild zum Beitrag
programmieren, Java, Informatik
SQL effizientes mehrdimensionales Histogramm erstellen?

Hallo,

ich habe folgende SQL Tabelle und würde aus dieser mit SQL Abfragen gerne ein mehrdimensionales Histogramm erzeugen.

Meine Tabelle:

`sex` => VARCHAR(1), //für Geschlecht

`age` => INT,

`salary` => INT

Gefüllt könnte z.B. so aussehen (aber mit viel(!) mehr Einträgen natürlich):

Am ende will ich mit meiner Abfrage folgende Ausgabe erzielen:

Wie man in der obigen Ausgabe sieht, will ich die Bereiche bei age und salary nicht(!) gleich verteilen. Alle Lösungen welche also immer in 10er Schritten gehen, funktionieren in meinem Fall nicht. Die "..." Zeile in der Ausgabe soll andeuten, dass die Bereiche bei F(emale) einfach nach der selben Logik (aber vielleicht mit unterschiedlichen Bereichsbreiten) weitergehen. Daran schließt sich dann M(ale), mit den gleichen Bereichen wie F(emale) an. Count gibt jeweils die Anzahl der gefundenen Einträge zu den gegebenen Einschränkungen an. Also z.B. für den ersten Fall sowas wie

SELECT COUNT(*) from `companysalaries` WHERE age >= 18 AND age <= 19 AND salary >= 0 AND salary <= 999 AND sex='F';

Mein bisheriger (funktionierender) Ansatz war:

  1. Stored procedure erstellen
  2. temporary tables als Hiflstabellen mit Bereichen füllen und Hilfstabelle für Ausgabe erstellen
  3. 3-fach geschachtelete WHILE schleife mit Select und INSERT in einen Ausgabetabelle

JETZT ZUR EIGENTLICHEN FRAGE:

Mir kommt meine bisherige Lösung sehr ineffizient vor (54 Zeilen :/), und ich denke mir, dass man ja eigentlich in so einer schönen Sprache wie SQL dieses Problem doch einfacher lösen können müsste. Meine Lösung habe ich auch schon mehrmals überarbeitet, aber ohne die Leserlichkeit aufzugeben, komme ich nicht wesentlich unter die 54 Zeilen. Daher die Frage, ob das irgendwie besser, effizienter und/oder kürzer geht. Die Lösung sollte zudem nur(!) SQL enthalten und keine sonstigen Erweiterungen benötigen/nutzen.

Danke im Voraus für alle Antworten

whgoffline

Bild zum Beitrag
Computer, Technik, SQL, programmieren, Datenbank, Informatik, Technologie
Sind IT-Abteilungen oft chaotisch?

Hallo zusammen

Ich habe hier schon seit längerem nichts mehr geschrieben, habe nun aber ein Anliegen, wo ihr mir vielleicht weiterhelfen könnt.

Ich arbeite seit 8 Jahren in der IT. Habe für 4 Jahre eine IT-Lehre gemacht. Danach habe ich für 3.5 Jahren in einem grossen internationalen Unternehmen im IT-Support und in der Systemtechnik gearbeitet und jetzt arbeite ich seit mehr als einem halben Jahr im einem mittelgrossen Unternehmen im IT-Support und in der Systemtechnik.

Ich mache ausserdem seit einem Jahr ein Teilzeitstudium in der IT und dieses Studium läuft sehr gut und ich mache auch sehr gute Noten.

Ich würde mich eher als extrovertierte Person sehen. Ich arbeite sehr gerne mit Menschen zusammen und mich motiviert es, wenn ich anderen Personen helfen kann. Ich bin ausserdem eine sehr strukturierte Person und habe es gerne, wenn ich Sachen organisieren kann oder es bereits schon eine Struktur gibt. Wenn euch das MBTI-Raster etwas sagt, bin ich dort dem Typ: "ESFJ" zuzuordnen.

Den IT-Support mache ich ausserdem auch sehr gerne.

Nun zu meinem Problem: Ich habe die letzte Firma verlassen, da es dort gegen Ende zu chaotisch und unstrukturiert geworden ist.

In den ersten 2.5 Jahren in dieser Firma war ich sehr selbstständig und mein Chef sagte dann einfach ich sei für dieses Teilgebiet in der IT zuständig, und ich konnte dann selber meine Aufgaben einteilen. Doch im letzten Jahr in dieser Firma gab es sehr viele Umstrukturierungen und es kamen auch international mehr Aufgaben dazu. Es war allerdings nie wirklich bekannt, wie diese Aufgaben wirklich gemacht werden sollten. So gab es zum Beispiel sehr oft an Wochenenden oder am Feierabend dringende Useranfragen aus Japan oder den USA. Als ich dann meinen Chef fragte, wie ich diese Anfrage bearbeiten soll, sagte er zu mir: " Ein Pikett Konzept zu erstellen sei zu aufwendig."

Ausserdem wurde in dieser Firma in der IT gespart und es wurde IT-Personal entlassen.

Ich habe dann daraufhin gekündigt und mir eine andere IT-Stelle gesucht. Nun habe ich aber das Problem, dass es für meinen Geschmack in der neuen Firma auch zu chaotisch ist. Mein Chef hat mir schon sehr oft schrifltich Aufgaben gegeben, wo allerdings nichts wirklich bekannt war. Ich hatte zum Beispiel mal einen Auftrag, wo ich in einem Büro neue WLAN-Router installieren musste. Mein Chef hat mir am Freitag um 18:30 Uhr den Auftrag schriftlich gegeben und schrieb dann im Mail: "Mach einfach mal, es muss aber nächste Woche fertig sein" und ging dann in die Ferien.

Diese Situation ist recht frustrierend.

Ich habe mir auch schon überlegt in der IT richtung Beratung oder ins Management zu gehen, wo ich dann wirklich selbstständig arbeiten kann und auch meine eigenen Strukturen erstellen kann.

Ich habe mir auch schon überlegt die IT-Branche komplett zu verlassen und das Lehrer-Studium zu machen.

Was denkt ihr über diese Situation?

Gruss

HansLustig

Computer, Arbeit, IT, Arbeitswelt, Informatik, Jobwechsel, Ausbildung und Studium, Beruf und Büro, Myers-Briggs-Typenindikator
Binäre Suchbäume mit Algorithmus erweitern?

Hallo liebe Community, ich will einen Algorithmus schreiben, welcher einen binären Suchbaum, mit paarweise verschiedenen Schlüsseln, automatisch erweitert. Stellen wir uns vor wir haben einen Suchbaum, diesen übergeben wir dem Algorithmus und geben ihm dem Namen T. Der Algorithmus hängt an jedes Blatt von T neue Blätter an (so viele wie möglich). Hier ein kleines Beispiel:

wird zu

Ich habe dann erstmal angefangen drauf los zu programmieren und habe auch ein bisschen was hinbekommen. Aber bei mir ist das Problem, dass wenn der Baum größer wird, dass dann kein korrekter Suchbaum mehr rauskommt. Erst habe ich einen Algorithmus geschrieben der für Bäume der Höhe 2 funktioniert, dann für die Höhe 3. Dann habe ich bemerkt, dass das aber nicht für die Höhe 4 funktioniert und dann habe ich mich gefragt ob meine Grundidee vielleicht falsch war.

Meine Idee war ansich folgende: Erstmal habe ich triviale Bäume der Höhe 0 und 1 abgedeckt. Dann kommen wir zum richtigen Algorithmus (erstmal für einen Baum mit der Höhe zwei): Man schaut sich jeden Knoten rekursiv an. Wenn das linke Kind und das rechte Kind vom Knoten beide NULL sind, dann ist der Knoten ein Blatt, nennen wir dieses Blatt y.

Dann gibt es vier Fälle für das Blatt y:

  • Das Blatt kann ein linkes Kind im linken Teilbaum sein: Dann muss der Schlüssel des linken Kindes kleiner sein, als der Schlüssel von y. Der Schlüssel vom rechten Blatt muss größer sein als der Schlüssel von y aber kleiner als der Vaterknoten von y.
  • Das Blatt kann ein rechtes Kind im linken Teilbaum sein: Dann muss der Schlüssel des linken Kindes kleiner sein, als der Schlüssel von y, aber größer sein als der Vaterknoten von y. Der Schlüssel vom rechten Kind muss größer sein als der Schlüssel von y, aber kleiner als die Wurzel vom Baum.
  • Das Blatt kann ein linkes Kind im rechten Teilbaum sein: Dann muss der Schlüssel des linken Kindes kleiner sein, als der Schlüssel von y aber größer als die Wurzel vom Baum. Der Schlüssel vom rechten Kind muss größer sein als der Schlüssel von y, aber kleiner sein als der Vaterknoten von y.
  • Das Blattt kann ein rechtes Kind im rechten Teilbaum sein: Dann muss der Schlüssel des linken Kindes kleiner sein als der Schlüssel von y, aber größer als die Wurzel des Baums. Der Schlüssel des rechten Kindes muss größer sein, als der Schlüssel von y.

Mit diesen Bedingungen, kann man dann einen Algorithmus schreiben, der funktioniert. Aber halt nur für Bäume der Höhe 2. Bei einem Baum der Höhe drei hat das dann nicht mehr funktioniert, weil es sozusagen erstmal einen linken und einen rechten Teilbaum gibt und dann davon nochmal jeweils einen linken und rechten. Meine Idee war dann einfach ob, man sich in einem rechten Teilbaum befindet oder in einem linken, aber das hat nicht geklappt. Vielleicht kann mir ja jemand eine Grundidee geben, weil meine Idee anscheinend nicht richtig funktioniert. Das implementieren mache ich selber.

Bild zum Beitrag
PC, Computer, Mathematik, programmieren, Java, Informatik, Algorithmus

Meistgelesene Beiträge zum Thema Informatik