PPO ile eğitim

İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

Mina Parham

AI Engineer

Pekiştirmeli öğrenme ile ince ayar

RLHF sürecindeki başlangıç LLM’i ve ödül modeli.

İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

Pekiştirmeli öğrenme ile ince ayar

Tüm RLHF süreci.

İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

PPO ile Dil Modelini İnce Ayarlama

 

Bir LLM’e sorgu verilip buna dayalı devam metni üretildiğini gösteren diyagram.

İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

PPO ile Dil Modelini İnce Ayarlama

 

Bir LLM’e verilen sorgunun, ‘we're half way there, oh livin' on a prayer’ biçiminde tamamlandığını gösteren diyagram.

İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

PPO ile Dil Modelini İnce Ayarlama

 

Bir LLM’e verilen sorgunun ‘we're half way there, oh livin' on a prayer’ olarak tamamlandığını ve başka bir LLM’in bu tamamlamayı değerlendirdiğini gösteren diyagram.

İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

PPO ile Dil Modelini İnce Ayarlama

  • PPO: modele kademeli ayarlama
  • Geri bildirime aşırı uyumu önler

Algoritmanın yavaş iyileşmesini temsil eden bir robot ve salyangoz.

İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

TRL ile PPOTrainer uygulama

from trl import PPOConfig
config = PPOConfig(model_name="gpt2",learning_rate=1.4e-5)
from trl import AutoModelForCausalLMWithValueHead
model = AutoModelForCausalLMWithValueHead.from_pretrained(config.model_name)
tokenizer = AutoTokenizer.from_pretrained(config.model_name)
from trl import PPOTrainer
ppo_trainer = PPOTrainer(model=model,config=config,dataset=dataset,
                         tokenizer=tokenizer)
İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

Eğitim döngüsünü başlatma

for epoch in tqdm(range(10), "epoch: "):


for batch in tqdm(ppo_trainer.dataloader):
# Get responses response_tensors = ppo_trainer.generate(batch["input_ids"])
batch["response"] = [tokenizer.decode(r.squeeze()) for r in response_tensors]
# Compute reward score texts = [q + r for q, r in zip(batch["query"], batch["response"])]
rewards = reward_model(texts)
stats = ppo_trainer.step(query_tensors, response_tensors, rewards) ppo_trainer.log_stats(stats, batch, rewards)
İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

Hadi pratik yapalım!

İnsan Geri Bildiriminden Pekiştirmeli Öğrenme (RLHF)

Preparing Video For Download...