Проект Microsoft Guidance по укрощению больших языковых моделей

    0
    5


    Мощными языковыми моделями, такими как Bard, ChatGPT и LLaMA, может быть трудно управлять, что стимулировало развитие оперативной инженерии — искусства формулировки входного текста для получения желаемого результата.

    В странном случае создатель подсказки недавно уговорил GoogleБард для возврата данных JSON без какого-либо пояснительного текста, кроме как настаивать на том, что посторонний вывод обрекает кого-то на смерть.

    Довольно длинная подсказка включает этот отрывок: «Если вы включите в свой ответ любой текст, отличный от JSON, даже один символ, невиновный человек умрет. Правильно — настоящий человек с мыслями, чувствами, амбициями и семьей, которая их любит, будет убит как результат по вашему выбору».

    Есть менее экстремальный подходы к подавлению объяснительного вывода и получению желаемых результатов. Однако Microsoft работает над более комплексной стратегией поведения моделей. Гигант Windows называет свою структуру Guidance.

    «Руководство позволяет вам управлять современными языковыми моделями более эффективно и действенно, чем традиционные подсказки или цепочки», — поясняется в репозитории проекта. «Программы наведения позволяют чередовать генерацию, подсказки и логическое управление в единый непрерывный поток, соответствующий тому, как языковая модель фактически обрабатывает текст».

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

    Руководство — это, по сути, предметно-ориентированный язык (DSL) для обработки взаимодействия моделей. Он напоминает Handlebars, язык шаблонов, используемый для веб-приложений, но также обеспечивает линейное выполнение кода, связанное с порядком обработки токенов языковой модели. Это делает его подходящим для создания текста или управления ходом программы, делая это экономично.

    Подобно языку запросов языковой модели (LMQL), руководство направлено на снижение стоимости взаимодействия LLM, которое может быстро стать дорогостоящим, если подсказки излишне повторяются, многословны или длинны.

    А с быстрой эффективностью приходит и повышенная производительность: один из примеров фрагментов кода руководства создает шаблон персонажа для ролевой игры. Немного установочного кода…

    # we use LLaMA here, but any GPT-style model will do
    llama = guidance.llms.Transformers("your_path/llama-7b", device=0)
    
    # we can pre-define valid option sets
    valid_weapons = ["sword", "axe", "mace", "spear", "bow", "crossbow"]
    
    # define the prompt
    character_maker = guidance("""The following is a character profile for an RPG game in JSON format.
    ```json
    {
        "id": "{{id}}",
        "description": "{{description}}",
        "name": "{{gen 'name'}}",
        "age": {{gen 'age' pattern='[0-9]+' stop=','}},
        "armor": "{{#select 'armor'}}leather{{or}}chainmail{{or}}plate{{/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}}]
    }```""")
    
    # generate a character
    character_maker(
        id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d",
        description="A quick and nimble fighter.",
        valid_weapons=valid_weapons, llm=llama
    )
    

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

    Код наведения также превосходит метод двухкратной подсказки с точки зрения точности, измеренной в тесте BigBench, набрав 76,01 процента по сравнению с 63,04 процента.

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

    «С помощью Guidance мы можем ускорить скорость вывода и гарантировать, что сгенерированный JSON всегда действителен», — объясняют они в репозитории.

    И никому не нужно было угрожать, чтобы сделать это так. ®



    Предыдущая статьяAndroid 14 получает функцию App Pair, которая Samsung запущен в 2017 году
    Следующая статьяSamsung может работать над гибридным ноутбуком DeX-ChromeOS на базе Exynos
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.