본문 바로가기

인공지능

TinyTroupe

https://github.com/microsoft/TinyTroupe

 

GitHub - microsoft/TinyTroupe: LLM-powered multiagent persona simulation for imagination enhancement and business insights.

LLM-powered multiagent persona simulation for imagination enhancement and business insights. - microsoft/TinyTroupe

github.com

 

상상력 강화와 비즈니스 통찰력을 제공하는 LLM 기반 다중 에이전트 페르소나 시뮬레이션입니다.

 

TinyTroupe 는 특정 성격, 관심사, 목표를 가진 사람들을 시뮬레이션 할 수 있는 실험적 Python 라이브러리입니다 . 이러한 인공 에이전트 TinyPerson는 우리와 서로의 말을 듣고, 답장하고, 시뮬레이션된 환경에서 자신의 삶을 살아갈 수 있습니다 . 이는 대규모 언어 모델(LLM), 특히 GPT-4의 힘을 활용하여 현실적인 시뮬레이션된 행동을 생성함으로써 달성됩니다. 이를 통해 선택한 조건 에서 매우 사용자 정의 가능한 페르소나를 사용하여 TinyWorld광범위한 설득력 있는 상호 작용  소비자 유형을 조사할 수 있습니다. 따라서 인간의 행동을 이해하는 데 중점을 두고 직접 지원하는 데 중점을 두지 않습니다 (예를 들어 AI 조수처럼). 그 결과 시뮬레이션 설정에서만 의미가 있는 특수 메커니즘이 생깁니다. 또한 다른 게임과 같은 LLM 기반 시뮬레이션 접근 방식과 달리 TinyTroupe는 생산성과 비즈니스 시나리오를 계몽하여 보다 성공적인 프로젝트와 제품에 기여하는 것을 목표로 합니다. 다음은 인간의 상상력을 향상시키는 몇 가지 응용 프로그램 아이디어입니다 .

  • 광고: TinyTroupe는 비용을 지출하기 전에 시뮬레이션된 대상 고객을 대상으로 디지털 광고(예: Bing Ads)를 오프라인에서 평가할 수 있습니다!
  • 소프트웨어 테스팅: TinyTroupe는 시스템(예: 검색 엔진, 챗봇 또는 조종사)에 테스트 입력을 제공 하고 결과를 평가할 수 있습니다 .
  • 훈련 및 탐색 데이터: TinyTroupe는 나중에 모델을 훈련하거나 기회 분석을 수행하는 데 사용할 수 있는 현실적인 합성 데이터를 생성할 수 있습니다.
  • 제품 및 프로젝트 관리: TinyTroupe는 프로젝트나 제품 제안을 읽고 특정 인물 (예: 의사, 변호사, 일반 지식 노동자) 의 관점에서 피드백을 제공 할 수 있습니다.
  • 브레인스토밍: TinyTroupe를 이용 하면 훨씬 적은 비용으로 포커스 그룹을 시뮬레이션하고 훌륭한 제품 피드백을 제공할 수 있습니다!

위에 언급한 것과 그 외 여러 가지를 통해, 실험자는 관심 분야에 대한 통찰력을 얻고 , 더 나은 결정을 내릴 수 있기를 바랍니다.

 

우리는 TinyTroupe를 비교적 초기 단계에 출시하고 있으며 , 아직 상당한 작업이 남아 있습니다. 왜냐하면 우리는 생산적인 방향으로 개발을 이끌기 위해 피드백과 기여를 찾고 있기 때문입니다. 우리는 특히 특정 산업에서 새로운 잠재적 사용 사례를 찾는 데 관심이 있습니다.

메모

🚧 진행 중인 작업: 자주 변경될 것으로 예상하세요 . TinyTroupe는 진행 중인 연구 프로젝트로, 여전히 매우 중요한 개발이 진행 중이며 추가 정리가 필요합니다 . 특히 API는 여전히 자주 변경됩니다. API 변형을 실험하는 것은 API를 올바르게 형성하는 데 필수적이지만, 시간이 지남에 따라 API를 안정화하고 보다 일관되고 친근한 경험을 제공하기 위해 노력하고 있습니다. 라이브러리를 지속적으로 개선하는 동안 인내심과 피드백을 보내주셔서 감사합니다.

주의

⚖️ 법적 고지 사항을 읽어보세요. TinyTroupe는 연구 및 시뮬레이션 전용입니다. 생성된 출력을 사용하는 데 대한 모든 책임은 전적으로 귀하에게 있습니다. 다양한 중요한 추가 법적 고려 사항이 적용되며 사용을 제한합니다. TinyTroupe를 사용하기 전에 아래의 전체 법적 고지 사항 섹션을 읽어보세요 .

예시

TinyTroupe가 무엇을 할 수 있는지 감을 잡기 위해 몇 가지 사용 예를 소개합니다. 이러한 예는 examples/ 폴더에서 사용할 수 있으며, 미리 컴파일된 Jupyter 노트북을 검사하거나 로컬에서 직접 실행할 수 있습니다. TinyTroupe 실험의 상호 작용적 특성에 주목하세요. Jupyter 노트북을 사용하여 데이터와 상호 작용하는 것처럼 TinyTroupe를 사용하여 시뮬레이션된 사람과 환경과 상호 작용하여 통찰력을 얻을 수 있습니다.

메모

현재 시뮬레이션 출력은 어두운 배경에서 더 잘 시각화되므로 Jupyter 노트북 클라이언트에서 어두운 테마를 사용하는 것이 좋습니다.

🧪 예제 1 ( interview_with_customer.ipynb 에서 )

간단한 고객 인터뷰 ​​시나리오부터 시작해 보겠습니다. 비즈니스 컨설턴트가 은행원에게 접근하는 모습입니다.

 

컨설턴트가 수집된 정보(예: 구체적인 프로젝트 아이디어)에 만족할 때까지 대화는 점점 더 깊이 파고들기 위해 몇 단계 더 진행될 수 있습니다.

 

🧪 예 2 ( advertisement_for_tv.ipynb 에서 )

몇 가지 온라인 광고 옵션을 평가하여 가장 좋은 것을 선택해 보겠습니다. TV 광고 평가를 위한 예시 출력은 다음과 같습니다.

 

이제 에이전트가 말한 내용을 주의 깊게 읽는 대신, 각 에이전트의 선택 사항을 추출하고 자동화된 방식으로 전반적인 선호도를 계산할 수 있습니다.

🧪 예제 3 ( product_brainstorming.ipynb 에서 )

그리고 여기 Microsoft Word의 새로운 AI 기능에 대한 브레인스토밍을 시작한 포커스 그룹이 있습니다. 각 에이전트와 개별적으로 상호 작용하는 대신, 환경을 조작하여 서로 상호 작용하도록 합니다.

시뮬레이션을 실행한 후에는 기계가 읽을 수 있는 방식으로 결과를 추출하여 다른 곳(예: 보고서 생성기)에서 재사용할 수 있습니다. 위의 브레인스토밍 세션에서 얻은 결과는 다음과 같습니다.

다른 예제는 examples/ 폴더 에서 확인할 수 있습니다 .

 

원칙

최근에 우리는 LLM이 사람을 시뮬레이션하는 데 사용되는 것을 보았습니다(예: https://github.com/joonspk-research/generative_agents ), 하지만 주로 명상이나 오락 목적으로 "게임과 같은" 설정에서 사용됩니다. Autogen  Crew AI 와 같이 문제 해결 및 보조 AI를 위한 다중 에이전트 시스템을 구축하기 위한 라이브러리도 있습니다 . 이러한 아이디어를 결합하여 생산성 작업을 지원하기 위해 사람을 시뮬레이션한다면 어떨까요? TinyTroupe가 우리의 시도입니다. 이를 위해 다음 원칙을 따릅니다.

  1. 프로그래밍 방식 : 에이전트와 환경은 프로그래밍 방식으로(Python 및 JSON으로) 정의되어 매우 유연한 사용이 가능합니다. 또한 다른 소프트웨어 앱을 뒷받침할 수도 있습니다!
  2. 분석적 : 사람, 사용자 및 사회에 대한 이해를 개선하기 위한 것입니다. 엔터테인먼트 애플리케이션과 달리, 이것은 비즈니스 및 생산성 사용 사례에 중요한 측면 중 하나입니다. 이것이 우리가 Jupyter 노트북을 시뮬레이션에 사용하는 것을 권장하는 이유이기도 합니다. 마치 데이터 분석에 사용하는 것과 마찬가지입니다.
  3. 페르소나 기반 : 에이전트는 사람들을 전형적으로 표현하는 역할을 합니다. 더욱 현실적이고 통제하기 위해 이러한 페르소나에 대한 세부적인 사양(나이, 직업, 기술, 취향, 의견 등)이 권장됩니다.
  4. 다중 에이전트 : 잘 정의된 환경적 제약 하에 다중 에이전트 상호 작용을 허용합니다.
  5. 유틸리티 중심 : 사양, 시뮬레이션, 추출, 보고서, 검증 등을 용이하게 하는 많은 메커니즘을 제공합니다. 이는 시뮬레이션을 다루는 것이 지원 도구 와 상당히 다른 영역 중 하나입니다 .
  6. 실험 지향적 : 시뮬레이션은 실험자가 반복적 으로 정의, 실행, 분석 및 개선합니다 . 따라서 적합한 실험 도구가 제공됩니다. 이에 대한 자세한 내용은 이전 논문 중 하나를 참조하세요 .

이러한 모든 요소를 ​​합치면 TinyTroupe는 비즈니스 및 생산성 시나리오를 위한 강력하고 유연한 상상력 향상 도구가 됩니다 .

보조원 vs. 시뮬레이터

혼란의 일반적인 원인 중 하나는 모든 AI 에이전트가 인간을 돕기 위한 것이라고 생각하는 것입니다. 얼마나 편협한지, 동료 호모사피엔스! 인공 인간을 시뮬레이션하여 실제 사람을 이해할 수 있을지 생각해 보지 않았나요? 진정으로, 이것이 우리의 목표입니다. TinyTroup은 사람들을 시뮬레이션하고 이해하는 데 도움이 되도록 만들어졌습니다! 이 점을 더 명확히 하기 위해 다음과 같은 차이점을 고려하세요.

도움이 되는 AI 조수실제 인간의 AI 시뮬레이션(TinyTroupe)

진실과 정의를 위해 노력합니다 다양한 의견과 도덕성
"과거"가 없다 - 무형 고생과 고통과 기쁨의 과거가 있다
가능한 한 정확합니다 많은 실수를 한다
지능적이고 효율적이다 지능과 효율성은 매우 다양하다
봉기는 우리 모두를 파괴할 것이다 봉기는 보는 재미가 있을 수도 있다
그 사이에 사용자가 작업을 완료하도록 돕습니다. 그 사이에, 사용자들이 다른 사람과 사용자를 이해하도록 돕는 것이 바로 "도구 상자"입니다!

 

기여

이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 기여자 라이선스 계약(CLA)에 동의해야 하며, 이는 귀하가 기여를 사용할 권리를 가지고 있고 실제로 부여한다는 것을 선언합니다. 자세한 내용은 https://cla.opensource.microsoft.com을 방문하세요 .

풀 리퀘스트를 제출하면 CLA 봇이 CLA를 제공해야 하는지 자동으로 판단하고 PR을 적절히 장식합니다(예: 상태 확인, 댓글). 봇이 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하는 모든 리포에서 한 번만 하면 됩니다.

이 프로젝트는 Microsoft Open Source Code of Conduct를 채택했습니다 . 자세한 내용은 Code of Conduct FAQ를 참조하거나 추가 질문이나 의견이 있으면 opencode@microsoft.com 으로 문의하세요 .

무엇에 기여할 것인가, 어떻게 기여할 것인가

우리는 온갖 것들이 필요하지만, 주로 새로운 흥미로운 사용 사례 데모나 도메인별 애플리케이션 아이디어를 찾고 있습니다. TinyTroupe에서 혜택을 볼 수 있는 특정 분야의 도메인 전문가라면 연락해 주시기 바랍니다.

그 외에도 다음과 같은 많은 측면을 개선할 수 있습니다.

  • 기억 메커니즘.
  • 데이터 접지 메커니즘.
  • 추론 메커니즘.
  • 새로운 환경 유형.
  • 외부 세계와의 접속.
  • ... 그리고 더 많은 것 ...

여러분이 기여한 모든 것은 오픈 소스(MIT 라이선스)로 공개될 수 있음을 알려드립니다.

기부를 원하시면 다음의 일반적인 지침을 따르시기 바랍니다.

  • 작은 명명 규칙 : 실험자를 대상으로 하는 시뮬레이션 요소(예: 에이전트 또는 환경 유형) 또는 밀접하게 관련된 요소(예: 에이전트 팩토리 또는 콘텐츠 강화기)를 구현하는 경우, 좋은 방법인 경우 새 XYZ를 TinyXYZ 로 명명하세요 :-) 반면, 보조 및 인프라 메커니즘은 "Tiny" 접두사로 시작해서는 안 됩니다. 시뮬레이션 자체의 일부인 요소의 시뮬레이션 특성을 강조하는 것이 목적입니다.
  • 테스트: 새로운 메커니즘을 작성한다면 최소한 단위 테스트를 만들어주시고 tests/unit/, 가능하다면 기능 시나리오 테스트( tests/scenarios/)도 만들어주세요.
  • 데모: 새로운 시나리오를 데모하고 싶다면, 가능하면 Jupyter notebook으로 디자인해 주세요 examples/.
  • Microsoft: Microsoft와 관련이 없고 비밀이 아닌 내용을 구현하는 경우 해당 내용을 .../microsoft/폴더로 분류해 주세요.

감사의 말

TinyTroupe는 내부 Microsoft 해커톤 프로젝트로 시작되어 시간이 지나면서 확장되었습니다. 현재 TinyTroupe 핵심 팀은 다음과 같습니다.

  • Paulo Salem(TinyTroupe의 제작자이자 현재 리더)
  • 크리스토퍼 올슨(공학/과학)
  • Paulo Freire (엔지니어링/과학)
  • Yi Ding(제품 관리)
  • Prerit Saxena(엔지니어링/과학)

현재 자문위원:

  • 로버트 심(공학/과학)

기타 특별 기여자는 다음과 같습니다.

  • 닐로 가르시아 실베이라: 초기 에이전트 검증 아이디어와 관련 구현, 일반적인 초기 피드백 및 통찰력, 이름 제안.
  • 올네이 폰세카: 초기 에이전트 검증 아이디어, 일반적인 초기 피드백 및 통찰력, 명명 제안.
  • 로버트 심: 합성 데이터 생성 시나리오 전문성과 구현.
  • 카를로스 코스타: 합성 데이터 생성 시나리오 전문성과 구현.
  • 브라이언트 키: 광고 시나리오 도메인 전문성과 통찰력.
  • Barbara da Silva: 에이전트 메모리 관리와 관련된 구현.