File size: 3,290 Bytes
e2f0e4d
 
 
c6ab4a4
e2f0e4d
c6ab4a4
e2f0e4d
 
 
 
 
 
 
 
 
 
7e9fb95
 
 
 
e2f0e4d
 
 
 
 
 
 
 
 
 
 
 
 
7e9fb95
 
 
 
 
 
 
 
e2f0e4d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
---
license: cc
---
# Fine-Tuning do Modelo `microsoft/git-base`

Este repositório contém um modelo de fine-tuning baseado no `microsoft/git-base`. O vocabulário foi traduzido automaticamente utilizando o modelo `Helsinki-NLP/opus-mt-tc-big-en-pt`.

## Descrição do Modelo

O modelo original `microsoft/git-base` foi ajustado para melhorar a geração de descrições em português para imagens, visando proporcionar maior acessibilidade para pessoas com deficiência visual.


## Tradução do Vocabulário

Para traduzir o vocabulário das descrições das imagens para o português, utilizamos o modelo de tradução automática `Helsinki-NLP/opus-mt-tc-big-en-pt`. Este modelo é conhecido pela sua eficácia na tradução de textos entre o inglês e o português, garantindo a manutenção do contexto e da precisão das descrições.

## Tokenizador Utilizado

O tokenizador utilizado para o ajuste fino é o `neuralmind/bert-base-portuguese-cased`, que é otimizado para lidar com o português, proporcionando uma tokenização precisa e eficiente para o modelo.

## Estrutura do Repositório

- `config.json`: Configuração do modelo.
- `generation_config.json`: Configurações para geração de texto.
- `model.safetensors` e `pytorch_model.bin`: Pesos do modelo.
- `preprocessor_config.json`: Configurações do pré-processador.
- `special_tokens_map.json`: Mapeamento de tokens especiais.
- `tokenizer.json`: Arquivo do tokenizer.
- `tokenizer_config.json`: Configurações do tokenizer.
- `vocab.txt`: Arquivo de vocabulário.

## Como Utilizar

### Carregar o Modelo:

```python
from transformers import AutoModelForCausalLM, AutoTokenizer, AutoProcessor

model = AutoModelForCausalLM.from_pretrained("histlearn/microsoft-git-portuguese-neuro-simbolic")
tokenizer = AutoTokenizer.from_pretrained("histlearn/microsoft-git-portuguese-neuro-simbolic")
processor = AutoProcessor.from_pretrained("histlearn/microsoft-git-portuguese-neuro-simbolic")

    ```

2. **Gerar Legendas para uma Imagem**:
    ```python
    from PIL import Image
    import torch

    def generate_caption(model, processor, image_path, device):
        img = Image.open(image_path).convert("RGB")
        inputs = processor(images=img, return_tensors="pt").to(device)
        pixel_values = inputs.pixel_values

        model.eval()
        with torch.no_grad():
            generated_ids = model.generate(pixel_values=pixel_values, max_length=50)
        generated_caption = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]

        return generated_caption, img

    device = "cuda" if torch.cuda.is_available() else "cpu"
    model.to(device)

    # Exemplo de imagem para inferência
    image_path = "caminho/para/sua/imagem.jpg"
    generated_caption, img = generate_caption(model, processor, image_path, device)

    print("Generated Caption:", generated_caption)
    ```

## Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests para melhorar este repositório.


## Agradecimentos

Agradecemos à equipe do [Hugging Face](https://huggingface.co/) por fornecer as ferramentas e os modelos que possibilitaram este trabalho, e ao projeto [#PraCegoVer](https://zenodo.org/records/5710562) pela disponibilização do dataset.