Ini adalah repo dari Driver GPT pra-cetak arXiv kami [Halaman Proyek].
Catatan: Menjalankan GPT-Driver memerlukan akun OpenAI API
Catatan: Kode Evaluasi ada di sini untuk kinerja perencanaan gerakan loop terbuka di nuScenes.
Kami menghadirkan pendekatan sederhana namun efektif yang dapat mengubah model OpenAI GPT-3.5 menjadi perencana gerak yang andal untuk kendaraan otonom. Perencanaan gerak merupakan tantangan inti dalam berkendara otonom, yang bertujuan untuk merencanakan lintasan berkendara yang aman dan nyaman. Perencana gerak yang ada sebagian besar memanfaatkan metode heuristik untuk memperkirakan lintasan berkendara, namun pendekatan ini menunjukkan kemampuan generalisasi yang tidak memadai dalam menghadapi skenario berkendara yang baru dan tidak terlihat. Dalam makalah ini, kami mengusulkan pendekatan baru terhadap perencanaan gerak yang memanfaatkan kemampuan penalaran yang kuat dan potensi generalisasi yang melekat pada Model Bahasa Besar (LLM). Wawasan mendasar dari pendekatan kami adalah reformulasi perencanaan gerak sebagai masalah pemodelan bahasa, sebuah perspektif yang belum pernah dieksplorasi sebelumnya. Secara khusus, kami mewakili input dan output perencana sebagai token bahasa, dan memanfaatkan LLM untuk menghasilkan lintasan mengemudi melalui deskripsi bahasa posisi koordinat. Selain itu, kami mengusulkan strategi baru yang mendorong-penalaran-penyempurnaan untuk merangsang potensi penalaran numerik dari LLM. Dengan strategi ini, LLM dapat menggambarkan koordinat lintasan yang sangat tepat dan juga proses pengambilan keputusan internal dalam bahasa alami. Kami mengevaluasi pendekatan kami pada kumpulan data nuScenes berskala besar, dan eksperimen ekstensif memperkuat efektivitas, kemampuan generalisasi, dan kemampuan interpretasi dari perencana gerak berbasis GPT kami.
A. Kloning repositori ini.
git clone https://github.com/PointsCoder/GPT-Driver.git
B. Instal perpustakaan dependen sebagai berikut:
pip install -r requirements.txt
A. Kami melakukan pra-cache informasi yang digunakan (deteksi, prediksi, lintasan, dll.) dari kumpulan data nuScenes (cached_nuscenes_info.pkl) dan model terlatih UniAD (detection_motion_result_trainval.jsonl). Data dapat diunduh di Google Drive.
B. Anda dapat meletakkan data yang diunduh di sini:
GPT-Driver
├── data
│ ├── cached_nuscenes_info.pkl
│ ├── detection_motion_result_trainval.jsonl
│ ├── split.json
├── gpt-driver
├── outputs
C. OpenAI memerlukan pengiriman file json yang berisi petunjuk dan jawaban untuk penyesuaian. Untuk membuat file train.json
ini, jalankan
python gpt-driver/create_data.py
Anda akan mendapatkan train.json
di sini:
GPT-Driver
├── data
│ ├── cached_nuscenes_info.pkl
│ ├── detection_motion_result_trainval.jsonl
│ ├── split.json
│ ├── train.json
├── gpt-driver
├── outputs
A. Untuk menyempurnakan model Anda sendiri, Anda harus mendaftarkan akun OpenAI API terlebih dahulu.
B. Setelah registrasi, Anda dapat membuat kunci API di pengaturan akun Anda. Berikut ini contohnya:
openai.api_key = "sk-I**p"
Anda perlu menentukan kunci ini di mana pun diperlukan dalam kode. Harap dicatat bahwa ini adalah kunci Anda sendiri dan akan dihubungkan dengan pembayaran tagihan Anda, jadi jaga kerahasiaannya dan jangan menyebarkannya kepada orang lain!
C. Untuk mengirimkan pekerjaan penyesuaian ke OpenAI, Anda dapat menggunakan perintah berikut di konsol Python Anda:
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)
Anda juga dapat menemukan perintah ini di gpt-driver/finetune.py
:
Catatan: Penyempurnaan memerlukan biaya. Silakan lihat halaman harga. Secara umum, 10 juta token (menyempurnakan set pelatihan nuScenes lengkap untuk satu epoch) akan berharga sekitar 80 USD. Anda dapat menggunakan petunjuk yang lebih singkat untuk mengurangi biaya.
D. Ketika pekerjaan penyempurnaan Anda berhasil diselesaikan, Anda akan menerima email yang memberitahukan id model GPT Anda yang telah disempurnakan, seperti ini
ft:gpt-3.5-turbo-0613:**::8**O
ID model ini menunjukkan perencana gerak GPT Anda sendiri dan akan digunakan dalam evaluasi.
A. Setelah Anda mendapatkan id model, Anda dapat menjalankan perintah ini untuk menghasilkan hasil perencanaan gerak untuk set validasi nuScenes:
python gpt-driver/test.py -i your_model_id -o your_output_file_name
Anda bisa mendapatkan your_output_file_name.pkl
yang berisi Dict[token: np.array((6, 2))]
yang mana setiap sampel pengujian memiliki lintasan yang direncanakan selama 3 detik. File acar ini bisa langsung digunakan untuk evaluasi di nuScenes.
B. Anda dapat merujuk ke kode dan data di sini untuk mengevaluasi kinerja perencanaan gerak di nuScenes.
Jika Anda merasa proyek ini bermanfaat dalam penelitian Anda, mohon pertimbangkan untuk mengutip:
@article{gptdriver,
title={GPT-Driver: Learning to Drive with GPT},
author={Mao, Jiageng and Qian, Yuxi and Zhao, Hang and Wang, Yue},
year={2023}
}