Натисніть на зображення вище, щоб переглянути відео цього уроку
У попередньому уроці ми побачили, як генеративний штучний інтелект змінює технологічний ландшафт, як працюють великі мовні моделі (LLM) і як бізнес, наприклад, наш стартап, може застосовувати їх до своїх кейсів і розвиватися! У цьому розділі ми порівняємо різні типи великих мовних моделей (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. Існує кілька різних способів підходу до цього, про що буде розказано в наступних розділах.
Термін "Базова модель" був запропонований дослідниками Стенфорда і визначений як модель штучного інтелекту, яка відповідає певним критеріям, таким як:
- Вони навчені за допомогою неконтрольованого навчання або самоконтрольованого навчання, тобто вони навчені на немаркованих мультимодальних даних і не потребують людської анотації або маркування даних для процесу навчання.
- Вони є дуже великими моделями, заснованими на дуже глибоких нейронних мережах, навчених на мільярдах параметрів.
- Вони зазвичай призначені для служіння як "основа" для інших моделей, тобто їх можна використовувати як відправну точку для створення інших моделей, що може бути зроблено шляхом тонкого налаштування.
Джерело зображення: Essential Guide to Foundation Models and Large Language Models | by Babar M Bhatti | Medium
Щоб ще більше уточнити це розмежування, візьмемо ChatGPT як приклад. Для створення першої версії ChatGPT модель GPT-3.5 слугувала базовою моделлю. Це означає, що OpenAI використала деякі дані, специфічні для чатів, щоб створити налаштовану версію GPT-3.5, яка була спеціалізована для гарної роботи в розмовних сценаріях, таких як чат-боти.
Джерело зображення: 2108.07258.pdf (arxiv.org)
Ще один спосіб класифікації LLM - це чи вони відкриті чи власні.
Відкриті моделі - це моделі, які доступні для громадськості і можуть бути використані будь-ким. Їх часто надає компанія, яка їх створила, або дослідницька спільнота. Ці моделі дозволяють перевіряти, змінювати та налаштовувати для різних кейсів використання LLM. Однак вони не завжди оптимізовані для використання у виробництві і можуть бути менш продуктивними, ніж власні моделі. Крім того, фінансування відкритих моделей може бути обмеженим, і вони можуть не підтримуватися довгостроково або не оновлюватися відповідно до останніх досліджень. Приклади популярних відкритих моделей включають Alpaca, Bloom і LLaMA.
Власні моделі - це моделі, які належать компанії і не доступні для громадськості. Ці моделі часто оптимізовані для використання у виробництві. Однак їх не можна перевіряти, змінювати або налаштовувати для різних кейсів використання. Крім того, вони не завжди доступні безкоштовно і можуть вимагати підписки або оплати за використання. Також користувачі не мають контролю над даними, які використовуються для навчання моделі, що означає, що вони повинні довіряти власнику моделі забезпечення конфіденційності даних і відповідального використання AI. Приклади популярних власних моделей включають OpenAI models, Google Bard або Claude 2.
LLM також можна класифікувати за типом вихідних даних, які вони генерують.
Вбудовування - це набір моделей, які можуть перетворювати текст у числову форму, названу вбудовуванням, що є числовим представленням вхідного тексту. Вбудовування полегшує машинам розуміння взаємозв'язків між словами або реченнями і може бути використане як вхідні дані для інших моделей, таких як моделі класифікації або кластеризації, які мають кращу продуктивність на числових даних. Моделі вбудовування часто використовуються для перенесення навчання, де модель створюється для сурогатного завдання, для якого є багато даних, а потім ваги моделі (вбудовування) використовуються для інших завдань. Прикладом цієї категорії є OpenAI embeddings.
Моделі генерації зображень - це моделі, які генерують зображення. Ці моделі часто використовуються для редагування зображень, синтезу зображень і перекладу зображень. Моделі генерації зображень часто навчені на великих наборах даних зображень, таких як LAION-5B, і можуть бути використані для створення нових зображень або редагування існуючих зображень за допомогою технік інпейнтингу, суперроздільності та колоризації. Приклади включають DALL-E-3 і Stable Diffusion models.
Моделі генерації тексту та коду - це моделі, які генерують текст або код. Ці моделі часто використовуються для підсумовування тексту, перекладу та відповіді на запитання. Моделі генерації тексту часто навчені на великих наборах текстових даних, таких як BookCorpus, і можуть бути використані для створення нового тексту або для відповіді на запитання. Моделі генерації коду, такі як CodeParrot, часто навчені на великих наборах даних коду, таких як GitHub, і можуть бути використані для створення нового коду або виправлення помилок у існуючому коді.
Щоб поговорити про різні типи архітектур LLM, використаємо аналогію.
Уявіть, що ваш менеджер дав вам завдання написати вікторину для студентів. У вас є два колеги: один відповідає за створення контенту, а інший - за його перевірку.
Творець контенту схожий на модель тільки декодера, він може подивитися на тему і те, що ви вже написали, а потім створити курс на основі цього. Вони дуже добре пишуть захоплюючий та інформативний контент, але не дуже добре розуміють тему та навчальні цілі. Деякі приклади моделей тільки декодера - це моделі сімейства GPT, такі як GPT-3.
Рецензент схожий на модель тільки енкодера, він дивиться на написаний курс і відповіді, помічаючи взаємозв'язок між ними та розуміючи контекст, але не дуже добре генерує контент. Прикладом моделі тільки енкодера буде BERT.
Уявіть, що ми також можемо мати когось, хто міг би створювати та перевіряти вікторину, це модель енкодер-декодер. Деякі приклади - це BART і T5.
Тепер поговоримо про різницю між сервісом і моделлю. Сервіс - це продукт, який пропонується постачальником хмарних послуг і часто є комбінацією моделей, даних та інших компонентів. Модель - це основний компонент сервісу і часто є базовою моделлю, такою як LLM.
Сервіси часто оптимізовані для використання у виробництві і часто простіші у використанні, завдяки графічному інтерфейсу. Однак сервіси не завжди доступні безкоштовно і можуть вимагати підписки або оплати за використання, в обмін на використання обладнання та ресурсів власника сервісу, оптимізацію витрат і легке масштабування. Прикладом сервісу є Azure OpenAI Service, який пропонує тарифний план "оплата за використання", тобто користувачі сплачують пропорційно до того, скільки вони використовують сервіс. Крім того, Azure OpenAI Service пропонує корпоративну безпеку та відповідальну AI-структуру поверх можливостей моделей.
Моделі - це лише нейронна мережа з параметрами, вагами та іншими компонентами. Вони дозволяють компаніям працювати локально, однак для цього потрібно купувати обладнання, створювати структуру для масштабування та купувати ліцензію або використовувати відкриту модель. Модель, така як LLaMA, доступна для використання, вимагаючи обчислювальної потужності для запуску моделі.
Після того, як наша команда дослідила сучасний ландшафт LLM і визначила кілька хороших кандидатів для своїх сценаріїв, наступним кроком є тестування їх на своїх даних і робочих навантаженнях. Це ітеративний процес, який здійснюється через експерименти та вимірювання. Більшість моделей, які ми згадували в попередніх абзацах (моделі OpenAI, моделі з відкритим кодом, такі як Llama2, і трансформери Hugging Face), доступні в Каталозі моделей у Azure AI Studio.
Azure AI Studio — це хмарна платформа, створена для розробників, яка дозволяє створювати генеративні AI-додатки та керувати всім життєвим циклом розробки — від експериментів до оцінки — об'єднуючи всі сервіси Azure AI в єдиний хаб із зручною графічною інтерфейсом. Каталог моделей в Azure AI Studio дозволяє користувачам:
- Знаходити базову модель, яка їх цікавить, у каталозі — як власну, так і з відкритим кодом, фільтруючи за завданням, ліцензією або назвою. Для покращення пошуку моделі організовані в колекції, такі як колекція Azure OpenAI, колекція Hugging Face тощо.
- Переглядати картку моделі, яка включає детальний опис передбачуваного використання та навчальних даних, приклади коду та результати оцінки в бібліотеці внутрішніх оцінок.
- Порівнювати бенчмарки між моделями та наборами даних, доступними в індустрії, щоб оцінити, яка з них найкраще відповідає бізнес-сценарію, через панель Бенчмарки моделей.
- Налаштовувати модель на основі власних навчальних даних для покращення її продуктивності в конкретному робочому навантаженні, використовуючи можливості експериментування та відстеження Azure AI Studio.
- Розгортати оригінальну попередньо навчальну модель або налаштовану версію для віддаленого реального часу інференсу — керованого обчислення — або безсерверного API-інтерфейсу — оплата за використання — щоб дозволити додаткам використовувати її.
Note
Не всі моделі в каталозі наразі доступні для налаштування та/або розгортання за принципом оплати за використання. Перевірте картку моделі для отримання деталей про можливості та обмеження моделі.
Ми разом із нашою командою стартапу дослідили різні типи LLM і хмарну платформу (Azure Machine Learning), яка дозволяє нам порівнювати різні моделі, оцінювати їх на тестових даних, покращувати продуктивність і розгортати їх на інференс-ендпоінтах.
Але коли варто розглянути можливість налаштування моделі замість використання попередньо навченої? Чи існують інші підходи для покращення продуктивності моделі в конкретних робочих навантаженнях?
Існує кілька підходів, які бізнес може використовувати, щоб отримати необхідні результати від LLM. Ви можете вибрати різні типи моделей із різними рівнями навчання під час розгортання LLM у виробництві, з різними рівнями складності, вартості та якості. Ось кілька підходів:
-
Інженерія підказок із контекстом. Ідея полягає в тому, щоб надати достатньо контексту під час підказки, щоб забезпечити отримання потрібних відповідей.
-
Генерація з доповненням даних (RAG). Ваші дані можуть існувати в базі даних або веб-ендпоінті, наприклад, щоб забезпечити включення цих даних або їх підмножини під час підказки, ви можете отримати відповідні дані та зробити їх частиною запиту користувача.
-
Налаштована модель. Тут ви додатково навчаєте модель на власних даних, що робить її більш точною та відповідною вашим потребам, але це може бути дорого.
Джерело зображення: Four Ways that Enterprises Deploy LLMs | Fiddler AI Blog
Попередньо навчені LLM дуже добре працюють із загальними завданнями обробки природної мови, навіть якщо їх викликати за допомогою короткої підказки, наприклад, речення для завершення або питання – так зване навчання "з нуля" (zero-shot learning).
Однак чим більше користувач може сформулювати свій запит, надаючи детальний запит і приклади – Контекст – тим точнішою і ближчою до очікувань користувача буде відповідь. У цьому випадку ми говоримо про навчання "з одного прикладу" (one-shot learning), якщо підказка включає лише один приклад, і "навчання з кількох прикладів" (few-shot learning), якщо вона включає кілька прикладів. Інженерія підказок із контекстом є найбільш економічно ефективним підходом для початку роботи.
LLM мають обмеження, оскільки вони можуть використовувати лише дані, які були використані під час їх навчання, для генерації відповіді. Це означає, що вони нічого не знають про факти, які сталися після їх навчання, і не можуть отримати доступ до непублічної інформації (наприклад, даних компанії).
Це можна подолати за допомогою RAG, техніки, яка доповнює підказку зовнішніми даними у вигляді фрагментів документів, враховуючи обмеження довжини підказки. Це підтримується інструментами векторних баз даних (наприклад, Azure Vector Search), які отримують корисні фрагменти з різних заздалегідь визначених джерел даних і додають їх до контексту підказки.
Ця техніка дуже корисна, коли у бізнесу недостатньо даних, часу або ресурсів для налаштування LLM, але він все ж хоче покращити продуктивність у конкретному робочому навантаженні та зменшити ризики вигадок, тобто спотворення реальності або шкідливого контенту.
Налаштування — це процес, який використовує перенесення навчання для "адаптації" моделі до конкретного завдання або вирішення певної проблеми. На відміну від навчання з кількох прикладів і RAG, це призводить до створення нової моделі з оновленими вагами та коефіцієнтами. Це вимагає набору навчальних прикладів, що складаються з одного вхідного запиту (підказки) та відповідного виходу (результату).
Цей підхід буде кращим, якщо:
-
Використання налаштованих моделей. Бізнес хоче використовувати налаштовані менш потужні моделі (наприклад, моделі вбудовування) замість високопродуктивних моделей, що призводить до більш економічного та швидкого рішення.
-
Врахування затримки. Затримка важлива для конкретного випадку використання, тому неможливо використовувати дуже довгі підказки або кількість прикладів, які модель повинна вивчити, не відповідає обмеженням довжини підказки.
-
Актуальність. Бізнес має багато високоякісних даних і еталонних міток, а також ресурси, необхідні для підтримки цих даних в актуальному стані з часом.
Навчання LLM з нуля без сумніву є найскладнішим і найкомплекснішим підходом, що вимагає величезної кількості даних, кваліфікованих ресурсів і відповідної обчислювальної потужності. Цей варіант слід розглядати лише в ситуації, коли у бізнесу є специфічний для галузі випадок використання та велика кількість даних, орієнтованих на цю галузь.
Який підхід може бути найкращим для покращення результатів завершення LLM?
- Інженерія підказок із контекстом
- RAG
- Налаштована модель
A:3, якщо у вас є час, ресурси та високоякісні дані, налаштування є кращим варіантом для підтримки актуальності. Однак, якщо ви хочете покращити результати, але у вас недостатньо часу, варто спочатку розглянути RAG.
Дізнайтеся більше про те, як ви можете використовувати RAG для вашого бізнесу.
Після завершення цього уроку ознайомтеся з нашою колекцією навчальних матеріалів з генеративного AI, щоб продовжити вдосконалювати свої знання про генеративний AI!
Перейдіть до Уроку 3, де ми розглянемо, як відповідально працювати з генеративним AI!
Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.











