🚀 KoreanLM:韓語語言模型項目
KoreanLM 是一個旨在開發韓語語言模型的開源項目。當前,大部分語言模型都聚焦於英語,導致韓語的學習相對不足,並且在分詞過程中存在效率低下的情況。為了解決這些問題,提供專門針對韓語優化的語言模型,我們啟動了 KoreanLM 項目。
📦 安裝指南
KoreanLM 通過 GitHub 倉庫進行分發。若要使用該項目,可按以下步驟進行安裝:
git clone https://github.com/quantumaikr/KoreanLM.git
cd KoreanLM
pip install -r requirements.txt
💻 使用示例
基礎用法
以下是通過 transformers
庫加載模型和分詞器的示例:
import transformers
model = transformers.AutoModelForCausalLM.from_pretrained("quantumaikr/KoreanLM")
tokenizer = transformers.AutoTokenizer.from_pretrained("quantumaikr/KoreanLM")
🔧 訓練
全量參數微調
torchrun --nproc_per_node=4 --master_port=1004 train.py \
--model_name_or_path quantumaikr/KoreanLM \
--data_path korean_data.json \
--num_train_epochs 3 \
--cache_dir './data' \
--bf16 True \
--tf32 True \
--per_device_train_batch_size 4 \
--per_device_eval_batch_size 4 \
--gradient_accumulation_steps 8 \
--evaluation_strategy "no" \
--save_strategy "steps" \
--save_steps 500 \
--save_total_limit 1 \
--learning_rate 2e-5 \
--weight_decay 0. \
--warmup_ratio 0.03 \
--lr_scheduler_type "cosine" \
--logging_steps 1 \
--fsdp "full_shard auto_wrap" \
--fsdp_transformer_layer_cls_to_wrap 'OPTDecoderLayer' \
pip install deepspeed
torchrun --nproc_per_node=4 --master_port=1004 train.py \
--deepspeed "./deepspeed.json" \
--model_name_or_path quantumaikr/KoreanLM \
--data_path korean_data.json \
--num_train_epochs 3 \
--cache_dir './data' \
--bf16 True \
--tf32 True \
--per_device_train_batch_size 4 \
--per_device_eval_batch_size 4 \
--gradient_accumulation_steps 8 \
--evaluation_strategy "no" \
--save_strategy "steps" \
--save_steps 2000 \
--save_total_limit 1 \
--learning_rate 2e-5 \
--weight_decay 0. \
--warmup_ratio 0.03 \
LoRA 微調
python finetune-lora.py \
--base_model 'quantumaikr/KoreanLM' \
--data_path './korean_data.json' \
--output_dir './KoreanLM-LoRA' \
--cache_dir './data'
📈 推理
python generate.py \
--load_8bit \
--share_gradio \
--base_model 'quantumaikr/KoreanLM' \
--lora_weights 'quantumaikr/KoreanLM-LoRA' \
--cache_dir './data'
📚 詳細文檔
項目目標
- 開發韓語專用語言模型:開發能夠更準確理解和生成韓語的語言模型,反映韓語的語法、詞彙和文化特性。
- 引入高效分詞方式:引入在韓語文本分詞過程中能夠進行高效且準確分析的新分詞方式,提高語言模型的性能。
- 改善大語言模型的可用性:解決當前大型語言模型企業難以對自有數據進行微調的問題,通過調整韓語語言模型的大小來提高可用性,使其更易於應用於自然語言處理任務。
預訓練模型公開及網絡演示
訓練模型
* 演示鏈接將在後續公佈
貢獻方式
- 提出問題:請將與 KoreanLM 項目相關的問題或改進建議以問題的形式提出。
- 編寫代碼:您可以編寫代碼來添加改進內容或新功能。請通過拉取請求(Pull Request)提交編寫好的代碼。
- 編寫和翻譯文檔:參與項目的文檔編寫或翻譯工作,提高項目的質量。
- 測試並反饋:在使用項目過程中發現的錯誤或改進建議,請給予反饋,這將對項目有很大幫助。
📄 許可證
KoreanLM 項目遵循 Apache 2.0 許可證。使用該項目時,請遵守許可證中的注意事項。
📧 技術諮詢
如果您有與 KoreanLM 項目相關的問題,請通過電子郵件或 GitHub 問題進行諮詢。希望這個項目能對韓語語言模型的研究和開發有所幫助,期待您的關注和參與。
郵箱:hi@quantumai.kr
🔗 參考項目
本倉庫的實現受到了 open_llama、Stanford Alpaca 和 alpaca-lora 項目的啟發。
🖼️ 項目圖標