본문 바로가기
  • think normal
새로워지기/마흔의 생활코딩

Agentic | MOE(mixture of exports)

by 청춘만화 2024. 2. 25.

이전에 사요나라, 프롬프트 엔지니어링에 대해 작성한 적이 있다. LLM을 위한 프롬프트는 LLM이 가장 잘 알고, 각각의 LLM은 저마다의 최적의 하이퍼파라미터를 갖고 있기 때문에 인간이 매번 모든걸 학습해가며 맞춰가기엔 일반인들용, 일상용으로는 적합하지 않다.

 

사요나라, 프롬프트 엔지니어링

open ai 가 쏘아올린 chat gpt 열풍으로.. 프롬프트 엔지니어이라는 새롭게 창직?된 직업군이 있다. 생성형 인공 지능(생성형 AI) 솔루션을 안내하여 원하는 결과를 생성하는 프롬프트 엔지니어링 프

normalstory.tistory.com

 

뿐만아니라 중요한 것은 아직? OpenAI이 LLM의 표준은 아니라는 점이다. 이 시장은 이제 도입 단계이다. 개인적으로 OpenAI는 스마트폰 시대로 넘어오기 직전의 PDA폰과 유사하다고 생각된다. 인터페이스와 생태계가 초기 의도와 달리 폐쇄적이고 클라우드 베이스이기 때문에 온라인 환경에 의존하고 있다. 뿐만아니라 퍼스널 디바이스와의 융합이 아직 이루어지기 전이다. 그밖에 보안 등 다양한 이슈들이 있다. 

개인적으로 하드웨어 베이스에서 소프트웨어 생태계를 구축한 애플이나 소프트웨어 베이스에서 하드웨어 생태계를 구축하고 있는 구글이나 아마존 그리고 테슬라가 메인 플레이어가 될것으로 판단된다. 

그럼 이러한 메가 트랜드와 빅브라더들의 움직임 속에서 개인은 무엇을 준비해야 하는가?!   

 

 

프롬프트 최적화말고 나만의 에이전트에 대해 고민해야 한다

 

 

그런 의미에서 알아두어야 하는 기본적인 용어가 있는데 바로 MoE mixture of exports 이다. 관련 상세한 설명은 구글링하면 국내외 수 많은 전문가들이 잘 설명해둔 글들이 많아 간략하게 기본적인 내용만 정리해본다. 

용어 

MoE는 하나의 레이어 또는 연산(예: 선형 레이어, MLP 또는 attention projection)의 계산을 여러 개의 “전문가(expert)” 하위 네트워크로 분할하는 신경망의 아키텍처 패턴이다. 이러한 하위 네트워크는 각각 독립적으로 자체 연산을 수행하며, 그 결과를 결합하여 MoE 레이어의 최종 출력을 생성한다. MoE 아키텍처는 모든 입력에 대해 모든 전문가가 사용되는 고밀도(dense) 또는 모든 입력에 대해 전문가 하위 집합이 사용되는 스파스(sparse) 아키텍처가 될 수 있다.

 

주관적인 관심사

MOE를 바라보는 개인적인 관심사는 성능이 향상된 하나의 모델이 아니라 협업과 분업이 가능한 모델 집합을 구성하려는 접근 방식이다. 때로는 agent라 불리우기도 하고 때로는 expert라고 불리우기도 한다. 이러한 추이는 과거?에 블록체인에서의 합의 알고리즘(POW, POS, DPOS, POI, POC 등)이 인류가 수 많은 시행착오를 끝에 변화하고 있는 제도와 규범에서의 합의 구조를 닮아가고 있는 것과 유사한 경향을 갖고 있다는 생각이 들었다. 인간은 자연을 벤치마킹해서 과학을 발전시키고 있다면 인공지능과 블록체인과 같은 IT 기술들은 점차 인간의 그것들을 모방하며 발전하는 모습이 루프를 형성하고 있는 느낌이라 관련 동향을 관심있게 살펴보고 있다.

 

주관적인 레퍼런스  

MoE 아키텍트의 방점은 조직화합의구조를 통한 협업이다. 개발자가 아닌 서비스 기획 측면에서의 포인트는 에이전트간 협업과 더불어 개인과의 협업, 그리고 개인의 에이전트 생성을 얼마나 심리스 Seamless하게 구성할 수 있는가 이다.

The MoE architect focuses on collaboration through organizational and consensus structures. From a service planning perspective, it is about how seamlessly you can organise collaboration between agents, collaboration with individuals and the creation of agents for individuals.

 



유사한 컨셉으로 관련 기술동향이 빠르게 변화하는 추세이다. 다만, Why와 How는 같지만 What 제공 방식과 용어는 제각각이다. 유사한 아키텍트로 구성된 다양한 제품(때론 모델, 때론 프레임워크 등) 몇가지를 정리해본다. 

 

#Chunking Strategies : Agentic Chunking(에이전트 기반 분할)

https://normalstory.tistory.com/entry/RAG-Agentic-Chunking-ing

 

LLM | Five Levels of Chunking( 스압 주의!)

1. 개요 Chunking Chunking은 고품질의 응답에 많은 영향을 미치는 중요한 과정으로써 텍스트를 관리를 쉽고, 명확하게 중요한 부분으로 나누는 과정으로 맥락의 효율적인 처리와 검색을 위해 사용

normalstory.tistory.com

 

 

#모델 베이스 내부 단위 프로세스 최적화 

LangGraph - Building language agents as graphs

 

GitHub - langchain-ai/langgraph

Contribute to langchain-ai/langgraph development by creating an account on GitHub.

github.com

 

llamaindex - Agentic strategies

 

Agentic strategies - LlamaIndex 🦙 v0.10.17

Previous Context-Augmented OpenAI Agent

docs.llamaindex.ai

 

Tencent - More Agents Is All You Need 

 

GitHub - MoreAgentsIsAllYouNeed/More-Agents-Is-All-You-Need

Contribute to MoreAgentsIsAllYouNeed/More-Agents-Is-All-You-Need development by creating an account on GitHub.

github.com

 

 

 

 

#추상화 베이스 범용 프레임워크  

AutoGen - A programming framework for agentic AI. 

 

GitHub - microsoft/autogen: A programming framework for agentic AI. Discord: https://aka.ms/autogen-dc. Roadmap: https://aka.ms/

A programming framework for agentic AI. Discord: https://aka.ms/autogen-dc. Roadmap: https://aka.ms/autogen-roadmap - microsoft/autogen

github.com

 

Crew AI - Multi AI Agents systems

 

GitHub - joaomdmoura/crewAI: Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intellig

Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks. - joaomdmoura/cr...

github.com

 

 

 

 

#코드생성 최적화 

Devika - Agentic AI Software Engineer

 

GitHub - stitionai/devika: Devika is an Agentic AI Software Engineer that can understand high-level human instructions, break th

Devika is an Agentic AI Software Engineer that can understand high-level human instructions, break them down into steps, research relevant information, and write code to achieve the given objective...

github.com

 

 

 

댓글