Roy — это легкая альтернатива autogen
для разработки продвинутых многоагентных систем с использованием языковых моделей. Он направлен на упрощение и демократизацию развития нового коллективного разума.
Модель-агностик : используйте любой LLM, внешние API не требуются. По умолчанию для повышения эффективности используется 4-битная квантованная модель мастера-кодера-питона.
Модульность и компонуемость : Рой разлагает взаимодействие агентов на многоразовые строительные блоки — создание шаблонов, извлечение, генерацию и выполнение.
Прозрачный и настраиваемый : каждый метод имеет четкую цель. Легко заменяйте компоненты или добавляйте новые возможности.
git clone https://github.com/JosefAlbers/Roy
cd Roy
pip install -r requirements.txt
pip install -U transformers optimum accelerate auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
from roy import Roy
roy = Roy ()
Используйте шаблоны, чтобы структурировать разговоры и обеспечить контекст.
s = 'What date is today? Which big tech stock has the largest year-to-date gain this year? How much is the gain?'
roy . generate ( roy . format ( s ))
Улучшите поколение с помощью соответствующих знаний.
s = 'Create a text to image generator.'
r = roy . retrieve ( s , n_topk = 3 , src = 'huggingface' )
[ roy . generate ( s ) for s in r ]
Агенты сотрудничают в тесном цикле, чтобы итеративно уточнять выходные данные в соответствии со спецификацией.
# Iterative multiturn chat style
s = "Create a secure and unique secret code word with a Python script that involves multiple steps to ensure the highest level of confidentiality and protection. n "
for i in range ( 2 ):
c = roy . generate ( s , prohibitions = [ 'input' ])
s += roy . execute ( c )
Легко тестируйте и повторяйте архитектуру вашей модели:
Замените компоненты : языковые модели, форматы подсказок, архитектуры агентов и т. д.
Тестирование различных задач : арифметика, кодирование на Python, HumanEval OpenAI и т. д.
Количественная оценка улучшений : посмотрите, как каждое изменение влияет на общую производительность.
from human_eval import evaluate
evaluate ( roy . generate )
Рой стремится способствовать появлению сложных адаптивных мультиагентных систем. Он черпает вдохновение из концепций биологии и искусственного интеллекта, обеспечивая децентрализованную координацию и непрерывное обучение.
Выживает сильнейший . Периодически оценивайте и выборочно сохраняйте высокоэффективных агентов на основе точности, скорости и т. д. Агенты адаптируются посредством взаимодействия с коллегами.
Сочетание экспертов . Назначайте экспертов, динамично формируйте команды специалистов и распределяйте задачи между оптимальными экспертами. Постоянно совершенствуйте и пополняйте экспертов.
Эти механизмы способствуют появлению способных, адаптивных и эффективных коллективов агентов.
Гибкие примитивы для построения экосистем агентов.
from roy import Roys
roys = Roys ()
# AutoFeedback
roys . create ( agents = { 'Coder' : 'i = execute(generate(i))' })
roys . start ( requests = { 'i' : 'Create a mobile application that can track the health of elderly people living alone in rural areas.' })
# Retrieval Augmented Generation
roys . create (
agents = {
'Retriever' : 'r = retrieve(i)' ,
'Generator' : 'o = generate(r)' ,
})
roys . start ( requests = { 'i' : 'Create a Deutsch to English translator.' })
# Providing a custom tool to one of the agents using lambda
roys . create (
agents = {
'Coder' : 'c = generate(i)' ,
'Proxy' : 'c = custom(execute(c))' ,
},
tools = { 'custom' : lambda x : f'Modify the code to address the error encountered: n n { x } ' if 'Error' in x else None })
roys . start ( requests = { 'i' : 'Compare the year-to-date gain for META and TESLA.' })
Рой находится в активной разработке. Мы приветствуем вклады – не стесняйтесь открывать вопросы и пиарить!
Если этот проект показался вам полезным или интересным и вы хотите поддержать новые эксперименты, не стесняйтесь угостить меня кофе!