Коришћење великих језичких модела за изградњу генеративних AI апликација носи нове изазове. Кључно питање је обезбеђивање квалитета одговора (тачност и релевантност) у садржају који модел генерише за дати кориснички захтев. У претходним лекцијама смо разговарали о техникама као што су инжењеринг упита и генерација уз подршку претраге које покушавају да реше проблем изменом улаза упита постојећег модела.
У данашњој лекцији говоримо о трећој техници, фајн-тијунингу, која покушава да се позабави тим изазовом поновним тренирањем самог модела уз додатне податке. Хајде да пређемо на детаље.
Ова лекција уводи појам фајн-тијунинга за претходно обучене језичке моделе, истражује предности и изазове овог приступа и пружа смернице када и како користити фајн-тијунинг за унапређење перформанси ваших генеративних AI модела.
На крају ове лекције требало би да можете да одговорите на следећа питања:
- Шта је фајн-тијунинг језичких модела?
- Када и зашто је фајн-тијунинг користан?
- Како могу да фајн-тијунирам претходно обучени модел?
- Која су ограничења фајн-тијунинга?
Спремни? Хајде да почнемо.
Желите да добијете општи преглед онога што ћемо обрадити пре него што уђемо у детаље? Погледајте овај илустровани водич који описује пут учења за ову лекцију - од учења основних концепата и мотивације за фајн-тијунинг, до разумевања процеса и најбољих пракси за извођење задатка фајн-тијунинга. Ово је фасцинантна тема за истраживање, па не заборавите да погледате страницу Ресурси за додатне линкове који ће подржати ваше самостално учење!
Према дефиницији, велики језички модели су претходно обучени на великим количинама текста који долази из различитих извора укључујући интернет. Као што смо научили у претходним лекцијама, потребне су нам технике као што су инжењеринг упита и генерација уз подршку претраге да бисмо побољшали квалитет одговора модела на питања корисника ("упите").
Популарна техника инжењеринга упита подразумева давање више смерница моделу шта се очекује у одговору било кроз пружање упутстава (експлицитне смернице) или давањем неколико примера (имплицитне смернице). Ово се назива учење са неколико примера (few-shot learning), али има две ограничења:
- Ограничавајући лимити броја токена модела могу ограничити број примера које можете дати и утичу на ефикасност.
- Трошкови токена модела могу учинити да буде скупље додавати примере у сваки упит, чиме се ограничава флексибилност.
Фајн-тијунинг је уобичајена пракса у системима машинског учења где узимамо претходно обучени модел и поново га тренирамо новим подацима да бисмо побољшали његове перформансе на специфичном задатку. У контексту језичких модела, можемо фајн-тијунирати претходно обучени модел са курираним скупом примера за одређени задатак или домен примене да бисмо креирали прилагођени модел који може бити тачнији и релевантнији за тај специфични задатак или домен. Споредна корист фајн-тијунинга је и смањење броја примера потребних за учење са неколико примера - што смањује потрошњу токена и повезане трошкове.
У овом контексту, када говоримо о фајн-тијунингу, мислимо на надгледани фајн-тијунинг где се поновно тренирање обавља додавањем нових података који нису били део оригиналног обучавајућег скупа података. Ово се разликује од ненадгледаног приступа фајн-тијунинга где се модел поново тренира на оригиналним подацима, али са другачијим хиперпараметрима.
Кључно за запамтити је да је фајн-тијунинг напредна техника која захтева одређени ниво стручности да би се добили жељени резултати. Ако се изведе погрешно, можда неће донети очекивана унапређења, па чак може и погоршати перформансе модела за ваш циљани домен.
Зато пре него што научите "како" да фајн-тијунирате језичке моделе, морате знати "зашто" би требало да кренете тим путем и "када" да започнете процес фајн-тијунинга. Почните тако што ћете себи поставити следећа питања:
- Случај употребе: Која је ваша сврха фајн-тијунинга? Који аспект тренутног претходно обученог модела желите да побољшате?
- Алтернативе: Јесте ли пробали друге технике да постигнете жељене резултате? Користите их да створите основ за поређење.
- Инжењеринг упита: Испробајте технике као што је few-shot упит са примерима релевантних одговора. Процените квалитет одговора.
- Генерација уз подршку претраге: Испробајте да обогатите упите резултатима претраге ваших података. Процените квалитет одговора.
- Трошкови: Јесте ли идентификовали трошкове фајн-тијунинга?
- Подесивост – да ли је претходно обучени модел доступан за фајн-тијунинг?
- Рад – припрема података за тренирање, процена и усавршавање модела.
- Рачунарска снага – за извођење послова фајн-тијунинга и имплементацију фајн-тијунираног модела.
- Подаци – приступ довољно квалитетним примерима за утицај фајн-тијунинга.
- Предности: Јесте ли потврдили предности фајн-тијунинга?
- Квалитет – да ли је фајн-тијунирани модел надмашио основни?
- Трошкови – да ли смањује потрошњу токена поједностављујући упите?
- Проширивост – да ли можете искористити основни модел за нове домене?
Одговарањем на ова питања треба да донесете одлуку да ли је фајн-тијунинг прави приступ за ваш случај употребе. Идеално, приступ је валидан само ако предности превазилазе трошкове. Када одлучите да наставите, време је да размислите како можете фајн-тијунирати претходно обучени модел.
Желите ли више увида у процес доношења одлука? Погледајте Да ли фајн-тијунирати или не?
Да бисте фајн-тијунирали претходно обучени модел, потребно је да имате:
- претходно обучени модел за фајн-тијунинг
- скуп података који ће се користити за фајн-тијунинг
- окружење за тренирање да покренете посао фајн-тијунинга
- окружење за хостовање да примените фајн-тијунирани модел
Следећи ресурси пружају туторијале корак по корак који вас воде кроз реалан пример коришћења одабраног модела са курираним скупом података. Да бисте радили по тим туторијалима, потребан вам је налог код одређеног провајдера, као и приступ релевантним моделима и скуповима података.
| Провајдер | Туторијал | Опис |
|---|---|---|
| OpenAI | Како фајн-тијунирати чат моделе | Научите како да фајн-тијунирате gpt-35-turbo за одређени домен ("асистент за рецепте") припремајући податке за тренирање, покрећући посао фајн-тијунинга и користећи фајн-тијунирани модел за предвиђање. |
| Azure OpenAI | GPT 3.5 Turbo туторијал за фајн-тијунинг | Научите како да фајн-тијунирате модел gpt-35-turbo-0613 на Azure-у тако што ћете направити и отпремити податке за тренирање, покренути посао фајн-тијунинга, распоредити и користити нови модел. |
| Hugging Face | Фајн-тијунинг LLM-а уз Hugging Face | Овај блог вас води кроз фајн-тијунинг отвореног LLM-а (нпр. CodeLlama 7B) користећи библиотеку transformers и Transformer Reinforcement Learning (TRL) уз отворене скупове података на Hugging Face. |
| 🤗 AutoTrain | Фајн-тијунинг LLM-а са AutoTrain | AutoTrain (односно AutoTrain Advanced) је Python библиотека коју је развио Hugging Face, омогућавајући фајн-тијунинг за различите задатке укључујући LLM фајн-тијунинг. AutoTrain је решење без кода, а фајн-тијунинг се може изводити у вашем облаку, на Hugging Face Spaces или локално. Подржава веб-интерфејс, CLI као и тренирање преко yaml конфигурационих фајлова. |
| 🦥 Unsloth | Фајн-тијунинг LLM-а са Unsloth | Unsloth је open-source оквир који подржава фајн-тијунинг LLM-а и учење појачањем (RL). Unsloth олакшава локално тренирање, евалуацију и имплементацију са већ спремним ноутбуковима. Такође подржава текст у говор (TTS), BERT и мултимодалне моделе. За почетак, прочитајте њихов корак-по-корак Водич за фајн-тијунинг LLM-а. |
Изаберите један од горе наведених туторијала и прођите кроз њега. Можда ћемо поновити верзију ових туторијала у Јупитер Нотебуцкс-у у овом репозиторијуму само за референцу. Молимо да директно користите оригиналне изворе да бисте добили најновије верзије.
Након завршетка ове лекције, погледајте нашу Колекцију генеративног AI учења да наставите подизање нивоа вашег знања о генеративном AI-у!
Честитамо!! Завршили сте последњу лекцију из v2 серије овог курса! Немојте престати да учите и стварате. **Погледајте страницу РЕСУРСИ за листу додатних предлога управо о овој теми.
Наша v1 серија лекција такође је ажурирана са више задатака и концепата. Зато одвојите минут да освежите знање - и молимо вас да поделите ваша питања и повратне информације како бисмо побољшали ове лекције за заједницу.
Одрицање од одговорности:
Овај документ је преведен коришћењем АИ сервиса за превођење Co-op Translator. Иако тежимо прецизности, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом матерњем језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења настала коришћењем овог превода.

