abcd-hide commited on
Commit
741fd70
·
verified ·
1 Parent(s): 63b6da0

Upload 3 files

Browse files
Files changed (2) hide show
  1. app.py +1 -32
  2. requirements.txt +3 -3
app.py CHANGED
@@ -1,5 +1,6 @@
1
  from fastapi import FastAPI, UploadFile, File, HTTPException
2
  from fastapi.middleware.cors import CORSMiddleware
 
3
  import io
4
  from PIL import Image
5
  import uvicorn
@@ -8,38 +9,6 @@ import os
8
  # 高速トークナイザーの並列処理によるデッドロックを回避
9
  os.environ["TOKENIZERS_PARALLELISM"] = "false"
10
 
11
- # -------------------------------------------------------
12
- # モンキーパッチ: XLMRobertaTokenizerFast の tokenizer.json 読み込みを回避
13
- #
14
- # 【根本原因】
15
- # pix2text-mfr の tokenizer_config.json に
16
- # "tokenizer_class": "XLMRobertaTokenizerFast" がハードコードされているため、
17
- # use_fast=False を渡しても無視され、常にFastクラスが呼ばれる。
18
- # Fastクラスは tokenizer.json を tokenizers ライブラリでパースするが、
19
- # tokenizer.json のフォーマットと現在の tokenizers のバージョンが非互換で
20
- # "data did not match any variant of untagged enum ModelWrapper" が発生する。
21
- #
22
- # 【対策】
23
- # XLMRobertaTokenizerFast.__init__ に直接パッチを当て、
24
- # tokenizer_file=None を強制することで tokenizer.json の読み込みを完全スキップ。
25
- # SentencePiece モデル (sentencepiece.bpe.model) のみを使用するスローモードで動作。
26
- # -------------------------------------------------------
27
- from transformers.models.xlm_roberta.tokenization_xlm_roberta_fast import (
28
- XLMRobertaTokenizerFast as _XLMRobertaTokenizerFast,
29
- )
30
-
31
- _orig_xlm_init = _XLMRobertaTokenizerFast.__init__
32
-
33
- def _patched_xlm_init(self, vocab_file=None, tokenizer_file=None, **kwargs):
34
- # tokenizer.json (fast_tokenizer_file) を無効化して
35
- # SentencePiece モデルのみ使用するスローモードにフォールバック
36
- _orig_xlm_init(self, vocab_file=vocab_file, tokenizer_file=None, **kwargs)
37
-
38
- _XLMRobertaTokenizerFast.__init__ = _patched_xlm_init
39
- # -------------------------------------------------------
40
-
41
- from pix2text import Pix2Text
42
-
43
  app = FastAPI()
44
 
45
  # CORSを許可
 
1
  from fastapi import FastAPI, UploadFile, File, HTTPException
2
  from fastapi.middleware.cors import CORSMiddleware
3
+ from pix2text import Pix2Text
4
  import io
5
  from PIL import Image
6
  import uvicorn
 
9
  # 高速トークナイザーの並列処理によるデッドロックを回避
10
  os.environ["TOKENIZERS_PARALLELISM"] = "false"
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  app = FastAPI()
13
 
14
  # CORSを許可
requirements.txt CHANGED
@@ -6,9 +6,9 @@ pillow
6
  torch==2.3.1+cpu
7
  torchvision==0.18.1+cpu
8
  --extra-index-url https://download.pytorch.org/whl/cpu
9
- transformers==4.44.2
10
- tokenizers==0.19.1
11
- huggingface-hub==0.24.5
12
  numpy<2.0.0
13
  onnxruntime==1.19.0
14
  optimum==1.22.0
 
6
  torch==2.3.1+cpu
7
  torchvision==0.18.1+cpu
8
  --extra-index-url https://download.pytorch.org/whl/cpu
9
+ transformers>=4.46.0,<5.0.0
10
+ tokenizers>=0.20.0
11
+ huggingface-hub>=0.25.0
12
  numpy<2.0.0
13
  onnxruntime==1.19.0
14
  optimum==1.22.0