English Русский 中文 日本語 Português
preview
Integrieren Sie Ihr eigenes LLM in Ihren EA (Teil 1): Die bereitgestellte Hardware und Umgebung

Integrieren Sie Ihr eigenes LLM in Ihren EA (Teil 1): Die bereitgestellte Hardware und Umgebung

MetaTrader 5Handel | 8 Februar 2024, 13:36
212 0
Yuqiang Pan
Yuqiang Pan

Einführung

Dieser Artikel richtet sich vor allem an diejenigen, die hoffen, LLM in einem lokalen Umfeld wirtschaftlich und praktisch einsetzen zu können, und die das Modell nach Bedarf anpassen können. Wir werden die erforderliche Hardwarekonfiguration und die Konfiguration der Softwareumgebung im Detail erläutern und einige praktische Vorschläge und Tipps geben.

Wir hoffen, dass Sie nach der Lektüre dieses Artikels ein klares Verständnis der Hardwarebedingungen haben, die für die Bereitstellung von LLMs erforderlich sind, und in der Lage sind, eine grundlegende Bereitstellungsumgebung gemäß den Anleitungen dieses Artikels erfolgreich aufzubauen.

Inhaltsverzeichnis

  1. Einführung
  2. Was ist der LLMs
  3. Hardware-Konfiguration
  4. Konfiguration der Softwareumgebung 
  5. Cloud Computing-Plattform
  6. Schlussfolgerung


Was ist der LLMs

1. Über LLMS

LLMs (Large Language Models) sind grundlegende Modelle, die tiefes Lernen bei der Verarbeitung natürlicher Sprache (NLP) und der Erzeugung natürlicher Sprache (NLG) nutzen. Um ihnen zu helfen, die Komplexität und die Zusammenhänge der Sprache zu erlernen, werden große Sprachmodelle auf großen Datenmengen vortrainiert. LLM ist im Wesentlichen ein neuronales Netz, das auf einem Transformer basiert (fragen Sie mich nicht, was ein Transformer ist, haben Sie noch nie von „Aufmerksamkeit ist alles, was man braucht“ gehört?) Mit LLM beziehen wir uns hauptsächlich auf Open-Source-Modelle wie LLama2. Wie OpenAI ist auch ChatGPT zwar leistungsstark, kann aber nicht auf unsere personalisierten Daten zurückgreifen. Natürlich können sie auch in den algorithmischen Handel integriert werden, aber darum geht es in dieser Artikelserie nicht.

2. Warum und wie man LLMs auf den algorithmischen Handel anwendet

Warum haben wir uns für den LLMS entschieden? Der Grund dafür ist einfach: Diese verfügen über ein ausgeprägtes logisches Verständnis und logisches Denkvermögen. Das Problem ist also, wie können wir diese leistungsstarke Fähigkeit im algorithmischen Handel nutzen? Ein einfaches Beispiel: Was würden Sie tun, wenn Sie einen algorithmischen Handel mit Hilfe der Fibonacci-Folge durchführen wollten? Wenn man es mit traditionellen Programmiermethoden umsetzt, ist es eine brutale Sache. Wenn wir jedoch LLMs verwenden, müssen wir nur den entsprechenden Datensatz gemäß der Fibonacci-Theorie erstellen und dann diesen Datensatz zur Feinabstimmung der LLMs verwenden und die von den LLMs generierten Ergebnisse direkt in unserem algorithmischen Handel aufrufen. Alles ist einfacher geworden.

3. Warum der Einsatz von LLMs vor Ort

1). Die lokale Bereitstellung kann eine höhere Datensicherheit bieten. Für einige Anwendungen mit sensiblen Informationen, z. B. in der Medizin, im Finanzwesen und in anderen Bereichen, ist die Datensicherheit entscheidend. Durch den Einsatz von LLMs in einer lokalen Umgebung können wir sicherstellen, dass die Daten unseren Kontrollbereich nicht verlassen.

2). Eine lokale Bereitstellung kann eine höhere Leistung bieten. Durch die Wahl der richtigen Hardwarekonfiguration können wir die Leistungsfähigkeit des Modells entsprechend unseren Bedürfnissen optimieren. Darüber hinaus ist die Netzwerklatenz in der lokalen Umgebung in der Regel geringer als in der Cloud-Umgebung, was für einige Anwendungen, die Echtzeit-Reaktionen erfordern, sehr wichtig ist.

3). Durch den Einsatz von LLMs in einer lokalen Umgebung und die Feinabstimmung anhand unserer personalisierten Daten können wir ein Modell erhalten, das unseren Bedürfnissen besser entspricht. Das liegt daran, dass jedes Anwendungsszenario seine Eigenheiten hat und wir das Modell durch Feinabstimmung besser an unser Anwendungsszenario anpassen können.

Zusammenfassend lässt sich sagen, dass der lokale Einsatz von LLMs nicht nur eine höhere Datensicherheit und Leistung bieten kann, sondern uns auch ermöglicht, ein Modell zu erhalten, das unseren Bedürfnissen besser entspricht. Daher ist es für die Integration in den algorithmischen Handel sehr wichtig zu verstehen, wie LLMs in einer lokalen Umgebung eingesetzt und entsprechend unserer personalisierten Daten feinabgestimmt werden können. Im Folgenden wird detailliert beschrieben, wie Sie die Hardwarekonfiguration auswählen und die Softwareumgebung aufbauen.


Hardware-Konfiguration

Beim lokalen Einsatz von LLMs ist die Hardwarekonfiguration ein sehr wichtiger Bestandteil. Hier geht es hauptsächlich um Mainstream-PCs, nicht um MacOS und andere Nischenprodukte.

Die Produkte, die für den Einsatz von LLMs verwendet werden, umfassen hauptsächlich CPU, GPU, Speicher und Speichergeräte. CPU und GPU sind die wichtigsten Recheneinheiten für die Ausführung von Modellen, während Arbeitsspeicher und Speichergeräte für die Speicherung von Modellen und Daten verwendet werden.

Die richtige Hardwarekonfiguration kann nicht nur die Effizienz des Modells gewährleisten, sondern auch die Leistung des Modells in gewissem Maße beeinflussen. Daher müssen wir die geeignete Hardwarekonfiguration entsprechend unseren Bedürfnissen und unserem Budget wählen.

1. Prozessor

Durch das Aufkommen von Frameworks wie Llama.cpp können Sprachmodelle derzeit direkt abgeleitet oder auf CPUs trainiert werden. Wenn Sie also keine eigenständige Grafikkarte haben, keine Sorge, die CPU ist auch eine Option für Sie.

Gegenwärtig sind die wichtigsten Prozessormarken auf dem Markt Intel und AMD. Die Xeon-Serie von Intel und die EPYC-Serie von AMD sind derzeit die beliebtesten Prozessoren auf Serverebene. Diese Prozessoren haben eine hohe Frequenz, mehrere Kerne und einen großen Cache, die sich sehr gut für die Ausführung großer Sprachmodelle (LLMs) eignen.

Bei der Auswahl eines Prozessors müssen wir die Anzahl der Kerne, die Frequenz und die Größe des Cache berücksichtigen. Im Allgemeinen sind Prozessoren mit mehr Kernen, höherer Frequenz und größerem Cache leistungsfähiger, aber auch teurer. Daher müssen wir je nach unserem eigenen Budget und unseren Bedürfnissen wählen.

Für den lokalen Einsatz von LLMs empfehlen wir die folgende Hardware-Konfiguration:

 CPU: Mindestens 4 Kerne mit einer Frequenz von mindestens 2,5GHz

Im Folgenden wird die aktuelle Situation auf dem CPU-Markt dargestellt:

cpu

Weitere Informationen finden Sie hier: Mark CPU-Benchmarks

2. Grafikkarte

Für die Ausführung großer Sprachmodelle (LLMs) sind Grafikkarten sehr wichtig. Die Rechenleistung und Speichergröße der Grafikkarte wirken sich direkt auf die Trainings- und Inferenzgeschwindigkeit des Modells aus. Generell gilt, dass Grafikkarten mit höherer Rechenleistung und größerem Speicher mehr leisten, aber auch teurer sind.

Die Tesla- und Quadro-Serie von NVIDIA sowie die Radeon Pro-Serie von AMD sind derzeit die beliebtesten professionellen Grafikkarten. Diese Grafikkarten verfügen über eine große Speicherkapazität und leistungsstarke parallele Rechenkapazitäten, die das Modelltraining und die Inferenz effektiv beschleunigen können.

Für den lokalen Einsatz von LLMs empfehlen wir die folgende Hardware-Konfiguration:

Grafikkarte mit 8G oder mehr Speicher.

Im Folgenden wird die aktuelle Situation auf dem GPU-Markt dargestellt:

gpuy

Weitere Informationen finden Sie hier:  Mark Software - Benchmarks für Grafikkarten (GPU)

3. Speicher

DDR5 ist zum Mainstream geworden. Für die Ausführung großer Sprachmodelle (LLMs) wird empfohlen, so viel Speicher wie möglich zu verwenden.

Für den lokalen Einsatz von LLMs empfehlen wir die folgende Hardware-Konfiguration:

Mindestens 16 GB DDR4-Speicher.

4. Speicher

Die Geschwindigkeit und Kapazität der Speichergeräte wirkt sich direkt auf die Lesegeschwindigkeit und die Speicherkapazität der Daten aus. Im Allgemeinen sind Speichergeräte mit höherer Geschwindigkeit und größerer Kapazität leistungsfähiger, aber auch teurer.

Solid State Drives (SSDs) haben sich aufgrund ihrer hohen Geschwindigkeit und geringen Latenzzeit zu den gängigen Speichergeräten entwickelt. SSDs mit NVMe-Schnittstelle ersetzen aufgrund ihrer höheren Geschwindigkeit nach und nach die SSDs mit SATA-Schnittstelle.

Für den lokalen Einsatz von LLMs empfehlen wir die folgende Hardware-Konfiguration:

Mindestens 1TB NVMe SSD.


Konfiguration der Softwareumgebung

1. Aufbau und Analyse von verschiedenen Betriebssystemumgebungen

Beim lokalen Einsatz von LLMs müssen wir die Wahl der Betriebssystemumgebung berücksichtigen. Zu den gängigsten Betriebssystemumgebungen gehören derzeit Windows, Linux und MacOS. Jedes Betriebssystem hat seine eigenen Vor- und Nachteile, und wir müssen nach unseren eigenen Bedürfnissen wählen.

- Windows:

Das Windows-Betriebssystem wird von vielen Nutzern wegen seiner nutzerfreundlichen Oberfläche und der umfangreichen Softwareunterstützung geschätzt. Aufgrund seiner Closed-Source-Natur ist Windows jedoch bei einigen fortgeschrittenen Funktionen und Anpassungen möglicherweise nicht so gut wie Linux und MacOS.

- Linux:

Das Linux-Betriebssystem ist bekannt für seine quelloffenen, hochgradig anpassbaren und leistungsstarken Befehlszeilentools. Für Nutzer, die in großem Umfang Daten verarbeiten oder Server bereitstellen müssen, ist Linux eine gute Wahl. Aufgrund der steilen Lernkurve kann es jedoch für Anfänger etwas schwierig sein.

- MacOS:

Das MacOS-Betriebssystem wird von vielen professionellen Anwendern wegen seines eleganten Designs und seiner hervorragenden Leistung geschätzt. Aufgrund seiner Hardwarebeschränkungen ist MacOS jedoch möglicherweise nicht für Nutzer geeignet, die umfangreiche Berechnungen durchführen müssen.

- Windows + WSL:

WSL ermöglicht es uns, eine Linux-Umgebung auf dem Windows-Betriebssystem auszuführen, wodurch wir die nutzerfreundliche Oberfläche von Windows nutzen und gleichzeitig die leistungsstarken Befehlszeilentools von Linux verwenden können.

Dies ist unsere einfache Analyse der verschiedenen Betriebssystemumgebungen. Wir empfehlen nachdrücklich die Verwendung von Windows + WSL, die für den täglichen Gebrauch und für die professionelle Nutzung geeignet sind.

2. Zugehörige Software-Konfiguration

Nach der Auswahl der geeigneten Hardwarekonfiguration müssen wir einige notwendige Software auf dem Betriebssystem installieren und konfigurieren. Zu diesen Softwires gehören das Betriebssystem, die Programmiersprachenumgebung, die Entwicklungswerkzeuge usw. Im Folgenden werden einige gängige Schritte zur Konfiguration der Software beschrieben:

- Betriebssystem:

Zunächst müssen wir ein Betriebssystem installieren. Für das Training und die Inferenz von großen Sprachmodellen (LLMs) empfehlen wir die Verwendung des Betriebssystems Linux, da es leistungsstarke Befehlszeilentools und eine hochgradig anpassbare Umgebung bietet.

- Umgebung der Programmiersprache:

Wir müssen die Python-Umgebung installieren, da die meisten LLMs mit Python entwickelt werden. Wir empfehlen die Verwendung von Anaconda zur Verwaltung der Python-Umgebung, da es Python-Pakete einfach installieren und verwalten kann.

- Entwicklungswerkzeuge:

Wir müssen einige Entwicklungswerkzeuge wie Texteditoren (wie VS Code oder Sublime Text), Versionskontrollwerkzeuge (wie Git) usw. installieren.

- LLMs Verwandte Software:

Wir müssen einige Software installieren, die mit LLMs zusammenhängt, wie z. B. die Deep-Learning-Frameworks TensorFlow oder PyTorch, sowie die Transformers-Bibliothek von Hugging Face usw.

3. Empfohlene Konfiguration

Hier sind einige empfohlene Software-Tools und Versionen:

- Betriebssystem:

Wir empfehlen die Verwendung von Windows11+Ubuntu 20.04 LTS (WSL). Dies ist eine stabile und weit verbreitete Linux-Distribution mit einem umfangreichen Paket und guter Unterstützung durch die Gemeinschaft.

- Python-Umgebung:

Wir empfehlen die Verwendung von Anaconda zur Verwaltung der Python-Umgebung. Anaconda ist eine beliebte Python-Plattform für Datenwissenschaft, mit der sich Python-Pakete einfach installieren und verwalten lassen. Wir empfehlen die Verwendung von Python 3.10, da es sich um eine stabile und weithin unterstützte Version handelt.

- Deep Learning-Framework:

Wir empfehlen die Verwendung von PyTorch 2.0 oder höher, einem der beliebtesten Deep Learning-Programme.


Cloud Computing-Plattform

1. Plattform

Hier sind einige der beliebtesten:

1). Amazon Web Services (AWS)

Amazon Web Services (AWS) ist eine von Amazon Inc. bereitgestellte Cloud-Computing-Plattform mit Rechenzentren auf der ganzen Welt, die mehr als 200 vollwertige Dienste anbietet. Die AWS-Services umfassen Infrastrukturtechnologien wie Datenverarbeitung, Speicher und Datenbanken sowie neue Technologien wie maschinelles Lernen, künstliche Intelligenz, Data Lakes und Analysen sowie das Internet der Dinge. Zu den Kunden von AWS gehören Millionen aktiver Nutzer und Organisationen aller Größen und Branchen, darunter Startups, Großunternehmen und Regierungsbehörden.

2). Microsoft Azure

Microsoft Azure ist eine von Microsoft bereitgestellte Cloud-Computing-Plattform, die folgende Vorteile bietet. Azure verfügt über mehrere Ebenen von Sicherheitsmaßnahmen, die das Rechenzentrum, die Infrastruktur und die Betriebsebenen abdecken, um Kunden- und Unternehmensdaten zu schützen. Azure bietet außerdem die umfassendste Compliance-Abdeckung mit Unterstützung von mehr als 90 Compliance-Produkten und branchenführenden Service Level Agreements. Azure ermöglicht einen nahtlosen Betrieb in lokalen, mehreren Clouds und Edge-Umgebungen mit Tools und Services, die für hybride Clouds entwickelt wurden, wie Azure Arc und Azure Stack1. Mit Azure können Kunden auch ihre eigenen Windows Server- und SQL Server-Lizenzen verwenden und bis zu 40 % bei Azure sparen. Azure unterstützt alle Sprachen und Frameworks und ermöglicht es Kunden, Anwendungen in der Sprache oder Plattform ihrer Wahl zu erstellen, bereitzustellen und zu verwalten. Azure bietet auch eine Fülle von KI- und maschinellen Lerndiensten und Tools, mit denen Kunden intelligente Anwendungen erstellen und OpenAI Whisper-Modelle für hochwertige Transkription und Übersetzung nutzen können. Azure bietet mehr als 200 Dienste und Tools, mit denen Kunden eine unbegrenzte Skalierung von Anwendungen erreichen und von Innovationen in der Cloud profitieren können. Azure hat in den letzten 12 Monaten mehr als 1.000 neue Funktionen eingeführt, die Bereiche wie KI, maschinelles Lernen, Virtualisierung, Kubernetes und Datenbanken abdecken.

3). Google Cloud-Plattform (GCP)

Google Cloud Platform (GCP) ist eine Reihe von Cloud-Computing-Diensten und -Tools, die von Google angeboten werden. GCP ermöglicht es Kunden, Anwendungen, Websites und Dienste auf derselben Infrastruktur wie Google zu erstellen, bereitzustellen und zu skalieren. GCP bietet verschiedene Technologien wie Datenverarbeitung, Speicherung, Datenbanken, Analysen, maschinelles Lernen und Internet der Dinge. GCP wird von Millionen von Kunden aus verschiedenen Branchen und Sektoren genutzt, darunter Startups, Unternehmen und Regierungsbehörden. GCP ist außerdem eine der sichersten, flexibelsten und zuverlässigsten Cloud-Computing-Umgebungen, die heute verfügbar sind.

2. Vorteile des Cloud Computing

- Kostengünstig: Cloud Computing ist im Vergleich zu herkömmlichen IT-Infrastrukturen kostengünstiger, da die Nutzer nur für die genutzten Rechenressourcen zahlen.

- Verwaltete Infrastruktur: Der Cloud-Anbieter verwaltet die zugrunde liegende Infrastruktur, einschließlich Hardware und Software.

- Skalierbarkeit: Die Cloud ist hervorragend skalierbar, sodass Unternehmen ihre Ressourcennutzung problemlos an ihre Bedürfnisse anpassen können.

- Global und zugänglich: Die Cloud ist global, bequem und zugänglich und verkürzt die Zeit für die Erstellung und Bereitstellung von Softwareanwendungen.

- Unbegrenzte Speicherkapazität: Unabhängig davon, welche Cloud Sie nutzen, können Sie so viel Speicherplatz kaufen, wie Sie jemals brauchen werden.

- Automatisierte Sicherung/Wiederherstellung: Cloud-Backup ist ein Dienst, bei dem die Daten und Anwendungen auf den Servern eines Unternehmens gesichert und auf einem entfernten Server gespeichert werden.

3. Nachteile des Cloud Computing

- Datensicherheit: Auch wenn Cloud-Anbieter robuste Sicherheitsmaßnahmen ergreifen, kann die Speicherung sensibler Daten in der Cloud dennoch Risiken bergen.

- Vorschriften zur Einhaltung: Je nach Branche gibt es möglicherweise Vorschriften, die die Speicherung von Daten in der Cloud einschränken.

- Mögliche Ausfälle: Auch wenn sie selten sind, kann es bei Cloud-Diensten zu Ausfällen kommen, die zu Ausfallzeiten führen können.


Schlussfolgerung

Der lokale Einsatz von LLMs und die Feinabstimmung mit personalisierten Daten ist eine komplexe, aber sehr wertvolle Aufgabe, und die richtige Konfiguration von Hardware und Softwareumgebung ist der Schlüssel zum Erreichen dieses Ziels.

Was die Hardwarekonfiguration betrifft, so müssen wir die geeignete CPU, GPU, den Arbeitsspeicher und die Speichergeräte entsprechend unserem Budget und unseren Bedürfnissen auswählen. Was die Konfiguration der Softwareumgebung angeht, so müssen wir den geeigneten Interpreter für die Programmiersprache, das Deep-Learning-Framework und andere notwendige Bibliotheken entsprechend unserem eigenen Betriebssystem auswählen.

Auch wenn diese Aufgaben mit einigen Herausforderungen verbunden sind, werden wir mit Sicherheit erfolgreich sein, solange wir klare Ziele haben und bereit sind, Zeit und Energie in das Lernen und Üben zu investieren.

Ich hoffe, dass dieser Artikel Ihnen einige Einblicke geben kann. Im nächsten Artikel werden wir ein Beispiel für die Bereitstellung einer Umgebung geben.

Bleiben Sie dran!


Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/13495

Entwicklung eines MQTT-Clients für MetaTrader 5: ein TDD-Ansatz - Teil 2 Entwicklung eines MQTT-Clients für MetaTrader 5: ein TDD-Ansatz - Teil 2
Dieser Artikel ist Teil einer Serie, die unsere Entwicklungsschritte für einen nativen MQL5-Client für das MQTT-Protokoll beschreibt. In diesem Teil beschreiben wir unsere Code-Organisation, die ersten Header-Dateien und Klassen, und wie wir unsere Tests schreiben. Dieser Artikel enthält auch kurze Hinweise auf die Praxis der testgetriebenen Entwicklung und wie wir sie in diesem Projekt anwenden.
Neuronale Netze leicht gemacht (Teil 57): Stochastic Marginal Actor-Critic (SMAC) Neuronale Netze leicht gemacht (Teil 57): Stochastic Marginal Actor-Critic (SMAC)
Hier werde ich den relativ neuen Algorithmus Stochastic Marginal Actor-Critic (SMAC) vorstellen, der es ermöglicht, Strategien mit latenten Variablen im Rahmen der Entropiemaximierung zu entwickeln.
Der Handel von Paaren Der Handel von Paaren
In diesem Artikel werden wir uns mit dem Handel von Paaren befassen, d. h. mit den Grundsätzen und den Aussichten für seine praktische Anwendung. Wir werden auch versuchen, dafür eine Handelsstrategie zu entwickeln.
Fertige Vorlagen für die Einbindung von Indikatoren in Expert Advisors (Teil 2): Volumen- und Bill-Williams-Indikatoren Fertige Vorlagen für die Einbindung von Indikatoren in Expert Advisors (Teil 2): Volumen- und Bill-Williams-Indikatoren
In diesem Artikel werden wir uns mit den Standardindikatoren der Kategorie Volumen und den Indikatoren von Bill Williams beschäftigen. Wir werden gebrauchsfertige Vorlagen für die Verwendung von Indikatoren in EAs erstellen - Deklaration und Einstellung von Parametern, Initialisierung und Deinitialisierung von Indikatoren sowie Empfang von Daten und Signalen aus Indikatorpuffern in EAs.