Willkommen zu meinem Blogbeitrag, in dem ich meine Reise und Einblicke in die Arbeit mit dem LLama2-Modell teile. LLama2 ist ein fantastisches KI-Modell, das von Meta entwickelt wurde, und es ist spannend, seine Fähigkeiten zu erkunden, die an GPT-3 erinnern. In diesem Beitrag werden wir uns mit verschiedenen Facetten von LLama2 befassen, einschließlich seiner Einrichtung, Voraussetzungen, Anwendungen, Bedeutung und sogar einem Blick darauf, wie wir es selbst trainieren können. Ich freue mich, Ihnen meine Lernerfahrungen mit LLama2 vorstellen zu können, die ich während der Arbeit an meinem HackBot-Projekt gesammelt habe.
LLama2 ist eine von Meta entwickelte Spitzentechnologie, die im Kern als KI-Modell eingestuft wird. Betrachten Sie es als einen sehr intelligenten Assistenten, der die menschliche Sprache verstehen und aussagekräftige, fast menschenähnliche Antworten geben kann. Das Ziel von LLama2 ist es, die Interaktion zwischen Menschen und Computern einfacher und natürlicher zu gestalten.
Überlegen Sie, wie Sie sich verbal ausdrücken, wenn Sie mit Freunden sprechen oder E-Mails verfassen. Die Menschen, mit denen Sie kommunizieren, verstehen und reagieren. Ähnlich im Betrieb kann LLama2 enorme Mengen an Textdaten verarbeiten und daraus lernen. Dies ermöglicht es LLama2, bei einer Vielzahl von Aufgaben zu helfen, beispielsweise bei der Bereitstellung von Informationen und der Beantwortung von Fragen, aber auch beim Verfassen von Inhalten und bei der Problemlösung.
Das Einzigartige an LLama2 ist, dass es im Hinblick auf Barrierefreiheit entwickelt wurde. Es ist, als hätte man ein flexibles Instrument, das von jedem mit unterschiedlichen technischen Fähigkeiten genutzt werden kann. LLama2 bietet einen einfachen Ansatz für den Zugriff auf das Potenzial künstlicher Intelligenz, unabhängig davon, ob Sie Entwickler, Autor, Student oder jemand sind, der sich einfach nur dafür interessiert.
Im Wesentlichen schafft LLama2 einen Bereich von Möglichkeiten, in dem Computer einfacher und effektiver mit der menschlichen Sprache interagieren können. Ihre Interaktionen mit Technologie werden viel produktiver und effizienter, da Sie einen virtuellen Kumpel haben, der Ihnen bei Aktivitäten rund um Text und Sprache ständig zur Seite steht.
Beginnen wir mit den ersten Schritten, damit Sie loslegen können. Im Folgenden sind die Aufgaben aufgeführt, die Sie berücksichtigen müssen, damit der Code funktioniert.
Wählen Sie Ihre Sprache:
Python war meine erste Wahl als zuverlässiger Reisebegleiter. Aufgrund seiner Anpassungsfähigkeit und umfangreichen Nutzung in der Programmiergemeinschaft ist es eine großartige Option für die Interaktion mit LLama2. Sie sind in einer guten Verfassung, wenn Sie bereits mit Python vertraut sind.
Das Wesentliche einrichten:
HuggingFace-Konto und Zugriff auf das Lama-Repository:
Um loszulegen, müssen Sie ein Konto bei HuggingFace erstellen, einer Plattform, die mehrere KI-Modelle und -Tools beherbergt. Stellen Sie sicher, dass Ihr Konto vorbereitet ist. Darüber hinaus können Sie die Komponenten für LLama2 finden, indem Sie Zugriff auf das Lama-Repository von Meta erwerben.
C/C++- und Cmake-Installation: LLama2 verfügt über eine Komponente namens LLama-cpp, die die Installation von C/C++ und Cmake auf Ihrem System erfordert. Diese Tools sind für die Erstellung von LLama-cpp unerlässlich. Stellen Sie daher sicher, dass sie eingerichtet und einsatzbereit sind.
Anmelden und vorbereiten:
Huggingface-cli-Anmeldung: Melden Sie sich mit Ihren HuggingFace-Kontodaten über die HuggingFace-Befehlszeilenschnittstelle an. In diesem Schritt werden Sie über Ihr Konto-Token mit der HuggingFace-Plattform verbunden und erhalten Zugriff auf die benötigten KI-Ressourcen. Das Token kann über diese URL gefunden werden, falls Sie keines finden.
Die Befehle sind:
$ huggingface-cli login Token: Your_Token
Installation von LLama-cpp: Llama-cpp ist ein Low-Level-Zugriffsbinder für die Zusammenarbeit von Lama und Python und bietet uns mehr Flexibilität.
Die Installation kann auf 2 Arten erfolgen:
Die direkte Python-Installation:
pip install llama-cpp-python
Die Kompilierungsoption: Dazu müssen Sie sich die Readme-Datei für das Modul ansehen, deren komplexe Erklärung: README.md
Langchain installieren : Langchain ist ein offenes Framework, das die Entwicklung von LLM-Modellanwendungen erleichtern soll. Für diese Aufgabe werden wir insbesondere die Module LLamaCpp , PrompTemplate , CallbackManager und StreamingStdOutCallbackHandler verwenden.
Der Befehl für die Installation lautet:
pip install langchain pip install langchainplus-sdk
Wie wird es im Python-Code verwendet?
Die Hauptfrage ist nun, wie wird es verwendet?
Um dies zu beantworten, kann der Integrationsteil in Schritte unterteilt werden.
Download und Definition des Modells:
Hierzu beziehe ich mich auf den Code von HackBot.
Nachdem wir alle wesentlichen Module aufgerufen haben, müssen wir uns für den Modellnamen und das Repo entscheiden, von dem wir es herunterladen möchten.
model_name_or_path = "localmodels/Llama-2-7B-Chat-ggml" model_basename = "llama-2-7b-chat.ggmlv3.q4_0.bin" model_path = hf_hub_download(repo_id=model_name_or_path, filename=model_basename)
Im obigen Code ist das verwendete Lama-Modul ein 7b- oder 7-Milliarden-Parametermodell und die Localmodels-Version llama2.
Dann wird der model_path durch den Download-Pfad des Modells durch den Huggingface-Downloader referenziert, der llama-2-7b-chat.ggmlv3.q4_0.bin aus dem Repo in das System herunterlädt.
Der Pfad ist wichtig, da LlamaCpp bei der Verwendung auf den Modellspeicherort verweist.
Definieren Sie eine Persona und eine Eingabeaufforderungsvorlage:
from langchain import PromptTemplate from langchain.callbacks.manager import CallbackManager from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler template = """ persona: {persona} You are a helpful, respectful, and honest cybersecurity analyst. Being a security analyst, you must scrutinize the details provided to ensure they are usable for penetration testing. Please ensure that your responses are socially unbiased and positive. If a question does not make any sense or is not factually coherent. If you don't know the answer to a question, please don't share false information. Keep your answers in English and do not divert from the question. If the answer to the asked question or query is complete, end your answer. Keep the answer accurate and do not skip details related to the query. Give your output in markdown format. """ prompt = PromptTemplate(template=template, input_variables=["persona"]) callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
Wir müssen eine Basisvorlage für ein Lama bereitstellen, die es als seine Personas verwenden kann, z. B. um es als persönlichen Assistenten oder Cybersicherheitsanalysten zu definieren.
Die Vorlage definiert, wie das Modell funktionieren wird, und kann große Auswirkungen auf die endgültige Ausgabe haben. Daher muss sie mit größter Sorgfalt geschrieben werden.
Die Eingabeaufforderung wird dann mithilfe der Vorlagenpersona und des PromptTemplate-Moduls mithilfe der Persona generiert.
Der Callback-Manager wird verwendet, um die Ausgabe der KI anzuzeigen und auch die Eingabe- und Ausgabelinks zu verwalten.
Definieren Sie das LlamaCpp-Modul:
llm = LlamaCpp( model_path=model_path, input={"temperature": 0.75, "max_length": 3500, "top_p": 1}, callback_manager=callback_manager, max_tokens=3500, n_batch=3500, n_gpu_layers=60, verbose=False, n_ctx=3500, streaming=False, )
Durch die Implementierung haben wir nun ein Chatbot-Backbone oder einen Konnektor erstellt und können damit eine aktive Konversation mit dem KI-Modell beginnen.
HackBot war mein Versuch, einen Cybersicherheits-spezifischen Chatbot zu erstellen. Dieses Tool verfügt über Funktionen wie das Scannen von Daten, Tools zur Protokolldatenanalyse und Funktionen zur Codeanalyse.
Chat-Interaktionsschleife:
while True: try: prompt_in = Prompt.ask('> ') # ... except KeyboardInterrupt: pass
Diese Schleife erstellt eine interaktive Umgebung, in der der Benutzer Befehle oder Eingabeaufforderungen eingeben kann. Der Code wartet mit Prompt.ask('> ')
auf Benutzereingaben und behandelt Ausnahmen wie KeyboardInterrupt (Strg+C), ohne dass das Programm abstürzt. Diese Schleife stellt sicher, dass der Chatbot reaktionsfähig bleibt und kontinuierlich mit dem Benutzer interagieren kann.
Verarbeitung von Benutzerbefehlen:
if prompt_in == 'quit_bot': quit() elif prompt_in == 'clear_screen': clearscr() pass elif prompt_in == 'bot_banner': # ... elif prompt_in == 'save_chat': # ... elif prompt_in == 'static_code_analysis': # ... elif prompt_in == 'vuln_analysis': # ... elif prompt_in == 'contact_dev': # ... elif prompt_in == 'help_menu': # ... else: # ...
Innerhalb der Schleife werden Benutzereingaben anhand verschiedener Befehlsschlüsselwörter überprüft. Abhängig von der Eingabe führt der Code entsprechende Aktionen aus. Wenn der Benutzer beispielsweise „quit_bot“ eingibt, wird die Funktion quit()
aufgerufen, um das Programm zu beenden. Wenn der Benutzer „clear_screen“ eingibt, löscht die Funktion clearscr()
den Konsolenbildschirm. Eine ähnliche Logik wird auf andere Befehle angewendet.
Generieren von KI-Antworten:
else: prompt = prompt_in print(Print_AI_out(prompt)) pass
Wenn die Benutzereingabe keinem der vordefinierten Befehle entspricht, wird sie als Eingabeaufforderung für die KI behandelt. Die Eingabe wird der prompt
zugewiesen und die Funktion Print_AI_out(prompt)
wird aufgerufen, um eine KI-Antwort basierend auf der bereitgestellten Eingabeaufforderung zu generieren. Die von der KI generierte Antwort wird dann auf der Konsole ausgegeben.
Chatverlauf speichern:
def save_chat(chat_history: list[Any, Any]) -> None: f = open('chat_history.json', 'w+') f.write(json.dumps(chat_history)) f.close
Die Funktion save_chat
ist dafür verantwortlich, den Konversationsverlauf, der sowohl Benutzeraufforderungen als auch KI-generierte Antworten umfasst, in einer JSON-Datei mit dem Namen „chat_history.json“ zu speichern. Diese Funktion serialisiert die Daten in der chat_history
Liste in das JSON-Format und schreibt sie in die Datei.
Schwachstellenanalyse und statische Codeanalyse:
elif prompt_in == 'static_code_analysis': print(Markdown('----------')) language_used = Prompt.ask('Language Used> ') file_path = Prompt.ask('File Path> ') print(Markdown('----------')) print(static_analysis(language_used, file_path)) pass elif prompt_in == 'vuln_analysis': print(Markdown('----------')) scan_type = Prompt.ask('Scan Type > ') file_path = Prompt.ask('File Path > ') print(Markdown('----------')) print(vuln_analysis(scan_type, file_path)) pass
In diesen Abschnitten werden die Benutzerbefehle zum Durchführen statischer Codeanalysen und Schwachstellenanalysen behandelt. Der Benutzer wird aufgefordert, Informationen wie die verwendete Sprache oder die Art des Scans sowie einen Dateipfad anzugeben. Anschließend wird die entsprechende Analysefunktion ( static_analysis
oder vuln_analysis
) mit den bereitgestellten Daten aufgerufen und die KI generiert Antworten, die Analyseergebnisse enthalten.
Schwachstellenanalyse: Im Abschnitt vuln_analysis
fordert der folgende Code den Benutzer zur Eingabe auf:
scan_type = Prompt.ask('Scan Type > ') file_path = Prompt.ask('File Path > ')
Hier wird die Funktion Prompt.ask
verwendet, um den Benutzer interaktiv nach Informationen zu fragen. Der Benutzer wird aufgefordert, die Art des Scans und den Dateipfad für die zu analysierenden Daten einzugeben. Diese Eingaben sind für die Schwachstellenanalyse unerlässlich. Sobald der Benutzer diese Eingaben macht, wird die Analyse mithilfe einer Eingabeaufforderung eingeleitet, die die Eingaben des Benutzers berücksichtigt:
prompt = f""" **Objective:** You are a Universal Vulnerability Analyzer powered by the Llama2 model. Your main objective is to analyze any provided scan data or log data to identify potential vulnerabilities in the target system or network. You can use the scan type or the scanner type to prepare a better report. **Instructions:** # ... (rest of the instructions) **Input Data:** You will receive the scan file data or log file data in the required format as input. Ensure the data is correctly parsed and interpreted for analysis. **Output Format:** The vulnerability analysis report should be organized as mentioned in the "Comprehensive Report" section. Please perform the vulnerability analysis efficiently, considering the security implications and accuracy, and generate a detailed report that helps users understand the potential risks and take appropriate actions. --- Provide the scan type: {scan_type} Provide the scan data or log data that needs to be analyzed: {file_data} """
In dieser Eingabeaufforderung werden die Platzhalter {scan_type}
und {file_data}
durch die tatsächlichen vom Benutzer eingegebenen Werte ersetzt. Diese dynamische Eingabeaufforderung wird dann an das LLama2-Modell weitergeleitet, um eine KI-Antwort zu generieren, die Analyseergebnisse basierend auf dem bereitgestellten Scantyp und den Dateidaten bereitstellt.
Statische Code-Analyse: In ähnlicher Weise fordert der Code im Abschnitt static_code_analysis
den Benutzer zur Eingabe auf:
language_used = Prompt.ask('Language Used> ') file_path = Prompt.ask('File Path> ')
Der Benutzer wird aufgefordert, die verwendete Programmiersprache und den Dateipfad für den zu analysierenden Code anzugeben. Diese Eingaben sind für die Durchführung einer statischen Codeanalyse von entscheidender Bedeutung. Genau wie im Abschnitt zur Schwachstellenanalyse wird für das LLama2-Modell eine Eingabeaufforderung erstellt, die die Eingaben des Benutzers berücksichtigt:
prompt = f""" **Objective:** Analyze the given programming file details to identify and report bugs, vulnerabilities, and syntax errors. Additionally, search for potential exposure of sensitive information such as API keys, passwords, and usernames. **File Details:** - Programming Language: {language_used} - File Name: {file_path} - File Data: {file_data} """
Hier werden die Platzhalter {language_used}
und {file_path}
durch die tatsächlichen vom Benutzer bereitgestellten Werte ersetzt. Diese dynamische Eingabeaufforderung wird dann verwendet, um eine KI-Antwort zu generieren, die die Analyseergebnisse basierend auf der Programmiersprache und den vom Benutzer eingegebenen Dateidaten präsentiert.
In beiden Fällen stellt die Verwendung dynamischer Eingabeaufforderungen sicher, dass die von LLama2 generierten Antworten kontextrelevant und auf die vom Benutzer angeforderte spezifische Analyse zugeschnitten sind.
Kontaktinformationen und Hilfemenü:
elif prompt_in == 'contact_dev': console.print(Panel( Align.center( Group(Align.center(Markdown(contact_dev))), vertical="middle", ), title= "Dev Contact", border_style="red" ), style="bold green" ) pass elif prompt_in == 'help_menu': console.print(Panel( Align.center( Group(Align.center(Markdown(help_menu))), vertical="middle", ), title= "Help Menu", border_style="red" ), style="bold green" ) pass
Diese Abschnitte behandeln die Befehle zum Anzeigen von Kontaktinformationen für den Entwickler ( contact_dev
) und das Hilfemenü mit der Auflistung der verfügbaren Befehle ( help_menu
). Wenn Benutzer diese Befehle eingeben, werden die entsprechenden Informationen mithilfe der Rich-Bibliothek in einem gut formatierten Bereich angezeigt.
Hauptfunktionsausführung:
if __name__ == "__main__": main()
Die main
, die die gesamte Chat-Interaktion und die Verarbeitungslogik umfasst, wird nur ausgeführt, wenn das Skript direkt ausgeführt wird (nicht als Modul importiert). Diese Zeile stellt sicher, dass die Kernfunktionalität des Chatbots ausgeführt wird, wenn das Skript ausgeführt wird.
Sie können den gesamten Chatbot in meinem Github-Repo ansehen und ausprobieren: Link
Das Training eines KI-Modells ist ein Transformationsprozess, der Planung und Genauigkeit erfordert. Hier finden Sie eine Schritt-für-Schritt-Anleitung zum Abschluss des Prozesses.
Voraussetzungen :
Tensor-Leistung: Ein starkes System mit einer beträchtlichen Tensor-Verarbeitungskapazität schafft die Voraussetzungen für den Erfolg. Stellen Sie sicher, dass Ihre Ausrüstung die für das KI-Modelltraining erforderliche Rechenleistung bewältigen kann.
Datensatz: Ein Datensatz, der dem KI-Trainingsformat entspricht, beschleunigt die Lernkurve Ihres Modells. Effektives Training hängt von qualitativ hochwertigen Daten ab, die sich auf die Genauigkeit und Kompetenz des Modells auswirken.
Autotrain Advanced : Gönnen Sie sich Zugang zu dieser wichtigen Trainingsressource für künstliche Intelligenz. Der Schulungsvorgang wird durch dieses Programm rationalisiert, wodurch wichtige Abläufe automatisiert und die Produktivität gesteigert werden.
Der Ablauf der Ausbildung:
Datenvorbereitung: Um Genauigkeit und Einheitlichkeit sicherzustellen, organisieren und verarbeiten Sie Ihren Datensatz vor. Saubere, organisierte Daten sind der Schlüssel zu den besten Trainingsergebnissen.
Modellinitialisierung: Wählen Sie das beste vorab trainierte Modell als Ausgangspunkt aus. Die Konvergenz wird beschleunigt und der Trainingsprozess wird beschleunigt.
Feinabstimmung: Passen Sie Hyperparameter wie Lernrate, Stapelgröße und Optimierungseinstellungen an, um die Parameter zu optimieren. Passen Sie diese Parameter an, um die Modellleistung und die Konvergenzgeschwindigkeit in Einklang zu bringen.
Trainingsiterationen: Führen Sie den Datensatz mehrmals (Epochen) durch das Modell, um mit dem Training zu beginnen. Das Modell verbessert mit jeder Iteration sein Verständnis und verbessert so seine Prognosefähigkeit.
Validierung und Tests: Nutzen Sie einen eindeutigen Validierungsdatensatz, um die Entwicklung Ihres Modells kontinuierlich zu validieren. Die Verallgemeinerungsfähigkeit des Modells wird durch Tests anhand neuer Daten bewertet.
Analysieren und Überwachen: Achten Sie genau auf die Trainingsmetriken. Indikatoren wie Verlustkurven, Genauigkeitstrends und andere Metriken geben Aufschluss über die Entwicklung des Modells.
Optimierung und Feinabstimmung: Passen Sie Hyperparameter strategisch basierend auf Überwachungsergebnissen an. Um die gewünschte Leistung zu erzielen, verfeinern Sie das Modell iterativ.
Evaluierung und Bereitstellung: Führen Sie eine gründliche Testdatensatzbewertung des endgültigen Modells durch. Wenn Sie mit den Ergebnissen zufrieden sind, nutzen Sie das trainierte Modell in praktischen Anwendungen.
Der Datensatz:
Bei dem Datensatz kann es sich sowohl um einen vorgefertigten Datensatz als auch um einen Datensatz handeln, der in Huggingface-Datensätzen unter den verfügbaren textgenerierungsspezifischen Datensätzen verfügbar ist. Stellen Sie bei benutzerdefinierten Datensätzen sicher, dass Sie die folgenden Schritte ausführen:
Hier ist ein Beispieldatensatzformat, das Sie verwenden können: data.csv
Name | Beschreibung | Prompt |
---|---|---|
Gruß | Grundlegende Begrüßungen und Antworten | ###MENSCH: Hallo |
Wetter | Nach dem Wetter fragen | ###MENSCH: Wie ist das Wetter heute? |
Restaurant | Erkundigen Sie sich nach einer Restaurantempfehlung | ###MENSCH: Können Sie mir ein gutes Restaurant vorschlagen? |
Technologie | Diskussion der neuesten Technologietrends | ###HUMAN: Was sind die Technologietrends in diesem Jahr? |
Reisen | Ich suche Reisehinweise und Tipps | ###MENSCH: Irgendwelche Reisetipps für einen Besuch in Paris |
Dies ist nur 1 Typ.
Sobald Sie Ihren Datensatz haben, ist es an der Zeit, Ihre KI basierend darauf zu trainieren, wie viel GPU-Leistung Sie haben und wie groß Ihr Datensatz ist. Die Zeit entspricht auch dementsprechend. Jetzt können wir die erweiterten Autotrain-Module von Huggingface verwenden, um die KI zu trainieren.
Mit diesem Befehl können wir autotrain-advanced installieren:
pip install autotrain-advanced
Und dieser Befehl zum Trainieren der KI:
autotrain llm --train --project_name your_project_name --model TinyPixel/Llama-2-7B-bf16-sharded --data_path your_data_set --use_peft --use_int4 --learning_rate 2e-4 --train_batch_size 2 --num_train_epochs 3 --trainer sft --model_max_length 2048 --push_to_hub --repo_id your_repo_id -
Sie können den Projektnamen von „ your_project_name
in Ihren tatsächlichen Projektnamen, das Modell von TinyPixel/Llama-2-7B-bf16-sharded
in das Lama-Modell, das Sie trainieren möchten, und den Datenpfad in „ ändern .
Wenn es sich um einen benutzerdefinierten Datensatz oder huggingface/dataset
handelt, die Repo-ID des Datensatzes, wenn er von Huggingface stammt.
Mein Ziel ist es, ein Llama-Modell oder ein beliebiges LLM-Modell, das ich in die Finger bekommen kann, zu einem vollständigen Cybersicherheitsassistenten auszubilden, um die meisten unserer Aufgaben als Hacker zu automatisieren, was ein Segen wäre.
Apropos Fähigkeiten: Meta hat Forschungsarbeiten für Llama mit mehreren Benchmarks veröffentlicht. Den Papieren zufolge reichen die Llama-Modelle von 7B bis 65B-Parametern und weisen im Vergleich zu anderen großen Sprachmodellen eine konkurrenzfähige Leistung auf. Beispielsweise übertrifft Llama-13B GPT-3 bei den meisten Benchmarks, obwohl es zehnmal kleiner ist. Das 65B-Parameter-Modell von Llama ist auch mit anderen großen Sprachmodellen wie Chinchilla oder PaLM-540B konkurrenzfähig. In den Papieren wird auch erwähnt, dass ein kleineres Modell, das länger trainiert wird, letztendlich bei der Schlussfolgerung günstiger sein kann. Darin heißt es, dass sich die Leistung eines 7B-Modells auch nach 1T-Tokens weiter verbessert. Das Dokument liefert jedoch keine konkreten Zahlenwerte für die Leistungsunterschiede zwischen den Llama-Modellen.
Andere Quellen behaupten, dass Llama-Modelle im Vergleich zu den GPT-Modellen und PaLM-Modellen vielseitiger und schneller seien, was es zu einem der besten KI-Modelle auf dem Markt mache. Für Hackerangriffe oder andere sicherheitsspezifische Aufgaben ist jedoch viel Training oder persönliche Eingaben erforderlich. Es ist nicht einfach, ein Trainingsmodell dafür zu erstellen, aber wenn es einmal trainiert ist, kann dies bahnbrechend sein.
Die Reise in die Welt der künstlichen Intelligenz war unglaublich aufschlussreich und zeigte die erstaunliche Wirkung von Automatisierung und Integration. Nachdem ich ihre Fähigkeiten in einer Vielzahl von Branchen gesehen habe, weiß ich zutiefst zu schätzen, wie KI die Art und Weise verändert, wie wir arbeiten und interagieren. Meine Lernerfahrung war eine Offenbarung, von der Beobachtung der nahtlosen Automatisierung des regulären Betriebs bis hin zur Erfahrung der Integration von KI in das tägliche Leben. Ich habe gelernt, dass Automatisierung und Integration mehr als nur technische Ideen sind, während ich mehr über die Komplexität der KI erfahre; Vielmehr wirken sie als Katalysatoren für Innovationen. Mit dieser neu gewonnenen Erkenntnis kann ich nun eine Welt sehen, in der das Potenzial von KI zur Verbesserung der Effizienz und Zusammenarbeit grenzenlos ist.
Sie können mich über LinkedIn erreichen. Wenn Sie Bedenken haben, können Sie unten einen Kommentar abgeben.
Danke fürs Lesen.