Frasa-1B-v0.2 / README.md
nxvay's picture
Update README.md
db077aa verified
---
base_model:
- nxvay/Frasa-1B-v0.1
tags:
- text-generation-inference
- transformers
- unsloth
- llama
- trl
- frasa
license: apache-2.0
language:
- en
- id
datasets:
- wikimedia/wikipedia
- FreedomIntelligence/alpaca-gpt4-indonesian
---
# Frasa-1B-v0.2 (Not for Use)
-----
![image/jpeg](https://media.licdn.com/dms/image/v2/C4E12AQHAU3M2RJNOkQ/article-cover_image-shrink_600_2000/article-cover_image-shrink_600_2000/0/1535019170814?e=2147483647&v=beta&t=cbswX4uflbYAa1X9BiwlyAh7KAwZV_G3xbjGwI3QJhE)
## Model Overview
`Frasa-1B-v0.2` adalah model bahasa besar (LLM) yang merupakan hasil Continual Pretraining (CPT) & Fine-tune Conversational dari model dasar [Frasa-1B-v0.1](https://huggingface.co/nxvay/Frasa-1B-v0.1) dengan fokus pada peningkatan pemahaman bahasa Indonesia. Model ini dilatih menggunakan **subset 10% dari dataset Wikipedia berbahasa Indonesia** & dataset Alpaca GPT4 Indonesian (dengan hanya 120 steps), menjadikannya fondasi yang cukup kuat untuk tugas-tugas generatif dalam Bahasa Indonesia.
Model ini dibangun dengan framework Unsloth.ai untuk efisiensi pelatihan yang maksimal.
## Bagaimana Model Ini Dibuat
Model `Frasa-1B-v0.2` dihasilkan melalui proses Continual Pretraining (CPT) & Fine-tune Conversational dengan langkah-langkah berikut:
* **Base Model:** `nxvay/Frasa-1B-v0.1`
* **Framework:** [Unsloth.ai](https://github.com/unslothai/unsloth)
* **Kuantisasi:** 4-bit (via `load_in_4bit=True`) untuk efisiensi memori.
* **Teknik Fine-tuning:** LoRA (Low-Rank Adaptation)
* `r = 128`
* `lora_alpha = 32`
* `target_modules`: `["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj", "embed_tokens", "lm_head"]` (Modul `embed_tokens` dan `lm_head` disertakan untuk adaptasi pengetahuan yang lebih dalam selama CPT).
* `use_gradient_checkpointing = "unsloth"`
* `use_rslora = True`
* **Dataset Pelatihan:**
* `wikimedia/wikipedia` (versi `20231101.id`, diambil **10% dari set `train`**)
* `FreedomIntelligence/alpaca-gpt4-indonesian`
* **Pemformatan Data:** Setiap entri Wikipedia diformat menggunakan template spesifik untuk CPT:
```
Artikel Wikipedia
### Judul: [Judul Artikel]
### Artikel:
[Isi Artikel]</s>
```
* **Hyperparameter Pelatihan:**
* `per_device_train_batch_size = 2`
* `gradient_accumulation_steps = 8` (Effective batch size: 16)
* `max_steps = 120`
* `warmup_steps = 10`
* `learning_rate = 5e-5`
* `embedding_learning_rate = 1e-5`
* `optim = "adamw_8bit"`
* `lr_scheduler_type = "linear"`
## Cara Menggunakan Model Ini
Model ini paling cocok sebagai **base model yang lebih baik untuk *fine-tuning* lanjutan** (terutama *instruction-tuning* atau *domain-specific fine-tuning*) di Bahasa Indonesia. Karena ini adalah hasil CPT, model ini belum dioptimalkan untuk mengikuti instruksi atau berdialog secara langsung.
### Memuat Model dengan Unsloth
Anda bisa memuat model ini dengan mudah menggunakan Unsloth:
```python
from unsloth import FastLanguageModel
import torch
model_name = "nxvay/Frasa-1B-v0.2"
max_seq_length = 2048
dtype = torch.bfloat16
load_in_4bit = True
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = model_name,
max_seq_length = max_seq_length,
dtype = dtype,
load_in_4bit = load_in_4bit,
)
FastLanguageModel.for_inference(model)
```
### Contoh Inferensi (Generasi Teks Dasar)
Untuk contoh penggunaan, model ini akan melanjutkan teks berdasarkan pola yang dipelajari dari Wikipedia. Karena ini adalah model CPT, Anda mungkin tidak mendapatkan respons dialogik secara langsung.
```python
from transformers import TextStreamer
alpaca_prompt = """Berikut adalah perintah yang menjelaskan tugas tersebut. Tulis respons yang melengkapi permintaan dengan benar.
### Instruksi:
{}
### Respons:
{}"""
inputs = tokenizer(
[
alpaca_prompt.format(
"Bagaimana dengan musik Indonesia?",
"",
)
], return_tensors = "pt").to("cuda")
from transformers import TextStreamer
text_streamer = TextStreamer(tokenizer)
print("Model sedang menghasilkan respons:")
_ = model.generate(
**inputs,
streamer = text_streamer,
max_new_tokens = 512,
do_sample = True,
temperature = 0.7,
top_p = 0.9,
pad_token_id = tokenizer.eos_token_id,
)
```
## Potensi Penggunaan
* **Dasar untuk *Instruction Tuning*:** Model ini dapat digunakan sebagai *base model* untuk *fine-tuning* lebih lanjut dengan dataset instruksi Bahasa Indonesia (seperti ShareGPT-Indonesian yang diformat ChatML) untuk menciptakan asisten AI yang mampu berdialog.
* **Penelitian dan Pengembangan:** Dapat berfungsi sebagai *checkpoint* untuk eksplorasi lebih lanjut dalam *continual pretraining* bahasa Indonesia atau adaptasi domain.
## Lisensi
Model ini dilisensikan di bawah [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0).
-----