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
epytorch_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:
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.