Sani/Instructvector

Created Sat, 20 Apr 2024 07:10:45 +0800 Modified Fri, 10 May 2024 01:32:10 +0000
377 Words

Introduction

Semalam Facebook release llama3, macam biasa dia hanya fokus dekat English dan juga English benchmark. Mula2 nak try buat merging tapi tak ada model lagi yang dah finetune llama3 untuk Bahasa Melayu. So aku finetune sendiri dan apply instruct vector aku extract dari llama3 instruct supaya model base llama3 yang dah finetune ke Malay boleh follow instruction dan jawab dalam Malay.

Apa beza Base, Instruct dengan Chat?

orpo

Dekat atas ni contoh flow untuk dapatkan Chat model

base

Selalunya base model ni dikaitkan dengan pretraining dan fasa untuk kita fit in knowledge dekat model tu. So anything yang raw text macam majalah, buku teks, rencana dan lain-lain. Model ni yang aku akan finetune untuk probability dia bukan fokus dekat generating English je, dan aku boleh je tambah knowledge dekat model ni kalau aku nak. Just kena tau yang dia tak generate anything useful as reply sebab dia just base model je.

instruct

Instruct model pula selalu dikaitkan dengan model yang akan follow instruction daripada user dan selalunya tak ada alignment lagi macam tak nak jawab soalan yang illegal atau adik beradik dia. So aku punya goal adalah untuk transform Finetuned Malay ‘base’ model ke Finetuned Malay ‘instruct’ model tanpa training.

Optional:

chaty

Chat model pula selalu dikaitkan dengan model yang dah diarah untuk menjawab soalan mengikut policy yang ditetapkan developer based on dataset yang dikumpulkan macam Accept dan Reject. Chat model akan cenderung untuk menjawab dalam distribution Accept dan akan elakkan untuk jawab dalam distribution Reject.

Dan ORPO punya akan skip Instruct dan combine Chat data dalam Instruct tuning untuk terus dapat Chat model.

Lepas dah faham apa beza jenis model tu. Masa untuk tunjuk camne aku buat llama3 instruct with Malay capability dalam 30 minit.

First aku extract instruct vector daripada:

A. meta-llama/Meta-Llama-3-8B

B. meta-llama/Meta-Llama-3-8B-Instruct

Simple Meth dia adalah

B - A => instruct vector

Lepas dah dapat instruct vector aku finetune meta-llama/Meta-Llama-3-8B dengan https://huggingface.co/datasets/mesolitica/chatgpt-malay-instructions/blob/main/synthetic-evol-instructions.jsonl untuk dptkan llama3 base finetune dekat Malay, lepas ni aku akan tunjuk betapa teruknya response Base model ni.

train60

Lepas dah dapatkan llama3 base finetune untuk malay aku apply instruct vector yang dah extract ke Base model supaya dari Base model akan transform jadi Instruct model.

So tu je aku buat untuk dapatkan llama3 yang boleh reply dalam Malay kalau tanya dalam Malay.

Result:

https://nbsanity.com/static/5d83401178f64bd5006f55659ac3f7dc/experiment.html