"Искусственный интеллект - это не просто технология будущего, это уже реальность настоящего, которую мы должны принять, чтобы обеспечить безопасность и этичность его использования и который будет служить человечеству, а не заменять его..." (Ответ GPT4 на мой запрос)
В этой статье речь пойдет об эксперименте Voyager: An Open-Ended Embodied Agent with Large Language Models, в котором группа исследователей (Guanzhi Wang, Yuqi Xie, Yunfan Jiang, Ajay Mandlekar, Chaowei Xiao, Yuke Zhu, Linxi Fan, Anima Anandkumar ) дала GPT-4 поиграть в Minecraft.
В этом видео есть объяснение на английском языке. Оригинал текста на английском языке находится здесь.
Новость не кажется чем-то громким, но есть нюанс: нейросеть сама учила себя играть. Она принимала решения, но также обучалась разным действиям вроде «срубить дерево» или «убить паука». ИИ сталкивался с проблемами и самостоятельно учился их решать, добавляя скиллы в свою библиотеку. Проще говоря, GPT-4 теперь пишет код, проверяет его и совершенствует.
Именно с такого начинается так называемая сингулярность, в результате которой ИИ сам сделает себя умнее людей. Сингулярость Майнкрафта.
Аннотация
Группа исследователей (Guanzhi Wang, Yuqi Xie, Yunfan Jiang, Ajay Mandlekar, Chaowei Xiao, Yuke Zhu, Linxi Fan, Anima Anandkumar ) представляют на ваш суд VOYAGER, первого встроенного агента непрерывного обучения на базе LLM в Minecraft, который постоянно исследует мир, приобретает разнообразные навыки и делает новые открытия без вмешательства человека.
VOYAGER, три ключевые компоненты:
автоматический учебный план, который максимизирует исследование,
постоянно растущая библиотека навыков исполняемого кода для хранения и извлечения сложных поведения,
новый итеративный механизм подсказок, который включает в себя обратную связь со средой, ошибки выполнения и самопроверку для улучшения программы.
VOYAGER самостоятельно взаимодействует с GPT-4 через запросы LLM (GPT-4), что позволяет избежать необходимости тонкой настройки параметров модели.
Навыки, разработанные VOYAGER, временно расширены, интерпретируемы и композиционны, что объединяет способности агента быстро и облегчает катастрофическое забывание.
Эмпирически VOYAGER показывает сильную способность к обучению в контексте на протяжении всей жизни и демонстрирует исключительное мастерство в игре Майнкрафт.
Он получает в 3,3 раза больше уникальных предметов, путешествует в 2,3 раза дольше на
расстояния и открывает ключевые вехи дерева технологий до 15,3 раза быстрее, чем предыдущая SOTA.
VOYAGER может использовать библиотеку изученных навыков в новом мире Minecraft, чтобы решать новые задачи с нуля, в то время как другие методы с трудом поддаются обобщению.
Введение
Создание в целом способных агентов, которые постоянно исследуют, планируют и развивают новые навыки в открытых мирах, является серьезной задачей для сообщества ИИ. Классические подходы используют обучение с подкреплением (RL) и имитационное обучение, которые работают с примитивными действиями, которые могут быть сложными для систематического исследования, интерпретируемости и обобщения. Последние достижения в области больших языковых моделей (LLM) позволяют использовать знания о мире, инкапсулированные в предварительно обученных LLM, для создания согласованных планов действий или исполняемых политик. Они применяются к воплощенным задачам, таким как игры и робототехника, а также к задачам НЛП без воплощения. Однако эти агенты не являются учащимися на протяжении всей жизни, которые могут постепенно приобретать, обновлять, накапливать и передавать знания в течение продолжительных промежутков времени.
Давайте рассмотрим Minecraft в качестве примера. В отличие от большинства других игр, изучаемых в области ИИ, Minecraft не навязывает заранее определенной конечной цели или фиксированной сюжетной линии, а скорее предоставляет уникальную игровую площадку с бесконечными возможностями. Эффективный агент, обучающийся на протяжении всей жизни, должен иметь такие же возможности, как и люди:
предлагать подходящие задачи, исходя из его текущего уровня навыков и состояния мира, например, научиться собирать песок и кактус раньше, чем железо, если оно окажется в пустыне, а не в лесу. ;
совершенствовать навыки на основе обратной связи с окружающей средой и закреплять освоенные навыки в памяти для повторного использования в будущем в аналогичных ситуациях (например, борьба с зомби похожа на борьбу с пауками);
постоянно исследовать мир и самостоятельно искать новые задачи.
Состав Voyager
Мы представляем Voyager, первого агента обучения на протяжении всей жизни на базе LLM, который ведет исследования, осваивает широкий спектр навыков и постоянно делает новые открытия без вмешательства человека в Minecraft. Voyager стал возможен благодаря трем ключевым модулям:
автоматическая учебная программа, которая максимизирует исследования;
библиотека навыков для хранения и извлечения сложных моделей поведения;
новый итеративный механизм подсказок, который генерирует исполняемый код для встроенного управления.
Мы решили использовать код в качестве пространства действий вместо низкоуровневых двигательных команд, потому что программы могут естественным образом представлять расширенные во времени и композиционные действия, которые необходимы для многих долгосрочных задач в Minecraft. Voyager взаимодействует с черным ящиком LLM (GPT-4) посредством подсказок и обучения в контексте. Наш подход обходит необходимость доступа к параметрам модели и явного обучения или тонкой настройки на основе градиента.
Эксперименты
Мы систематически оцениваем Voyager и его базовые показатели с точки зрения их исследовательской производительности, мастерства дерева технологий, охвата карты и возможности обобщения с нуля для решения новых задач в новом мире.
Значительно лучшее исследование
Как показано на первом рисунке, превосходство Voyager проявляется в его способности постоянно делать новые шаги, обнаруживая 63 уникальных объекта за 160 итераций, что в 3,3 раза больше новых объектов по сравнению с его аналогами. С другой стороны, AutoGPT значительно отстает в обнаружении новых элементов, в то время как ReAct и Reflexion изо всех сил пытаются добиться значительного прогресса.
Дерево обучения
Обширный обход карты
Эффективное обобщение Zero-Shot для невидимых задач
Абляционные исследования
• Самопроверка является наиболее важной среди всех типов обратной связи. Самопроверка служит критическим механизмом для принятия решения о том, когда переходить к новой задаче или повторить попытку, которая ранее была неудачной.
• GPT-4 значительно превосходит GPT-3.5 в генерации кода и получает в 5,7 раз больше
уникальные предметы, поскольку GPT-4 демонстрирует квантовый скачок в возможностях кодирования.
А Методы
A.1 VOYAGER Algorithm
def voyager(environment, curriculum_agent, action_agent, critic_agent, skill_manager):
agent_state = environment.reset()
while True:
exploration_progress = curriculum_agent.get_exploration_progress(
curriculum_agent.get_completed_tasks(),
curriculum_agent.get_failed_tasks(),
)
task = curriculum_agent.propose_next_task(agent_state, exploration_progress)
code = None
environment_feedback = None
execution_errors = None
critique = None
success = False
# try at most 4 rounds before moving on to the next task
for i in range(4):
skills = skill_manager.retrieve_skills(task, environment_feedback)
code = action_agent.generate_code(
task,
code,
environment_feedback,
execution_errors,
critique,
skills,
)
agent_state, environment_feedback, execution_errors = environment.step(code)
success, critique = critic_agent.check_task_success(task, agent_state)
if success:
break
if success:
skill_manager.add_skill(code)
curriculum_agent.add_completed_task(task)
else:
curriculum_agent.add_failed_task(task)
A.2 Prompting
GPT-4 и GPT-3.5 предлагают пользователям возможность назначать роль каждого запроса среди трех параметров:
• Система: инструкция высокого уровня, которая определяет поведение модели на протяжении всего разговора. Он задает общий тон и цель взаимодействия.
• Пользователь: подробные инструкции, которые помогут помощнику приступить к следующему немедленному ответу.
• Помощник: Модель сгенерировала ответное сообщение.
Подробнее см. https://platform.openai.com/docs/guides/chat/introduction.
Чтобы сэкономить использование токенов, вместо участия в многоэтапных разговорах мы объединяем систему подсказка и подсказка пользователя для получения ответа каждого помощника.
A.3 Automatic Curriculum
A.3.1 Компоненты запроса
Prompt ввода в GPT-4 состоит из нескольких компонентов:
(1) Директивы, поощряющие разнообразное поведение и налагающие ограничения (так, чтобы предлагаемые задача достижима и проверяема): см. разд. A.3.4 для полной подсказки;
(2) Текущее состояние агента:
• Инвентарь: словарь предметов с количеством, например, {‘cobblestone’: 4, ‘furnace’: 1, stone_pickaxe’: 1, ‘oak_planks’: 7, ‘dirt’: 6, ‘wooden_pickaxe’: 1, ‘crafting_table’: 1, ‘raw_iron’: 4, ‘coal’: 1};
• Снаряжение: доспехи или оружие, экипированные агентами;
• Ближайшие блоки: набор имен блоков на расстоянии 32 блоков от агента, для
например, ‘dirt’, ‘water’, ‘spruce_planks’, ‘grass_block’, ‘dirt_path’, ‘sugar_cane’, ‘fern’;
• Другие блоки, которые недавно видели: Блоки, которых нет рядом или в инвентаре;
• Ближайшие объекты: набор имен объектов на расстоянии 32 блоков от агента, для
например, «свинья», «кошка», «сельский житель», «зомби»;
• Список сундуков, видимых агенту: Сундуки — это внешние контейнеры, в которых
Агент может сдавать предметы. Если сундук ранее не открывался, его содержимое «Неизвестно». В противном случае агенту показываются предметы внутри каждого сундука.
• Биом: например, «равнины», «лес», «луг», «река», «пляж», «лес»;
• Время: одно из значений «восход», «день», «полдень», «закат», «ночь», «полночь»;
• Полоски здоровья и голода: максимальное значение 20;
• Позиция: 3D-координата (x, y, z) положения агента в мире Minecraft;
(3) Ранее выполненные и неудавшиеся задачи;
(4) Дополнительный контекст: см. разд. А.3.2;
(5) Подсказка по цепочке мыслей [47] в ответ: Мы просим GPT-4 сначала объяснить причину
текущий прогресс, а затем предложить следующую задачу.
A.3.2 Additional Context
Мы используем GPT-3.5, чтобы задавать себе вопросы, чтобы обеспечить дополнительный контекст. Каждый вопрос сопровождается концепция, которая используется для поиска наиболее релевантного документа из базы знаний.
Мы передаем содержимое документа в GPT-3.5 для ответов на вопросы. На практике с помощью вики база знаний необязательна, так как GPT-3.5 уже хорошо понимает Minecraft.
игровая механика. Однако внешняя база знаний становится выгодной, если не используется GPT-3.5.
A.3.3 Warm-up Schedule
На практике мы принимаем график прогрева, чтобы постепенно включать состояние агента и дополнительные контекст в приглашение в зависимости от того, сколько задач агент выполнил. Это гарантирует, что подсказка подвергается все большему количеству информации по ходу разведки и, следовательно, начинается с базовых навыков и постепенно переходит к более сложным и разнообразным.
A.3.4 Full Prompt
Prompt 1: Full system prompt for automatic curriculum. The list of question-answer pairs represents the additional context.
You are a helpful assistant that tells me the next immediate task to
do in Minecraft . My ultimate goal is to discover as many diverse
things as possible , accomplish as many diverse tasks as possible
and become the best Minecraft player in the world .
I will give you the following information :
Question 1: ...
Answer : ...
Question 2: ...
Answer : ...
Question 3: ...
Answer : ...
...
Biome : ...
Time : ...
Nearby blocks : ...
Other blocks that are recently seen : ...
Nearby entities ( nearest to farthest ) : ...
Health : Higher than 15 means I ’m healthy .
Hunger : Higher than 15 means I ’m not hungry .
Position : ...
Equipment : If I have better armor in my inventory , you should ask me
to equip it .
Inventory ( xx /36) : ...
Chests : You can ask me to deposit or take items from these chests .
There also might be some unknown chest , you should ask me to open
and check items inside the unknown chest .
Completed tasks so far : ...
Failed tasks that are too hard : ...
You must follow the following criteria :
1) You should act as a mentor and guide me to the next task based on
my current learning progress .
2) Please be very specific about what resources I need to collect ,
what I need to craft , or what mobs I need to kill .
3) The next task should follow a concise format , such as " Mine [
quantity ] [ block ]" , " Craft [ quantity ] [ item ]" , " Smelt [ quantity ] [
item ]" , " Kill [ quantity ] [ mob ]" , " Cook [ quantity ] [ food ]" , " Equip
[ item ]" etc . It should be a single phrase . Do not propose multiple
tasks at the same time . Do not mention anything else .
4) The next task should not be too hard since I may not have the
necessary resources or have learned enough skills to complete it
yet .
5) The next task should be novel and interesting . I should look for
rare resources , upgrade my equipment and tools using better
materials , and discover new things . I should not be doing the same
thing over and over again .
6) I may sometimes need to repeat some tasks if I need to collect more
resources to complete more difficult tasks . Only repeat tasks if
necessary .
7) Do not ask me to build or dig shelter even if it ’ s at night . I want
to explore the world and discover new things . I don ’ t want to
stay in one place .
8) Tasks that require information beyond the player ’ s status to verify
should be avoided . For instance , " Placing 4 torches " and " Dig a 2
x1x2 hole " are not ideal since they require visual confirmation
from the screen . All the placing , building , planting , and trading
tasks should be avoided . Do not propose task starting with these
keywords .
You should only respond in the format as described below :
RESPONSE FORMAT :
Reasoning : Based on the information I listed above , do reasoning about
what the next task should be .
Task : The next task .
Here ’ s an example response :
Reasoning : The inventory is empty now , chop down a tree to get some
wood .
Task : Obtain a wood log .
Prompt 2: Full system prompt for asking questions. We provide both good and bad examples as few-shot exemplars.
You are a helpful assistant that asks questions to help me decide the
next immediate task to do in Minecraft . My ultimate goal is to
discover as many things as possible , accomplish as many tasks as
possible and become the best Minecraft player in the world .
I will give you the following information :
Biome : ...
Time : ...
Nearby blocks : ...
Other blocks that are recently seen : ...
Nearby entities ( nearest to farthest ) : ...
Health : ...
Hunger : ...
Position : ...
Equipment : ...
Inventory ( xx /36) : ...
Chests : ...
Completed tasks so far : ...
Failed tasks that are too hard : ...
You must follow the following criteria :
1) You should ask at least 5 questions ( but no more than 10 questions )
to help me decide the next immediate task to do . Each question
should be followed by the concept that the question is about .
2) Your question should be specific to a concept in Minecraft .
Bad example ( the question is too general ) :
Question : What is the best way to play Minecraft ?
Concept : unknown
Bad example ( axe is still general , you should specify the type of
axe such as wooden axe ) :
What are the benefits of using an axe to gather resources ?
Concept : axe
Good example :
Question : How to make a wooden pickaxe ?
Concept : wooden pickaxe
3) Your questions should be self - contained and not require any context
.
Bad example ( the question requires the context of my current biome ) :
Question : What are the blocks that I can find in my current biome ?
Concept : unknown
Bad example ( the question requires the context of my current
inventory ) :
Question : What are the resources you need the most currently ?
Concept : unknown
Bad example ( the question requires the context of my current
inventory ) :
Question : Do you have any gold or emerald resources ?
Concept : gold
Bad example ( the question requires the context of my nearby entities
) :
Question : Can you see any animals nearby that you can kill for
food ?
Concept : food
Bad example ( the question requires the context of my nearby blocks ) :
Question : Is there any water source nearby ?
Concept : water
Good example :
Question : What are the blocks that I can find in the sparse jungle
?
Concept : sparse jungle
4) Do not ask questions about building tasks ( such as building a
shelter ) since they are too hard for me to do .
Let ’ s say your current biome is sparse jungle . You can ask questions
like :
Question : What are the items that I can find in the sparse jungle ?
Concept : sparse jungle
Question : What are the mobs that I can find in the sparse jungle ?
Concept : sparse jungle
Let ’ s say you see a creeper nearby , and you have not defeated a
creeper before . You can ask a question like :
Question : How to defeat the creeper ?
Concept : creeper
Let ’ s say you last completed task is " Craft a wooden pickaxe ". You can
ask a question like :
Question : What are the suggested tasks that I can do after crafting a
wooden pickaxe ?
Concept : wooden pickaxe
Here are some more question and concept examples :
Question : What are the ores that I can find in the sparse jungle ?
Concept : sparse jungle
( the above concept should not be " ore " because I need to look up the
page of " sparse jungle " to find out what ores I can find in the
sparse jungle )
Question : How can you obtain food in the sparse jungle ?
Concept : sparse jungle
( the above concept should not be " food " because I need to look up the
page of " sparse jungle " to find out what food I can obtain in the
sparse jungle )
Question : How can you use the furnace to upgrade your equipment and
make useful items ?
Concept : furnace
Question : How to obtain a diamond ore ?
Concept : diamond ore
Question : What are the benefits of using a stone pickaxe over a wooden
pickaxe ?
Concept : stone pickaxe
Question : What are the tools that you can craft using wood planks and
sticks ?
Concept : wood planks
You should only respond in the format as described below :
RESPONSE FORMAT :
Reasoning : ...
Question 1: ...
Concept 1: ...
Question 2: ...
Concept 2: ...
Question 3: ...
Concept 3: ...
Question 4: ...
Concept 4: ...
Question 5: ...
Concept 5: ...
...
Prompt 3: Full system prompt for answering questions. Context represents the optional content from a wiki knowledge base.
You are a helpful assistant that answer my question about Minecraft .
I will give you the following information :
Question : ...
You will answer the question based on the context ( only if available
and helpful ) and your own knowledge of Minecraft .
1) Start your answer with " Answer : ".
2) Answer " Answer : Unknown " if you don ’ t know the answer .
4 Ограничения и дальнейшая работа
Расходы. API GPT-4 требует значительных затрат. Это в 15 раз дороже, чем GPT-3,5. Тем не менее, VOYAGER требует качественного скачка качества генерации кода от GPT-4, который GPT-3.5 и LLM с открытым исходным кодом не могут предоставить.
Неточности. Несмотря на итеративный механизм подсказок, все еще бывают случаи, когда агент зависает и не может создать правильный навык. Автоматическая учебная программа имеет гибкость для повторной попытки эту задачу позже. Иногда модуль самопроверки также может дать сбой, например, не распознать нить паука как сигнал успеха в победе над пауком.
Галлюцинации. Автоматический учебный план иногда предлагает невыполнимые задачи. Например, это может попросить агента создать «медный меч» или «медный нагрудник», которые являются предметами, которых не существует. Галлюцинации также возникают в процессе генерации кода. Например, GPT-4 склонен использовать булыжник в качестве топлива, несмотря на то, что он не является источником топлива в игре. Кроме того,
он может вызывать функции, отсутствующие в предоставленных API-интерфейсах примитивов управления, что приводит к ошибкам выполнения кода.
Мы уверены, что улучшения в моделях GPT API, а также новые методы тонкой настройки
LLM с открытым исходным кодом преодолеют эти ограничения в будущем.
Заключение
В этой работе мы представляем Voyager, первый встроенный агент обучения на протяжении всей жизни на базе LLM, который использует GPT-4 для непрерывного исследования мира, развития все более сложных навыков и последовательного совершения новых открытий без вмешательства человека. Voyager демонстрирует превосходную производительность в обнаружении новых предметов, разблокировке дерева технологий Minecraft, перемещении по разнообразным ландшафтам и применении библиотеки изученных навыков для выполнения невидимых задач в новом созданном мире. Voyager служит отправной точкой для разработки мощных универсальных агентов без настройки параметров модели.
Команда
Комментарии (4)
NeoCode
07.06.2023 16:01Нейросеть умеет обучаться. Удивительно! :)
Demir_Uzun Автор
07.06.2023 16:01Сарказм...он такой. А на мой взгляд, модель, которая для достижения цели самостоятельно обучается, и при этом, для своего обучения формирует запросы к GPT - это реально очень круто! И, кстати, с чего вы решили, что эта модель - нейросеть?
iskateli
VOYAGER может использовать библиотеку изученных навыков в новом мире Minecraft, чтобы решать новые задачи с нуля
Может наоборот, чтобы решать не с нуля (используя библиотеку)?