นี่คือ repo ของ arXiv pre-print GPT-Driver [Project Page] ของเรา
หมายเหตุ: การรัน GPT-Driver จำเป็นต้องมีบัญชี OpenAI API
หมายเหตุ: รหัสการประเมินผลอยู่ที่นี่สำหรับประสิทธิภาพการวางแผนการเคลื่อนไหวแบบวงเปิดบน nuScenes
เรานำเสนอแนวทางที่เรียบง่ายแต่มีประสิทธิภาพที่สามารถเปลี่ยนโมเดล OpenAI GPT-3.5 ให้เป็นตัววางแผนการเคลื่อนไหวที่เชื่อถือได้สำหรับยานยนต์ขับเคลื่อนอัตโนมัติ การวางแผนการเคลื่อนไหวถือเป็นความท้าทายหลักในการขับขี่แบบอัตโนมัติ โดยมีเป้าหมายเพื่อวางแผนเส้นทางการขับขี่ที่ปลอดภัยและสะดวกสบาย นักวางแผนการเคลื่อนไหวที่มีอยู่ส่วนใหญ่ใช้ประโยชน์จากวิธีการศึกษาสำนึกเพื่อคาดการณ์วิถีการขับขี่ แต่วิธีการเหล่านี้แสดงให้เห็นถึงความสามารถในการสรุปข้อมูลทั่วไปที่ไม่เพียงพอเมื่อเผชิญกับสถานการณ์การขับขี่แบบใหม่และที่มองไม่เห็น ในบทความนี้ เราเสนอแนวทางใหม่ในการวางแผนการเคลื่อนไหวที่ใช้ประโยชน์จากความสามารถในการให้เหตุผลที่แข็งแกร่งและศักยภาพในการสรุปทั่วไปที่มีอยู่ในโมเดลภาษาขนาดใหญ่ (LLM) ความเข้าใจพื้นฐานของแนวทางของเราคือการปรับรูปแบบการวางแผนการเคลื่อนไหวให้เป็นปัญหาในการสร้างแบบจำลองภาษา ซึ่งเป็นมุมมองที่ไม่เคยมีการสำรวจมาก่อน โดยเฉพาะอย่างยิ่ง เรานำเสนออินพุตและเอาท์พุตของผู้วางแผนเป็นโทเค็นภาษา และใช้ประโยชน์จาก LLM เพื่อสร้างวิถีการขับขี่ผ่านคำอธิบายภาษาของตำแหน่งพิกัด นอกจากนี้เรายังเสนอกลยุทธ์ใหม่ในการกระตุ้นให้ใช้เหตุผลและปรับแต่งเพื่อกระตุ้นศักยภาพในการให้เหตุผลเชิงตัวเลขของ LLM ด้วยกลยุทธ์นี้ LLM สามารถอธิบายพิกัดวิถีที่แม่นยำสูงและกระบวนการตัดสินใจภายในในภาษาธรรมชาติ เราประเมินแนวทางของเราบนชุดข้อมูล nuScenes ขนาดใหญ่ และการทดลองที่ครอบคลุมช่วยยืนยันประสิทธิภาพ ความสามารถในการวางนัยทั่วไป และความสามารถในการตีความของเครื่องมือวางแผนการเคลื่อนไหวที่ใช้ GPT ของเรา
ก. โคลนที่เก็บนี้
git clone https://github.com/PointsCoder/GPT-Driver.git
ข. ติดตั้งไลบรารีที่ขึ้นต่อกันดังต่อไปนี้:
pip install -r requirements.txt
ก. เราแคชข้อมูลที่ใช้ไว้ล่วงหน้า (การตรวจจับ การทำนาย วิถี ฯลฯ) จากชุดข้อมูล nuScenes (cached_nuscenes_info.pkl) และโมเดลที่ได้รับการฝึกล่วงหน้าของ UniAD (detection_motion_result_trainval.jsonl) สามารถดาวน์โหลดข้อมูลได้ที่ Google Drive
ข. คุณสามารถใส่ข้อมูลที่ดาวน์โหลดได้ที่นี่:
GPT-Driver
├── data
│ ├── cached_nuscenes_info.pkl
│ ├── detection_motion_result_trainval.jsonl
│ ├── split.json
├── gpt-driver
├── outputs
ค. OpenAI จำเป็นต้องส่งไฟล์ json ที่มีข้อความแจ้งและคำตอบสำหรับการปรับแต่งอย่างละเอียด หากต้องการสร้างไฟล์ train.json
ให้รัน
python gpt-driver/create_data.py
คุณจะได้รับ train.json
ที่นี่:
GPT-Driver
├── data
│ ├── cached_nuscenes_info.pkl
│ ├── detection_motion_result_trainval.jsonl
│ ├── split.json
│ ├── train.json
├── gpt-driver
├── outputs
ก. หากต้องการปรับแต่งโมเดลของคุณเอง คุณต้องลงทะเบียนบัญชี OpenAI API ก่อน
ข. หลังจากลงทะเบียน คุณสามารถสร้างคีย์ API ได้ในการตั้งค่าบัญชีของคุณ นี่คือตัวอย่าง:
openai.api_key = "sk-I**p"
คุณต้องระบุคีย์นี้ทุกที่ที่จำเป็นในโค้ด โปรดทราบว่านี่คือรหัสของคุณเองและจะเชื่อมโยงกับการชำระบิลของคุณ ดังนั้น โปรดเก็บรหัสนี้ไว้เป็นความลับและอย่าแจกจ่ายให้ผู้อื่น!
ค. หากต้องการส่งงานปรับแต่งไปยัง OpenAI คุณสามารถใช้คำสั่งต่อไปนี้ในคอนโซล Python ของคุณได้:
import openai
openai.api_key = "sk-I**p"
# This will take some time for uploading train.json to the OpenAI server.
response = openai.File.create(file=open("train.json", "r"), purpose='fine-tune')
# Get the file id after waiting for some minutes.
train_file_id = response["id"]
# Launch a fine-tune job. Fine-tuning takes several hours to complete.
response = openai.FineTuningJob.create(training_file=train_file_id, model="gpt-3.5-turbo", hyperparameters={"n_epochs":1, })
# Optionally, you can check your fine-tune job status with these commands
finetune_job_id = response["id"]
openai.FineTuningJob.retrieve(finetune_job_id)
คุณยังสามารถค้นหาคำสั่งเหล่านี้ได้ใน gpt-driver/finetune.py
:
หมายเหตุ: การปรับแต่งอย่างละเอียดต้องเสียเงิน โปรดดูที่หน้าราคา โดยทั่วไป โทเค็น 10 ล้าน (ปรับแต่งชุดการฝึก nuScenes แบบเต็มสำหรับหนึ่งยุค) จะมีราคาประมาณ 80 USD คุณสามารถใช้พร้อมท์ที่สั้นลงเพื่อลดต้นทุน
ง. เมื่องานปรับแต่งของคุณเสร็จสมบูรณ์ คุณจะได้รับอีเมลแจ้งเตือนรหัสโมเดล GPT ที่ปรับแต่งของคุณเช่นนี้
ft:gpt-3.5-turbo-0613:**::8**O
รหัสโมเดลนี้แสดงถึงเครื่องมือวางแผนการเคลื่อนไหว GPT ของคุณเอง และจะใช้ในการประเมิน
ก. หลังจากที่คุณได้รับ ID โมเดลของคุณแล้ว คุณสามารถรันคำสั่งนี้เพื่อสร้างผลลัพธ์การวางแผนการเคลื่อนไหวสำหรับชุดการตรวจสอบความถูกต้องของ nuScenes:
python gpt-driver/test.py -i your_model_id -o your_output_file_name
คุณสามารถรับ your_output_file_name.pkl
ที่มี Dict[token: np.array((6, 2))]
โดยที่แต่ละตัวอย่างทดสอบมีวิถีที่วางแผนไว้ 3 วินาที ไฟล์ดองนี้สามารถนำไปใช้ประเมินบน nuScenes ได้โดยตรง
ข. คุณสามารถดูโค้ดและข้อมูลได้ที่นี่เพื่อประเมินประสิทธิภาพการวางแผนการเคลื่อนไหวบน nuScenes
หากคุณพบว่าโครงการนี้มีประโยชน์ในการวิจัยของคุณ โปรดพิจารณาอ้างอิง:
@article{gptdriver,
title={GPT-Driver: Learning to Drive with GPT},
author={Mao, Jiageng and Qian, Yuxi and Zhao, Hang and Wang, Yue},
year={2023}
}