发布
[2024/11/4] 六个微信群。
[2024/10/24] 之前的四个微信群已经满了,所以我们创建了第五个群。
[2024/10/11] 太多朋友想加入微信群,所以我们创建了第四个群。
[2024/10/2] GOT-OCR2.0 onnx 和 mnn 版本。
[2024/9/29]???社区已经实现了 llama_cpp_inference 的第一个版本。
[2024/9/24]???支持ms-swift快速对自己的数据进行Fine-tune。
[2024/9/23]???我们发布了官方 Modelscope 演示。非常感谢Modelscope提供GPU资源。
[2024/9/14]???我们发布了官方演示。非常感谢 Huggingface 提供的 GPU 资源。
[2024/9/13]???我们发布了 Huggingface 部署。
[2024/9/03]???我们开源代码、权重和基准。该论文可以在这个 repo 中找到。我们也已将其提交给 Arxiv。
[2024/9/03]???我们发布了 OCR-2.0 模型 GOT!
我们鼓励大家基于这个仓库开发GOT应用程序。感谢以下贡献:
vllm 参考~贡献者:@Jay
onnx 和 mnn 支持 ~ 贡献者:@BaofengZan
llama_cpp 推理 ~ 贡献者:@1694439208
GOT的Colab~贡献者:@Zizhe Wang
CPU版本的GOT~贡献者:@ElvisClaros
在线演示 ~ 贡献者:@Joseph Pollack
Dokcer 和客户端演示 ~ 贡献者:@QIN2DIM
GOT的GUI〜贡献者:@XJF2332
安装
得到的重量
演示
火车
微调
评估
通过统一的端到端模型迈向 OCR-2.0
我们的环境是cuda11.8+torch2.0.1
克隆此存储库并导航到 GOT 文件夹
git clone https://github.com/Ucas-HaoranWei/GOT-OCR2.0.gitcd 'GOT文件夹'
安装包
conda create -n 得到 python=3.10 -y conda 激活 得到 pip install -e 。
安装Flash-注意
pip install ninja pip install flash-attn --no-build-isolation
抱脸
谷歌云端硬盘
百度云代码:OCR2
纯文本 OCR:
python3 GOT/demo/run_ocr_2.0.py --model-name /GOT_weights/ --image-file /an/image/file.png --type ocr
格式化文本 OCR:
python3 GOT/demo/run_ocr_2.0.py --model-name /GOT_weights/ --image-file /an/image/file.png --type 格式
细粒度 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 红/绿/蓝
多作物 OCR:
python3 GOT/demo/run_ocr_2.0_crop.py --model-name /GOT_weights/ --image-file /an/image/file.png
多页OCR(图像路径包含多个.png文件):
python3 GOT/demo/run_ocr_2.0_crop.py --model-name /GOT_weights/ --image-file /images/path/ --multi-page
渲染格式化的 OCR 结果:
python3 GOT/demo/run_ocr_2.0.py --model-name /GOT_weights/ --image-file /an/image/file.png --type format --render
注意:渲染结果可以在/results/demo.html中找到。请打开 demo.html 查看结果。
火车样本可以在这里找到。请注意,“对话”-“人类”-“价值”中的“<图像>”是必需的!
该代码库仅支持我们的 GOT 权重的后训练(第 2 阶段/第 3 阶段)。
如果您想从我们论文中描述的第一阶段开始进行训练,您需要这个存储库。
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 真 --bf16 正确 --gradient_accumulation_steps 2 --评估策略“否” --save_strategy“步骤” --save_steps 200 --save_total_limit 1 --权重衰减0。 --warmup_ratio 0.001 --lr_scheduler_type“余弦” --logging_steps 1 --tf32 真 --model_max_length 8192 --gradient_checkpointing 真 --dataloader_num_workers 8 --report_to none --per_device_train_batch_size 2 --num_train_epochs 1 --学习率2e-5 --数据集 pdf-ocr+scence --output_dir /你的/输出/路径
笔记:
更改constant.py中对应的数据信息。
将conversation_dataset_qwen.py 中的第37行更改为您的data_name。
使用 ms-swift 快速微调:
git 克隆 https://github.com/modelscope/ms-swift.gitcd ms-swift pip install -e .[llm]
# 默认:sft LLM & 投影仪,冻结视觉编码器CUDA_VISIBLE_DEVICES=0 swift sft --model_type got-ocr2 --model_id_or_path stepfun-ai/GOT-OCR2_0 --sft_type 劳拉 --数据集 Latex-ocr-print#5000# Deepspeed ZeRO2NPROC_PER_NODE=4 CUDA_VISIBLE_DEVICES=0,1,2,3 快速 sft --model_type got-ocr2 --model_id_or_path stepfun-ai/GOT-OCR2_0 --sft_type 劳拉 --数据集 Latex-ocr-print#5000 --deepspeed 默认值-02
根据您的数据:
--数据集train.jsonl --val_dataset val.jsonl(可选)
数据格式:
{“查询”:“<图像> 55555”,“响应”:“66666”,“图像”:[“image_path”]} {“查询”:“<图像> <图像> eeeee”,“响应”:“fffff”,“历史记录”:[],“图像”:[“image_path1”,“image_path2”]} {“查询”:“EEEEE”,“响应”:“FFFFF”,“历史记录”:[[“查询1”,“响应1”],[“查询2”,“响应2”]]}
更多细节可以参见ms-swift。
我们使用 Fox 和 OneChart 基准,其他基准可以在权重下载链接中找到。
评估代码可以在 GOT/eval 中找到。
您可以使用evaluate_GOT.py来运行eval。如果你有8个GPU,--num-chunks可以设置为8。
python3 GOT/eval/evaluate_GOT.py --model-name /GOT_weights/ --gtfile_path xxxx.json --image_path /image/path/ --out_path /data/eval_results/GOT_mahpix_test/ --num-chunks 8 --datatype OCR
如果您对这项工作感兴趣或者对代码或论文有疑问,请加入我们的交流微信群。
注:五个微信群已满,请加入6群。
如果您有任何疑问,请随时通过电子邮件与我联系,[email protected]。
Vary:我们构建的代码库!
Qwen:Vary的LLM基础模型,英文和中文都很擅长!
@article{wei2024general, title={通用 OCR 理论:通过统一的端到端模型迈向 OCR-2.0},作者={Wei、Haoran 和 Liu、Chenglong 和 Chen、Jinyue 和 Wang、Jia 和 Kong、Lingyu 和徐彦明和葛、郑和赵、梁和孙、健健和彭、袁等人},journal={arXiv 预印本 arXiv:2409.01704},year={2024}}@article{wei2023vary,title={Vary:缩放大视觉语言模型的视觉词汇表},作者={魏、浩然和孔、凌宇和陈、金月和赵、梁和葛、郑和杨、金荣和孙、健健和韩、春瑞和张、翔宇}, 期刊={arXiv 预印本 arXiv:2312.06109}, 年={2023}}