|
--- |
|
library_name: transformers |
|
datasets: |
|
- jeanflop/post_ocr_correction-512 |
|
language: |
|
- fr |
|
- en |
|
base_model: |
|
- google/flan-t5-large |
|
--- |
|
|
|
## **Ocr Correcteur v1** |
|
|
|
|
|
This model lora weight has been finetune on french OCR dataset. The architecture used is Flan T large. On a sample of 1000. More stong model is under cooks. |
|
|
|
* **Install dependencies** |
|
|
|
```bash |
|
!pip install -q transformers accelerate peft diffusers |
|
``` |
|
* **Load and merge adaptaters in 8Bit** (recommanded) |
|
|
|
```python |
|
import torch |
|
from peft import PeftModel, PeftConfig |
|
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer,BitsAndBytesConfig |
|
|
|
# Load peft config for pre-trained checkpoint etc. |
|
peft_model_id = "jeanflop/ocr_correcteur-v1" |
|
config = PeftConfig.from_pretrained(peft_model_id) |
|
|
|
# load base LLM model and tokenizer |
|
peft_model = AutoModelForSeq2SeqLM.from_pretrained(config.base_model_name_or_path, load_in_8bit=True, device_map={"":1}) |
|
peft_tokenizer = AutoTokenizer.from_pretrained('google/flan-t5-large') |
|
|
|
# Load the Lora model |
|
peft_model = PeftModel.from_pretrained(peft_model, peft_model_id, device_map={"":1}) |
|
# model.eval() |
|
|
|
print("Peft model loaded") |
|
``` |
|
* **Run inference** (recommanded) |
|
|
|
Add your text |
|
|
|
```python |
|
inputs=f""" |
|
Fix text : {text}""" |
|
``` |
|
Run |
|
```python |
|
peft_model.config.max_length=512 |
|
peft_tokenizer.model_max_length=512 |
|
inputs = peft_tokenizer(inputs, return_tensors="pt") |
|
outputs = peft_model.generate(**inputs,max_length=512) |
|
answer = tokenizer.decode(outputs[0]) |
|
from textwrap import fill |
|
|
|
print(fill(answer, width=80)) |
|
``` |
|
|
|
|
|
|