# 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` (600 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` (600 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` - **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**: ```bash 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: ```bash 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: ```python 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: ```python # 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 qua `huggingface_hub.login()`. ### Đăng nhập Hugging Face (nếu cần) Nếu bạn chưa đăng nhập, chạy: ```python from huggingface_hub import login login(token="your_hugging_face_token") ``` Hoặc qua terminal: ```bash 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.