這是我們的 arXiv 預印本 GPT-Driver [專案頁面] 的儲存庫。
注意:執行 GPT-Driver 需要 OpenAI API 帳戶
注意:此處提供了 nuScenes 上開環運動規劃表現的評估代碼。
我們提出了一種簡單而有效的方法,可以將 OpenAI GPT-3.5 模型轉變為自動駕駛車輛的可靠運動規劃器。運動規劃是自動駕駛的核心挑戰,旨在規劃安全舒適的駕駛軌跡。現有的運動規劃器主要利用啟發式方法來預測駕駛軌跡,但這些方法在面對新奇和未見過的駕駛場景時表現出不足的泛化能力。在本文中,我們提出了一種新的運動規劃方法,該方法利用了大型語言模型(LLM)固有的強大推理能力和泛化潛力。我們方法的基本見解是將運動規劃重新表述為語言建模問題,這是以前未探討過的觀點。具體來說,我們將規劃器的輸入和輸出表示為語言標記,並利用 LLM 透過座標位置的語言描述來產生駕駛軌跡。此外,我們提出了一種新穎的提示推理微調策略來激發法學碩士的數位推理潛力。透過這種策略,法學碩士可以用自然語言描述高精度的軌跡座標及其內部決策過程。我們在大規模 nuScenes 資料集上評估了我們的方法,並且廣泛的實驗證實了我們基於 GPT 的運動規劃器的有效性、泛化能力和可解釋性。
一個。克隆這個儲存庫。
git clone https://github.com/PointsCoder/GPT-Driver.git
b.安裝依賴函式庫如下:
pip install -r requirements.txt
一個。我們預先快取了 nuScenes 資料集 (cached_nuscenes_info.pkl) 和 UniAD 預訓練模型 (detection_motion_result_trainval.jsonl) 中使用的資訊(偵測、預測、軌跡等)。資料可以在 Google Drive 下載。
b.您可以將下載的資料放在這裡:
GPT-Driver
├── data
│ ├── cached_nuscenes_info.pkl
│ ├── detection_motion_result_trainval.jsonl
│ ├── split.json
├── gpt-driver
├── outputs
c. 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 帳戶。
b.註冊後,您可以在帳戶設定中產生 API 金鑰。這是一個例子:
openai.api_key = "sk-I**p"
您需要在程式碼中任何需要的地方指定此鍵。請注意,這是您自己的密鑰,將與您的帳單付款相關聯,因此請對此保密,不要分發給其他人!
c.若要將微調作業提交給 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
中找到這些命令:
注意:微調需要花錢。請參閱定價頁面。一般來說,1000 萬個代幣(在一個 epoch 的完整 nuScenes 訓練集上進行微調)將花費約 80 美元。您可以使用較短的提示來降低成本。
d.當您的微調作業成功完成後,您將收到一封電子郵件,通知您微調的 GPT 模型 ID,如下所示
ft:gpt-3.5-turbo-0613:**::8**O
此模型 ID 表示您自己的 GPT 運動規劃器,將用於評估。
一個。取得模型 ID 後,您可以執行以下命令來產生 nuScenes 驗證集的運動規劃結果:
python gpt-driver/test.py -i your_model_id -o your_output_file_name
您可以獲得包含Dict[token: np.array((6, 2))]
的your_output_file_name.pkl
,其中每個測試樣本都有 3 秒的計畫軌跡。該pickle檔案可以直接用於nuScenes上的評估。
b.您可以參考此處的程式碼和數據來評估 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}
}