AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi KI in eigene Anwendung integrieren
Thema durchsuchen
Ansicht
Themen-Optionen

KI in eigene Anwendung integrieren

Ein Thema von Gruber_Hans_12345 · begonnen am 26. Jun 2024 · letzter Beitrag vom 5. Jul 2024
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.645 Beiträge
 
#1

AW: KI in eigene Anwendung integrieren

  Alt 28. Jun 2024, 07:48
Hast Du ein praktisches "Hello World" für ein lokales LLM (Mit Delphi)
Wie gesagt, lokale LLMs sind (aktuell) bei weitem nicht so intelligent wie gehostete.

Dennoch: Mit Ollama (https://ollama.com/) kannst Du viele LLMs lokal betreiben:

Phi3 in einer passenden Quantisierung die nicht zu langsam ist geht z.B. so:
Code:
ollama run phi3:3.8b-mini-instruct-4k-fp16
Dann kannst Du schonmal auf der Kommandozeile mit dem Model chatten.
Ollama hat auch eine web-api, die Du von anderen Programmen aus ansprechen kannst.

Dazu habe ich ein Delphi-UI gefunden: https://github.com/HuichanKIM/Ollama-Delphi-GUI
Da ich aber schon ewig kein Delphi mehr mache, kann ich Dir dazu nicht sagen, wie gut das wirklich ist.

Edit / Ergänzung:

Wenn ich das o.a. Phi3 mit folgender Frage befeuere:
Code:
(Invoke-WebRequest -method POST -Body '{"model":"phi3:3.8b-mini-instruct-4k-fp16", "prompt":"Why is the sky blue?", "stream": false}' -uri http://localhost:11434/api/generate ).Content | ConvertFrom-json
erhalte ich folgende Antwort:

Code:
model               : phi3:3.8b-mini-instruct-4k-fp16
created_at          : 28.06.2024 06:49:41
response            : The sky appears blue to us because of a phenomenon called Rayleigh scattering. Sunlight, which
                       contains all colors of light in its spectrum, travels through Earth's atmosphere and interacts
                       with molecules and small particles present there.

                       When sunlight reaches our atmosphere, it encounters tiny air molecules (like nitrogen and
                       oxygen) and other aerosols suspended in the air. These particles scatter short-wavelength
                       light, like blue and violet colors, more than they do long-wavelength light, such as red or
                       yellow.

                       However, our eyes are more sensitive to blue light (around 475 nanometers) compared to violet
                       light (which is shorter wavelength). Also, the Earth's atmosphere absorbs some of the sunlight
                       in the ultraviolet and near-ultraviolet region, which means there's less scattering for these
                       colors.

                       As a result, when we look up at the sky away from direct sources of light like the Sun, we
                       perceive it as blue due to the dominance of scattered blue light in all directions. When
                       sunlight passes through the Earth's atmosphere during dawn and dusk, shorter wavelengths (blue
                       and violet) scatter more than longer wavelengths (red and orange). This is why the sky appears
                       redder at these times.

                       It's also worth mentioning that under certain conditions, such as heavy pollution or volcanic
                       activity, the sky may not appear blue but take on other colors due to changes in aerosols
                       present in the atmosphere.
done                : True
done_reason         : stop
context             : {32010, 3750, 338, 278…}
total_duration      : 265333993700
load_duration       : 4458200
prompt_eval_count   : 10
prompt_eval_duration : 5340166000
eval_count          : 340
eval_duration       : 259982060000
Für das bisschen Text braucht es knapp unter viereinhalb Minuten.
Also wie gesagt, lokal ist aktuell noch nicht wirklich geil.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org

Geändert von Phoenix (28. Jun 2024 um 07:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.166 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: KI in eigene Anwendung integrieren

  Alt 28. Jun 2024, 22:06
Hast Du ein praktisches "Hello World" für ein lokales LLM (Mit Delphi)
Wie gesagt, lokale LLMs sind (aktuell) bei weitem nicht so intelligent wie gehostete.

Dennoch: Mit Ollama (https://ollama.com/) kannst Du viele LLMs lokal betreiben:
Das ist ja ein externe Software.

Ein LLM "Hello World" mit Delphi sieht für mich so aus:

Eine Delphi Unit - zur Not mit einer Komponente - Läd Daten eines LLM und kann dann ohne externe Resourcen die Frage(n) beantworten.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.793 Beiträge
 
Delphi 12 Athens
 
#4

AW: KI in eigene Anwendung integrieren

  Alt 29. Jun 2024, 01:47
Eine Delphi Unit ...
siehe GetIt?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.108 Beiträge
 
Delphi 12 Athens
 
#5

AW: KI in eigene Anwendung integrieren

  Alt 29. Jun 2024, 09:11
Hallo,

hier auch noch was, das auch mit Delphi benutzt werden kann (Demo inklusive):
https://github.com/tinyBigGAMES/LMEngine

Arbeitet mit einem Offline LLM, das man sich auch noch herunterladen muss.
Es werden mehrere unterstützt, z. T. auch recht kompakte (naja 3 GB) von Microsoft.
Das kann Texte generieren, man kann es auch auf Deutsch "befragen" und es kann denke ich auch übersetzen.

Und ja: auch dieses liefert immer wieder falsche Daten (z. B. bei Dykstra einen falschen Geburtsort
und falsches Geburtsdatum) und es beharrt dann auch hartnäckig darauf, recht zu haben.

Es kann auch Mathe Aufgaben lösen, manchmal aber falsch
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.793 Beiträge
 
Delphi 12 Athens
 
#6

AW: KI in eigene Anwendung integrieren

  Alt 29. Jun 2024, 14:05
Es kann auch Mathe Aufgaben lösen, manchmal aber falsch
Menschlich halt.
Ist ja kein Roboter,
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.108 Beiträge
 
Delphi 12 Athens
 
#7

AW: KI in eigene Anwendung integrieren

  Alt 29. Jun 2024, 16:28
Naja, es versuchte dann zu erklären wie die Lösung zustande kam und
hat in der Erklärung gemerkt dass es falsch war. Nur war der nächste
Lösungsvorschlag der dann sofort kam auch falsch
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.645 Beiträge
 
#8

AW: KI in eigene Anwendung integrieren

  Alt 30. Jun 2024, 15:07
Naja, es versuchte dann zu erklären wie die Lösung zustande kam und hat in der Erklärung gemerkt dass es falsch war. Nur war der nächste Lösungsvorschlag der dann sofort kam auch falsch
Es sind ja auch Sprachmodelle. Die sind darauf trainiert Text zu generieren, der wahrscheinlich sinnvoll ist. In der Antwort standen die Ziffern vermutlich an der wahrscheinlich richtigen Stelle, es hat also alles richtig gemacht

Rechnen können die Modelle nicht, aber deswegen kann man einem LLM ja mit Tool Calling auch z.B. eine Handvoll mathematischer Tools an die Hand geben und ihm sagen, dass es Berechnungen bitte damit machen soll. Das klappt dann in aller Regel sehr gut.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.645 Beiträge
 
#9

AW: KI in eigene Anwendung integrieren

  Alt 30. Jun 2024, 15:04
Ein LLM "Hello World" mit Delphi sieht für mich so aus:

Eine Delphi Unit - zur Not mit einer Komponente - Läd Daten eines LLM und kann dann ohne externe Resourcen die Frage(n) beantworten.
Das Stück Software, das die "Daten eines LLM", also diese Milliarden Parameter, Gewichtungen und Biases, direkt lädt und damit das LLM ausführt, nennt sich inference engine.
Ich wüsste ehrlich gesagt von keiner Inference Engine die in Delphi implementiert ist.

Llamacpp als eine inference engine z.B. ist in C++ geschrieben. Du könntest jetzt - rein theoretisch - diesen C++ Teil nehmen, direkt dagegen linken und damit die Engine In-Proc ausführen. Aber da würde ich mich ehrlich fragen wo da der Vorteil läge, wenn Du es sinnvoll out-of-process mit einer Web-API betreiben und ansprechen kannst.
Zumal dann der Wechsel zu einem hosted Model - und wie gesagt sind die deutlich mächtiger - nur daraus besteht, die URL statt zum lokalen Ollama z.B. auf Mistral zu ändern und einen API-Key zu hinterlegen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.108 Beiträge
 
Delphi 12 Athens
 
#10

AW: KI in eigene Anwendung integrieren

  Alt 1. Jul 2024, 17:31
Ein LLM "Hello World" mit Delphi sieht für mich so aus:

Eine Delphi Unit - zur Not mit einer Komponente - Läd Daten eines LLM und kann dann ohne externe Resourcen die Frage(n) beantworten.
Das Stück Software, das die "Daten eines LLM", also diese Milliarden Parameter, Gewichtungen und Biases, direkt lädt und damit das LLM ausführt, nennt sich inference engine.
Ich wüsste ehrlich gesagt von keiner Inference Engine die in Delphi implementiert ist.

Llamacpp als eine inference engine z.B. ist in C++ geschrieben. Du könntest jetzt - rein theoretisch - diesen C++ Teil nehmen, direkt dagegen linken und damit die Engine In-Proc ausführen. Aber da würde ich mich ehrlich fragen wo da der Vorteil läge, wenn Du es sinnvoll out-of-process mit einer Web-API betreiben und ansprechen kannst.
Zumal dann der Wechsel zu einem hosted Model - und wie gesagt sind die deutlich mächtiger - nur daraus besteht, die URL statt zum lokalen Ollama z.B. auf Mistral zu ändern und einen API-Key zu hinterlegen.
Naja, bei In-Process kann typischerweise keiner weas blockieren. Bei Webverbindungen, selbst auf dem Local Host, kann so das eine oder andere in die Quere kommen...
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz