В этом руководстве мы рассмотрим, как можно создать автономного агента, который согласовывает свои действия с этическими и организационными ценностями. Мы используем модели с открытым исходным кодом 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.