library_name: transformers
tags:
- text-generation-inference
- sft
- trl
- 4-bit precision
- bitsandbytes
- LoRA
- Fine-Tuning with LoRA
- LLM
- GenAI
- NT GenAI
- ntgenai
- lahnmah
- NT Thai GPT
- ntthaigpt
datasets:
- Thaweewat/thai-med-pack
language:
- th
base_model:
- openthaigpt/openthaigpt1.5-7b-instruct
pipeline_tag: text-generation
license: apache-2.0
new_version: Aekanun/openthaigpt-MedChatModelv5.1
Model Card for openthaigpt1.5-7b-medical-tuned
This model is fine-tuned from openthaigpt1.5-7b-instruct
using Supervised Fine-Tuning (SFT) on the Thaweewat/thai-med-pack
dataset. The model is designed for medical question-answering tasks in Thai, specializing in providing accurate and contextual answers based on medical information.
Model Details
Model Description
This model was fine-tuned using Supervised Fine-Tuning (SFT) to optimize it for medical question answering in Thai. The base model is openthaigpt1.5-7b-instruct
, and it has been enhanced with domain-specific knowledge using the Thaweewat/thai-med-pack
dataset.
- Developed by: Amornpan Phornchaicharoen
- Fine-tuned by: Amornpan Phornchaicharoen
- Model type: Causal Language Model (AutoModelForCausalLM)
- Language(s): Thai
- License: Amornpan Phornchaicharoen
- Fine-tuned from model:
openthaigpt1.5-7b-instruct
- Dataset used for fine-tuning:
Thaweewat/thai-med-pack
Model Sources
- Repository: https://huggingface.co/amornpan
- Citing Repository: https://huggingface.co/Aekanun
- Base Model: https://huggingface.co/openthaigpt/openthaigpt1.5-7b-instruct
- Dataset: https://huggingface.co/datasets/Thaweewat/thai-med-pack
Uses
Direct Use
The model can be directly used 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 can be used as a foundational model for medical assistance systems, chatbots, and applications related to healthcare, specifically in the Thai language.
Out-of-Scope Use
- This model should not be used for real-time diagnosis or emergency medical scenarios.
- Avoid using it for critical clinical decisions without human oversight, as the model is not intended to replace professional medical advice.
Bias, Risks, and Limitations
Bias
- The model might reflect biases present in the dataset, particularly when addressing underrepresented medical conditions or topics.
Risks
- Responses may contain inaccuracies due to the inherent limitations of the model and the dataset used for fine-tuning.
- This model should not be used as the sole source of medical advice.
Limitations
- Limited to the medical domain.
- The model is sensitive to prompts and may generate off-topic responses for non-medical queries.
How to Get Started with the Model
Here’s how to load and use the model for generating medical responses in Thai:
1. Install the Required Packages
First, ensure you have installed the required libraries by running:
pip install torch transformers bitsandbytes
2. Load the Model and Tokenizer
You can load the model and tokenizer directly from Hugging Face using the following code:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
# Define the model path
model_path = 'amornpan/openthaigpt-MedChatModelv11'
# Load the tokenizer and model
tokenizer = AutoTokenizer.from_pretrained(model_path)
tokenizer.pad_token = tokenizer.eos_token
3. Prepare Your Input (Custom Prompt)
Create a custom medical prompt that you want the model to respond to:
custom_prompt = "โปรดอธิบายลักษณะช่องปากที่เป็นมะเร็งในระยะเริ่มต้น"
PROMPT = f'[INST] <You are a question answering assistant. Answer the question as truthfully and helpfully as possible. คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด<>{custom_prompt}[/INST]'
# Tokenize the input prompt
inputs = tokenizer(PROMPT, return_tensors="pt", padding=True, truncation=True)
4. Configure the Model for Efficient Loading (4-bit Quantization)
The model uses 4-bit precision for efficient inference. Here’s how to set up the configuration:
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16
)
5. Load the Model with Quantization Support
Now, load the model with the 4-bit quantization settings:
model = AutoModelForCausalLM.from_pretrained(
model_path,
quantization_config=bnb_config,
trust_remote_code=True
)
6. Move the Model and Inputs to the GPU (if available)
For faster inference, move the model and input tensors to a GPU, if available:
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
inputs = {k: v.to(device) for k, v in inputs.items()}
7. Generate a Response from the Model
Now, generate the medical response by running the model:
outputs = model.generate(**inputs, max_new_tokens=200, do_sample=True)
8. Decode the Generated Text
Finally, decode and print the response from the model:
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(generated_text)
9. Output
[INST] <You are a question answering assistant. Answer the question as truthfully and helpfully as possible. คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด<>โปรดอธิบายลักษณะช่องปากที่เป็นมะเร็งในระยะเริ่มต้น[/INST] [ANS] ช่องปากมะเร็งในระยะเริ่มต้น อาจไม่มีอาการชัดเจน แต่ผู้คนบางกลุ่มอาจสังเกตเห็นอาการต่อไปนี้:
- มีการกัดหรือกระแทกบริเวณช่องปากโดยไม่มีสาเหตุ
- มีจุด ฝี เมล็ด หรือความไม่เท่าเทียมภายในช่องปากที่ไม่หายวื้อ
- ปวดหรือเจ็บบริเวณช่องปาก
- เปลี่ยนแปลงสีของเนื้อเยื่อในช่องปาก (อาจเป็นสีขาว หรือ黑马)
- มีตุ่มที่ไม่หาย ภายในช่องปาก
- มีความลำบากในการกิน มี
More Information
amornpan@gmail.com