Метрики модели и настройки

Обучение с подкреплением на основе обратной связи от людей (RLHF)

Mina Parham

AI Engineer

Зачем нужна референсная модель?

  • Бессмысленные выходные данные

Набор эмодзи.

Обучение с подкреплением на основе обратной связи от людей (RLHF)

Проверка выходных данных модели

Диаграмма процесса RLHF с проверкой ответа.

Обучение с подкреплением на основе обратной связи от людей (RLHF)

Решение: KL-дивергенция

Диаграмма процесса RLHF с KL-дивергенцией.

Обучение с подкреплением на основе обратной связи от людей (RLHF)

Решение: KL-дивергенция

  • Штраф добавляется к модели вознаграждения
  • Штраф перенаправляет модель при нерелевантных ответах
  • KL-дивергенция сравнивает текущую модель и модель вознаграждения

Иконка весов.

  • Значения от 0 до 10, никогда не отрицательные
Обучение с подкреплением на основе обратной связи от людей (RLHF)

Настройка параметров

generation_kwargs = {

"min_length": -1, # don't ignore the EOS token
"top_k": 0.0, # no top-k sampling
"top_p": 1.0, "do_sample": True, "pad_token_id": tokenizer.eos_token_id, "max_new_tokens": 32}

 

  • Параметры передаются в политическую модель
Обучение с подкреплением на основе обратной связи от людей (RLHF)

Проверка модели вознаграждения

  • Проверка модели вознаграждения

  • Проверка выходных данных (вознаграждение)

reward_model_results.head()
|ID | Comment                                     |Sentiment |Reward|
|---|---------------------------------------------|----------|------|
| 1 | This event was lit! So much fun!            | Positive |  0.9 |
| 2 | Terrible experience, never attending again. | Negative | -0.8 |
| 3 | It was okay, nothing extraordinary.         | Neutral  |  0.2 |
| 4 | The event was poorly organized and chaotic. | Negative | -0.85|
| 5 | Had an amazing time with great people!      | Positive |  0.95|
Обучение с подкреплением на основе обратной связи от людей (RLHF)

Проверка модели вознаграждения

  • 👍 👎 Проверьте крайние случаи
    extreme_positive = reward_model_results[reward_model_results['Reward'] >= 0.9]
    extreme_negative = reward_model_results[reward_model_results['Reward'] <= -0.8]
    
  • 🧘 Убедитесь в сбалансированности набора данных

    sentiment_distribution = reward_model_results['Sentiment'].value_counts()
    
  • 📊 Нормализуйте модель вознаграждения

    from sklearn.preprocessing import MinMaxScaler
    scaler = MinMaxScaler(feature_range=(-1, 1))
    scaler.fit_transform(reward_model_results[['Reward']])
    
Обучение с подкреплением на основе обратной связи от людей (RLHF)

Давайте потренируемся!

Обучение с подкреплением на основе обратной связи от людей (RLHF)

Preparing Video For Download...