--- language: - pt license: mit library_name: peft tags: - Gemma - Portuguese - Bode - Alpaca metrics: - accuracy - precision - f1 - recall model-index: - name: GemBode-2b-it results: - task: type: text-generation name: Text Generation dataset: name: ENEM Challenge (No Images) type: eduagarcia/enem_challenge split: train args: num_few_shot: 3 metrics: - type: acc value: 21.62 name: accuracy source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/GemBode-2b-it name: Open Portuguese LLM Leaderboard - task: type: text-generation name: Text Generation dataset: name: BLUEX (No Images) type: eduagarcia-temp/BLUEX_without_images split: train args: num_few_shot: 3 metrics: - type: acc value: 25.45 name: accuracy source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/GemBode-2b-it name: Open Portuguese LLM Leaderboard - task: type: text-generation name: Text Generation dataset: name: OAB Exams type: eduagarcia/oab_exams split: train args: num_few_shot: 3 metrics: - type: acc value: 27.33 name: accuracy source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/GemBode-2b-it name: Open Portuguese LLM Leaderboard - task: type: text-generation name: Text Generation dataset: name: Assin2 RTE type: assin2 split: test args: num_few_shot: 15 metrics: - type: f1_macro value: 53.1 name: f1-macro source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/GemBode-2b-it name: Open Portuguese LLM Leaderboard - task: type: text-generation name: Text Generation dataset: name: Assin2 STS type: eduagarcia/portuguese_benchmark split: test args: num_few_shot: 15 metrics: - type: pearson value: 15.57 name: pearson source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/GemBode-2b-it name: Open Portuguese LLM Leaderboard - task: type: text-generation name: Text Generation dataset: name: FaQuAD NLI type: ruanchaves/faquad-nli split: test args: num_few_shot: 15 metrics: - type: f1_macro value: 53.05 name: f1-macro source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/GemBode-2b-it name: Open Portuguese LLM Leaderboard - task: type: text-generation name: Text Generation dataset: name: HateBR Binary type: ruanchaves/hatebr split: test args: num_few_shot: 25 metrics: - type: f1_macro value: 66.89 name: f1-macro source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/GemBode-2b-it name: Open Portuguese LLM Leaderboard - task: type: text-generation name: Text Generation dataset: name: PT Hate Speech Binary type: hate_speech_portuguese split: test args: num_few_shot: 25 metrics: - type: f1_macro value: 24.22 name: f1-macro source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/GemBode-2b-it name: Open Portuguese LLM Leaderboard - task: type: text-generation name: Text Generation dataset: name: tweetSentBR type: eduagarcia-temp/tweetsentbr split: test args: num_few_shot: 25 metrics: - type: f1_macro value: 37.47 name: f1-macro source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/GemBode-2b-it name: Open Portuguese LLM Leaderboard --- # GemBode-2b-it
GemmBode é um modelo de linguagem ajustado para o idioma português, desenvolvido a partir do modelo base de instruções Gemma-2b-it fornecido pela [Google](https://huggingface.co/google/gemma-2b-it). Este modelo foi refinado através do processo de fine-tuning utilizando o dataset Alpaca traduzido para o português. O principal objetivo deste modelo é ser viável para pessoas que não possuem recursos computacionais disponíveis para o uso de LLMs (Large Language Models). Ressalta-se que este é um trabalho em andamento e o modelo ainda apresenta problemas na geração de texto em português. ## Características Principais - **Modelo Base:** Gemma-2b-it, criado pela Google, com 2 bilhões de parâmetros. - **Dataset para Fine-tuning:** Uso do dataset Alpaca traduzido para português para adaptar o modelo às nuances da língua portuguesa. - **Quantização:** O modelo base Gemma-2b-it foi quantizado em 4 bits para reduzir o tamanho e a complexidade computacional. - **Treinamento:** O treinamento foi realizado utilizando o método LoRa, visando eficiência computacional e otimização de recursos. - **Merge de Modelos:** Após o treinamento, o modelo treinado quantizado em 4 bits foi mesclado com o modelo base para preservar a qualidade do modelo. ## Outros modelos disponíveis | Quantidade de parâmetros | PEFT | Modelo | | :-: | :-: | :-: | | 7b | ✓ | [recogna-nlp/bode-7b-alpaca-pt-br](https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br) | | 13b | ✓ | [recogna-nlp/bode-13b-alpaca-pt-br](https://huggingface.co/recogna-nlp/bode-13b-alpaca-pt-br)| | 7b | | [recogna-nlp/bode-7b-alpaca-pt-br-no-peft](https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br-no-peft) | | 7b-gguf | | [recogna-nlp/bode-7b-alpaca-pt-br-gguf](https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br-gguf) | | 13b | | [recogna-nlp/bode-13b-alpaca-pt-br-no-peft](https://huggingface.co/recogna-nlp/bode-13b-alpaca-pt-br-no-peft) | | 13b-gguf | | [recogna-nlp/bode-13b-alpaca-pt-br-gguf](https://huggingface.co/recogna-nlp/bode-13b-alpaca-pt-br-gguf) | | 2b | | [recogna-nlp/Phi-Bode](https://huggingface.co/recogna-nlp/Phi-Bode) | ## Utilização O modelo GemBode-2b-it pode ser utilizado para uma variedade de tarefas de processamento de linguagem natural (PLN) em português, como geração de texto, classificação, sumarização de texto, entre outros. ### Exemplo de uso Abaixo, colocamos um exemplo simples de como carregar o modelo e gerar texto: ```python !pip3 -q install -q -U bitsandbytes==0.42.0 !pip3 -q install -q -U accelerate==0.27.1 !pip3 -q install -q -U transformers==4.38.0 from transformers import AutoModelForCausalLM, AutoTokenizer hf_auth = 'HF_ACCESS_KEY' model_id = "recogna-nlp/GemBode-2b-it" model = AutoModelForCausalLM.from_pretrained(model_id, device_map={"":0}, trust_remote_code=True, token=hf_auth) tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True, token=hf_auth) tokenizer.pad_token = tokenizer.eos_token tokenizer.padding_side = "right" def get_completion(model, tokenizer, query : str, input : str = '', device = 'cuda:0', max_new_tokens=128) -> str: if len(input) == 0: prompt_template = """Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido. ### Instrução: {query} ### Resposta:""" prompt = prompt_template.format(query=query) else: prompt_template = """Abaixo está uma instrução que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que complete adequadamente o pedido. ### Instrução: {query} ### Entrada: {input} ### Resposta:""" prompt = prompt_template.format(query=query, input=input) encodeds = tokenizer(prompt, return_tensors="pt", add_special_tokens=True) model_inputs = encodeds.to(device) generated_ids = model.generate(**model_inputs, max_new_tokens=max_new_tokens, do_sample=True, pad_token_id=tokenizer.eos_token_id) decoded = tokenizer.decode(generated_ids[0], skip_special_tokens=True) return (decoded[len(prompt):]) result = get_completion(model=model, tokenizer=tokenizer, query="Qual é a capital da França?") print(result) #Exemplo de resposta obtida: A capital da França é Paris. Paris é um das cidades mais populosas da França e é o lar do Parlamento francês, de grandes instituições educacionais e importantes museums. ``` ## Contribuições Contribuições para a melhoria deste modelo são bem-vindas. Sinta-se à vontade para abrir problemas e solicitações pull. ## Citação Se você deseja utilizar o GemBode-2b-it em sua pesquisa, cite-o da seguinte maneira: ``` @misc {gembode2024, author = {Pedro Henrique Paiola and Gabriel Lino Garcia and João Paulo Papa}, title = { GemBode-2b-it}, year = {2024}, url = { https://huggingface.co/recogna-nlp/GemBode-2b-it }, doi = { 10.57967/hf/1879 }, publisher = { Hugging Face } } ``` # [Open Portuguese LLM Leaderboard Evaluation Results](https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard) Detailed results can be found [here](https://huggingface.co/datasets/eduagarcia-temp/llm_pt_leaderboard_raw_results/tree/main/recogna-nlp/GemBode-2b-it) | Metric | Value | |--------------------------|---------| |Average |**36.08**| |ENEM Challenge (No Images)| 21.62| |BLUEX (No Images) | 25.45| |OAB Exams | 27.33| |Assin2 RTE | 53.10| |Assin2 STS | 15.57| |FaQuAD NLI | 53.05| |HateBR Binary | 66.89| |PT Hate Speech Binary | 24.22| |tweetSentBR | 37.47|