简体中文| ไม่ลงรอยกัน | วีแชท | การกอด | ชุมชน | กระดาษ
ข้อความ2SQL | Text2NLU
เมตริกความแม่นยำในการดำเนินการประเมิน Text2SQL (เช่น) และเราจะย้ายสิ่งนี้ไปที่ src/dbgpt_hub_sql
แบบอย่าง | วิธี | ง่าย | ปานกลาง | แข็ง | พิเศษ | ทั้งหมด |
---|---|---|---|---|---|---|
ฐาน | 0 | 0 | 0 | 0 | 0 | |
Llama2-7B-แชท | ลอร่า | 0.887 | 0.641 | 0.489 | 0.331 | 0.626 |
คลอร่า | 0.847 | 0.623 | 0.466 | 0.361 | 0.608 | |
ฐาน | 0 | 0 | 0 | 0 | 0 | |
Llama2-13B-แชท | ลอร่า | 0.907 | 0.729 | 0.552 | 0.343 | 0.68 |
คลอร่า | 0.911 | 0.7 | 0.552 | 0.319 | 0.664 | |
ฐาน | 0.214 | 0.177 | 0.092 | 0.036 | 0.149 | |
CodeLlama-7B-คำสั่ง | ลอร่า | 0.923 | 0.756 | 0.586 | 0.349 | 0.702 |
คลอร่า | 0.911 | 0.751 | 0.598 | 0.331 | 0.696 | |
ฐาน | 0.698 | 0.601 | 0.408 | 0.271 | 0.539 | |
CodeLlama-13B-คำสั่ง | ลอร่า | 0.94 | 0.789 | 0.684 | 0.404 | 0.746 |
คลอร่า | 0.94 | 0.774 | 0.626 | 0.392 | 0.727 | |
ฐาน | 0.577 | 0.352 | 0.201 | 0.066 | 0.335 | |
Baichuan2-7B-แชท | ลอร่า | 0.871 | 0.63 | 0.448 | 0.295 | 0.603 |
คลอร่า | 0.891 | 0.637 | 0.489 | 0.331 | 0.624 | |
ฐาน | 0.581 | 0.413 | 0.264 | 0.187 | 0.392 | |
Baichuan2-13B-แชท | ลอร่า | 0.903 | 0.702 | 0.569 | 0.392 | 0.678 |
คลอร่า | 0.895 | 0.675 | 0.58 | 0.343 | 0.659 | |
ฐาน | 0.395 | 0.256 | 0.138 | 0.042 | 0.235 | |
Qwen-7B-แชท | ลอร่า | 0.855 | 0.688 | 0.575 | 0.331 | 0.652 |
คลอร่า | 0.911 | 0.675 | 0.575 | 0.343 | 0.662 | |
ฐาน | 0.871 | 0.632 | 0.368 | 0.181 | 0.573 | |
Qwen-14B-แชท | ลอร่า | 0.895 | 0.702 | 0.552 | 0.331 | 0.663 |
คลอร่า | 0.919 | 0.744 | 0.598 | 0.367 | 0.701 | |
ฐาน | 0 | 0 | 0 | 0 | 0 | |
แชทGLM3-6b | ลอร่า | 0.855 | 0.605 | 0.477 | 0.271 | 0.59 |
คลอร่า | 0.843 | 0.603 | 0.506 | 0.211 | 0.581 |
DB-GPT-Hub เป็นโปรเจ็กต์ทดลองที่ใช้ประโยชน์จาก Large Language Models (LLM) เพื่อแยกวิเคราะห์ข้อความเป็น SQL โครงการครอบคลุมขั้นตอนต่างๆ รวมถึงการรวบรวมข้อมูล การประมวลผลข้อมูลล่วงหน้า การเลือกแบบจำลองและการสร้าง และการปรับแต่งน้ำหนักแบบจำลองอย่างละเอียด ด้วยกระบวนการเหล่านี้ เป้าหมายของเราคือการปรับปรุงความสามารถ Text-to-SQL ในขณะที่ลดต้นทุนการฝึกอบรมโมเดล จึงช่วยให้นักพัฒนาจำนวนมากขึ้นมีส่วนร่วมในการปรับปรุงความแม่นยำของ Text-to-SQL เป้าหมายสูงสุดของเราคือการตระหนักถึงความสามารถในการตอบคำถามอัตโนมัติตามฐานข้อมูล ทำให้ผู้ใช้สามารถดำเนินการสืบค้นฐานข้อมูลที่ซับซ้อนโดยใช้คำอธิบายภาษาธรรมชาติ
จนถึงปัจจุบัน เราได้บูรณาการโมเดลขนาดใหญ่หลายตัวได้สำเร็จ และสร้างขั้นตอนการทำงานที่ครอบคลุม ซึ่งรวมถึงการประมวลผลข้อมูล การฝึกโมเดล Supervised Fine-Tuning (SFT) ผลลัพธ์การคาดการณ์ และการประเมินผล รหัสที่พัฒนาขึ้นสำหรับโปรเจ็กต์นี้สามารถนำกลับมาใช้ใหม่ได้อย่างง่ายดายภายในโปรเจ็กต์นั้นเอง
ณ วันที่ 10 ตุลาคม 2023 เราได้ใช้โปรเจ็กต์นี้เพื่อปรับแต่งโมเดลโอเพ่นซอร์สขนาด 13B โดยรวบรวมข้อมูลที่เกี่ยวข้องมากขึ้น ภายใต้การแจ้งเตือนแบบ Zero-shot และการใช้ชุดทดสอบแบบ Spider เราได้รับอัตราความแม่นยำในการดำเนินการที่ 0.764 สำหรับฐานข้อมูลขนาด 1.27G นอกจากนี้ ความแม่นยำในการดำเนินการสำหรับฐานข้อมูลที่เว็บไซต์อย่างเป็นทางการของ Spider ชี้ไป ซึ่งมีขนาด 95M อยู่ที่ 0.825
เราเพิ่มประสิทธิภาพการทำงานของ Text-to-SQL โดยการใช้ Supervised Fine-Tuning (SFT) กับโมเดลภาษาขนาดใหญ่
ชุดข้อมูลหลักสำหรับตัวอย่างของโครงการนี้คือชุดข้อมูล Spider :
ชุดข้อมูล text2sql อื่นๆ ที่มีอยู่:
WikiSQL: ชุดข้อมูลการแยกวิเคราะห์ความหมายขนาดใหญ่ที่ประกอบด้วยนิพจน์คำสั่งธรรมชาติ 80,654 รายการ และคำอธิบายประกอบ SQL จำนวน 24,241 ตาราง แต่ละแบบสอบถามใน WikiSQL ถูกจำกัดไว้ที่ตารางเดียวกัน และไม่มีการดำเนินการที่ซับซ้อน เช่น การเรียงลำดับ การจัดกลุ่ม แบบสอบถามใน WikiSQL ถูกจำกัดไว้ที่ตารางเดียวกัน และไม่มีการดำเนินการที่ซับซ้อน เช่น การเรียงลำดับ การจัดกลุ่ม แบบสอบถามย่อย ฯลฯ
CHASE: ชุดข้อมูลจีน text2sql แบบโต้ตอบหลายรอบข้ามโดเมนที่ประกอบด้วยรายการคำถามแบบหลายรอบ 5,459 ข้อ ซึ่งประกอบด้วยกลุ่มไบนารี
BIRD-SQL: การวัดประสิทธิภาพการแปลงข้อความเป็น SQL ข้ามโดเมนขนาดใหญ่ในภาษาอังกฤษ โดยเน้นที่เนื้อหาฐานข้อมูลขนาดใหญ่เป็นพิเศษ ชุดข้อมูลประกอบด้วยคู่ข้อมูลข้อความเป็น SQL 12,751 คู่ และฐานข้อมูล 95 รายการ โดยมีขนาดรวม 33.4 GB ทั่วทั้ง 37 โดเมนอาชีพ ชุดข้อมูล BIRD-SQL เชื่อมช่องว่างระหว่างการวิจัยข้อความเป็น SQL และแอปพลิเคชันในโลกแห่งความเป็นจริงโดยการสำรวจความท้าทายเพิ่มเติมสามประการ ได้แก่ การจัดการกับค่าฐานข้อมูลขนาดใหญ่และยุ่งเหยิง การอนุมานความรู้ภายนอก และการเพิ่มประสิทธิภาพการดำเนินการ SQL ให้เหมาะสม
CoSQL: คลังข้อมูลสำหรับการสร้างระบบการแปลงข้อความเป็น SQL การสนทนาข้ามโดเมน เป็นเวอร์ชันสนทนาของภารกิจ Spider และ SPArC CoSQL ประกอบด้วย 30,000 รอบขึ้นไป และการสืบค้น SQL แบบใส่คำอธิบายประกอบ 10,000 ครั้งจากคอลเลกชันการสนทนา 3,000 ครั้งของ Wizard-of-Oz ซึ่งทำการสืบค้นฐานข้อมูลที่ซับซ้อน 200 รายการใน 138 โดเมน การสนทนาแต่ละครั้งจะจำลองสถานการณ์การสืบค้น DB ที่สมจริง โดยที่พนักงานสำรวจฐานข้อมูลในฐานะผู้ใช้และผู้เชี่ยวชาญ SQL ใช้ SQL เพื่อดึงคำตอบ ชี้แจงคำถามที่คลุมเครือ หรือแจ้งอย่างอื่น
ตามเทมเพลตการประมวลผลของ NSQL ชุดข้อมูลจะเข้าสู่การประมวลผลขั้นพื้นฐาน โดยให้ชุดข้อมูลประมาณ 20W
ปัจจุบัน DB-GPT-Hub รองรับโมเดลพื้นฐานต่อไปนี้:
โมเดลนี้ได้รับการปรับแต่งอย่างละเอียดโดยอิงตามบิตเชิงปริมาณ 4 โดยใช้การเรียนรู้เชิงปริมาณเหนือสถาปัตยกรรมซ้ำซ้อน (QLoRA) ข้อกำหนดฮาร์ดแวร์ขั้นต่ำสำหรับสิ่งนี้สามารถอ้างอิงได้ดังต่อไปนี้:
พารามิเตอร์โมเดล | จีพียูแรม | ซีพียูแรม | ดิสก์ |
---|---|---|---|
7b | 6GB | 3.6GB | 36.4GB |
13บี | 13.4GB | 5.9GB | 60.2GB |
พารามิเตอร์ที่เกี่ยวข้องทั้งหมดได้รับการตั้งค่าเป็นขั้นต่ำ โดยมีขนาดแบทช์ 1 และความยาวสูงสุด 512 จากประสบการณ์ที่ผ่านมา เพื่อประสิทธิภาพที่ดีขึ้น ขอแนะนำให้ตั้งค่าความยาวที่เกี่ยวข้องเป็น 1024 หรือ 2048
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 .
ขั้นแรกให้ติดตั้ง dbgpt-hub
ด้วยคำสั่งต่อไปนี้
pip install dbgpt-hub
จากนั้น ตั้งค่าอาร์กิวเมนต์และรันกระบวนการทั้งหมด
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 ใช้วิธีการสร้างการจับคู่ข้อมูลสำหรับการเตรียมข้อมูล เช่น วิธีสร้าง SQL + Repository ที่รวมข้อมูลตารางเข้าด้วยกัน วิธีนี้จะรวมข้อมูลตารางข้อมูลเพื่อให้เข้าใจโครงสร้างและความสัมพันธ์ของตารางข้อมูลได้ดีขึ้น และเหมาะสำหรับการสร้างคำสั่ง SQL ที่ตรงตามข้อกำหนด
ดาวน์โหลดชุดข้อมูล Spider จากลิงก์ชุดข้อมูล Spider ตามค่าเริ่มต้น หลังจากดาวน์โหลดและแตกข้อมูลแล้ว ให้วางไว้ในไดเร็กทอรี dbgpt_hub_sql/data กล่าวคือ พาธควรเป็น dbgpt_hub_sql/data/spider
สำหรับส่วนการประมวลผลข้อมูลล่วงหน้า เพียงเรียก ใช้สคริปต์ต่อไปนี้ :
# # generate train and dev(eval) data
sh dbgpt_hub_sql/scripts/gen_train_eval_data.sh
ในไดเร็กทอรี dbgpt_hub_sql/data/
คุณจะพบไฟล์การฝึกที่สร้างขึ้นใหม่ example_text2sql_train.json และไฟล์ทดสอบ example_text2sql_dev.json ซึ่งมีรายการ 8659 และ 1034 ตามลำดับ สำหรับข้อมูลที่ใช้ในการปรับแต่งครั้งต่อไป ให้ตั้งค่าพารามิเตอร์ file_name
เป็นชื่อไฟล์ของชุดการฝึกใน dbgpt_hub_sql/data/dataset_info.json เช่น example_text2sql_train.json
ข้อมูลใน JSON ที่สร้างขึ้นมีลักษณะดังนี้:
{
"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": []
},
รหัสประมวลผลข้อมูลของ chase
, cosql
และ sparc
ถูกฝังอยู่ในรหัสประมวลผลข้อมูลของโครงการ หลังจากดาวน์โหลดชุดข้อมูลตามลิงก์ด้านบน คุณจะต้องเพิ่ม in
dbgpt_hub_sql/configs/config.py Just loosen the corresponding code comment in SQL_DATA_INFO
การปรับแต่งโมเดลอย่างละเอียดรองรับทั้งวิธี LoRA และ QLoRA เราสามารถรันคำสั่งต่อไปนี้เพื่อปรับแต่งโมเดลอย่างละเอียด ตามค่าเริ่มต้น ด้วยพารามิเตอร์ --quantization_bit จะใช้วิธีการปรับแต่ง QLoRA หากต้องการสลับไปใช้ LoRA เพียงลบพารามิเตอร์ที่เกี่ยวข้องออกจากสคริปต์ รันคำสั่ง:
sh dbgpt_hub_sql/scripts/train_sft.sh
หลังจากการปรับแต่งอย่างละเอียด น้ำหนักโมเดลจะถูกบันทึกตามค่าเริ่มต้นในโฟลเดอร์อะแดปเตอร์ โดยเฉพาะในไดเร็กทอรี dbgpt_hub_sql/output/adapter
หากคุณใช้ การฝึกอบรมแบบ Multi-GPU และต้องการใช้ Deepseed คุณควรแก้ไขเนื้อหาเริ่มต้นใน train_sft.sh การเปลี่ยนแปลงคือ:
CUDA_VISIBLE_DEVICES=0 python dbgpt_hub_sql/train/sft_train.py
--quantization_bit 4
...
เปลี่ยนเป็น :
deepspeed --num_gpus 2 dbgpt_hub_sql/train/sft_train.py
--deepspeed dbgpt_hub_sql/configs/ds_config.json
--quantization_bit 4
...
หากคุณต้องการรหัสบัตรคำสั่งซื้อ
deepspeed --include localhost:0,1 dbgpt_hub_sql/train/sft_train.py
--deepspeed dbgpt_hub_sql/configs/ds_config.json
--quantization_bit 4
...
ส่วนอื่นๆ ที่ถูกละเว้น (…) สามารถรักษาให้สอดคล้องกันได้ หากคุณต้องการเปลี่ยนการกำหนดค่าเริ่มต้นของ deepseed ให้ไปที่ไดเร็กทอรี dbgpt_hub_sql/configs
และทำการเปลี่ยนแปลงกับ ds_config.json ตามต้องการ ค่าเริ่มต้นคือ stage2
ในสคริปต์ ในระหว่างการปรับแต่งอย่างละเอียด โมเดลที่แตกต่างกันจะสอดคล้องกับพารามิเตอร์หลัก lora_target และเทมเพลต ดังที่แสดงในตารางต่อไปนี้:
ชื่อรุ่น | lora_target | แม่แบบ |
---|---|---|
ลามา-2 | q_proj,v_proj | ลามะ2 |
รหัสลามะ-2 | q_proj,v_proj | ลามะ2 |
ไป๋ชวน2 | W_แพ็ค | ไป๋ชวน2 |
เกว็น | c_attn | แชทเมล |
sqlcoder-7b | q_proj,v_proj | มิสทรัล |
sqlcoder2-15b | c_attn | ค่าเริ่มต้น |
ฝึกงานLM | q_proj,v_proj | ฝึกงาน |
เอ็กซ์เวิร์ส | q_proj,v_proj | เอ็กซ์เวิร์ส |
แชทGLM2 | query_key_value | chatglm2 |
ลามะ | q_proj,v_proj | - |
บลูม | query_key_value | - |
บลูมซ์ | query_key_value | - |
ไป๋ชวน | W_แพ็ค | ไป๋ชวน |
เหยี่ยว | query_key_value | - |
ใน train_sft.sh
พารามิเตอร์หลักอื่นๆ มีดังนี้:
quantization_bit: ระบุว่ามีการใช้การวัดปริมาณหรือไม่ โดยค่าที่ถูกต้องคือ [4 หรือ 8]
model_name_or_path: เส้นทางของ LLM (โมเดลภาษาขนาดใหญ่)
ชุดข้อมูล: ระบุชื่อของการกำหนดค่าชุดข้อมูลการฝึก ซึ่งสอดคล้องกับค่าคีย์ภายนอกใน dbgpt_hub_sql/data/dataset_info.json เช่น example_text2sql
max_source_length: ความยาวของข้อความที่ป้อนลงในโมเดล หากทรัพยากรการประมวลผลอนุญาต ก็สามารถตั้งค่าให้ใหญ่ที่สุดเท่าที่จะเป็นไปได้ เช่น 1024 หรือ 2048
max_target_length: ความยาวของเอาต์พุตเนื้อหา SQL ตามโมเดล โดยทั่วไปแล้ว 512 ก็เพียงพอแล้ว
output_dir: เส้นทางเอาต์พุตของโมดูล Peft ระหว่าง SFT (การปรับแต่งแบบละเอียดภายใต้การควบคุม) ตั้งค่าเริ่มต้นเป็นdbgpt_hub_sql/output/adapter/
per_device_train_batch_size: ขนาดของแบตช์ หากทรัพยากรการประมวลผลอนุญาต ก็สามารถตั้งค่าให้ใหญ่ขึ้นได้ ค่าเริ่มต้นคือ 1
gradient_accumulation_steps: จำนวนขั้นตอนในการสะสมการไล่ระดับสีก่อนการอัปเดต
save_steps: จำนวนขั้นตอนในการบันทึกจุดตรวจสอบโมเดล สามารถตั้งค่าเป็น 100 โดยค่าเริ่มต้น
num_train_epochs: จำนวนยุคสำหรับการฝึกชุดข้อมูล
ภายใต้ไดเร็กทอรีโปรเจ็กต์ ./dbgpt_hub_sql/output/pred/ โฟลเดอร์นี้คือตำแหน่งเอาต์พุตเริ่มต้นสำหรับการทำนายโมเดล (หากไม่มีอยู่ เป็นเพียง mkdir)
sh ./dbgpt_hub_sql/scripts/predict_sft.sh
ในสคริปต์ ตามค่าเริ่มต้นด้วยพารามิเตอร์ --quantization_bit
จะคาดการณ์โดยใช้ QLoRA การลบออกจะสลับไปใช้วิธีทำนาย LoRA ค่าของพารามิเตอร์ predicted_input_filename
คือไฟล์ชุดข้อมูลทดสอบการทำนายของคุณ --predicted_out_filename
คือชื่อไฟล์ของผลลัพธ์ที่คาดการณ์ของโมเดล
คุณสามารถค้นหาตุ้มน้ำหนักโมเดลที่สองที่เกี่ยวข้องได้จาก Huggingface hg-eosphoros-ai เราได้อัปโหลดตุ้มน้ำหนัก LoRA ในเดือนตุลาคม ซึ่งความแม่นยำในการดำเนินการในชุดการประเมิน Spider อยู่ที่ 0.789
หากคุณต้องการรวมน้ำหนักของโมเดลพื้นฐานที่ได้รับการฝึกและโมดูล Peft ที่ปรับแต่งอย่างละเอียดเพื่อส่งออกโมเดลที่สมบูรณ์ ให้รันสคริปต์การส่งออกโมเดลต่อไปนี้:
sh ./dbgpt_hub_sql/scripts/export_merge.sh
อย่าลืมแทนที่ค่าเส้นทางพารามิเตอร์ในสคริปต์ด้วยเส้นทางที่สอดคล้องกับโปรเจ็กต์ของคุณ
ในการประเมินประสิทธิภาพของโมเดลบนชุดข้อมูล ค่าเริ่มต้นคือชุดข้อมูล Spider dev รันคำสั่งต่อไปนี้:
python dbgpt_hub_sql/eval/evaluation.py --plug_value --input Your_model_pred_file
คุณสามารถดูผลลัพธ์การตรวจสอบล่าสุดของเราและผลการทดสอบบางส่วนได้ที่นี่
หมายเหตุ : ฐานข้อมูลที่ชี้โดยรหัสเริ่มต้นคือฐานข้อมูล 95M ที่ดาวน์โหลดจาก [เว็บไซต์อย่างเป็นทางการของ Spider] (https://yale-lily.github.io/spider) หากคุณต้องการใช้ฐานข้อมูล Spider (ขนาด 1.27G) ในชุดทดสอบ โปรดดาวน์โหลดฐานข้อมูลในลิงก์ไปยังไดเร็กทอรีที่กำหนดเองก่อน และรันคำสั่งการประเมินด้านบน ซึ่งเพิ่มพารามิเตอร์และค่าต่างๆ เช่น --db Your_download_db_path
กระบวนการทั้งหมดเราจะแบ่งออกเป็นสามขั้นตอน:
ขั้นที่ 1:
ขณะนี้เราให้การสนับสนุนคุณสมบัติดังต่อไปนี้:
ขั้นที่ 2:
20231010
prompts
ขั้นที่ 3:
หากงานของเราช่วยเหลือคุณได้แม้แต่น้อย โปรดพิจารณาให้ดาวแก่เรา ความคิดเห็นและการสนับสนุนของคุณเป็นแรงจูงใจให้เราเผยแพร่งานที่เกี่ยวข้องเพิ่มเติมและปรับปรุงความพยายามของเราต่อไป ขอบคุณ!
เราขอเชิญบุคคลอื่นๆ อย่างอบอุ่นให้เข้าร่วมกับเราและมีส่วนร่วมในแง่มุมต่างๆ ของโครงการของเรา เช่น ชุดข้อมูล การปรับแต่งโมเดลอย่างละเอียด การประเมินประสิทธิภาพ คำแนะนำกระดาษ และการสร้างโค้ดขึ้นมาใหม่ โปรดอย่าลังเลที่จะเปิดประเด็นหรือดึงคำขอ (PR) และเราจะดำเนินการเชิงรุกในการตอบสนองต่อการมีส่วนร่วมของคุณ
ก่อนที่จะส่งโค้ดของคุณ โปรดตรวจสอบให้แน่ใจว่าได้จัดรูปแบบตามสไตล์สีดำโดยใช้คำสั่งต่อไปนี้:
black dbgpt_hub
หากคุณมีเวลามากขึ้นในการดำเนินการตรวจสอบประเภทและการตรวจสอบสไตล์โค้ดของคุณโดยละเอียดมากขึ้น โปรดใช้คำสั่งต่อไปนี้:
pyright dbgpt_hub
pylint dbgpt_hub
หากคุณมีคำถามหรือต้องการความช่วยเหลือเพิ่มเติม อย่าลังเลที่จะติดต่อเรา ขอขอบคุณสำหรับการมีส่วนร่วมของคุณ!
งานของเรามีพื้นฐานอยู่บนรากฐานของการสนับสนุนโอเพ่นซอร์สจำนวนมาก ขอบคุณโครงการโอเพ่นซอร์สต่อไปนี้
ขอขอบคุณผู้มีส่วนร่วมทุกคน โดยเฉพาะอย่างยิ่ง @JBoRu ที่หยิบยกประเด็นขึ้นมาซึ่งเตือนให้เราเพิ่มวิธีการประเมินผลใหม่ที่มีแนวโน้มดี เช่น ชุดทดสอบ ดังที่รายงาน 《SQL-PALM: IMPROVED LARGE LANGUAGE MODEL ADAPTATION FOR TEXT-TO-SQL》 ได้กล่าวไว้ "เราพิจารณาเมตริกการประเมินที่ใช้กันทั่วไปสองรายการ ได้แก่ ความแม่นยำในการดำเนินการ (EX) และความแม่นยำของชุดทดสอบ (TS) EX จะวัดว่า ผลลัพธ์การดำเนินการ SQL ตรงกับความจริงภาคพื้นดิน (GT) ในขณะที่ TS จะวัดว่า SQL ผ่านการประเมิน EX ทั้งหมดสำหรับการทดสอบหลายครั้งหรือไม่ ซึ่งสร้างขึ้นโดยการเพิ่มฐานข้อมูล เนื่องจาก EX มีผลบวกลวง เราจึงถือว่า TS เป็น ตัวชี้วัดการประเมินผลที่เชื่อถือได้มากขึ้น"
หากคุณพบว่า DB-GPT-Hub
มีประโยชน์สำหรับการวิจัยหรือการพัฒนาของคุณ โปรดอ้างอิงเอกสารต่อไปนี้:
@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.' }
}
ใบอนุญาต MIT (MIT)
เรากำลังทำงานร่วมกันในฐานะชุมชน และหากคุณมีแนวคิดใดๆ เกี่ยวกับงานชุมชนของเรา โปรดอย่าลังเลที่จะติดต่อเรา หากคุณสนใจที่จะเจาะลึกการทดลองเชิงลึกและเพิ่มประสิทธิภาพโครงการย่อย DB-GPT-Hub คุณสามารถติดต่อ 'wangzai' ภายในกลุ่ม WeChat เรายินดีเป็นอย่างยิ่งที่คุณมีส่วนร่วมเพื่อทำให้ดียิ่งขึ้นร่วมกัน!