Flow Engineering
- 기존의 프롬프트 엔지니어링은 하나의 프롬프트 설계로 원하는 작업을 수행했었음
- Flow Engineering은 작업의 워크플로우를 설계해서 작업을 수행하는 것
- 코드 생성 작업에서 성능 향상을 보여줌
- 경쟁적 프로그래밍에서의 코드 생성 작업 능력을 평가함
- 단일 프롬프트로로의 최적화는 이 작업에서 높은 성능을 이끌어내기 어려움
- AlphaCodium은 Flow 처리 흐름 도입으로 성능 향상을 이끌어냄
AlphaCodium Flow
- AlphaCodium의 주요 Flow
-> First - 전처리 단계 : 문제의 요구사항과 세부 사항을 깊이 이해하고 분석하는 단계
-> Second - 코드 반복 생성 단계 : 코드를 생성하고 실행하고 수정하는 걸 반복하는 단계

- Flow Engineering의 등장은 LLM에게 답을 얻는 패러다임이 바뀐 것이 아니냐는 의문이 제기됨
- AlphaCodium의 주요 매커니즘은 지식 축적이다
- 탐색을 장려하고 결정은 미루며 이중 검증 프로세스를 둠
Graph of Thought
- 언어 모델의 능력 자체를 향상 시키는 기법
- LLM의 생각을 Graph의 Node로, 생각의 관계를 Edge로 표현하는 기법
- 이를 통해 다양한 생각들을 합해서 시너지를 내거나 피드백 루프를 만들어서 생각을 강화하는 것이 가능함
CoT vs ToT vs GoT
CoT
- 프롬프트 중간 추론 단계를 포함시켜 대형 언어 모델의 추론 능력을 향상시키는 기법
- 생각의 흐름을 단순히 선형적으로 일련의 단계로만 표현하며 다양한 탐색이 어려움
- 여러 가능성을 동시에 고려하거나 새로운 생각으로 통합하기에는 어려움
- 잘못된 추론 경로를 선택했을때, 그 경로에서 벗어나는 것도 어려움
ToT
- CoT를 확장해서 LLM의 추론 과정을 Tree로 표현한 기법
- 여러개의 추론 경로를 동시에 탐색하고 비효율적인 경로를 포기하는 것도 가능
- 생각을 가지고 사이클을 만드는 것, 반복적인 피드백 루프를 만드는 건 어려움
- 서로 다른 경로의 생각을 결합하는 것도 어려움
GoT
-LLM의 추론 과정을 Graph로 모델링한 기법
- 여러 경로에서 나온 생각을 결합하거나 특정 생각을 강화하는 피드백 루프로도 가능
- 생각의 부피가 가장 큰 기법임
- 여러 생각을 해보고 합치기 때문에 지연 시간이 길 수 있다
LangGraph
- Flow Enginnering과 Graph of Thought를 구현한 프레임워크
- 특정 작업을 수행하기 위한 일련의 작업 흐름을 구성할 수 있다
- 구조 :
