Руководство по реализации интеллектуальных параллельных рабочих процессов в Parsl для выполнения многоинструментальных ИИ-агентов
В современном мире автоматизации бизнеса использование искусственного интеллекта (ИИ) становится неотъемлемой частью эффективных рабочих процессов. В этой статье мы рассмотрим, как создать параллельные рабочие процессы с помощью библиотеки Parsl, позволяющей запускать несколько вычислительных задач одновременно. Это руководство поможет вам оптимизировать ваши бизнес-процессы и повысить производительность.
Обзор реализации
Для начала необходимо установить необходимые библиотеки и импортировать модули для нашего рабочего процесса. Parsl позволяет нам настроить локальный ThreadPoolExecutor
для параллельного выполнения задач, что значительно увеличивает эффективность работы.
!pip install -q parsl transformers accelerate
Импортируем нужные модули:
import math, json, time, random
from typing import List, Dict, Any
import parsl
from parsl.config import Config
from parsl.executors import ThreadPoolExecutor
from parsl import python_app
Теперь мы можем загрузить конфигурацию Parsl с локальным ThreadPoolExecutor
, который будет обрабатывать до восьми потоков одновременно.
Определение вычислительных задач
Далее мы определим несколько функций, которые будут выполняться асинхронно в рамках рабочего процесса нашего агента. Например, мы можем создать функцию для вычисления чисел Фибоначчи:
@python_app
def calc_fibonacci(n: int) -> Dict[str, Any]:
def fib(k):
a, b = 0, 1
for _ in range(k): a, b = b, a + b
return a
t0 = time.time(); val = fib(n); dt = time.time() - t0
return {"task": "fibonacci", "n": n, "value": val, "secs": round(dt, 4)}
Кроме этого, мы можем реализовать функции для извлечения ключевых слов и имитации вызовов внешних API, что станет основой для нашего многоинструментального ИИ-агента.
Генерация резюме
Чтобы обобщить результаты, мы реализуем функцию, использующую модель Hugging Face для создания кратких резюме:
def tiny_llm_summary(bullets: List[str]) -> str:
from transformers import pipeline
gen = pipeline("text-generation", model="sshleifer/tiny-gpt2")
prompt = "Summarize these agent results clearly:\n- " + "\n- ".join(bullets) + "\nConclusion:"
out = gen(prompt, max_length=160, do_sample=False)[0]["generated_text"]
return out.split("Conclusion:", 1)[-1].strip()
Планирование и выполнение
Функция планирования позволяет нам сопоставить цели пользователя с вызовами инструментов:
def plan(user_goal: str) -> List[Dict[str, Any]]:
intents = []
if "fibonacci" in user_goal.lower():
intents.append({"tool":"calc_fibonacci", "args":{"n":35}})
if "primes" in user_goal.lower():
intents.append({"tool":"count_primes", "args":{"limit":100_000}})
intents += [
{"tool":"simulate_tool", "args":{"name":"vector_db_search","payload":{"q":user_goal}}},
{"tool":"simulate_tool", "args":{"name":"metrics_fetch","payload":{"kpi":"latency_ms"}}},
{"tool":"extract_keywords", "args":{"text":user_goal}}
]
return intents
Такой структурированный подход позволяет нам создать комплексный план выполнения для ИИ-агента.
Финальное выполнение
В заключительном блоке мы определяем пример цели и запускаем агента:
if __name__ == "__main__":
goal = ("Analyze fibonacci(35) performance, count primes under 100k, "
"and prepare a concise executive summary highlighting insights for planning.")
result = run_agent(goal)
print("\n=== Agent Bullets ===")
for b in result["bullets"]: print("•", b)
print("\n=== LLM Summary ===\n", result["summary"])
print("\n=== Raw JSON ===\n", json.dumps(result["raw"], indent=2)[:800], "...")
Эта реализация демонстрирует, как асинхронная модель приложений Parsl может эффективно организовывать разнообразные рабочие нагрузки параллельно, сочетая численный анализ, обработку текста и имитацию внешних сервисов в едином потоке. Интеграция небольшой модели ИИ на финальном этапе позволяет преобразовать структурированные результаты в естественный язык, показывая синергию между параллельными вычислениями и ИИ-моделями.
Заключение
Использование библиотеки Parsl для создания параллельных рабочих процессов открывает новые горизонты для автоматизации бизнес-процессов. Это не только ускоряет выполнение задач, но и позволяет более эффективно использовать ресурсы. Инвестируя в такие технологии, вы можете значительно повысить производительность вашей команды и улучшить качество принимаемых решений.
Для получения полного кода и дополнительных материалов посетите наш репозиторий на GitHub, где вы найдете учебные пособия, коды и блокноты.