เครดิตโครงการ กระดาษนาก กระดาษ otterhd | Mimic-It Paper
จุดตรวจ:
สำหรับใครในจีนแผ่นดินใหญ่: |
ข้อจำกัดความรับผิดชอบ: รหัสอาจไม่ได้รับการขัดและ refactored อย่างสมบูรณ์แบบ แต่ รหัส opensourced ทั้งหมดได้รับการทดสอบและเรียกใช้งานได้ เนื่องจากเราใช้รหัสเพื่อสนับสนุนการวิจัยของเรา หากคุณมีคำถามใด ๆ โปรดเปิดปัญหา เรารอคอยที่จะได้รับคำแนะนำและ PRS เพื่อปรับปรุงคุณภาพรหัส
[2023-11]: สนับสนุนการประเมินของ GPT4V ใน 8 เกณฑ์มาตรฐาน; anouncing otterhd-8b ปรับปรุงจาก Fuyu-8b Checkout Otterhd สำหรับรายละเอียด
datasets :
- name : magnifierbench
split : test
prompt : Answer with the option's letter from the given choices directly.
api_key : [Your API Key] # GPT4 or GPT3.5 to evaluate the answers and ground truth.
debug : true # put debug=true will save the model response in log file.
- name : mme
split : test
debug : true
- name : mmbench
split : test
debug : true
models :
- name : gpt4v
api_key : [Your API Key] # to call GPT4V model.
IMAGE_TEXT : # Group name should be in [IMAGE_TEXT, TEXT_ONLY, IMAGE_TEXT_IN_CONTEXT]
LADD : # Dataset name can be assigned at any name you want
mimicit_path : azure_storage/json/LA/LADD_instructions.json # Path of the instruction json file
images_path : azure_storage/Parquets/LA.parquet # Path of the image parquet file
num_samples : -1 # Number of samples you want to use, -1 means use all samples, if not set, default is -1.
M3IT_CAPTIONING :
mimicit_path : azure_storage/json/M3IT/captioning/coco/coco_instructions.json
images_path : azure_storage/Parquets/coco.parquet
num_samples : 20000
[2023-08]
[2023-07]: ชุดข้อมูล anouncing mimic-it สำหรับการปรับแต่งคำสั่ง-ข้อความภาพ/วิดีโอ interleaved หลายรายการ
[2023-06]
frame tensors
ไม่คับแคบกับ vision_x
ผิดพลาดตรวจสอบให้แน่ใจว่าได้ปรับ
sys.path.append("../..")
อย่างถูกต้องเพื่อเข้าถึงotter.modeling_otter
เพื่อเปิดรุ่น
โมเดลภาษาขนาดใหญ่ (LLMS) ได้แสดงให้เห็นถึงความถนัดสากลที่ยอดเยี่ยมในฐานะผู้เรียนจำนวนน้อย/ศูนย์ช็อตสำหรับงานจำนวนมากเนื่องจากการฝึกอบรมล่วงหน้าเกี่ยวกับข้อมูลข้อความที่กว้างขวาง ในบรรดา LLMs เหล่านี้ GPT-3 โดดเด่นเป็นแบบจำลองที่โดดเด่นด้วยความสามารถที่สำคัญ นอกจากนี้ตัวแปรของ GPT-3 คือคำแนะนำและ chatgpt ได้พิสูจน์แล้วว่ามีประสิทธิภาพในการตีความคำแนะนำภาษาธรรมชาติเพื่อดำเนินงานที่ซับซ้อนในโลกแห่งความเป็นจริงด้วยการปรับแต่งการเรียนการสอน
ได้รับแรงบันดาลใจจากรูปแบบ interleaved ต้นน้ำที่ทำให้โมเดลฟลามิงโกนำเสนอ? Otter โมเดลหลายโมดอลที่ใช้ OpenFlamingo (เวอร์ชั่นเปิดของ Flamingo ของ DeepMind) เราฝึกฝนนากของเราในการปรับแต่งการเรียนการสอนในบริบทใน mi- m odal i n- c ontext i nstruction t uning ( mimic-it ) ชุดข้อมูล Otter Showcases ปรับปรุงความสามารถในการติดตามคำสั่งและการเรียนรู้ในบริบททั้งในภาพและวิดีโอ
MIMIC-IT ช่วยให้แอปพลิเคชันของโมเดลผู้ช่วย Visual Egocentric ที่สามารถตอบคำถามที่สามารถตอบคำถามของคุณเช่น เฮ้คุณคิดว่าฉันทิ้งกุญแจไว้บนโต๊ะหรือไม่? - ควบคุมพลังของการเลียนแบบ-มันเพื่อปลดล็อกศักยภาพเต็มรูปแบบของผู้ช่วยด้วยภาพที่ขับเคลื่อนด้วย AI ของคุณและยกระดับงานภาษาวิสัยทัศน์แบบโต้ตอบของคุณให้สูงขึ้น
นอกจากนี้เรายังแนะนำ Syphus ซึ่งเป็นไปป์ไลน์อัตโนมัติสำหรับการสร้างคู่การตอบสนองที่มีคุณภาพสูงในหลายภาษา เมื่อสร้างขึ้นตามกรอบงานที่เสนอโดย LLAVA เราใช้ chatgpt เพื่อสร้างคู่การตอบสนองคำสั่งตามเนื้อหาภาพ เพื่อให้แน่ใจว่าคุณภาพของคู่การตอบสนองคำสั่งที่สร้างขึ้นไปป์ไลน์ของเรารวมข้อความระบบคำอธิบายประกอบภาพและตัวอย่างในบริบทเพื่อแจ้งให้ ChatGPT
สำหรับรายละเอียดเพิ่มเติมโปรดตรวจสอบชุดข้อมูล MIMIC-IT
Otter ได้รับการออกแบบมาเพื่อรองรับการปรับแต่งการเรียนการสอนแบบหลายรูปแบบตามโมเดล OpenFlamingo ซึ่งเกี่ยวข้องกับการปรับแต่งรูปแบบภาษาบนสื่อที่เกี่ยวข้องเช่นภาพที่สอดคล้องกับคำบรรยายภาพหรือคู่ตอบโต้คำสั่ง
เราฝึกฝนนากในชุดข้อมูลเลียนแบบด้วยคู่การตอบสนองการสอนในบริบทประมาณ 2.8 ล้านคู่ซึ่งมีโครงสร้างเป็นเทมเพลตที่เหนียวแน่นเพื่ออำนวยความสะดวกในการทำงานต่างๆ Otter รองรับอินพุตวิดีโอ (เฟรมถูกจัดเรียงเป็นการใช้งานของ Flamingo ดั้งเดิม) และอินพุตรูปภาพหลายภาพเป็นตัวอย่างในบริบทซึ่งเป็น โมเดลที่ปรับแต่งแบบหลายรูปแบบครั้งแรก
เทมเพลตต่อไปนี้ครอบคลุมรูปภาพคำแนะนำของผู้ใช้และการตอบสนองที่สร้างจากแบบจำลองโดยใช้ฉลากบทบาท User
และ GPT
เพื่อเปิดใช้งานการโต้ตอบกับผู้ใช้และผู้ช่วยที่ไร้รอยต่อ
prompt = f"<image>User: { instruction } GPT:<answer> { response } <endofchunk>"
การฝึกอบรมโมเดลนากบนชุดข้อมูล MIMIC-IT ช่วยให้สามารถรับความสามารถที่แตกต่างกันตามที่แสดงโดยงาน LA และ SD ได้รับการฝึกฝนเกี่ยวกับงาน LA โมเดลแสดงความเข้าใจฉากที่ยอดเยี่ยมความสามารถในการให้เหตุผลและความสามารถในการสนทนาหลายรอบ
# multi-round of conversation
prompt = f"<image>User: { first_instruction } GPT:<answer> { first_response } <endofchunk>User: { second_instruction } GPT:<answer>"
เกี่ยวกับแนวคิดของการจัดระเบียบตัวอย่างภาษาภาพในบริบทเราแสดงให้เห็นถึงความสามารถที่ได้รับของโมเดลนากเพื่อทำตามคำแนะนำระหว่างบริบทหลังจากการฝึกอบรมเกี่ยวกับงาน LA-T2T รูปแบบข้อมูลอินพุตที่จัดระเบียบมีดังนี้:
# Multiple in-context example with similar instructions
prompt = f"<image>User: { ict_first_instruction } GPT: <answer> { ict_first_response } <|endofchunk|><image>User: { ict_second_instruction } GPT: <answer> { ict_second_response } <|endofchunk|><image>User: { query_instruction } GPT: <answer>"
สำหรับรายละเอียดเพิ่มเติมโปรดดูภาคผนวกของกระดาษสำหรับงานอื่น ๆ
conda env create -f environment.yml
โดยเฉพาะอย่างยิ่งเพื่อให้แน่ใจว่า transformers>=4.28.0
accelerate>=0.18.0
หลังจากกำหนดค่าสภาพแวดล้อมคุณสามารถใช้? Flamingo Model /? โมเดลนากเป็น? กอดนางแบบใบหน้าที่มีเพียงไม่กี่บรรทัด! คลิกเดียวและจากนั้นรุ่นการกำหนดค่า/น้ำหนักจะถูกดาวน์โหลดโดยอัตโนมัติ โปรดดูที่ HuggingFace Otter/Flamingo สำหรับรายละเอียด
นากได้รับการฝึกฝนตาม OpenFlamingo คุณอาจต้องใช้น้ำหนักที่แปลงแล้วที่ Luodian/Otter-9b-init หรือ Luodian/Otter-MPT7B-init พวกเขาจะถูกแปลงตามลำดับจาก OpenFlamingo-LLAMA7B-V1 และ OpenFlamingo-MPT7B-V2 เราได้เพิ่มโทเค็น <answer>
สำหรับการปรับแต่งคำสั่งดาวน์สตรีมของ Otter
นอกจากนี้คุณยังสามารถใช้น้ำหนักนากที่ผ่านการฝึกอบรมใด ๆ เพื่อเริ่มต้นด้วยการฝึกอบรมของคุณที่ด้านบนของเราดูที่น้ำหนักนาก คุณสามารถอ้างถึง Mimic-It สำหรับการเตรียมไฟล์ภาพ/คำสั่ง/รถไฟ JSON
export PYTHONPATH=.
RUN_NAME= " Otter_MPT7B "
GPU=8
WORKERS= $(( ${GPU} * 2 ))
echo " Using ${GPU} GPUs and ${WORKERS} workers "
echo " Running ${RUN_NAME} "
accelerate launch --config_file=./pipeline/accelerate_configs/accelerate_config_zero3.yaml
--num_processes= ${GPU}
pipeline/train/instruction_following.py
--pretrained_model_name_or_path=luodian/OTTER-MPT7B-Init
--model_name=otter
--instruction_format=simple
--training_data_yaml=./shared_scripts/Demo_Data.yaml
--batch_size=8
--num_epochs=3
--report_to_wandb
--wandb_entity=ntu-slab
--external_save_dir=./checkpoints
--run_name= ${RUN_NAME}
--wandb_project=Otter_MPTV
--workers= ${WORKERS}
--lr_scheduler=cosine
--learning_rate=2e-5
--warmup_steps_ratio=0.01
--save_hf_model
--max_seq_len=1024
หากคุณพบว่าที่เก็บนี้มีประโยชน์โปรดพิจารณาอ้าง:
@article{li2023otter,
title={Otter: A Multi-Modal Model with In-Context Instruction Tuning},
author={Li, Bo and Zhang, Yuanhan and Chen, Liangyu and Wang, Jinghao and Yang, Jingkang and Liu, Ziwei},
journal={arXiv preprint arXiv:2305.03726},
year={2023}
}
@article{li2023mimicit,
title={MIMIC-IT: Multi-Modal In-Context Instruction Tuning},
author={Bo Li and Yuanhan Zhang and Liangyu Chen and Jinghao Wang and Fanyi Pu and Jingkang Yang and Chunyuan Li and Ziwei Liu},
year={2023},
eprint={2306.05425},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
เราขอขอบคุณ Jack Hessel สำหรับคำแนะนำและการสนับสนุนรวมถึงทีม OpenFlamingo สำหรับการสนับสนุนที่ยอดเยี่ยมของพวกเขาในชุมชนโอเพ่นซอร์ส
รางวัลใหญ่สำหรับทีม Flamingo และ OpenFlamingo สำหรับการทำงานในสถาปัตยกรรมที่ยอดเยี่ยมนี้