Kredit Proyek | Otter Paper | Otterhd Paper | Mimic-It Paper
Pos Pemeriksaan:
Untuk siapa di daratan Cina: |
Penafian: Kode ini mungkin tidak dipoles dengan sempurna dan dikembalikan, tetapi semua kode opensourced diuji dan dapat dijalankan karena kami juga menggunakan kode untuk mendukung penelitian kami. Jika Anda memiliki pertanyaan, jangan ragu untuk membuka masalah. Kami sangat menantikan saran dan PR untuk meningkatkan kualitas kode.
[2023-11]: Mendukung evaluasi GPT4V pada 8 tolok ukur; Anouncing otterhd-8b, ditingkatkan dari fuyu-8b. Checkout Otterhd untuk detailnya.
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 Dataset untuk beberapa tuning instruksi-teks/video yang diselingi.
[2023-06]
frame tensors
secara keliru tidak dicabut ke vision_x
yang salah.Pastikan untuk menyesuaikan
sys.path.append("../..")
dengan benar untuk mengaksesotter.modeling_otter
untuk meluncurkan model.
Model Bahasa Besar (LLM) telah menunjukkan bakat universal yang luar biasa karena beberapa pelajar/zero-shot untuk berbagai tugas, karena pra-pelatihan mereka pada data teks yang luas. Di antara LLM ini, GPT-3 menonjol sebagai model yang menonjol dengan kemampuan yang signifikan. Selain itu, varian GPT-3, yaitu Instruktur dan chatgpt, telah terbukti efektif dalam menafsirkan instruksi bahasa alami untuk melakukan tugas-tugas dunia nyata yang kompleks, berkat penyetelan instruksi.
Termotivasi oleh pretraining format interleaved hulu dari model flamingo, kami hadir? Otter, model multi-modal berdasarkan OpenFlamingo (versi open-source dari DeepMind's Flamingo). Kami melatih berang-berang kami dengan cara penyetelan instruksi dalam-konteks pada mi - m odal i n- c ontext i nstruction t uning ( mimic-it ) dataset. Otter menampilkan peningkatan kemampuan belajar mengikuti instruksi dan dalam konteks dalam gambar dan video.
Mimic-IT memungkinkan penerapan model asisten visual egosentris yang dapat melayani yang dapat menjawab pertanyaan Anda seperti hei, apakah Anda pikir saya meninggalkan kunci saya di atas meja? . Memanfaatkan kekuatan mimic-it untuk membuka potensi penuh dari asisten visual yang digerakkan oleh AI Anda dan meningkatkan tugas-tugas penglihatan interaktif Anda ke ketinggian baru.
Kami juga memperkenalkan Syphus , pipa otomatis untuk menghasilkan pasangan respons instruksi berkualitas tinggi dalam berbagai bahasa. Membangun di atas kerangka kerja yang diusulkan oleh LLAVA, kami menggunakan chatgpt untuk menghasilkan pasangan instruksi-respons berdasarkan konten visual. Untuk memastikan kualitas pasangan instruksi-respons yang dihasilkan, pipa kami menggabungkan pesan sistem, anotasi visual, dan contoh dalam konteks sebagai petunjuk untuk chatgpt.
Untuk detail lebih lanjut, silakan periksa dataset Mimic-It.
Otter dirancang untuk mendukung penyetelan instruksi dalam konteks multi-modal berdasarkan model OpenFlamingo, yang melibatkan pengkondisian model bahasa pada media yang sesuai, seperti gambar yang sesuai dengan keterangan atau pasangan instruksi-respons.
Kami melatih berang-berang pada dataset Mimic-it dengan sekitar 2,8 juta pasangan instruksi-respons dalam konteks, yang disusun menjadi templat kohesif untuk memfasilitasi berbagai tugas. Otter mendukung input video (frame diatur sebagai implementasi Flamingo asli) dan beberapa input gambar sebagai contoh dalam konteks, yang merupakan model penyetelan instruksi multi-modal pertama .
Templat berikut mencakup gambar, instruksi pengguna, dan respons yang dihasilkan model, memanfaatkan label peran User
dan GPT
untuk memungkinkan interaksi yang dibantu pengguna yang mulus.
prompt = f"<image>User: { instruction } GPT:<answer> { response } <endofchunk>"
Melatih model berang-berang pada dataset Mimic-it memungkinkannya untuk memperoleh kapasitas yang berbeda, seperti yang ditunjukkan oleh tugas LA dan SD. Terlatih pada tugas LA, model ini menunjukkan pemahaman adegan yang luar biasa, kemampuan penalaran, dan kemampuan percakapan multi-putaran.
# multi-round of conversation
prompt = f"<image>User: { first_instruction } GPT:<answer> { first_response } <endofchunk>User: { second_instruction } GPT:<answer>"
Mengenai konsep pengorganisasian contoh dalam konteks visual, kami menunjukkan di sini kemampuan yang diperoleh dari model berang-berang untuk mengikuti instruksi antar kontekstual setelah pelatihan tentang tugas LA-T2T. Format data input terorganisir adalah sebagai berikut:
# 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>"
Untuk detail lebih lanjut, silakan merujuk ke lampiran makalah kami untuk tugas -tugas lain.
conda env create -f environment.yml
. Khusus untuk memastikan transformers>=4.28.0
, accelerate>=0.18.0
.Setelah mengkonfigurasi lingkungan, Anda dapat menggunakan? Model Flamingo /? Model berang -berang sebagai? Memeluk model wajah dengan hanya beberapa baris! Satu klik dan kemudian model konfigurasi/bobot diunduh secara otomatis. Silakan merujuk ke Huggingface Otter/Flamingo untuk detailnya.
Otter dilatih berdasarkan OpenFlamingo. Anda mungkin perlu menggunakan bobot yang dikonversi di Luodian/Otter-9b-Init atau Luodian/Otter-MPT7B-Init. Mereka masing-masing dikonversi dari OpenFlamingo-llama7b-V1 dan OpenFlamingo-MPT7B-V2, kami menambahkan token <answer>
untuk penyetelan instruksi hilir Otter.
Anda juga dapat menggunakan bobot berang -berang terlatih untuk memulai dengan pelatihan Anda di atas kami, melihatnya di Otter Weights. Anda dapat merujuk ke Mimic-it untuk menyiapkan file JSON gambar/instruksi/kereta.
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
Jika Anda menemukan repositori ini bermanfaat, harap pertimbangkan mengutip:
@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}
}
Kami berterima kasih kepada Jack Hessel atas saran dan dukungannya, serta tim OpenFlamingo atas kontribusi besar mereka bagi komunitas open source.
Penghargaan besar untuk flamingo dan tim openflamingo untuk pekerjaan pada arsitektur yang hebat ini.