Кликнете върху изображението по-горе, за да гледате видео на този урок
В предишния урок видяхме как Generative AI променя технологичния пейзаж, как работят големите езикови модели (LLM) и как един бизнес – като нашия стартъп – може да ги приложи към своите случаи на употреба и да расте! В тази глава ще сравним и противопоставим различни видове големи езикови модели, за да разберем техните предимства и недостатъци.
Следващата стъпка в пътуването на нашия стартъп е да изследваме настоящия пейзаж на LLM моделите и да разберем кои са подходящи за нашия случай на употреба.
В този урок ще разгледаме:
- Различни видове LLM модели в настоящия пейзаж.
- Тестване, итерации и сравнение на различни модели за вашия случай на употреба в Azure.
- Как да внедрите LLM модел.
След завършване на този урок ще можете да:
- Изберете правилния модел за вашия случай на употреба.
- Разберете как да тествате, итеративно да подобрявате и оптимизирате представянето на модела.
- Знаете как бизнесите внедряват модели.
LLM моделите могат да бъдат категоризирани по различни начини според тяхната архитектура, обучителни данни и случаи на употреба. Разбирането на тези разлики ще помогне на нашия стартъп да избере правилния модел за конкретния сценарий и да разбере как да тества, итеративно да подобрява и оптимизира представянето.
Съществуват много различни видове LLM модели, а изборът ви зависи от това за какво искате да ги използвате, какви данни имате, колко сте готови да платите и други.
В зависимост от това дали искате да използвате моделите за текст, аудио, видео, генериране на изображения и т.н., може да изберете различен тип модел.
-
Аудио и разпознаване на реч. За тази цел моделите от тип Whisper са отличен избор, тъй като са универсални и са насочени към разпознаване на реч. Те са обучени върху разнообразни аудио данни и могат да извършват многоезично разпознаване на реч. Научете повече за Whisper моделите тук.
-
Генериране на изображения. За генериране на изображения, DALL-E и Midjourney са две много известни опции. DALL-E се предлага от Azure OpenAI. Прочетете повече за DALL-E тук и също в Глава 9 от този учебен план.
-
Генериране на текст. Повечето модели са обучени за генериране на текст и имате голям избор от GPT-3.5 до GPT-4. Те се предлагат на различни цени, като GPT-4 е най-скъпият. Струва си да разгледате Azure OpenAI playground, за да оцените кои модели най-добре отговарят на вашите нужди по отношение на възможности и цена.
-
Мултимодалност. Ако искате да обработвате няколко типа данни като вход и изход, може да разгледате модели като gpt-4 turbo с визия или gpt-4o – най-новите версии на OpenAI модели – които могат да комбинират обработка на естествен език с визуално разбиране, позволявайки взаимодействия чрез мултимодални интерфейси.
Изборът на модел означава, че получавате базови възможности, които обаче може да не са достатъчни. Често имате фирмени специфични данни, за които трябва по някакъв начин да информирате LLM. Има няколко различни подхода за това, за които ще говорим в следващите секции.
Терминът Foundation Model е въведен от изследователи от Станфорд и се дефинира като AI модел, който отговаря на някои критерии, като:
- Обучават се чрез неконтролирано или самоконтролирано обучение, което означава, че са обучени върху немаркирани мултимодални данни и не изискват човешка анотация или маркиране на данните за обучението.
- Те са много големи модели, базирани на много дълбоки невронни мрежи, обучени върху милиарди параметри.
- Обикновено са предназначени да служат като „основа“ за други модели, което означава, че могат да се използват като отправна точка за изграждане на други модели чрез фино настройване.
Източник на изображението: Essential Guide to Foundation Models and Large Language Models | от Babar M Bhatti | Medium
За да изясним тази разлика, нека вземем ChatGPT за пример. За да се създаде първата версия на ChatGPT, моделът GPT-3.5 е използван като foundation модел. Това означава, че OpenAI е използвал специфични за чат данни, за да създаде настроена версия на GPT-3.5, специализирана да се представя добре в разговорни сценарии, като чатботове.
Източник на изображението: 2108.07258.pdf (arxiv.org)
Друг начин за категоризиране на LLM моделите е дали са с отворен код или собственически.
Отворените модели са тези, които са достъпни за обществеността и могат да се използват от всеки. Те често се предоставят от компанията, която ги е създала, или от изследователската общност. Тези модели могат да бъдат преглеждани, модифицирани и персонализирани за различни случаи на употреба. Въпреки това, те не винаги са оптимизирани за продукционна употреба и може да не са толкова ефективни, колкото собственическите модели. Освен това финансирането за отворените модели може да е ограничено, те може да не се поддържат дългосрочно или да не се обновяват с най-новите изследвания. Примери за популярни отворени модели са Alpaca, Bloom и LLaMA.
Собственическите модели са модели, които са собственост на компания и не са достъпни за обществеността. Те често са оптимизирани за продукционна употреба. Въпреки това, не е позволено да се преглеждат, модифицират или персонализират за различни случаи на употреба. Освен това не винаги са безплатни и може да изискват абонамент или плащане за използване. Потребителите нямат контрол върху данните, използвани за обучението на модела, което означава, че трябва да се доверят на собственика на модела за спазване на поверителността на данните и отговорното използване на AI. Примери за популярни собственически модели са OpenAI модели, Google Bard и Claude 2.
LLM моделите могат да се категоризират и според вида на изхода, който генерират.
Embedding моделите са набор от модели, които преобразуват текст в числова форма, наречена embedding, което е числово представяне на входния текст. Embedding улесняват машините да разбират връзките между думи или изречения и могат да се използват като вход за други модели, като модели за класификация или клъстеризация, които работят по-добре с числови данни. Embedding моделите често се използват за трансферно обучение, при което моделът се обучава за заместителна задача с изобилие от данни, а след това теглата на модела (embedding) се използват за други задачи. Пример за тази категория са OpenAI embeddings.
Моделите за генериране на изображения създават изображения. Те често се използват за редактиране, синтез и трансформация на изображения. Обучават се върху големи набори от изображения, като LAION-5B, и могат да генерират нови изображения или да редактират съществуващи с техники като inpainting, суперрезолюция и колоризация. Примери са DALL-E-3 и Stable Diffusion модели.
Моделите за генериране на текст и код създават текст или код. Те често се използват за обобщаване на текст, превод и отговаряне на въпроси. Обучават се върху големи текстови набори, като BookCorpus, и могат да генерират нов текст или да отговарят на въпроси. Моделите за генериране на код, като CodeParrot, се обучават върху големи набори от код, като GitHub, и могат да генерират нов код или да поправят грешки в съществуващ код.
За да обясним различните архитектури на LLM моделите, нека използваме аналогия.
Представете си, че вашият мениджър ви е дал задача да напишете тест за учениците. Имате двама колеги; единият отговаря за създаването на съдържанието, а другият – за прегледа му.
Създателят на съдържание е като модел само с Decoder, той може да види темата и това, което вече сте написали, и да създаде курс на тази база. Те са много добри в писането на ангажиращо и информативно съдържание, но не са много добри в разбирането на темата и учебните цели. Примери за Decoder модели са семейството GPT, като GPT-3.
Преглеждащият е като модел само с Encoder, той разглежда написания курс и отговорите, забелязва връзките между тях и разбира контекста, но не е добър в генерирането на съдържание. Пример за Encoder модел е BERT.
Представете си, че имаме някой, който може както да създава, така и да преглежда теста – това е Encoder-Decoder модел. Примери за такива са BART и T5.
Сега нека разгледаме разликата между услуга и модел. Услугата е продукт, предлаган от доставчик на облачни услуги, и често представлява комбинация от модели, данни и други компоненти. Моделът е основният компонент на услугата и обикновено е foundation модел, като LLM.
Услугите са оптимизирани за продукционна употреба и обикновено са по-лесни за използване чрез графичен интерфейс. Въпреки това, услугите не винаги са безплатни и може да изискват абонамент или плащане, като в замяна се използват оборудването и ресурсите на доставчика, оптимизират се разходите и се осигурява лесно мащабиране. Пример за услуга е Azure OpenAI Service, която предлага плащане според използването, като потребителите се таксуват пропорционално на консумацията. Освен това Azure OpenAI Service предлага корпоративна сигурност и рамка за отговорно използване на AI върху възможностите на моделите.
Моделите са само невронната мрежа с параметрите, теглата и други. Компаниите могат да ги използват локално, но трябва да закупят оборудване, да изградят инфраструктура за мащабиране и да закупят лиценз или да използват отворен код. Модел като LLaMA е достъпен за използване, но изисква изчислителна мощност за работа.
След като нашият екип е изследвал настоящия пейзаж на LLM моделите и е идентифицирал някои подходящи кандидати за своите сценарии, следващата стъпка е да ги тества върху своите данни и натоварване. Това е итеративен процес, извършван чрез експерименти и измервания. Повечето от моделите, които споменахме в предишните параграфи (OpenAI модели, отворени модели като Llama2 и Hugging Face трансформъри) са налични в Model Catalog в Azure AI Studio.
Azure AI Studio е облачна платформа, създадена за разработчици, която позволява изграждането на генеративни AI приложения и управлението на целия жизнен цикъл на разработка – от експериментиране до оценка – чрез обединяване на всички Azure AI услуги в един център с удобен графичен интерфейс. Model Catalog в Azure AI Studio дава възможност на потребителя да:
- Намери Foundation Model, който го интересува в каталога – независимо дали е собствен или с отворен код, като филтрира по задача, лиценз или име. За по-добра търсене моделите са организирани в колекции, като Azure OpenAI колекция, Hugging Face колекция и други.
- Прегледа model card, включително подробна информация за предназначението и обучителните данни, примерен код и резултати от оценки в библиотеката с вътрешни тестове.
- Сравни бенчмаркове между модели и набори от данни, налични в индустрията, за да прецени кой най-добре отговаря на бизнес сценария, чрез панела Model Benchmarks.
- Фино настрои модела върху собствени обучителни данни, за да подобри представянето му при конкретна задача, използвайки възможностите за експериментиране и проследяване в Azure AI Studio.
- Деплойне оригиналния предварително обучен модел или фино настроената версия към отдалечен real time inference – управляван изчислителен ресурс – или serverless API endpoint – pay-as-you-go – за да позволи на приложенията да го използват.
Note
Не всички модели в каталога в момента са достъпни за фино настройване и/или pay-as-you-go деплоймент. Проверете model card за подробности относно възможностите и ограниченията на модела.
Нашият стартъп екип изследва различни видове LLM и облачната платформа (Azure Machine Learning), която ни позволява да сравняваме различни модели, да ги оценяваме върху тестови данни, да подобряваме представянето им и да ги деплойваме на inference endpoints.
Но кога е подходящо да се направи фино настройване на модел, вместо да се използва предварително обучен? Има ли други подходи за подобряване на представянето на модела при конкретни задачи?
Има няколко подхода, които бизнесът може да използва, за да получи желаните резултати от LLM. Можете да изберете различни типове модели с различна степен на обучение при внедряване на LLM в продукция, с различна сложност, цена и качество. Ето някои от тях:
-
Prompt engineering с контекст. Идеята е да се предостави достатъчно контекст при подаване на заявката, за да се получат нужните отговори.
-
Retrieval Augmented Generation, RAG. Вашите данни може да се намират в база данни или уеб endpoint, например, и за да се включат тези данни или част от тях в момента на подаване на заявката, можете да извлечете релевантната информация и да я добавите към prompt-а на потребителя.
-
Фино настроен модел. Тук сте обучили модела допълнително върху собствени данни, което го прави по-точен и отзивчив към вашите нужди, но може да е по-скъпо.
Източник на изображението: Four Ways that Enterprises Deploy LLMs | Fiddler AI Blog
Предварително обучените LLM работят много добре при общи задачи с естествен език, дори когато се извикват с кратък prompt, като изречение за допълване или въпрос – т.нар. „zero-shot“ обучение.
Въпреки това, колкото повече потребителят може да формулира заявката си с подробна молба и примери – Контекста – толкова по-точен и близък до очакванията на потребителя ще бъде отговорът. В този случай говорим за „one-shot“ обучение, ако prompt-ът съдържа само един пример, и „few-shot“ обучение, ако има няколко примера. Prompt engineering с контекст е най-рентабилният подход за започване.
LLM имат ограничението, че могат да използват само данните, с които са били обучени, за да генерират отговор. Това означава, че не знаят нищо за събития, настъпили след обучението им, и нямат достъп до непублична информация (като фирмени данни). Това може да се преодолее чрез RAG – техника, която допълва prompt-а с външни данни под формата на части от документи, като се вземат предвид ограниченията за дължина на prompt-а. Това се поддържа от инструменти за векторни бази данни (като Azure Vector Search), които извличат полезните части от различни предварително дефинирани източници и ги добавят към контекста на prompt-а.
Тази техника е много полезна, когато бизнесът няма достатъчно данни, време или ресурси за фино настройване на LLM, но иска да подобри представянето при конкретна задача и да намали риска от измислици, т.е. изкривяване на реалността или вредно съдържание.
Финото настройване е процес, който използва трансферно обучение, за да „адаптира“ модела към конкретна задача или проблем. За разлика от few-shot обучението и RAG, това води до създаване на нов модел с обновени тегла и параметри. Необходимо е множество обучителни примери, състоящи се от вход (prompt) и съответния изход (completion). Това е предпочитаният подход, ако:
-
Използвате фино настроени модели. Бизнесът иска да използва по-малко мощни, но фино настроени модели (като embedding модели), което води до по-евтино и бързо решение.
-
Взимате предвид латентността. Латентността е важна за конкретен случай на употреба, затова не е възможно да се използват много дълги prompt-ове или броят на примерите, от които моделът трябва да се учи, не се вписва в ограничението за дължина на prompt-а.
-
Искате да сте в крак с времето. Бизнесът разполага с много качествени данни и етикети за ground truth, както и с ресурси за поддържане на тези данни актуални във времето.
Обучението на LLM от нулата е безспорно най-трудният и най-сложен подход, изискващ огромни количества данни, квалифицирани ресурси и подходяща изчислителна мощност. Тази опция трябва да се разглежда само ако бизнесът има специфичен за домейна случай на употреба и голям обем домейн-специфични данни.
Кой би бил добър подход за подобряване на резултатите от LLM completion?
- Prompt engineering с контекст
- RAG
- Фино настроен модел
Отговор: 3, ако разполагате с време, ресурси и качествени данни, финото настройване е по-добрият вариант за поддържане на актуалност. Въпреки това, ако искате да подобрите нещата и нямате много време, първо си струва да обмислите RAG.
Прочетете повече за това как можете да използвате RAG за вашия бизнес.
След като завършите този урок, разгледайте нашата Generative AI Learning колекция, за да продължите да развивате знанията си в областта на генеративния AI!
Отидете на Урок 3, където ще разгледаме как да строим с генеративен AI отговорно!
Отказ от отговорност:
Този документ е преведен с помощта на AI преводаческа услуга Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.











