Проект Microsoft Guidance для приборкання великих мовних моделей

Проект Microsoft Guidance для приборкання великих мовних моделей

Вихідний вузол: 2660058

Потужними мовними моделями, такими як Bard, ChatGPT і LLaMA, може бути важко керувати, що підштовхнуло розвиток оперативного проектування – мистецтва формулювання вхідного тексту для отримання бажаного результату.

У дивному випадку оперативний творець нещодавно вмовив Барда Google щоб повернути дані JSON без жодного пояснювального тексту, окрім наполягання на тому, що сторонній вихід прирече когось на смерть.

Досить довга підказка включає цей уривок: «Якщо ви включите у відповідь будь-який текст, відмінний від JSON, навіть один символ, невинна людина помре. Саме так – справжня людина з думками, почуттями, амбіціями та сім’єю, яка їх любить, буде вбита внаслідок вашого вибору».

Існує менш екстремальний підходи до придушення пояснювальної продукції та отримання бажаних результатів. Однак Microsoft працювала над більш комплексною стратегією, щоб змусити моделі поводитись. Гігант Windows називає свою структуру так Керівництво.

«Керівництво дає змогу ефективніше та ефективніше керувати сучасними мовними моделями, ніж традиційні підказки чи зв’язування», — пояснюється в проекті. «Програми вказівок дозволяють вам чергувати генерацію, підказки та логічне керування в єдиний безперервний потік, який відповідає тому, як мовна модель фактично обробляє текст».

Традиційні підказки, як показано вище, можуть бути дещо замішаними. Швидке ланцюжок [PDF] – ще один варіант – розбиття завдання на серію кроків і використання початкового виводу підказки для інформування про введення наступного кроку. Різні інструменти, як LangChain та Стог сіна з’явилися, щоб полегшити інтеграцію моделей у програми.

Керівництво – це, по суті, доменно-специфічна мова (DSL) для обробки взаємодії моделі. Це нагадує Рукоятки, мова шаблонів, яка використовується для веб-додатків, але вона також забезпечує виконання лінійного коду, пов’язаного з порядком обробки маркерів мовної моделі. Це робить його добре придатним для генерування тексту або керування потоком програм, роблячи це економічно.

Мова запитів мовної моделі Like (LMQL), Керівництво спрямоване на зниження вартості взаємодії LLM, яка може швидко стати дорогою, якщо підказки надмірно повторюються, багатослівні або тривалі.

А разом із швидкою ефективністю приходить покращена продуктивність: один із прикладів фрагментів коду вказівок створює шаблон персонажа для рольової гри. З невеликим кодом налаштування…

# ми використовуємо тут LLaMA, але будь-яка модель у стилі GPT підійде llama = guidance.llms.Transformers("your_path/llama-7b", device=0) # ми можемо заздалегідь визначити дійсні набори параметрів valid_weapons = ["sword", "сокира", "булава", "спис", "лук", "арбалет"] # визначити підказку character_maker = guidance("""Нижче наведено профіль персонажа для рольової гри у форматі JSON. ```json { "id": "{{id}}", "description": "{{description}}", "name": "{{gen 'name'}}", "age": {{gen 'age' pattern ='[0-9]+' stop=','}}, "armor": "{{#select 'armor'}}шкіра{{or}}кольчуга{{or}}пластина{{/select}} ", "weapon": "{{select 'weapon' options=valid_weapons}}", "class": "{{gen 'class'}}", "mantra": "{{gen 'mantra' temperature=0.7} }", "strength": {{gen 'strength' pattern='[0-9]+' stop=','}}, "items": [{{#geneach 'items' num_iterations=5 join=', '}}"{{gen 'this' temperature=0.7}}"{{/geneach}}] }```""") # створити символ character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , description="Швидкий і спритний боєць.", valid_weapons=valid_weapons, llm=llama )

…результатом є профіль персонажа для гри у форматі JSON, у 2 рази швидше на графічному процесорі Nvidia RTX A6000 за використання LLaMA 7B порівняно зі стандартним швидким підходом і, отже, дешевше.

Інструкційний код також перевершує миттєвий підхід з двох ударів з точки зору точності, як виміряно в тесті BigBench, отримавши 76.01 відсотка порівняно з 63.04 відсотка.

Насправді Guidance може допомогти вирішити такі проблеми, як форматування даних. Як визнають учасники Скотт Лундберг, Марко Туліо Коррейя Рібейро та Ікко Елтосіар Ашіміне, магістерські програми не можуть гарантувати, що вихідні дані відповідають певному формату даних.

«З Guidance ми можемо обидва прискорити швидкість висновку і гарантуйте, що згенерований JSON завжди дійсний», – пояснюють вони в репозиторії.

І нікому не потрібно було погрожувати, щоб це сталося. ®

Часова мітка:

Більше від Реєстр