Freigeben
[4.11.2024] Die sechs Wechat-Gruppe.
[24.10.2024] Die vorherigen vier Wechat-Gruppen sind voll, daher haben wir eine fünfte Gruppe erstellt.
[11.10.2024] Da zu viele Freunde der Wechat-Gruppe beitreten möchten, haben wir eine vierte Gruppe erstellt.
[2024/10/2] onnx- und mnn-Versionen von GOT-OCR2.0.
[29.09.2024]??? Die Community hat die erste Version von llama_cpp_inference implementiert.
[24.9.2024]??? Unterstützen Sie MS-Swift Quick. Feinabstimmung für Ihre eigenen Daten.
[23.09.2024]??? Wir veröffentlichen die offizielle Modelscope-Demo. Vielen Dank für die Bereitstellung der GPU-Ressource durch Modelscope.
[14.09.2024]??? Wir veröffentlichen die offizielle Demo. Vielen Dank für die Bereitstellung der GPU-Ressource durch Huggingface.
[13.09.2024]??? Wir veröffentlichen die Huggingface-Bereitstellung.
[03.09.2024]??? Wir veröffentlichen die Codes, Gewichte und Benchmarks als Open Source. Das Papier finden Sie in diesem Repo. Wir haben es auch bei Arxiv eingereicht.
[03.09.2024]??? Wir veröffentlichen das OCR-2.0-Modell GOT!
Wir ermutigen jeden, GOT-Anwendungen basierend auf diesem Repo zu entwickeln. Vielen Dank für die folgenden Beiträge:
vllm-Referenz ~ Mitwirkender: @Jay
onnx und mnn unterstützen ~ Mitwirkender: @BaofengZan
llama_cpp-Inferenz ~ Mitwirkender: @1694439208
Kollaboration von GOT ~ Mitwirkender: @Zizhe Wang
CPU-Version von GOT ~ Mitwirkender: @ElvisClaros
Online-Demo ~ Mitwirkender: @Joseph Pollack
Dokcer & Client-Demo ~ Mitwirkender: @QIN2DIM
GUI von GOT ~ Mitwirkender: @XJF2332
Installieren
HABE Gewichte
Demo
Zug
Feinabstimmung
Bewertung
Auf dem Weg zu OCR-2.0 über ein einheitliches End-to-End-Modell
Unsere Umgebung ist cuda11.8+torch2.0.1
Klonen Sie dieses Repository und navigieren Sie zum GOT-Ordner
Git-Klon https://github.com/Ucas-HaoranWei/GOT-OCR2.0.gitcd 'der GOT-Ordner'
Paket installieren
conda create -n got python=3.10 -y Conda Activate bekam pip install -e .
Installieren Sie Flash-Attention
pip install ninja pip install flash-attn --no-build-isolation
Umarmendes Gesicht
Google Drive
BaiduYun-Code: OCR2
Klartexte OCR:
python3 GOT/demo/run_ocr_2.0.py --model-name /GOT_weights/ --image-file /an/image/file.png --type ocr
Texte mit OCR formatieren:
python3 GOT/demo/run_ocr_2.0.py --model-name /GOT_weights/ --image-file /an/image/file.png --type Format
Feinkörnige OCR:
python3 GOT/demo/run_ocr_2.0.py --model-name /GOT_weights/ --image-file /an/image/file.png --type format/ocr --box [x1,y1,x2,y2]
python3 GOT/demo/run_ocr_2.0.py --model-name /GOT_weights/ --image-file /an/image/file.png --type format/ocr --color rot/grün/blau
Mehrfrucht-OCR:
python3 GOT/demo/run_ocr_2.0_crop.py --model-name /GOT_weights/ --image-file /an/image/file.png
Mehrseitige OCR (der Bildpfad enthält mehrere PNG-Dateien):
python3 GOT/demo/run_ocr_2.0_crop.py --model-name /GOT_weights/ --image-file /images/path/ --multi-page
Rendern Sie die formatierten OCR-Ergebnisse:
python3 GOT/demo/run_ocr_2.0.py --model-name /GOT_weights/ --image-file /an/image/file.png --type format --render
Hinweis : Die Rendering-Ergebnisse finden Sie in /results/demo.html. Bitte öffnen Sie die demo.html, um die Ergebnisse anzuzeigen.
Zugbeispiele finden Sie hier. Beachten Sie, dass das '
Diese Codebasis unterstützt nur Post-Training (Stufe 2/Stufe 3) auf Basis unserer GOT-Gewichte.
Wenn Sie ab der in unserem Artikel beschriebenen Stufe 1 trainieren möchten, benötigen Sie dieses Repo.
deepspeed /GOT-OCR-2.0-master/GOT/train/train_GOT.py --deepspeed /GOT-OCR-2.0-master/zero_config/zero2.json --model_name_or_path /GOT_weights/ --use_im_start_end True --bf16 True --gradient_accumulation_steps 2 --evaluation_strategy "nein" --save_strategy "Schritte" --save_steps 200 --save_total_limit 1 --weight_decay 0. --warmup_ratio 0,001 --lr_scheduler_type "Kosinus" --logging_steps 1 --tf32 True --model_max_length 8192 --gradient_checkpointing True --dataloader_num_workers 8 --report_to none --per_device_train_batch_size 2 --num_train_epochs 1 --learning_rate 2e-5 --datasets pdf-ocr+scence --output_dir /Ihr/Ausgabe/Pfad
Notiz :
Ändern Sie die entsprechenden Dateninformationen in konstant.py.
Ändern Sie Zeile 37 in „conversation_dataset_qwen.py“ in Ihren Datennamen.
Schnelle Feinabstimmung mit ms-swift:
Git-Klon https://github.com/modelscope/ms-swift.gitcd ms-swift pip install -e .[llm]
# Standard: sft LLM & Projektor, Vision-Encoder einfrierenCUDA_VISIBLE_DEVICES=0 Swift sft --model_type got-ocr2 --model_id_or_path stepfun-ai/GOT-OCR2_0 --sft_type Lora --dataset latex-ocr-print#5000# Deepspeed ZeRO2NPROC_PER_NODE=4 CUDA_VISIBLE_DEVICES=0,1,2,3 Swift sft --model_type got-ocr2 --model_id_or_path stepfun-ai/GOT-OCR2_0 --sft_type Lora --dataset latex-ocr-print#5000 --deepspeed default-zero2
Mit Ihren Daten :
--dataset train.jsonl --val_dataset val.jsonl (optional)
Datenformat :
{"query": "55555", "response": "66666", "images": ["image_path"]} {"query": " eeeee", "response": "fffff", "history": [], "images": ["image_path1", "image_path2"]} {"query": "EEEEE", "response": "FFFFF", "history": [["query1", "response1"], ["query2", "response2"]]}
Weitere Details finden Sie in ms-swift.
Wir verwenden die Fox- und OneChart-Benchmarks. Weitere Benchmarks finden Sie im Gewichtungs-Download-Link.
Die Evaluierungscodes finden Sie in GOT/eval.
Sie können die Datei „evaluate_GOT.py“ verwenden, um die Auswertung auszuführen. Wenn Sie 8 GPUs haben, kann --num-chunks auf 8 gesetzt werden.
python3 GOT/eval/evaluate_GOT.py --model-name /GOT_weights/ --gtfile_path xxxx.json --image_path /image/path/ --out_path /data/eval_results/GOT_mathpix_test/ --num-chunks 8 --datatype OCR
Wenn Sie an dieser Arbeit interessiert sind oder Fragen zum Code oder zum Papier haben, treten Sie bitte unserer Wechat-Kommunikationsgruppe bei.
Hinweis : Alle fünf Wechat-Gruppen sind voll, bitte treten Sie Gruppe 6 bei.
Zögern Sie nicht, mich per E-Mail zu kontaktieren, [email protected], wenn Sie Fragen haben.
Vary: die Codebasis, auf der wir aufgebaut haben!
Qwen: das LLM-Basismodell von Vary, das sowohl Englisch als auch Chinesisch beherrscht!
@article{wei2024general, title={Allgemeine OCR-Theorie: Auf dem Weg zu OCR-2.0 über ein einheitliches End-to-End-Modell}, Autor={Wei, Haoran und Liu, Chenglong und Chen, Jinyue und Wang, Jia und Kong, Lingyu und Xu, Yanming und Ge, Zheng und Zhao, Liang und Sun, Jianjian und Peng, Yuang und andere}, journal={arXiv preprint arXiv:2409.01704}, Jahr={2024}}@article{wei2023vary, title={Vary: Scaling Aufbau des Sehvokabulars für große Seh-Sprachmodelle}, Autor={Wei, Haoran und Kong, Lingyu und Chen, Jinyue und Zhao, Liang und Ge, Zheng und Yang, Jinrong und Sun, Jianjian und Han, Chunrui und Zhang, Xiangyu }, Journal={arXiv Preprint arXiv:2312.06109}, Jahr={2023}}