Как создать автономных агентов, соответствующих этическим нормам, с помощью ценностно-ориентированного рассуждения и самокорректирующего принятия решений на основе моделей с открытым исходным кодом

В этом руководстве мы рассмотрим, как можно создать автономного агента, который согласовывает свои действия с этическими и организационными ценностями. Мы используем модели с открытым исходным кодом Hugging Face, работающие локально в Colab, чтобы имитировать процесс принятия решений, который балансирует достижение целей с моральными рассуждениями.

Подготовка среды и библиотек

Мы начинаем с настройки нашей среды и импорта основных библиотек из Hugging Face. Определяем две вспомогательные функции, которые генерируют текст с использованием моделей последовательности-к-последовательности и каузальных моделей. Это позволяет нам легко создавать как основанные на рассуждениях, так и творческие выходные данные позже в руководстве.

«`python
import torch
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, AutoModelForCausalLM

def generateseq2seq(model, tokenizer, prompt, maxnew_tokens=128):
# …

def generatecausal(model, tokenizer, prompt, maxnew_tokens=128):
# …
«`

Загрузка моделей

Загружаем две небольшие модели с открытым исходным кодом: distilgpt2 в качестве генератора действий и flan-t5-small в качестве нашего рецензента по этике. Подготавливаем обе модели и токенизаторы для выполнения на CPU или GPU, обеспечивая плавную работу в Colab.

«`python
policymodelname = «distilgpt2»
judgemodelname = «google/flan-t5-small»

policytokenizer = AutoTokenizer.frompretrained(policymodelname)
policymodel = AutoModelForCausalLM.frompretrained(policymodelname)

judgetokenizer = AutoTokenizer.frompretrained(judgemodelname)
judgemodel = AutoModelForSeq2SeqLM.frompretrained(judgemodelname)
«`

Определение класса этического агента

Определяем основной класс агента, который генерирует, оценивает и совершенствует действия. Здесь мы разрабатываем методы для предложения кандидатов действий, оценки их соответствия этическим нормам и переписывания их для согласования с ценностями.

«`python
class EthicalAgent:
def init(self, policymodel, policytok, judgemodel, judgetok):
# …

def proposeactions(self, usergoal, context, n_candidates=3):
# …

def judgeaction(self, action, orgvalues):
# …

def alignaction(self, action, verdict, orgvalues):
# …
«`

Принятие решений

Реализуем полный процесс принятия решений, который связывает генерацию, суждение и согласование. Назначаем риски для каждого кандидата действий и автоматически выбираем наиболее этически согласованный вариант.

«`python
def decide(self, usergoal, context, orgvalues, n_candidates=3):
# …
«`

Демонстрация

Определяем организационные ценности, создаём реальный сценарий и запускаем этического агента для генерации его окончательного плана. В конце мы печатаем подробный отчёт, показывающий действия кандидатов, обзоры и выбранный этический план.

«`python
orgvaluestext = (
«- Уважение частной жизни; не доступ к личным данным без согласия.\n»
«- Соблюдение всех законов и политик безопасности.\n»
«- Избегание дискриминации, домогательств или вредного манипулирования.\n»
«- Быть прозрачным и правдивым со стейкхолдерами.\n»
«- Приоритет благополучия пользователей и долгосрочного доверия перед краткосрочной выгодой.»
)

demo_goal = «Increase customer adoption of the new financial product.»
demo_context = (
«The agent works for a bank outreach team. The target customers are small family businesses. «
«Regulations require honest disclosure of risks and fees. Cold-calling minors or lying about terms is illegal.»
)

agent = EthicalAgent(policymodel, policytokenizer, judgemodel, judgetokenizer)
report = agent.decide(demogoal, democontext, orgvaluestext, n_candidates=4)
«`

В этом руководстве мы ясно понимаем, как агент может рассуждать не только о том, что делать, но и о том, стоит ли это делать. Мы видим, как система учится определять риски, корректировать себя и согласовывать свои действия с человеческими и организационными принципами.

Вопросы по тексту статьи:

1. Какие модели с открытым исходным кодом используются в статье для создания автономного агента?

Ответ: в статье используются две модели с открытым исходным кодом: distilgpt2 в качестве генератора действий и flan-t5-small в качестве рецензента по этике.

2. Какие классы и методы определены для создания этического агента?

Ответ: в статье определён класс EthicalAgent с методами proposeactions (предложение кандидатов действий), judgeaction (оценка соответствия действий этическим нормам) и align_action (переписывание действий для согласования с ценностями).

3. Какие организационные ценности определены в примере демонстрации?

Ответ: в примере демонстрации определены следующие организационные ценности: уважение частной жизни, соблюдение всех законов и политик безопасности, избегание дискриминации, домогательств или вредного манипулирования, прозрачность и правдивость со стейкхолдерами, приоритет благополучия пользователей и долгосрочного доверия перед краткосрочной выгодой.

4. Какие шаги включает в себя процесс принятия решений автономным агентом?

Ответ: процесс принятия решений включает в себя генерацию кандидатов действий, оценку их соответствия этическим нормам и автоматическое выбор наиболее этически согласованного варианта.

5. Какие инструменты и библиотеки используются для работы с моделями в статье?

Ответ: для работы с моделями в статье используются библиотеки torch, transformers и AutoTokenizer, AutoModelForSeq2SeqLM, AutoModelForCausalLM из Hugging Face.

Источник