リリース
[2024/11/4] 6つのwechatグループ。
[2024/10/24] 前の 4 つの wechat グループが満員になったため、5 つ目のグループを作成しました。
[2024/10/11] wechatグループに参加したい友達が多すぎたので、4つ目のグループを作成しました。
[2024/10/2] GOT-OCR2.0のnx版とmnn版を追加しました。
[2024/9/29]???コミュニティは、llama_cpp_inference の最初のバージョンを実装しました。
[2024/9/24]???独自のデータの ms-swift クイック微調整をサポートします。
[2024/9/23]??? Modelscope の公式デモをリリースします。 GPU リソースを提供してくださった Modelscope に感謝します。
[2024/9/14]???公式デモを公開いたします。 GPU リソースを提供してくださった Huggingface に心より感謝いたします。
[2024/9/13]??? Huggingface デプロイメントをリリースします。
[2024/9/03]???コード、重み、ベンチマークはオープンソースです。この論文はこのリポジトリにあります。 Arxiv にも投稿しました。
[2024/9/03]??? OCR-2.0モデルGOTを発売!
このリポジトリに基づいて GOT アプリケーションを開発することをお勧めします。以下の貢献に感謝します。
vllm リファレンス ~ 寄稿者: @Jay
onnx と mnn は ~ をサポートしています 寄稿者: @BaofengZan
llama_cpp 推論 ~ 投稿者: @1694439208
GOTのコラボ〜寄稿者:@Zizhe Wang
GOTのCPUバージョン〜投稿者:@ElvisClaros
オンライン デモ ~ 寄稿者: @Joseph Pollack
Dokcer とクライアントのデモ ~ 寄稿者: @QIN2DIM
GOTのGUI~投稿者:@XJF2332
インストール
GOTの重み
デモ
電車
微調整
評価
統合エンドツーエンドモデルによる 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 activate 取得しました pip install -e 。
フラッシュ注意のインストール
pip install ninja pip install flash-attn --no-build-isolation
ハグフェイス
Googleドライブ
BaiduYun コード: OCR2
プレーンテキスト OCR:
python3 GOT/demo/run_ocr_2.0.py --モデル名 /GOT_weights/ --image-file /an/image/file.png --type ocr
テキスト OCR のフォーマット:
python3 GOT/demo/run_ocr_2.0.py --モデル名 /GOT_weights/ --image-file /an/image/file.png --type 形式
きめ細かい OCR:
python3 GOT/demo/run_ocr_2.0.py --モデル名 /GOT_weights/ --image-file /an/image/file.png --type format/ocr --box [x1,y1,x2,y2]
python3 GOT/demo/run_ocr_2.0.py --モデル名 /GOT_weights/ --image-file /an/image/file.png --type format/ocr --color red/green/blue
複数作物 OCR:
python3 GOT/demo/run_ocr_2.0_crop.py --モデル名 /GOT_weights/ --image-file /an/image/file.png
マルチページ OCR (画像パスには複数の .png ファイルが含まれます):
python3 GOT/demo/run_ocr_2.0_crop.py --モデル名 /GOT_weights/ --image-file /images/path/ --multi-page
フォーマットされた OCR 結果をレンダリングします。
python3 GOT/demo/run_ocr_2.0.py --モデル名 /GOT_weights/ --image-file /an/image/file.png --type format --render
注: レンダリング結果は /results/demo.html にあります。結果を確認するには、demo.html を開いてください。
電車のサンプルはこちらからご覧いただけます。 「会話」-「人間」-「値」の「<画像>」が必要であることに注意してください。
このコードベースは、GOT 重みに基づくポストトレーニング (ステージ 2/ステージ 3) のみをサポートします。
論文で説明されているステージ 1 からトレーニングしたい場合は、このリポジトリが必要です。
deepspeed /GOT-OCR-2.0-master/GOT/train/train_GOT.py --deepspeed /GOT-OCR-2.0-master/zero_config/zero2.json --モデル名またはパス /GOT_weights/ --use_im_start_end True --bf16 本当 --gradient_accumulation_steps 2 --評価戦略 "いいえ" --save_strategy「ステップ」 --save_steps 200 --save_total_limit 1 --weight_decay 0。 --warmup_ratio 0.001 --lr_scheduler_type "コサイン" --logging_steps 1 --tf32 真 --model_max_length 8192 --gradient_checkpointing True --dataloader_num_workers 8 --report_to なし --per_device_train_batch_size 2 --num_train_epochs 1 --learning_rate 2e-5 --datasets pdf-ocr+scence --output_dir /あなたの/出力/パス
注記:
constant.py内の該当するデータ情報を変更します。
会話データセット_qwen.py の 37 行目を data_name に変更します。
ms-swift を使用したクイック微調整:
git clone 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 ロラ --dataset latex-ocr-print#5000# ディープスピード ZeRO2NPROC_PER_NODE=4 CUDA_VISIBLE_DEVICES=0、1、2、3 速フィート --model_type got-ocr2 --model_id_or_path stepfun-ai/GOT-OCR2_0 --sft_type ロラ --dataset latex-ocr-print#5000 --deepspeed デフォルト-zero2
データを使用して:
--dataset train.jsonl --val_dataset val.jsonl (オプション)
データ形式:
{"クエリ": "<画像>55555"、"応答": "66666"、"画像": ["画像パス"]} {"クエリ": "<画像><画像>eeee"、"応答": "fffff"、"履歴": []、"画像": ["画像パス1"、"画像パス2"]} {"クエリ": "EEEEE", "応答": "FFFFF", "履歴": [["クエリ1", "応答1"], ["クエリ2", "応答2"]]}
詳細については、ms-swift を参照してください。
Fox および OneChart ベンチマークを使用します。他のベンチマークは重みのダウンロード リンクにあります。
eval コードは GOT/eval にあります。
Evaluate_GOT.py を使用して評価を実行できます。 GPU が 8 つある場合は、--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_mathpix_test/ --num-chunks 8 --datatype OCR
この研究に興味がある場合、またはコードや論文について質問がある場合は、コミュニケーション Wechat グループに参加してください。
注: 5 つの wechat グループはすべて満員です。グループ 6 に参加してください。
ご質問がございましたら、お気軽に電子メール [email protected] までご連絡ください。
さまざまです: 私たちが構築したコードベース!
Qwen:英語も中国語も得意なVaryのLLMベースモデル!
@article{wei2024general, title={一般的な OCR 理論: 統合エンドツーエンド モデルによる OCR-2.0 に向けて}, author={Wei、Haoran と Liu、Chenglong と Chen、Jinyue と Wang、Jia と Kong、Lingyu、 Xu、Yanming と Ge、Zheng と Zhao、Liang と Sun、Jianjian と Peng、Yuang など}、journal={arXiv preprint arXiv:2409.01704}、year={2024}}@article{wei2023vary、title={Vary: スケーリング大規模ビジョン言語モデルのビジョン語彙をアップ}、著者={ウェイ、ハオランとコン、リンユウとチェン、ジンユエとチャオ、梁と格、鄭と楊、金栄と孫、建建と漢、春瑞と張、翔宇}、ジャーナル={arXiv プレプリント arXiv:2312.06109}、年={2023}}