amornpan's picture
Update README.md
3e84d87 verified
metadata
base_model:
  - Qwen/Qwen2.5-32B-Instruct
datasets:
  - Thaweewat/thai-med-pack
language:
  - th
  - en
library_name: transformers
pipeline_tag: text-generation
tags:
  - text-generation-inference
  - sft
  - trl
  - 4-bit precision
  - bitsandbytes
  - LoRA
  - Fine-Tuning with LoRA
  - LLM
  - GenAI
  - medical
  - medtech
  - HealthGPT
  - NT Academy
  - minddatatech

🇹🇭 Model Card for Qwen2.5-32B-Instruct-medical-tuned

ℹ️ This version is significantly better than OpenThaiGPT!!.

Qwen2.5-32B-Instruct for Thai Medical QA

This model is fine-tuned from Qwen2.5-32B-Instruct using Supervised Fine-Tuning (SFT) on the Thaweewat/thai-med-pack dataset. It is designed for medical question-answering tasks in Thai, providing accurate and contextual answers based on medical information.

Model Description

This model was fine-tuned using Supervised Fine-Tuning (SFT) to enhance its capabilities for medical question answering in Thai. The base model is Qwen2.5-32B-Instruct, which has been optimized with domain-specific knowledge using the Thaweewat/thai-med-pack dataset.

  • Model type: Causal Language Model (AutoModelForCausalLM)
  • Language(s): Thai
  • Fine-tuned from model: Qwen2.5-32B-Instruct
  • Dataset used for fine-tuning: Thaweewat/thai-med-pack

Model Sources

Uses

Direct Use

The model can be used directly for generating medical responses in Thai. It has been optimized for:

  • Medical question-answering
  • Providing clinical information
  • Health-related dialogue generation

Downstream Use

This model serves as a foundational model for medical assistance systems, chatbots, and applications related to healthcare in the Thai language.

Out-of-Scope Use

  • This model should not be used for real-time diagnosis or emergency medical scenarios.
  • It should not be relied upon for critical clinical decisions without human oversight, as it is not intended to replace professional medical advice.

Bias, Risks, and Limitations

Bias

  • The model may reflect biases present in the dataset, especially regarding underrepresented medical conditions or topics.

Risks

  • Responses may contain inaccuracies due to the model's inherent limitations and the dataset used for fine-tuning.
  • The model should not be used as the sole source of medical advice.

Limitations

  • Primarily limited to the medical domain.
  • Sensitive to prompts and may generate off-topic responses for non-medical queries.

Model Training Statistics

Training Summary

  • Total Steps: 1050
  • Total Epochs: 98.25
  • Validation Checks: 42
  • Epoch with Lowest Validation Loss: 93.57

Performance Improvement

  • Training Loss Reduction: 45.32%
  • Validation Loss Reduction: 35.97%
  • Final Training Loss: 1.0060
  • Lowest Validation Loss: 1.1385

Loss Values

Metric Initial Final Minimum
Training Loss 1.8398 1.0060 1.0060
Validation Loss 1.7782 1.1386 1.1385

Model Training Results:

image/png image/png image/png image/png image/png image/png image/png image/png image/png

How to Get Started with the Model

This section provides a step-by-step guide to loading and using the model for generating medical responses in Thai.

1. Install the Required Packages

#Import necessary libraries for working with the model
from peft import PeftModel, PeftConfig
from transformers import AutoModelForCausalLM, AutoTokenizer

2. Load Model and Tokenizer

#Set the model to amornpan/V3_qwen2.5-32b-med-thai-optimized
base_model_name = "amornpan/V3_qwen2.5-32b-med-thai-optimized"

# Load the model and tokenizer
model = AutoModelForCausalLM.from_pretrained(
    base_model_name,
    device_map="auto",
    trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(base_model_name, trust_remote_code=True)

3. Define Test Function

# Function for testing the model
def test_model(prompt, max_new_tokens=256):
    system_prompt = "You are a question answering assistant. Answer the question as truthful and helpful as possible. คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด"
    full_prompt = f"<s><|im_start|>system\n{system_prompt}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant\n"
    
    inputs = tokenizer(full_prompt, return_tensors="pt").to(model.device)
    
    # Generate
    generated_ids = model.generate(
        **inputs,
        max_new_tokens=max_new_tokens,
        do_sample=True,
        temperature=0.7,
        top_p=0.9,
    )
    
    response = tokenizer.decode(generated_ids[0], skip_special_tokens=False)
    # Extract only the assistant's response
    assistant_response = response.split("<|im_start|>assistant\n")[-1].split("<|im_end|>")[0]
    
    return assistant_response

4. Test with an Example Question

Show an example question

# Show an example question
example_question = "อาการของโรคเบาหวานมีอะไรบ้าง"
print(f"\nคำถาม: {example_question}")
response = test_model(example_question)
print(f"คำตอบ: {response}")

5. Output

คำถาม: การรักษาโรคความดันโลหิตสูงทำอย่างไร
คำตอบ: สวัสดี ความดันโลหิตสูงสามารถรักษาได้โดยการใช้ยาหลายชนิด เช่น เบนโซเพอรีซิน, อะโมโลนิด, ลิโซโปรตาซอล, อีลาฟอร์เท็ต,
อัลฟูราลิท, อะเซติซิลดิโพราเมต, อาราคานา, อาเนอโรนิก, อาเซติซิลสัมพันธ์, อาเนอโรนิก, อะเซติซิลสัมพันธ์ เป็นต้น
คุณสามารถปรึกษาแพทย์ผู้เชี่ยวชาญในเรื่องนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับยาดังกล่าว หวังว่าคำตอบของฉันจะเป็นประโยชน์สำหรับคุณ
ขอให้คุณมีสุขภาพที่ดี ขอบคุณที่เลือกใช้บริการของเรา หากคุณมีคำถามใด ๆ

คำถาม: ยา Paracetamol มีผลข้างเคียงอะไรบ้าง
คำตอบ: Paracetamol เป็นยาแก้ปวดและลดไข้ที่ใช้กันอย่างแพร่หลาย ซึ่งมีผลข้างเคียงน้อยกว่ายาแก้ปวดชนิดอื่นๆ โดยทั่วไปจะไม่มีผลข้างเคียงใดๆ
หากใช้ในขนาดที่แนะนำ แต่อาจพบได้ เช่น ปวดท้อง อาเจียน และรู้สึกคลื่นไส้ นอกจากนี้ หากใช้ในปริมาณที่มากเกินไป อาจทำให้มีอาการปัสสาวะขุ่น
มีสีเหลืองเข้ม เบื่ออาหาร คลื่นไส้ อาเจียน ปวดท้อง ปวดหัว ตาเหลือง หรือปัสสาวะสีเข้มเป็นสีชาโคล่า
หากมีอาการดังกล่าวควรหยุดการใช้ยาและรีบไปพบแพทย์เพื่อตรวจหาความเสียหายของตับจากยา
โดยการตรวจการทำงานของตับ ซึ่งหากพบว่ามีอาการของโรคตับวายเฉียบพลัน

👤 Authors