Използването на големи езикови модели за изграждане на генеративни AI приложения носи нови предизвикателства. Основен въпрос е осигуряването на качество на отговорите (точност и релевантност) във съдържанието, генерирано от модела за дадена потребителска заявка. В предишните уроци обсъдихме техники като инженеринг на подсказките и генериране с извличане, които се опитват да решат проблема чрез модифициране на входа на подсказката за съществуващия модел.
В днешния урок ще обсъдим трета техника, фина настройка, която се опитва да адресира предизвикателството чрез повторно обучение на самия модел с допълнителни данни. Нека се потопим в подробностите.
Този урок въвежда концепцията за фина настройка на предварително обучени езикови модели, разглежда ползите и предизвикателствата на този подход и предоставя насоки кога и как да се използва фина настройка за подобряване на производителността на вашите генеративни AI модели.
В края на този урок трябва да можете да отговорите на следните въпроси:
- Какво е фина настройка за езикови модели?
- Кога и защо фина настройка е полезна?
- Как мога да настроя фино предварително обучен модел?
- Какви са ограниченията на фина настройка?
Готови ли сте? Да започваме.
Искате ли да получите обща представа за това, което ще разглеждаме, преди да навлезем в детайлите? Вижте това илюстрирано ръководство, което описва учебното пътешествие за този урок – от запознаване с основните концепции и мотивацията за фина настройка до разбиране на процеса и най-добрите практики за изпълнение на задачата по фина настройка. Това е вълнуваща тема за изследване, затова не забравяйте да разгледате страницата с Ресурси за допълнителни връзки, които да подкрепят вашето самостоятелно обучение!
По определение, големите езикови модели са предварително обучени върху големи количества текст, получени от различни източници, включително интернет. Както научихме в предишни уроци, имаме нужда от техники като инженеринг на подсказки и генериране с извличане, за да подобрим качеството на отговорите на модела на въпросите на потребителя („подсказки“).
Популярна техника за инженеринг на подсказки включва даване на модела повече насоки относно очаквания отговор, или чрез предоставяне на инструкции (явна насока), или чрез даване на няколко примера (косвена насока). Това се нарича few-shot learning, но има два ограничения:
- Ограниченията на броя токени на модела могат да ограничат броя на примерите, които можете да дадете, и да намалят ефективността.
- Цената на токените на модела може да направи скъпо добавянето на примери към всяка подсказка и да ограничи гъвкавостта.
Фината настройка е честа практика в системите за машинно обучение, при която вземаме предварително обучен модел и го преобучаваме с нови данни, за да подобрим неговата производителност по конкретна задача. В контекста на езикови модели можем да фино настроим предварително обучен модел с кураторски набор от примери за конкретна задача или приложение, за да създадем персонализиран модел, който може да е по-точен и релевантен за тази конкретна задача или домейн. Допълнителна полза от фината настройка е, че тя може да намали броя на необходимите примери за few-shot learning – намалявайки използването на токени и свързаните разходи.
В този контекст, когато говорим за фина настройка, имаме предвид контролирана (supervised) фина настройка, при която повторното обучение се извършва чрез добавяне на нови данни, които не са били част от оригиналния тренировъчен набор. Това се различава от неконтролирана (unsupervised) фина настройка, където моделът се преобучава върху оригиналните данни, но с различни хиперпараметри.
Ключовото нещо, което трябва да помните, е, че фина настройка е напреднала техника, която изисква определено ниво на експертиза, за да се постигнат желаните резултати. Ако се извърши неправилно, тя може да не донесе очакваните подобрения и дори да влоши производителността на модела за вашия целеви домейн.
Затова, преди да научите "как" да фино настройвате езикови модели, трябва да знаете "защо" трябва да изберете този път и "кога" да започнете процеса на фина настройка. Започнете, като си зададете тези въпроси:
- Сценарий на използване: Какъв е вашият сценарий на използване за фина настройка? Кой аспект на текущия предварително обучен модел искате да подобрите?
- Алтернативи: Изпробвали ли сте други техники, за да постигнете желаните резултати? Използвайте ги, за да създадете базова линия за сравнение.
- Инженеринг на подсказки: Опитайте техники като few-shot prompting с примери на релевантни отговори. Оценете качеството на отговорите.
- Генериране с извличане: Опитайте да обогатите подсказките с резултати от търсене в данните ви. Оценете качеството на отговорите.
- Разходи: Идентифицирали ли сте разходите за фина настройка?
- Настройваемост - наличен ли е предварително обучен модел за фина настройка?
- Усилия - за подготовка на тренировъчни данни, оценка и усъвършенстване на модела.
- Изчислителни ресурси - за изпълнение на задачите по фината настройка и разгръщане на фино настроения модел.
- Данни - достъп до достатъчно качествени примери за реален ефект от фината настройка.
- Ползи: Потвърдили ли сте ползите от фина настройка?
- Качество - надмина ли фино настроеният модел базовото представяне?
- Разходи - намалява ли използването на токени чрез опростяване на подсказките?
- Разширяемост - може ли да използвате базовия модел за нови домейни?
Като отговорите на тези въпроси, трябва да можете да прецените дали фина настройка е подходящият подход за вашия случай. Идеално, подходът е валиден само ако ползите надвишават разходите. След като решите да продължите, е време да помислите как да фино настроите предварително обучен модел.
Искате ли да получите още информация относно процеса на вземане на решения? Гледайте Да фино настроим или не
За да фино настроите предварително обучен модел, ви трябва:
- предварително обучен модел за фина настройка
- набор от данни за използване при фина настройка
- тренировъчна среда за изпълнение на задачата по фина настройка
- хостинг среда за разгръщане на фино настроения модел
Следните ресурси предоставят стъпка по стъпка уроци, които ще ви преведат през реален пример с избран модел и кураторски набор от данни. За да изпълните тези уроци, трябва да имате акаунт при конкретния доставчик, както и достъп до съответния модел и набори от данни.
| Доставчик | Урок | Описание |
|---|---|---|
| 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 е отворена платформа, която поддържа фина настройка на LLM и подсилващо обучение (RL). Unsloth улеснява локално обучение, оценка и разгръщане с готови за употреба notebooks. Поддържа също текст-към-реч (TTS), BERT и мултимодални модели. Започнете като прочетете тяхното стъпка по стъпка Ръководство за фина настройка на LLM. |
Изберете един от горните уроци и го преминете. Ние може да репликираме версия на тези уроци в Jupyter ноутбуци в това хранилище само за справка. Моля, използвайте оригиналните източници директно, за да получите най-актуалните версии.
След като завършите този урок, разгледайте нашата колекция за обучение по генеративен AI, за да продължите да развивате знанията си в областта на Генеративния AI!
Поздравления!! Завършихте последния урок от серията v2 за този курс! Не спирайте да учите и създавате. **Разгледайте страницата с РЕСУРСИ за списък с допълнителни препоръки именно по тази тема.
Нашата серия от уроци v1 също е обновена с повече задачи и концепции. Отделете минута, за да обновите знанията си – и моля споделете въпросите и обратната си връзка, за да ни помогнете да подобрим тези уроци за общността.
Отказ от отговорност:
Този документ е преведен с помощта на AI преводаческа услуга Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на тази превод.

