데이터 분석은 항상 현대 사회의 핵심 도구였으며 본질을 깊이 이해하고 패턴을 발견하며 의사 결정을 안내하는 데 도움이 되었습니다. 그러나 데이터 분석 프로세스는 복잡하고 시간이 많이 소요되는 경우가 많으므로 데이터와 직접 상호 작용할 수 있는 지능형 비서가 필요합니다. 대형 언어 모델(LLM)의 발전으로 Copilot과 같은 가상 비서와 지능형 에이전트가 속속 등장하고 있으며 자연어 이해 및 생성 성능이 놀랍습니다. 그러나 안타깝게도 기존 에이전트 프레임워크는 복잡한 데이터 구조(예: DataFrame, ndarray 등)를 처리하고 데이터 분석 및 전문 분야의 핵심 요구 사항인 도메인 지식을 도입하는 데 여전히 어려움을 겪고 있습니다.
작업 수행 시 음성 도우미의 병목 현상 문제를 더 잘 해결하기 위해 Microsoft는 TaskWeaver라는 에이전트 프레임워크를 출시했습니다. 프레임워크는 코드 우선이며 사용자의 자연어 요청을 실행 가능한 코드로 지능적으로 변환하는 동시에 여러 데이터 구조와 동적 플러그인 선택을 지원합니다. 또한 TaskWeaver는 다양한 분야의 계획 프로세스에 따라 전문적으로 조정될 수 있어 대규모 언어 모델의 잠재력을 최대한 활용할 수 있습니다. 오픈 소스 프레임워크인 TaskWeaver는 특정 분야의 지식을 통합할 수 있는 맞춤형 예제와 플러그인을 제공하므로 사용자는 개인화된 가상 비서를 쉽게 만들 수 있습니다. TaskWeaver의 출시는 음성 비서의 지능 수준을 효과적으로 향상시키고 개인화된 가상 비서에 대한 사용자의 증가하는 요구를 충족할 것입니다.
TaskWeaver 프로젝트는 오픈 소스로 제공되었습니다. GitHub에 , 출시 당일 GitHub 트렌드 목록에 나타났습니다. 현재 해당 프로젝트는 별 2900개를 받았으며 좋은 반응을 얻고 있다. 또한 LinkedIn과 같은 소셜 플랫폼에서 TaskWeaver를 활용하여 SAP 데이터 분석을 하는 등의 실제 사례도 있습니다. 이러한 사례는 TaskWeaver의 유용성과 가치를 보여줍니다.
판매 데이터에 숨겨진 비밀 추적
Xiaoya는 비즈니스 분석가이며, 그녀의 업무 중 하나는 최근 판매 데이터에서 변칙적인 부분을 찾고 이러한 변칙적인 부분을 기반으로 회사가 조정하도록 안내하는 것입니다. 판매 전략. 모든 판매 데이터는 SQL 데이터베이스에 안전하게 저장됩니다. AI 비서와의 자연어 소통을 통해 손쉽게 데이터를 추출하고 분석할 수 있기를 희망한다. 특히 중요한 것은 영업 세계에서는 이상 현상이 고유하다는 사실입니다. 따라서 AI 도우미가 맞춤형 이상 현상 감지 알고리즘을 사용하여 이 문제를 해결할 수 있기를 바랍니다. 다음은 Xiaoya와 AI 어시스턴트 간의 채팅 기록(그림 1)으로, 이들 간의 상호 작용을 보여줍니다. Xiaoya: 안녕하세요. 데이터베이스에서 판매 데이터를 추출하고 분석하는 데 도움이 필요합니다. AI 비서: 좋습니다. 즉시 데이터베이스에서 해당 데이터를 추출하겠습니다. 나중에 확인을 위해 추출된 데이터를 제시하겠습니다. 샤오야: 정말 감사합니다. (잠시 후) AI 비서: 데이터베이스에서 판매 데이터를 추출했습니다. 다음은 데이터 개요입니다. 확인해 주세요. (AI 어시스턴트가 표시하는 데이터 개요) Xiaoya: 데이터가 좋아 보입니다. 이상 탐지 및 분석을 계속해 주세요. AI 어시스턴트: 알겠습니다. 맞춤형 이상 탐지 알고리즘을 활용하여 분석을 진행하고, 최대한 빠른 시일 내에 직관적인 시각화를 보여드리겠습니다. (잠시 후) AI 도우미: 분석이 완료되었습니다. 다음 시각화 결과를 확인하시기 바랍니다. (AI 어시스턴트가 시각적 결과를 표시함) Xiaoya: 도와주셔서 정말 감사합니다! 이 결과는 나에게 매우 소중합니다. AI 도우미: 도와주셔서 기쁘네요. 추가 질문이 있거나 추가 분석이 필요한 경우 언제든지 알려주시기 바랍니다. Xiaoya: 물론이죠. 지원해 주셔서 감사합니다.
그림 1. 스토리 예시의 대화 내용
위에서 언급한 Xiaoya의 이야기를 통해 Agent 프레임워크가 갖춰야 할 몇 가지 핵심 기능을 정리했습니다.
1. 플러그인 지원: 위 사례에서 에이전트는 데이터베이스에서 데이터를 가져온 다음 지정된 이상 탐지 알고리즘을 사용해야 합니다. 이러한 작업을 수행하려면 스마트 어시스턴트가 "query_database" 플러그인 및 "anomaly_Detection" 플러그인과 같은 사용자 정의 플러그인을 정의하고 호출할 수 있어야 합니다.
2. 풍부한 데이터 구조 지원: 에이전트는 예측, 클러스터링 등의 고급 데이터 처리를 원활하게 수행하기 위해 배열, 행렬, 테이블 데이터 등의 복잡한 데이터 구조를 처리해야 합니다. 또한 이 데이터는 서로 다른 플러그인 간에 원활하게 전달되어야 합니다. 하지만 대부분의 기존 에이전트 프레임워크는 데이터 분석의 중간 결과를 Prompt에서 텍스트로 변환하거나, 먼저 로컬 파일로 저장한 후 필요할 때 읽어옵니다. 그러나 이러한 방법은 오류가 발생하기 쉽고 프롬프트 단어 제한을 초과합니다.
3. 상태 저장 실행: 에이전트는 여러 차례의 반복을 위해 사용자와 상호 작용하고 사용자 입력을 기반으로 코드를 생성 및 실행해야 하는 경우가 많습니다. 따라서 이러한 코드의 실행 상태는 세션이 종료될 때까지 세션 전체에서 유지되어야 합니다.
4. 먼저 추론한 후 행동(ReAct) : 에이전트는 ReAct 능력, 즉 먼저 추론을 관찰한 후 조치를 취하는 능력을 갖추어야 합니다. 이는 불확실성이 있는 일부 시나리오에서 매우 필요합니다. 예를 들어 위의 예에서 데이터베이스의 데이터 스키마(schema)는 대개 다양하기 때문에 Agent는 먼저 데이터 스키마 정보를 얻고 어떤 열이 적절한지 파악하고(그리고 사용자에게 확인) 해당 열을 확인해야 합니다. 이름은 이상 탐지 알고리즘에 입력될 수 있습니다.
5. 임의 코드 생성: 때로는 사전 정의된 플러그인이 사용자의 요청을 충족할 수 없으며 에이전트는 사용자의 임시 요구에 응답하기 위해 코드를 생성할 수 있어야 합니다. 위의 예에서 에이전트는 감지된 이상 현상을 시각화하기 위한 코드를 생성해야 하며 이 프로세스는 플러그인의 도움 없이 수행됩니다.
6. 도메인 지식 통합: 에이전트는 특정 분야의 지식을 통합할 수 있는 체계적인 솔루션을 제공해야 합니다. 이는 LLM이 더 나은 계획과 도구의 정확한 호출을 통해 특히 업계 맞춤형 시나리오에서 신뢰할 수 있는 결과를 생성하는 데 도움이 됩니다.
그림 2는 Planner, Code Interpreter, Memory 모듈을 포함한 TaskWeaver의 전체 아키텍처를 보여줍니다.
플래너는 시스템의 두뇌와 같습니다. 여기에는 두 가지 핵심 책임이 있습니다. 1) 계획을 세우고, 즉 사용자의 요구 사항을 하위 작업으로 나누고 이러한 하위 작업을 하나씩 코드 해석기에 보내고 사용합니다. 계획 전반에 걸쳐 실행 과정에서 필요에 따라 계획을 자체 조정합니다. 2) 사용자에게 응답하고, 코드 해석기의 피드백 결과를 사용자가 이해하기 쉬운 답변으로 변환하여 사용자에게 보냅니다. .
코드 해석기는 주로 두 가지 구성 요소로 구성됩니다. 코드 생성기(코드 생성기)는 플래너가 보낸 하위 작업을 수신하고 기존 사용 가능한 플러그인과 도메인별 작업 예제를 결합하여 해당 코드 블록을 생성합니다. Code Executor는 생성된 코드를 실행하고 세션 전체에서 실행 상태를 유지하는 역할을 담당합니다. 이로 인해 프롬프트나 파일 시스템을 거치지 않고도 복잡한 데이터 구조를 메모리에 전달할 수 있습니다. 이는 사용자가 셀에 코드 조각을 입력하고 프로그램의 내부 상태가 순차적 실행 중에 보존되고 후속 프로세스에서 참조될 수 있다는 Jupyter Notebook의 Python 프로그래밍과 같습니다. 구현 측면에서 각 세션에서 코드 실행자는 코드를 실행하기 위한 독립적인 Python 프로세스를 갖게 되므로 동시에 여러 사용자를 지원합니다.
메모리 모듈은 주로 실행 결과 등 전체 시스템이 작동하는 동안 유용한 정보를 저장하며, 다른 모듈에서 쓰고 읽을 수 있습니다. 단기기억은 주로 현재 세션에서 사용자와 TaskWeaver 사이의 통신 기록과 모듈 간의 통신 기록을 포함합니다. 장기기억에는 사용자가 사전에 맞춤화할 수 있는 도메인 지식과 상호작용 과정에서 요약된 일부 경험 등이 포함됩니다.
그림 2. TaskWeaver 전체 아키텍처 다이어그램
TaskWeaver에는 기본 아키텍처 외에도 독특한 디자인이 많이 있습니다. 예를 들어, 세션 압축은 텍스트 크기를 줄여 더 많은 대화가 가능하도록 하며, 동적 플러그인 선택은 사용자 요청에 따라 자동으로 올바른 플러그인을 선택하여 더 많은 맞춤형 플러그인을 통합할 수 있도록 해줍니다. 또한 TaskWeaver는 사용자가 사용 중에 명령을 입력하면 실행될 수 있는 경험 저장 기능도 지원합니다. 현재 세션에서 사용자의 경험과 교훈을 요약하고 다음 세션에서 반복되는 실수를 방지하며 진정한 개인화를 달성합니다. 보안 측면에서도 TaskWeaver는 신중하게 설계되었습니다. 예를 들어, 생성된 코드가 화이트리스트 외부의 모듈을 참조하면 오류가 발생하여 보안 위험이 줄어듭니다.
그림 3은 앞서 언급한 샘플 작업을 완료하는 TaskWeaver 프로세스의 일부를 보여줍니다.
먼저 플래너는 사용자로부터 입력을 받고 각 모듈의 기능 설명과 기획 예시를 바탕으로 구체적인 계획을 생성합니다. 계획에는 4개의 하위 작업이 포함되어 있으며, 그 중 첫 번째 작업은 데이터베이스에서 데이터를 추출하고 데이터 스키마를 설명하는 것입니다.
그런 다음 코드 생성기는 기능 설명과 모든 관련 플러그인의 정의를 기반으로 코드 조각을 생성합니다. 이 코드는 sql_pull_data 플러그인을 호출하여 데이터를 DataFrame에 저장하고 데이터 스키마에 대한 설명을 제공합니다.
마지막으로 생성된 코드는 실행을 위해 코드 실행기로 전송되고, 완료된 결과는 계획을 업데이트하거나 다음 하위 작업으로 진행하기 위해 플래너로 전송됩니다. 그림의 실행 결과를 보면 DataFrame에 날짜와 값이라는 두 개의 열이 있음을 알 수 있습니다. 플래너는 이러한 열이 올바른지 사용자에게 추가로 확인하거나 anomaly_Detection 플러그인을 호출하는 다음 단계로 직접 진행할 수 있습니다.
그림 3. TaskWeaver 내부 워크플로
TaskWeaver에 도메인 지식을 삽입하는 방법은 무엇입니까?
대규모 모델 응용 프로그램에서 도메인별 지식을 통합하는 주요 목적은 산업 맞춤화에서 LLM의 일반화 성능을 향상시키는 것입니다. TaskWeaver는 도메인 지식을 모델에 주입하는 세 가지 방법을 제공합니다.
TaskWeaver를 어떻게 사용하나요?
TaskWeaver의 전체 코드가 이제 GitHub에 오픈 소스로 공개되었습니다. 현재 명령줄 시작, 웹 서비스, Python 라이브러리 형태로 가져오기라는 세 가지 솔루션이 지원됩니다. 간단한 설치 후 사용자는 LLM API 주소, 키, 모델 이름과 같은 몇 가지 주요 매개변수만 구성하면 TaskWeaver 서비스를 쉽게 시작할 수 있습니다.
그림 4. 명령줄 시작 인터페이스
그림 5. TaskWeaver 실행 예제
TaskWeaver는 데이터 분석 및 업계 사용자 정의 시나리오의 요구 사항을 충족하도록 설계된 새로운 에이전트 프레임워크 솔루션입니다. 사용자 언어를 프로그래밍 언어로 변환함으로써 "데이터와의 대화"는 더 이상 꿈이 아닌 현실이 될 것입니다.
위 내용은 TaskWeaver: 우수한 에이전트 솔루션을 구축하기 위해 데이터 분석 및 업계 사용자 정의를 용이하게 하는 오픈 소스 프레임워크의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!