Skip to content

Latest commit

 

History

History
105 lines (69 loc) · 21.9 KB

File metadata and controls

105 lines (69 loc) · 21.9 KB

Open Source Models

Фина настройка на вашия LLM

Използването на големи езикови модели за създаване на генеративни AI приложения носи нови предизвикателства. Основен въпрос е осигуряването на качество на отговорите (точност и релевантност) в съдържанието, генерирано от модела за дадена потребителска заявка. В предишни уроци обсъдихме техники като инженерство на подсказките и генериране с допълнително извличане, които се опитват да решат проблема чрез модифициране на подадената подсказка към съществуващия модел.

В днешния урок ще обсъдим трета техника, фина настройка, която се опитва да адресира предизвикателството чрез преобучаване на самия модел с допълнителни данни. Нека се потопим в детайлите.

Цели на обучението

Този урок въвежда концепцията за фина настройка на предварително обучени езикови модели, разглежда ползите и предизвикателствата на този подход и предоставя насоки кога и как да използвате фина настройка за подобряване на представянето на вашите генеративни AI модели.

Към края на урока трябва да можете да отговорите на следните въпроси:

  • Какво представлява фина настройка за езикови модели?
  • Кога и защо фина настройка е полезна?
  • Как мога да настроя предварително обучен модел?
  • Какви са ограниченията на фината настройка?

Готови ли сте? Нека започваме.

Илюстрирано ръководство

Искате ли да получите обща представа за това, което ще покрием, преди да се впуснем? Вижте това илюстрирано ръководство, което описва учебното пътешествие за този урок - от изучаването на основните концепции и мотивацията за фина настройка, до разбирането на процеса и най-добрите практики за изпълнение на задачата за фина настройка. Това е завладяваща тема за изследване, така че не забравяйте да разгледате страницата с Ресурси за допълнителни връзки, които да подкрепят вашето самостоятелно обучение!

Илюстрирано ръководство за фина настройка на езикови модели

Какво е фина настройка на езикови модели?

По дефиниция големите езикови модели са предварително обучени върху големи количества текст, събран от различни източници, включително интернет. Както научихме в предишни уроци, имаме нужда от техники като инженерство на подсказки и генериране с допълнително извличане, за да подобрим качеството на отговорите на модела на въпросите на потребителя ("подсказки").

Популярна техника за инженерство на подсказки включва даване на повече насоки на модела какво се очаква в отговора, или чрез предоставяне на инструкции (явни насоки), или даване на няколко примера (косвени насоки). Това се нарича few-shot обучение, но има две ограничения:

  • Ограниченията за токени на модела могат да ограничат броя на примерите, които можете да дадете, и да намалят ефективността.
  • Разходите за токени могат да направят скъпо добавянето на примери към всяка подсказка и да ограничат гъвкавостта.

Фината настройка е честа практика в системите за машинно обучение, при която вземаме предварително обучен модел и го преобучаваме с нови данни, за да подобрим представянето му по конкретна задача. В контекста на езиковите модели, можем да финно настроим предварително обучения модел с кураторски набор от примери за конкретна задача или област на приложение, за да създадем специализиран модел, който може да е по-точен и релевантен за конкретната задача или област. Допълнителна полза от фината настройка е, че тя може да намали броя на нужните примери за few-shot обучение - намалявайки използването на токени и свързаните разходи.

Кога и защо трябва да настройваме модели?

В този контекст, когато говорим за фина настройка, имаме предвид контролирана фина настройка, където преобучаването се прави чрез добавяне на нови данни, които не са били част от първоначалния тренировъчен набор. Това е различно от неконтролирана фина настройка, при която моделът се преобучава върху оригиналните данни, но с различни хиперпараметри.

Ключовото нещо, което трябва да запомните, е че фината настройка е напреднала техника, която изисква определено ниво на експертиза, за да се постигнат желаните резултати. Ако се направи неправилно, може да не осигури очакваните подобрения и дори да влоши представянето на модела за вашата целева област.

Затова, преди да се научите "как" да настройвате езикови модели, трябва да разберете "защо" трябва да изберете този път и "кога" да започнете процеса на фина настройка. Започнете, като си зададете тези въпроси:

  • Случай на употреба: Какъв е вашият случай на употреба за финна настройка? Кой аспект на текущия предварително обучен модел искате да подобрите?
  • Алтернативи: Опитвали ли сте други техники да постигнете желаните резултати? Използвайте ги, за да създадете базова линия за сравнение.
    • Инженерство на подсказки: Опитайте техники като few-shot подсказване с примери на релевантни отговори. Оценете качеството на отговорите.
    • Генериране с допълнително извличане: Опитайте да обогатите подсказките с резултати от търсене във вашите данни. Оценете качеството на отговорите.
  • Разходи: Определили ли сте разходите за финна настройка?
    • Възможност за настройка - наличен ли е предварително обучен модел за финна настройка?
    • Усилия - за подготовка на тренировъчните данни, оценяване и усъвършенстване на модела.
    • Изчислителни ресурси - за изпълнение на задачи за фина настройка и внедряване на финно настроения модел.
    • Данни - достъп до достатъчно качествени примери за въздействието на фината настройка.
  • Ползи: Потвърдили ли сте ползите от фината настройка?
    • Качество - превъзхожда ли финно настроеният модел базовия?
    • Разходи - намалява ли използването на токени чрез опростяване на подсказките?
    • Разширяемост - можете ли да пренасочите базовия модел към нови области?

Отговаряйки на тези въпроси, трябва да можете да решите дали фината настройка е правилният подход за вашия случай на употреба. Идеално е, подходът да е валиден само ако ползите надвишават разходите. След като решите да продължите, е време да обмислите как да настроите предварително обучен модел.

Искате ли повече прозрения за процеса на вземане на решения? Гледайте Да настройваме или да не настройваме.

Как можем да настроим предварително обучен модел?

За да направите фина настройка на предварително обучен модел, трябва да имате:

  • предварително обучен модел за настройка
  • набор от данни за фина настройка
  • тренировъчна среда за изпълнение на задачата за финна настройка
  • среда за хостинг за внедряване на финно настроения модел

Фина настройка в действие

Следните ресурси предоставят стъпка по стъпка уроци, които ви водят през реален пример с избран модел и кураторски набор от данни. За да работите с тези уроци, ви е необходим акаунт при съответния доставчик, както и достъп до съответния модел и набори от данни.

Доставчик Урок Описание
OpenAI Как да настроим чат модели Научете как да финно настроите gpt-35-turbo за конкретна област ("асистент за рецепти") чрез подготовка на тренировъчни данни, изпълнение на задачата за финна настройка и използване на финно настроения модел за предсказания.
Azure OpenAI Урок за финна настройка на GPT 3.5 Turbo Научете как да финно настроите модел gpt-35-turbo-0613 в Azure, като преминете през създаване и качване на тренировъчни данни, изпълнение на задачата за финна настройка, внедряване и използване на новия модел.
Hugging Face Фина настройка на LLMs с Hugging Face Тази блог публикация ви води през финна настройка на отворен LLM (например CodeLlama 7B) с помощта на библиотеката transformers и Transformer Reinforcement Learning (TRL), използвайки отворени набори от данни на Hugging Face.
🤗 AutoTrain Фина настройка на LLMs с AutoTrain AutoTrain (или AutoTrain Advanced) е python библиотека, разработена от Hugging Face, която позволява фина настройка за много различни задачи, включително LLM. AutoTrain е решение без код, а финната настройка може да бъде извършена във вашия собствен облак, в Hugging Face Spaces или локално. Поддържа уеб-базирани GUI, CLI и обучение чрез yamл конфигурационни файлове.
🦥 Unsloth Фина настройка на LLMs с Unsloth Unsloth е с отворен код рамка, която поддържа фина настройка и обучение чрез подсилване (RL) на LLM. Unsloth улеснява локално обучение, оценка и внедряване с готови notebooks. Поддържа също обработка на текст в реч (TTS), BERT и мултимодални модели. За да започнете, прочетете тяхното стъпка по стъпка Ръководство за фина настройка на LLMs.

Задача

Изберете един от горните уроци и го преминете. Можем да възпроизведем версия на тези уроци в Jupyter Notebooks в това хранилище само за справка. Моля, използвайте оригиналните източници директно, за да получите най-актуалните версии.

Отлична работа! Продължете ученето си.

След завършване на този урок разгледайте нашата колекция за обучение по генеративен AI, за да продължите да надграждате знанията си за генеративен AI!

Поздравления!! Завършихте последния урок от серията v2 за този курс! Не спирайте да учите и създавате. **Разгледайте страницата с РЕСУРСИ за списък с допълнителни предложения по точно тази тема.

Нашата серия уроци v1 също беше актуализирана с повече задачи и концепции. Затова отделете минута, за да освежите знанията си - и моля споделете вашите въпроси и обратна връзка, за да ни помогнете да подобрим тези уроци за общността.


Отказ от отговорност:
Този документ е преведен с помощта на AI преводаческа услуга Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за никакви недоразумения или неправилни тълкувания, произтичащи от използването на този превод.