🚀 KoreanLM: 韓国語言語モデルプロジェクト
KoreanLMは韓国語言語モデルを開発するためのオープンソースプロジェクトです。現在の多くの言語モデルは英語に焦点を当てており、韓国語に対する学習が相対的に不足し、トークン化の過程で非効率的な場合があります。この問題を解決し、韓国語に最適化された言語モデルを提供するために、KoreanLMプロジェクトが始まりました。
🚀 クイックスタート
KoreanLMはGitHubリポジトリを通じて配布されます。プロジェクトを使用するには、以下の方法でインストールできます。
git clone https://github.com/quantumaikr/KoreanLM.git
cd KoreanLM
pip install -r requirements.txt
✨ 主な機能
- 韓国語に特化した言語モデルの開発:韓国語の文法、語彙、文化的特性を反映して、韓国語をより正確に理解し生成できる言語モデルを開発します。
- 効率的なトークン化方式の導入:韓国語テキストのトークン化過程で、効率的で正確な分析が可能な新しいトークン化方式を導入し、言語モデルの性能を向上させます。
- 巨大言語モデルの使いやすさの改善:現在の巨大サイズの言語モデルは、企業が自社のデータをファインチューニングするのが難しいという問題があります。これを解決するために、韓国語言語モデルのサイズを調整して使いやすさを改善し、自然言語処理タスクにより簡単に適用できるようにします。
📦 インストール
git clone https://github.com/quantumaikr/KoreanLM.git
cd KoreanLM
pip install -r requirements.txt
💻 使用例
基本的な使用法
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 Licenseライセンスに準拠しています。プロジェクトを使用する際には、ライセンスに従って注意事項を守ってください。
技術的な問い合わせ
KoreanLMプロジェクトに関する問い合わせがある場合は、メールまたはGitHubのイシューを通じて問い合わせてください。このプロジェクトが韓国語言語モデルの研究と開発に役立つことを願っています。多くの関心と参加をお願いします。
メール: hi@quantumai.kr
このリポジトリは、open_llama、Stanford Alpaca、alpaca-loraプロジェクトからインスピレーションを得て実装されています。