简体中文| Zwietracht | Wechat | Umarmendes Gesicht | Gemeinschaft | Papier
Text2SQL | Text2NLU
Text2SQL-Auswertungs-Ausführungsgenauigkeitsmetrik (ex), und wir werden diese nach src/dbgpt_hub_sql
verschieben
Modell | Verfahren | Einfach | Medium | Hart | Extra | Alle |
---|---|---|---|---|---|---|
Base | 0 | 0 | 0 | 0 | 0 | |
Lama2-7B-Chat | Lora | 0,887 | 0,641 | 0,489 | 0,331 | 0,626 |
qlora | 0,847 | 0,623 | 0,466 | 0,361 | 0,608 | |
Base | 0 | 0 | 0 | 0 | 0 | |
Lama2-13B-Chat | Lora | 0,907 | 0,729 | 0,552 | 0,343 | 0,68 |
qlora | 0,911 | 0,7 | 0,552 | 0,319 | 0,664 | |
Base | 0,214 | 0,177 | 0,092 | 0,036 | 0,149 | |
CodeLlama-7B-Instruct | Lora | 0,923 | 0,756 | 0,586 | 0,349 | 0,702 |
qlora | 0,911 | 0,751 | 0,598 | 0,331 | 0,696 | |
Base | 0,698 | 0,601 | 0,408 | 0,271 | 0,539 | |
CodeLlama-13B-Instruct | Lora | 0,94 | 0,789 | 0,684 | 0,404 | 0,746 |
qlora | 0,94 | 0,774 | 0,626 | 0,392 | 0,727 | |
Base | 0,577 | 0,352 | 0,201 | 0,066 | 0,335 | |
Baichuan2-7B-Chat | Lora | 0,871 | 0,63 | 0,448 | 0,295 | 0,603 |
qlora | 0,891 | 0,637 | 0,489 | 0,331 | 0,624 | |
Base | 0,581 | 0,413 | 0,264 | 0,187 | 0,392 | |
Baichuan2-13B-Chat | Lora | 0,903 | 0,702 | 0,569 | 0,392 | 0,678 |
qlora | 0,895 | 0,675 | 0,58 | 0,343 | 0,659 | |
Base | 0,395 | 0,256 | 0,138 | 0,042 | 0,235 | |
Qwen-7B-Chat | Lora | 0,855 | 0,688 | 0,575 | 0,331 | 0,652 |
qlora | 0,911 | 0,675 | 0,575 | 0,343 | 0,662 | |
Base | 0,871 | 0,632 | 0,368 | 0,181 | 0,573 | |
Qwen-14B-Chat | Lora | 0,895 | 0,702 | 0,552 | 0,331 | 0,663 |
qlora | 0,919 | 0,744 | 0,598 | 0,367 | 0,701 | |
Base | 0 | 0 | 0 | 0 | 0 | |
ChatGLM3-6b | Lora | 0,855 | 0,605 | 0,477 | 0,271 | 0,59 |
qlora | 0,843 | 0,603 | 0,506 | 0,211 | 0,581 |
DB-GPT-Hub ist ein experimentelles Projekt, das Large Language Models (LLMs) nutzt, um eine Text-zu-SQL-Analyse zu erreichen. Das Projekt umfasst verschiedene Phasen, darunter Datenerfassung, Datenvorverarbeitung, Modellauswahl und -konstruktion sowie Feinabstimmung der Modellgewichte. Unser Ziel ist es, durch diese Prozesse die Text-to-SQL-Funktionen zu verbessern und gleichzeitig die Kosten für das Modelltraining zu senken, damit mehr Entwickler zur Verbesserung der Text-to-SQL-Genauigkeit beitragen können. Unser oberstes Ziel ist die Realisierung automatisierter Frage-Antwort-Funktionen auf Basis von Datenbanken, die es Benutzern ermöglichen, komplexe Datenbankabfragen mithilfe natürlichsprachlicher Beschreibungen durchzuführen.
Bisher haben wir mehrere große Modelle erfolgreich integriert und einen umfassenden Workflow etabliert, der Datenverarbeitung, Supervised Fine-Tuning (SFT)-Modelltraining, Vorhersageausgabe und Auswertung umfasst. Der für dieses Projekt entwickelte Code kann problemlos im Projekt selbst wiederverwendet werden.
Seit dem 10. Oktober 2023 haben wir dieses Projekt genutzt, um das Open-Source-Modell im 13B-Format zu verfeinern und relevantere Daten einzubeziehen. Unter Zero-Shot-Eingabeaufforderungen und unter Verwendung der Spider-basierten Testsuite haben wir eine Ausführungsgenauigkeitsrate von 0,764 für eine Datenbank mit einer Größe von 1,27 G erreicht. Darüber hinaus liegt die Ausführungsgenauigkeit für die auf der offiziellen Spider-Website angegebene Datenbank mit einer Größe von 95 MB bei 0,825.
Wir verbessern die Text-to-SQL-Leistung durch die Anwendung von Supervised Fine-Tuning (SFT) auf große Sprachmodelle.
Der primäre Datensatz für die Beispiele dieses Projekts ist der Spider -Datensatz:
Weitere verfügbare text2sql-Datensätze:
WikiSQL: Ein großer semantischer Parsing-Datensatz, der aus 80.654 natürlichen Anweisungsausdrücken und SQL-Anmerkungen von 24.241 Tabellen besteht. Jede Abfrage in WikiSQL ist auf dieselbe Tabelle beschränkt und enthält keine komplexen Vorgänge wie Sortieren, Gruppieren. Die Abfragen in WikiSQL sind auf dieselbe Tabelle beschränkt und enthalten keine komplexen Vorgänge wie Sortieren, Gruppieren, Unterabfragen usw.
CHASE: Ein domänenübergreifender, mehrstufiger interaktiver text2sql-chinesischer Datensatz mit einer Liste von 5.459 mehrstufigen Fragen, bestehend aus 17.940
BIRD-SQL: Ein umfangreicher domänenübergreifender Text-to-SQL-Benchmark in englischer Sprache mit besonderem Fokus auf große Datenbankinhalte. Der Datensatz enthält 12.751 Text-zu-SQL-Datenpaare und 95 Datenbanken mit einer Gesamtgröße von 33,4 GB in 37 Berufsbereichen. Der BIRD-SQL-Datensatz schließt die Lücke zwischen Text-zu-SQL-Forschung und realen Anwendungen, indem er drei zusätzliche Herausforderungen untersucht, nämlich den Umgang mit großen und unübersichtlichen Datenbankwerten, externe Wissensinferenz und die Optimierung der SQL-Ausführungseffizienz.
CoSQL: Ein Korpus zum Aufbau domänenübergreifender Konversations-Text-zu-SQL-Systeme. Es handelt sich um eine Konversationsversion der Spider- und SParC-Aufgaben. CoSQL besteht aus über 30.000 Runden und über 10.000 annotierten SQL-Abfragen aus der Sammlung von 3.000 Konversationen von Wizard-of-Oz, die 200 komplexe Datenbanken in 138 Domänen abfragen. Jedes Gespräch simuliert ein realistisches DB-Abfrageszenario, in dem ein Mitarbeiter als Benutzer die Datenbank erkundet und ein SQL-Experte SQL verwendet, um Antworten abzurufen, mehrdeutige Fragen zu klären oder auf andere Weise zu informieren.
Gemäß der Verarbeitungsvorlage von NSQL wurde der Datensatz einer grundlegenden Verarbeitung unterzogen, wodurch ein Datensatz von etwa 20 W entstand
DB-GPT-Hub unterstützt derzeit die folgenden Basismodelle:
Die Feinabstimmung des Modells basiert auf einem Quantisierungsbit von 4 mithilfe von Quantized Learning over Redundant Architecture (QLoRA). Die Mindestanforderungen an die Hardware hierfür können wie folgt bezeichnet werden:
Modellparameter | GPU-RAM | CPU-RAM | SCHEIBE |
---|---|---|---|
7b | 6 GB | 3,6 GB | 36,4 GB |
13b | 13,4 GB | 5,9 GB | 60,2 GB |
Alle zugehörigen Parameter sind auf das Minimum eingestellt, mit einer Stapelgröße von 1 und einer maximalen Länge von 512. Erfahrungsgemäß wird für eine bessere Leistung empfohlen, die zugehörigen Längenwerte auf 1024 oder 2048 festzulegen.
git clone https://github.com/eosphoros-ai/DB-GPT-Hub.git
cd DB-GPT-Hub
conda create -n dbgpt_hub python=3.10
conda activate dbgpt_hub
cd src/dbgpt_hub_sql
pip install -e .
Installieren Sie zunächst dbgpt-hub
mit dem folgenden Befehl
pip install dbgpt-hub
Richten Sie dann die Argumente ein und führen Sie den gesamten Prozess aus.
from dbgpt_hub_sql . data_process import preprocess_sft_data
from dbgpt_hub_sql . train import start_sft
from dbgpt_hub_sql . predict import start_predict
from dbgpt_hub_sql . eval import start_evaluate
# Config the input datasets
data_folder = "dbgpt_hub_sql/data"
data_info = [
{
"data_source" : "spider" ,
"train_file" : [ "train_spider.json" , "train_others.json" ],
"dev_file" : [ "dev.json" ],
"tables_file" : "tables.json" ,
"db_id_name" : "db_id" ,
"is_multiple_turn" : False ,
"train_output" : "spider_train.json" ,
"dev_output" : "spider_dev.json" ,
}
]
# Config training parameters
train_args = {
"model_name_or_path" : "codellama/CodeLlama-13b-Instruct-hf" ,
"do_train" : True ,
"dataset" : "example_text2sql_train" ,
"max_source_length" : 2048 ,
"max_target_length" : 512 ,
"finetuning_type" : "lora" ,
"lora_target" : "q_proj,v_proj" ,
"template" : "llama2" ,
"lora_rank" : 64 ,
"lora_alpha" : 32 ,
"output_dir" : "dbgpt_hub_sql/output/adapter/CodeLlama-13b-sql-lora" ,
"overwrite_cache" : True ,
"overwrite_output_dir" : True ,
"per_device_train_batch_size" : 1 ,
"gradient_accumulation_steps" : 16 ,
"lr_scheduler_type" : "cosine_with_restarts" ,
"logging_steps" : 50 ,
"save_steps" : 2000 ,
"learning_rate" : 2e-4 ,
"num_train_epochs" : 8 ,
"plot_loss" : True ,
"bf16" : True ,
}
# Config predict parameters
predict_args = {
"model_name_or_path" : "codellama/CodeLlama-13b-Instruct-hf" ,
"template" : "llama2" ,
"finetuning_type" : "lora" ,
"checkpoint_dir" : "dbgpt_hub_sql/output/adapter/CodeLlama-13b-sql-lora" ,
"predict_file_path" : "dbgpt_hub_sql/data/eval_data/dev_sql.json" ,
"predict_out_dir" : "dbgpt_hub_sql/output/" ,
"predicted_out_filename" : "pred_sql.sql" ,
}
# Config evaluation parameters
evaluate_args = {
"input" : "./dbgpt_hub_sql/output/pred/pred_sql_dev_skeleton.sql" ,
"gold" : "./dbgpt_hub_sql/data/eval_data/gold.txt" ,
"gold_natsql" : "./dbgpt_hub_sql/data/eval_data/gold_natsql2sql.txt" ,
"db" : "./dbgpt_hub_sql/data/spider/database" ,
"table" : "./dbgpt_hub_sql/data/eval_data/tables.json" ,
"table_natsql" : "./dbgpt_hub_sql/data/eval_data/tables_for_natsql2sql.json" ,
"etype" : "exec" ,
"plug_value" : True ,
"keep_distict" : False ,
"progress_bar_for_each_datapoint" : False ,
"natsql" : False ,
}
# Run the whole fine-tuning workflow
preprocess_sft_data (
data_folder = data_folder ,
data_info = data_info
)
start_sft ( train_args )
start_predict ( predict_args )
start_evaluate ( evaluate_args )
DB-GPT-Hub verwendet für die Datenaufbereitung die Generierungsmethode „Information Matching“, also die Generierungsmethode „SQL + Repository“, die Tabelleninformationen kombiniert. Diese Methode kombiniert Datentabelleninformationen, um die Struktur und Beziehungen der Datentabelle besser zu verstehen, und eignet sich zum Generieren von SQL-Anweisungen, die den Anforderungen entsprechen.
Laden Sie den Spider-Datensatz über den Spider-Datensatz-Link herunter. Nach dem Herunterladen und Extrahieren legen Sie die Daten standardmäßig im Verzeichnis dbgpt_hub_sql/data ab, d. h. der Pfad sollte dbgpt_hub_sql/data/spider
lauten.
Führen Sie für den Datenvorverarbeitungsteil einfach das folgende Skript aus :
# # generate train and dev(eval) data
sh dbgpt_hub_sql/scripts/gen_train_eval_data.sh
Im Verzeichnis dbgpt_hub_sql/data/
finden Sie die neu generierte Trainingsdatei example_text2sql_train.json und die Testdatei example_text2sql_dev.json, die jeweils 8659 bzw. 1034 Einträge enthalten. Legen Sie für die Daten, die bei der nachfolgenden Feinabstimmung verwendet werden, den Wert des Parameters file_name
auf den Dateinamen des Trainingssatzes in dbgpt_hub_sql/data/dataset_info.json fest, z. B. example_text2sql_train.json
Die Daten im generierten JSON sehen in etwa so aus:
{
"db_id": "department_management",
"instruction": "I want you to act as a SQL terminal in front of an example database, you need only to return the sql command to me.Below is an instruction that describes a task, Write a response that appropriately completes the request.n"n##Instruction:ndepartment_management contains tables such as department, head, management. Table department has columns such as Department_ID, Name, Creation, Ranking, Budget_in_Billions, Num_Employees. Department_ID is the primary key.nTable head has columns such as head_ID, name, born_state, age. head_ID is the primary key.nTable management has columns such as department_ID, head_ID, temporary_acting. department_ID is the primary key.nThe head_ID of management is the foreign key of head_ID of head.nThe department_ID of management is the foreign key of Department_ID of department.nn",
"input": "###Input:nHow many heads of the departments are older than 56 ?nn###Response:",
"output": "SELECT count(*) FROM head WHERE age > 56",
"history": []
},
Der Datenverarbeitungscode von chase
, cosql
und sparc
wurde in den Datenverarbeitungscode des Projekts eingebettet. Nachdem Sie den Datensatz über den obigen Link heruntergeladen haben, müssen Sie nur in
dbgpt_hub_sql/configs/config.py hinzufügen Just loosen the corresponding code comment in SQL_DATA_INFO
.
Die Modellfeinabstimmung unterstützt sowohl LoRA- als auch QLoRA-Methoden. Wir können den folgenden Befehl ausführen, um das Modell zu optimieren. Standardmäßig wird mit dem Parameter --quantization_bit die QLoRA-Feinabstimmungsmethode verwendet. Um zu LoRAs zu wechseln, entfernen Sie einfach den entsprechenden Parameter aus dem Skript. Führen Sie den Befehl aus:
sh dbgpt_hub_sql/scripts/train_sft.sh
Nach der Feinabstimmung werden die Modellgewichte standardmäßig im Adapterordner gespeichert, insbesondere im Verzeichnis dbgpt_hub_sql/output/adapter.
Wenn Sie Multi-GPU-Training verwenden und Deepseed verwenden möchten , sollten Sie den Standardinhalt in train_sft.sh ändern. Die Änderung ist:
CUDA_VISIBLE_DEVICES=0 python dbgpt_hub_sql/train/sft_train.py
--quantization_bit 4
...
ändern zu:
deepspeed --num_gpus 2 dbgpt_hub_sql/train/sft_train.py
--deepspeed dbgpt_hub_sql/configs/ds_config.json
--quantization_bit 4
...
Wenn Sie eine Bestellkarten-ID benötigen
deepspeed --include localhost:0,1 dbgpt_hub_sql/train/sft_train.py
--deepspeed dbgpt_hub_sql/configs/ds_config.json
--quantization_bit 4
...
Die anderen weggelassenen Teile (…) können konsistent gehalten werden. Wenn Sie die Standard-Deepseed-Konfiguration ändern möchten, gehen Sie in das Verzeichnis dbgpt_hub_sql/configs
und nehmen Sie nach Bedarf Änderungen an ds_config.json vor. Der Standardwert ist stage2.
Im Skript entsprechen während der Feinabstimmung verschiedene Modelle den Schlüsselparametern lora_target und template, wie in der folgenden Tabelle dargestellt:
Modellname | lora_target | Vorlage |
---|---|---|
LLaMA-2 | q_proj,v_proj | Lama2 |
CodeLlama-2 | q_proj,v_proj | Lama2 |
Baichuan2 | W_pack | baichuan2 |
Qwen | c_attn | chatml |
sqlcoder-7b | q_proj,v_proj | Mistral |
sqlcoder2-15b | c_attn | Standard |
InternLM | q_proj,v_proj | Praktikant |
XVERSE | q_proj,v_proj | xverse |
ChatGLM2 | query_key_value | chatglm2 |
Lama | q_proj,v_proj | - |
BLÜHEN | query_key_value | - |
BLOOMZ | query_key_value | - |
Baichuan | W_pack | Baichuan |
Falke | query_key_value | - |
In train_sft.sh
lauten die weiteren Schlüsselparameter wie folgt:
quantization_bit: Gibt an, ob Quantisierung angewendet wird. Gültige Werte sind [4 oder 8].
model_name_or_path: Der Pfad des LLM (Large Language Model).
Datensatz: Gibt den Namen der Trainingsdatensatzkonfiguration an, der dem äußeren Schlüsselwert in dbgpt_hub_sql/data/dataset_info.json entspricht, z. B. example_text2sql.
max_source_length: Die Länge des in das Modell eingegebenen Texts. Wenn es die Rechenressourcen zulassen, kann der Wert so groß wie möglich eingestellt werden, z. B. 1024 oder 2048.
max_target_length: Die Länge des vom Modell ausgegebenen SQL-Inhalts; 512 ist im Allgemeinen ausreichend.
Output_dir: Der Ausgabepfad des Peft-Moduls während SFT (Supervised Fine-Tuning), standardmäßig aufdbgpt_hub_sql/output/adapter/
eingestellt.
per_device_train_batch_size: Die Größe des Stapels. Wenn es die Rechenressourcen zulassen, kann es größer eingestellt werden; Der Standardwert ist 1.
gradient_accumulation_steps: Die Anzahl der Schritte zum Akkumulieren von Farbverläufen vor einer Aktualisierung.
save_steps: Die Anzahl der Schritte, bei denen Modellprüfpunkte gespeichert werden; Er kann standardmäßig auf 100 eingestellt werden.
num_train_epochs: Die Anzahl der Epochen für das Training des Datensatzes.
Unter dem Projektverzeichnis ./dbgpt_hub_sql/output/pred/ ist dieser Ordner der Standardausgabeort für Modellvorhersagen (falls nicht vorhanden, nur mkdir).
sh ./dbgpt_hub_sql/scripts/predict_sft.sh
Im Skript wird standardmäßig mit dem Parameter --quantization_bit
die Verwendung von QLoRA vorhergesagt. Durch das Entfernen wird auf die LoRA-Vorhersagemethode umgeschaltet. Der Wert des Parameters predicted_input_filename
ist Ihre Vorhersagetest-Datensatzdatei. --predicted_out_filename
ist der Dateiname der vorhergesagten Ergebnisse des Modells.
Die zweiten entsprechenden Modellgewichte finden Sie bei Huggingface hg-eosphoros-ai. Wir haben die LoRA-Gewichte im Oktober hochgeladen, deren Ausführungsgenauigkeit auf dem Spider-Bewertungssatz 0,789 erreichte.
Wenn Sie die Gewichte des trainierten Basismodells und des fein abgestimmten Peft-Moduls zusammenführen müssen, um ein vollständiges Modell zu exportieren, führen Sie das folgende Modellexportskript aus:
sh ./dbgpt_hub_sql/scripts/export_merge.sh
Stellen Sie sicher, dass Sie die Parameterpfadwerte im Skript durch die Ihrem Projekt entsprechenden Pfade ersetzen.
Um die Modellleistung für den Datensatz zu bewerten, wird standardmäßig der Spider-Dev-Datensatz verwendet. Führen Sie den folgenden Befehl aus:
python dbgpt_hub_sql/eval/evaluation.py --plug_value --input Your_model_pred_file
Die Ergebnisse unseres letzten Tests und einen Teil der Versuchsergebnisse finden Sie hier
Hinweis : Die Datenbank, auf die der Standardcode verweist, ist eine 95M-Datenbank, die von der [offiziellen Spider-Website] (https://yale-lily.github.io/spider) heruntergeladen wurde. Wenn Sie die Spider-Datenbank (Größe 1,27 G) in der Testsuite verwenden müssen, laden Sie bitte zuerst die Datenbank über den Link zum benutzerdefinierten Verzeichnis herunter und führen Sie den obigen Auswertungsbefehl aus, der Parameter und Werte wie --db Your_download_db_path
hinzufügt.
Den gesamten Prozess unterteilen wir in drei Phasen:
Stufe 1:
Derzeit bieten wir Unterstützung für die folgenden Funktionen:
Stufe 2:
20231010
prompts
Stufe 3:
Wenn unsere Arbeit Ihnen auch nur ein kleines Maß geholfen hat, denken Sie bitte darüber nach, uns einen Stern zu geben. Ihr Feedback und Ihre Unterstützung dienen uns als Motivation, weiterhin weitere verwandte Arbeiten zu veröffentlichen und unsere Bemühungen zu verbessern. Danke schön!
Wir laden weitere Personen herzlich ein, sich uns anzuschließen und sich aktiv an verschiedenen Aspekten unseres Projekts zu beteiligen, wie z. B. Datensätzen, Modellfeinabstimmung, Leistungsbewertung, Papierempfehlungen und Codereproduktion. Bitte zögern Sie nicht, Issues oder Pull Requests (PRs) zu öffnen. Wir werden proaktiv auf Ihre Beiträge reagieren.
Bevor Sie Ihren Code übermitteln, stellen Sie bitte sicher, dass er gemäß dem schwarzen Stil formatiert ist, indem Sie den folgenden Befehl verwenden:
black dbgpt_hub
Wenn Sie mehr Zeit haben, eine detailliertere Typ- und Stilprüfung Ihres Codes durchzuführen, verwenden Sie bitte den folgenden Befehl:
pyright dbgpt_hub
pylint dbgpt_hub
Wenn Sie Fragen haben oder weitere Hilfe benötigen, zögern Sie nicht, uns zu kontaktieren. Wir freuen uns über Ihr Engagement!
Unsere Arbeit basiert in erster Linie auf der Grundlage zahlreicher Open-Source-Beiträge. Vielen Dank an die folgenden Open-Source-Projekte
Vielen Dank an alle Mitwirkenden, insbesondere an @JBoRu, der das Problem angesprochen hat und uns daran erinnert hat, eine neue vielversprechende Evaluierungsmethode hinzuzufügen, nämlich Test Suite. In dem Artikel „SQL-PALM: IMPROVED LARGE LANGUAGE MODEL ADAPTATION FOR TEXT-TO-SQL“ heißt es: „Wir betrachten zwei häufig verwendete Bewertungsmetriken: Ausführungsgenauigkeit (EX) und Testsuite-Genauigkeit (TS). EX misst, ob die Das SQL-Ausführungsergebnis entspricht der Grundwahrheit (GT), während TS misst, ob die SQL alle EX-Auswertungen für mehrere Tests besteht, die durch Datenbankerweiterung generiert werden. Da EX falsch positive Ergebnisse enthält, betrachten wir TS als zuverlässigere Auswertung metrisch".
Wenn Sie DB-GPT-Hub
für Ihre Forschung oder Entwicklung nützlich finden, zitieren Sie bitte das folgende Dokument:
@misc { zhou2024dbgpthub ,
title = { DB-GPT-Hub: Towards Open Benchmarking Text-to-SQL Empowered by Large Language Models } ,
author = { Fan Zhou and Siqiao Xue and Danrui Qi and Wenhui Shi and Wang Zhao and Ganglin Wei and Hongyang Zhang and Caigai Jiang and Gangwei Jiang and Zhixuan Chu and Faqiang Chen } ,
year = { 2024 } ,
eprint = { 2406.11434 } ,
archivePrefix = { arXiv } ,
primaryClass = { id='cs.DB' full_name='Databases' is_active=True alt_name=None in_archive='cs' is_general=False description='Covers database management, datamining, and data processing. Roughly includes material in ACM Subject Classes E.2, E.5, H.0, H.2, and J.1.' }
}
Die MIT-Lizenz (MIT)
Wir arbeiten als Gemeinschaft zusammen, und wenn Sie Ideen zu unserer Gemeinschaftsarbeit haben, zögern Sie bitte nicht, mit uns in Kontakt zu treten. Wenn Sie daran interessiert sind, in ein tiefgreifendes Experiment einzutauchen und das DB-GPT-Hub-Teilprojekt zu optimieren, können Sie sich an „wangzai“ innerhalb der WeChat-Gruppe wenden. Wir freuen uns sehr über Ihre Beiträge, um es gemeinsam noch besser zu machen!