Allgemeine Einführung
WeClone ist ein Open-Source-Projekt, mit dem Nutzer personalisierte digitale Doppelgänger erstellen können, indem sie Chatprotokolle und Sprachnachrichten von WeChat mit großen Sprachmodellen und Sprachsynthesetechnologie kombinieren. Das Projekt kann die Chat-Gewohnheiten eines Nutzers analysieren, um das Modell zu trainieren, und kann außerdem mit einer kleinen Anzahl von Stimmproben realistische Stimmklone erzeugen. Schließlich kann der digitale Doppelgänger mit einem WeChat-Bot verbunden werden, der automatische Antworten auf Text und Sprache ermöglicht. Dieses Tool eignet sich für alle, die einen KI-Assistenten in WeChat nutzen oder KI-Technologie erlernen möchten. Der Code ist vollständig öffentlich und hat viele Technikbegeisterte und Entwickler zum Mitmachen angeregt.
Funktionsliste
- Chat-Protokoll-SchulungFeinabstimmung großer Sprachmodelle zur Nachahmung von Benutzersprache mit Microsoft-Chat-Transkripten.
- Klonen von Sprache in hoher QualitätGenerierung von Klängen mit einer Ähnlichkeit von bis zu 951 TP3T unter Verwendung eines parametrischen 0,5B-Modells und eines 5-Sekunden-Sprachbeispiels.
- WeChat Roboter Bindung: Verbinden Sie den Digital Split mit WeChat, um automatische Text- und Sprachantworten zu unterstützen.
- Tools für die DatenvorverarbeitungBereitstellung von Skripten zur Konvertierung von Chat-Protokollen in Trainingsdaten, wobei sensible Informationen standardmäßig gefiltert werden.
- Optimierung der Personalisierung von ModellenUnterstützt die LoRA-Feinabstimmungstechnologie, um das Modell besser an die Sprache des Benutzers anzupassen.
Hilfe verwenden
WeClone erfordert einige technische Kenntnisse, wie z. B. Python und Git, aber hier finden Sie eine detaillierte Schritt-für-Schritt-Anleitung, die Ihnen den Einstieg von der Installation bis zur Nutzung erleichtert.
Einbauverfahren
- Klonprojekt
Öffnen Sie ein Terminal und geben Sie ein:
git clone https://github.com/xming521/WeClone.git
Wechseln Sie dann in das Projektverzeichnis:
cd WeClone
- Einrichten der Umgebung
Python 3.9 wird für dieses Projekt empfohlen.uv
Verwaltungsumgebung lautet der Installationsbefehl wie folgt:
uv venv .venv --python=3.9
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
- Installation von Abhängigkeiten
Nachdem Sie die Umgebung aktiviert haben, führen Sie sie aus:
uv pip install --group main -e .
Hinweis: Dies umfasst nicht das Klonen der Stimme von xcodec
Abhängigkeit, kann bei Bedarf separat installiert werden.
- Modelle herunterladen
Das Modell ChatGLM3-6B wird standardmäßig verwendet. Es kann mit Hugging Face heruntergeladen werden:
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
Wenn der Download langsam ist, verwenden Sie die Magic Hitch Community:
export USE_MODELSCOPE_HUB=1 # Windows 用 set
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
Das Modell Magic Match muss ersetzt werden modeling_chatglm.py
für die Version "Hugging Face".
Vorbereitung der Daten
- Chat-Protokolle exportieren
- Herunterladen von
PyWxDump
die Entschlüsselung der Microsoft-Datenbank. - Klicken Sie auf "Chat-Backup" und wählen Sie das CSV-Format, um Ihre Kontakte oder Gruppenchats zu exportieren.
- Platzieren Sie die exportierte
wxdump_tmp/export/csv
Ordner in./data/csv
. - Die Beispieldaten befinden sich in der
data/example_chat.csv
.
- Verarbeitung von Daten
Führen Sie das Skript im JSON-Format aus:
./make_dataset/csv_to_json.py
Standardmäßige Filterung von sensiblen Informationen wie Handynummern und Ausweisnummern. Sie finden sie in der Rubrik blocked_words.json
Durch Hinzufügen eines verbotenen Wortes wird der gesamte Satz, der das verbotene Wort enthält, entfernt.
Feinabstimmung der Modelle
- Konfigurationsparameter
- Compiler
settings.json
geben Sie den Modellpfad an. - anpassen
per_device_train_batch_size
im Gesang antwortengradient_accumulation_steps
Anpassung des Videospeichers. - Anpassung an das Datenvolumen
num_train_epochs
(Runden) undlora_rank
um eine Überanpassung zu vermeiden.
- Ein-Karten-Ausbildung
python src/train_sft.py
Die Autoren trainierten mit 20.000 Daten und der Verlust sank auf 3,5 mit guten Ergebnissen.
- Doka-Ausbildung
Installieren Sie DeepSpeed:
uv pip install deepspeed
Führen Sie ein Multikartentraining durch (ersetzen Sie "Anzahl der verwendeten Grafikkarten"):
deepspeed --num_gpus=使用显卡数量 src/train_sft.py
Sprachklonen
- Bereiten Sie eine mehr als 5 Sekunden lange WeChat-Sprachnachricht vor, die Sie in
WeClone-audio
Mappe. - Führen Sie die entsprechenden Skripte aus (Installation erforderlich)
xcodec
), wird der erzeugte Ton in diesem Ordner gespeichert. - Die Stimme behält Intonation und Emotion, mit einer Ähnlichkeit von bis zu 951 TP3T.
WeChat Roboter binden
- Einsatz von AstrBot
- AstrBot herunterladen und installieren (unterstützt WeChat, QQ und andere Plattformen).
- Konfigurieren Sie die Messaging-Plattform (z. B. WeChat).
- Starten des API-Dienstes
python src/api_service.py
Die Standardadresse lautet http://172.17.0.1:8005/v1
.
- AstrBot konfigurieren
- Fügen Sie einen Dienstanbieter hinzu und wählen Sie OpenAI als Typ.
- API Base URL für lokale Adresse, Modell für
gpt-3.5-turbo
. - Werkzeugaufruf schließen: Befehl senden
/tool off reminder
. - Stellen Sie ein System-Eingabeaufforderungswort ein, das mit dem für die Feinabstimmung verwendeten Wort übereinstimmt.
Hardware-Voraussetzung
- Die Standard-Feinabstimmung mit ChatGLM3-6B und LoRA erfordert 16 GB Videospeicher.
- Andere Optionen:
- QLoRA (4-Bit-Präzision): 6 GB (Modell 7B) bis 48 GB (Modell 70B).
- Vollparametrischer Abgleich (16 Bit): 60 GB (7B) bis 600 GB (70B).
- GPU wird empfohlen, mangelnder Videospeicher kann auf niedrigere Präzision eingestellt werden oder eine Multikarte verwenden.
Tipps und Tricks
- Die Datenmenge beträgt mindestens 2.000 Einträge, je höher die Qualität, desto besser.
- Die Sprachsamples sollten klar und ohne Hintergrundgeräusche sein.
- Testmodell verfügbar
web_demo.py
vielleichttest_model.py
.
Sobald dies geschehen ist, kann Ihr digitaler Doppelgänger automatisch chatten und auf WeChat mit Ergebnissen antworten, die der Person sehr nahe kommen.
Anwendungsszenario
- Täglicher Assistent
Die digitale Aufteilung kann Ihnen helfen, auf WeChat-Nachrichten zu reagieren, z. B. automatisch auf die Begrüßung eines Freundes zu antworten, wenn Sie gerade beschäftigt sind. - Technologie Praxis
Entwickler können damit große Sprachmodelle und Techniken zum Klonen von Sprache erlernen, und der Code ist quelloffen, um praktische Experimente durchzuführen. - Spaß Interaktiv
Lassen Sie den digitalen Doppelgänger mit Ihren Freunden in Ihrer Stimme und Ihrem Tonfall plaudern und sorgen Sie so für zusätzliche Unterhaltung.
QA
- Was passiert, wenn die Datenmenge gering ist?
Weniger als 2000 Daten können zu ungenauen Modellen führen; es wird empfohlen, mehr Dialoge und klare Sprache vorzubereiten. - Kann ein normaler Computer das Programm ausführen?
Erfordert einen Grafikprozessor mit 16 GB Videospeicher, was auf einem normalen Computer möglicherweise nicht möglich ist, also versuchen Sie es im Niedrigpräzisionsmodus. - Wie ähnlich sind sich die Klangklone?
Die mit den 5-Sekunden-Samples erzeugten Stimmen hatten eine Ähnlichkeit von 951 TP3T, mit natürlicher Intonation und Emotion.