Instructions to use morz1k3/llm-course-hw2-ppo with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use morz1k3/llm-course-hw2-ppo with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="morz1k3/llm-course-hw2-ppo") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("morz1k3/llm-course-hw2-ppo") model = AutoModelForCausalLM.from_pretrained("morz1k3/llm-course-hw2-ppo", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use morz1k3/llm-course-hw2-ppo with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "morz1k3/llm-course-hw2-ppo" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "morz1k3/llm-course-hw2-ppo", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/morz1k3/llm-course-hw2-ppo
- SGLang
How to use morz1k3/llm-course-hw2-ppo with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "morz1k3/llm-course-hw2-ppo" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "morz1k3/llm-course-hw2-ppo", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "morz1k3/llm-course-hw2-ppo" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "morz1k3/llm-course-hw2-ppo", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use morz1k3/llm-course-hw2-ppo with Docker Model Runner:
docker model run hf.co/morz1k3/llm-course-hw2-ppo
SmolLM2-135M-Instruct — PPO
Описание
Обучил через PPOTrainer из TRL, награда отсюда: reward model. Value model инициализирована из того же checkpoint. Policy и value model обучались, reward model и референсная policy оставались зафиксированными.
Данные и настройки
Использованы 1024 запроса из обучающей части сокращённой выборки HumanLLMs/Human-Like-DPO-Dataset. Исходная подвыборка содержала 2048 примеров после перемешивания с seed=42; затем выполнено разбиение с test_size=0.1 и seed=42 и выбраны первые 1024 обучающих запроса.
PPO генерировал ответы самостоятельно и обучался по наградам за них. Готовые chosen/rejected-ответы не подавались как целевые ответы policy.
| Параметр | Значение |
|---|---|
| Число эпизодов | 1024 |
| Число проходов по запросам | 1 |
| Число обновляющих проходов PPO по собранному набору | 1 |
| Размер батча на устройство | 4 |
| Накопление градиентов | 4 |
| Размер батча генерации | 4 |
| Learning rate | 3e-6 |
| Максимальная длина промпта | 128 токенов |
| Длина генерируемого ответа при обучении | 64 токена |
| Stop token | EOS |
| Вычисления | GPU Kaggle, FP16 |
| Версия TRL | 0.15.2 |
| Seed | 42 |
Результаты
Обучение завершилось после 64 наборов по 16 эпизодов. В последней записи лога:
| Метрика | Значение |
|---|---|
| objective/scores | 0.0110 |
| objective/rlhf_reward | −0.00485 |
| objective/kl | 0.3172 |
| policy/approxkl_avg | 0.00209 |
| val/ratio | 1.0016 |
Это метрики последнего обучающего набора, а не средние по всему прогону и не оценка на тесте.
В сохранённом примере после обучения изменились отдельные детали ответа, но общий стиль и структура остались прежними. Сильного улучшения по этому примеру не видно. Сравнение проводилось с do_sample=False и ограничением в 256 новых токенов.
В ноутбуке также построены распределения средних логарифмов вероятностей на токен для 128 chosen-ответов к обучающим запросам и 128 примеров Alpaca. Распределения существенно перекрываются. Chosen-ответы здесь относятся к обучающим запросам, но PPO-policy не обучалась непосредственно на этих ответах. Alpaca не использовалась в нашем дообучении; её возможное присутствие в предобучении не проверялось.
Пример работы
Запрос:
What's your morning routine like?
Ниже приведены фрагменты сохранённых ответов: пункты 3 и 7.
До обучения:
Start with a quick breakfast: I usually have a quick breakfast, which might be a bowl of cereal, a banana, or a yogurt.
Get ready for the day: I usually start my day with a quick breakfast, a quick workout, and a quick breakfast.
После обучения:
Start with a quick breakfast: I usually have a quick breakfast, which might be a bowl of cereal, a smoothie, or a small snack.
Get ready for the day: I usually start my day with a quick breakfast, a quick workout, and a quick meditation
Связанные модели
- Downloads last month
- 516
Model tree for morz1k3/llm-course-hw2-ppo
Base model
HuggingFaceTB/SmolLM2-135M