rhaymison's picture
Update README.md
40b9cb7 verified
metadata
language:
  - pt
license: apache-2.0
library_name: transformers
tags:
  - health
  - portuguese
base_model: rhaymison/Mistral-portuguese-luana-7b
datasets:
  - rhaymison/mental-health-qa
pipeline_tag: text-generation
model-index:
  - name: Mistral-portuguese-luana-7b-mental-health
    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: 60.53
            name: accuracy
        source:
          url: >-
            https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=rhaymison/Mistral-portuguese-luana-7b-mental-health
          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: 48.26
            name: accuracy
        source:
          url: >-
            https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=rhaymison/Mistral-portuguese-luana-7b-mental-health
          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: 38.04
            name: accuracy
        source:
          url: >-
            https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=rhaymison/Mistral-portuguese-luana-7b-mental-health
          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: 91.3
            name: f1-macro
        source:
          url: >-
            https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=rhaymison/Mistral-portuguese-luana-7b-mental-health
          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: 74.98
            name: pearson
        source:
          url: >-
            https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=rhaymison/Mistral-portuguese-luana-7b-mental-health
          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: 60.57
            name: f1-macro
        source:
          url: >-
            https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=rhaymison/Mistral-portuguese-luana-7b-mental-health
          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: 76.86
            name: f1-macro
        source:
          url: >-
            https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=rhaymison/Mistral-portuguese-luana-7b-mental-health
          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: 70.05
            name: f1-macro
        source:
          url: >-
            https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=rhaymison/Mistral-portuguese-luana-7b-mental-health
          name: Open Portuguese LLM Leaderboard
      - task:
          type: text-generation
          name: Text Generation
        dataset:
          name: tweetSentBR
          type: eduagarcia/tweetsentbr_fewshot
          split: test
          args:
            num_few_shot: 25
        metrics:
          - type: f1_macro
            value: 64.9
            name: f1-macro
        source:
          url: >-
            https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=rhaymison/Mistral-portuguese-luana-7b-mental-health
          name: Open Portuguese LLM Leaderboard

Mistral-portuguese-luana-7b-mental-health

Luana Mental health is a tuned model of the Luana-7b based on the Mistral 7b architecture. The model was adjusted to address topics such as depression, problems at work, mental health, problems with studies, drugs and others.

How to use

You can use the model in its normal form up to 4-bit quantization. Below we will use both approaches. Remember that verbs are important in your prompt. Tell your model how to act or behave so that you can guide them along the path of their response. Important points like these help models (even smaller models like 7b) to perform much better.

FULL MODEL : A100

HALF MODEL: L4

8bit or 4bit : T4 or V100

!pip install -q -U transformers
!pip install -q -U accelerate
!pip install -q -U bitsandbytes

from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
model = AutoModelForCausalLM.from_pretrained("rhaymison/Mistral-portuguese-luana-7b-mental-health", device_map= {"": 0})
tokenizer = AutoTokenizer.from_pretrained("rhaymison/Mistral-portuguese-luana-7b-mental-health")
model.eval()

You can use with Pipeline but in this example i will use such as Streaming


inputs = tokenizer([f"""<s>Aja como um conselheira de pessoas que estão passandos por dificuldades.
Responda sempre de maneira educada e procure ajudar as pessoas.
[INST] Olá, estou tendo muitos problemas pessoais, briga com meus pais. Tenho tido problemas no trabalho. Preciso de ajuda[/INST]"""], return_tensors="pt")

streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
_ = model.generate(**inputs, streamer=streamer, max_new_tokens=200)


#Olá, estou aqui para ajudá-lo. É normal enfrentar problemas pessoais, mas é importante buscar ajuda.
#Vamos conversar sobre suas brigas com seus pais e como podemos resolver isso. Além disso, vamos falar sobre seus problemas no trabalho e como podemos encontrar
#soluções para isso. Você não está sozinho, estou aqui para ajudá-lo. Vamos começar a encontrar maneiras de lidar com essas questões.
#Você gostaria de começar falando sobre sua situação com seus pais?
#Ou talvez queremos começar falando sobre seus problemas no trabalho? O que você acha melhor? Você pode me contar mais sobre isso?
#Estou aqui para ajudá-lo.

LangChain

Human: Ola Luana, estou passando por um momento dificil. Estou precisando de ajuda

Luana: Olá, estou aqui para te ajudar. Você gostaria de falar sobre o que está te incomodando?

Human: Tenho tido problemas em casa, em especial com minha esposa. Temos brigado muito, estou com medo do meu casamento terminar.

Luana: É normal ter problemas no casamento, mas é importante conversar com sua esposa sobre isso. Você já tentou ter uma conversa calma e honesta com ela?

Human: Já sim, ela me entende, mas sempre terminamos em brigas. Eu sou uma pessoa muito stressada por causa do trabalho. Acabo descontando isso nela.

Luana: É importante encontrar maneiras saudáveis de lidar com o estresse. Você já tentou praticar atividades de relaxamento, como meditação ou ioga?

Human: Ja tentei sim. Eu pratico corrida e jogo vide-game pra acalmar, mas nao tem ajudado. Será que uma terapida de casal poderia ajudar?

Luana: Uma terapeuta de casal pode ser uma ótima opção para ajudar a melhorar a comunicação e resolver problemas no casamento. Você já considerou isso?

Human: É uma boa opção. Voce poderia me indicar um modo de conversa com ela sobre a terapida de casal? Como apresentar essa ideia pra ela.

Luana: Sim, é importante abordar a ideia da terapia de casal de maneira aberta e honesta. Você pode começar dizendo que está com medo do seu casamento terminar e que gostaria de tentar algo para melhorar a situação. Também pode ser útil falar sobre os benefícios da terapia de casal, como melhorar a comunicação e encontrar soluções para problemas. Lembre-se de ser paciente e respeitoso, mesmo que ela não esteja disposta a aceitar a ideia inicialmente. A terapia de casal pode ser uma ferramenta poderosa para melhorar o relacionamento, mas é importante que ambos estejam dispostos a dar o primeiro passo.

4bits

from transformers import BitsAndBytesConfig
import torch
nb_4bit_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
    bnb_4bit_use_double_quant=True
)

model = AutoModelForCausalLM.from_pretrained(
    base_model,
    quantization_config=bnb_config,
    device_map={"": 0}
)

Open Portuguese LLM Leaderboard Evaluation Results

Detailed results can be found here and on the 🚀 Open Portuguese LLM Leaderboard

Metric Value
Average 65.05
ENEM Challenge (No Images) 60.53
BLUEX (No Images) 48.26
OAB Exams 38.04
Assin2 RTE 91.30
Assin2 STS 74.98
FaQuAD NLI 60.57
HateBR Binary 76.86
PT Hate Speech Binary 70.05
tweetSentBR 64.90

Comments

Any idea, help or report will always be welcome.

email: rhaymisoncristian@gmail.com