DeepSeek-R1-LoRA-medical
Giới thiệu
Đây là bộ LoRA adapters được fine-tune trên mô hình gốc unsloth/DeepSeek-R1-Distill-Llama-8B
để hỗ trợ trả lời các câu hỏi y khoa. Bộ adapters này được huấn luyện trên tập dữ liệu hieulum/bacsiAI
(200 mẫu đầu tiên) với cấu hình LoRA tối ưu, giúp cải thiện khả năng trả lời các câu hỏi về chẩn đoán, điều trị và lập kế hoạch điều trị y tế.
Thông tin mô hình
- Mô hình gốc:
unsloth/DeepSeek-R1-Distill-Llama-8B
- Dataset:
hieulum/bacsiAI
(200 mẫu) - Cấu hình LoRA:
- Rank (
r
): 16 - LoRA alpha: 16
- Các module mục tiêu:
q_proj
,k_proj
,v_proj
,o_proj
,gate_proj
,up_proj
,down_proj
- Rank (
- Thông tin huấn luyện:
- Số epoch: 1
- Tổng số bước: 60
- Batch size hiệu quả: 8 (2 per device × 4 gradient accumulation steps)
- Learning rate: 2e-4
- Optimizer: AdamW 8-bit
- Kích thước LoRA adapters: ~168 MB
- Giấy phép: Apache 2.0 (hoặc thay bằng giấy phép bạn chọn)
Các file trong repository
adapter_config.json
: Cấu hình LoRA adapters.adapter_model.safetensors
: Trọng số LoRA adapters (168 MB).tokenizer_config.json
: Cấu hình tokenizer.tokenizer.json
: Từ vựng tokenizer.special_tokens_map.json
: Ánh xạ các token đặc biệt.
Hướng dẫn sử dụng
Yêu cầu
- Thư viện:
pip install unsloth transformers huggingface_hub torch
- Phần cứng: GPU với ít nhất 16GB VRAM (ví dụ: NVIDIA Tesla T4).
- Python: 3.8 hoặc cao hơn.
- Hugging Face token: Để tải mô hình gốc (nếu cần).
Bước 1: Cài đặt môi trường
Cài đặt các thư viện cần thiết:
pip install unsloth==2024.9 transformers huggingface_hub torch==2.4.0
Bước 2: Tải mô hình gốc và LoRA adapters
Sử dụng đoạn code sau để tải mô hình gốc và áp dụng LoRA adapters:
from unsloth import FastLanguageModel
import torch
# Tải mô hình gốc
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/DeepSeek-R1-Distill-Llama-8B",
max_seq_length=1024, # Có thể điều chỉnh
load_in_4bit=True, # Sử dụng 4-bit quantization để tiết kiệm bộ nhớ
token="your_hugging_face_token", # Thay bằng token của bạn
)
# Tải LoRA adapters
model = FastLanguageModel.load_peft_model(
model,
"hieulum/DeepSeek-R1-LoRA-BacsiAI"
# Chuẩn bị mô hình cho inference
model = FastLanguageModel.for_inference(model)
Bước 3: Chạy inference
Ví dụ về cách chạy inference với một câu hỏi y khoa:
# Chuẩn bị input
question = "Phương pháp điều trị tăng huyết áp là gì?"
inputs = tokenizer(question, return_tensors="pt").to("cuda")
# Tạo output
outputs = model.generate(**inputs, max_new_tokens=128, temperature=0.7)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
Lưu ý
- Max sequence length: Được đặt thành 1024 trong code trên để tiết kiệm bộ nhớ. Nếu bạn cần xử lý các chuỗi dài hơn, tăng
max_seq_length
(ví dụ: 2048) nhưng hãy đảm bảo GPU có đủ VRAM. - 4-bit quantization: Được sử dụng để giảm yêu cầu bộ nhớ. Nếu bạn có GPU mạnh hơn, có thể tắt bằng cách đặt
load_in_4bit=False
. - Hugging Face token: Cần thiết để tải mô hình gốc từ
unsloth
. Đảm bảo bạn đã đăng nhập hoặc cung cấp token quahuggingface_hub.login()
.
Đăng nhập Hugging Face (nếu cần)
Nếu bạn chưa đăng nhập, chạy:
from huggingface_hub import login
login(token="your_hugging_face_token")
Hoặc qua terminal:
huggingface-cli login
Hiệu suất
Bộ LoRA adapters này được tối ưu cho các câu hỏi y khoa, đặc biệt là chẩn đoán và điều trị. Mô hình có thể tạo ra các câu trả lời logic với chuỗi suy nghĩ (chain-of-thought) rõ ràng, nhờ vào định dạng prompt đặc biệt trong quá trình fine-tune.
Liên hệ
Nếu bạn gặp vấn đề hoặc có câu hỏi, vui lòng mở issue trên repository này hoặc liên hệ qua Hugging Face.
Lời cảm ơn
- Cảm ơn
unsloth
và Hugging Face đã cung cấp các công cụ mạnh mẽ để fine-tune và chia sẻ mô hình. - Cảm ơn tác giả dataset
hieulum/bacsiAI
đã cung cấp dữ liệu chất lượng.