DataFlow ์๊ฐ
๋ฐ์ดํฐ ์ค์ฌ AI๋ก์ ํจ๋ฌ๋ค์ ์ ํ๊ณผ ํ์ค์ ์ธ ๋ฌธ์ ์
์ธ๊ณต์ง๋ฅ ์ฐ๊ตฌ์ ํ๋ฆ์ ๋ชจ๋ธ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๋ '๋ชจ๋ธ ์ค์ฌ(Model-Centric)' ์ ๊ทผ ๋ฐฉ์์์, ๋ชจ๋ธ์ ํ์ต์ํค๋ ๋ฐ์ดํฐ์ ํ์ง์ ๋์ด๋ '๋ฐ์ดํฐ ์ค์ฌ(Data-Centric)' ์ ๊ทผ ๋ฐฉ์์ผ๋ก ๊ธ๊ฒฉํ๊ฒ ์ด๋ํ๊ณ ์์ต๋๋ค. GPT ์๋ฆฌ์ฆ์ ์ฑ๊ณต ์ดํ ํ๋ฆฝ๋ ์ค์ผ์ผ๋ง ๋ฒ์น(Scaling Law)์ ๋ฐ์ดํฐ์ ์๊ณผ ์ง์ด ๋ชจ๋ธ ์ฑ๋ฅ์ ์ํ์ ์ ๊ฒฐ์ ํ๋ค๋ ๊ฒ์ ์ํ์ , ๊ฒฝํ์ ์ผ๋ก ์ฆ๋ช ํด ๋์ต๋๋ค. ํนํ, ์ต๊ทผ์ LLM ๊ฐ๋ฐ์ ์ ์กฐ ํ ํฐ์ ๋ฌํ๋ ๋๊ท๋ชจ ์ฝํผ์ค๋ฅผ ๋ค๋ฃจ๋ฉฐ, ๋จ์ํ ํ ์คํธ ์์ง์ ๋์ด ํฉ์ฑ(Synthetic), ์ ์ (Refinement), ํํฐ๋ง(Filtering), ๊ทธ๋ฆฌ๊ณ ๋๋ฉ์ธ ํนํ ๋ณํ๊ณผ ๊ฐ์ ๋ณต์กํ ๋ค๋จ๊ณ ํ์ดํ๋ผ์ธ์ ์๊ตฌํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ์ค์์ฑ์๋ ๋ถ๊ตฌํ๊ณ , ์ค์ ํ์ ์์์ ๋ฐ์ดํฐ ์ค๋น ๊ณผ์ ์ ๋๋ผ์ธ ์ ๋๋ก ํํธํ๋์ด ์์ต๋๋ค. ๋ง์ ์ฐ๊ตฌ์์ ์์ง๋์ด๋ค์ ์ฌ์ ํ ํ๋ก์ ํธ๋ง๋ค ์ผํ์ฑ ์คํฌ๋ฆฝํธ(Ad-hoc scripts)๋ฅผ ์์ฑํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์์ผ๋ฉฐ, ์ด๋ ๋ช ํํ ์ถ์ํ๋ ํ์คํ๋ ์ํฌํ๋ก์ฐ์ ๋ถ์ฌ๋ก ์ด์ด์ง๋๋ค. ์ด๋ฌํ ์ฃผ๋จน๊ตฌ๊ตฌ์ ๋ฐฉ์์ ์ฌํ์ฑ์ ์ ํดํ๊ณ , ํ์ดํ๋ผ์ธ์ ํ์ฅ์ ์ด๋ ต๊ฒ ํ๋ฉฐ, ๋ชจ๋ธ์ด ๋ฐ์ดํฐ ์์ฑ ๊ณผ์ ์ ๊ฐ์ ํ๋ Model-in-the-loop ๋ฐฉ์์ ๊ตฌํํ๋ ๋ฐ ํฐ ๊ฑธ๋ฆผ๋์ด ๋ฉ๋๋ค. ๋ํ, ์ธ์คํธ๋ญ์ ํ๋(Instruction Tuning)์ด๋ ์ฌ๊ณ ์ฌ์ฌ(Chain-of-Thought) ์์ฑ๊ณผ ๊ฐ์ด ๋ฏธ์ธํ ์๋ฏธ๋ก ์ ์ ํ์ฑ์ด ์๊ตฌ๋๋ ์์ ์์๋ ์ด๋ฌํ ๋นํ์คํ๋ ์ ๊ทผ ๋ฐฉ์์ด ์น๋ช ์ ์ธ ์ฑ๋ฅ ์ ํ๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค.
๊ธฐ์กด ์์คํ ์ ํ๊ณ์ DataFlow์ ์ฐจ๋ณ์
๋ฌผ๋ก ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด NeMo Curator๋ Data-Juicer์ ๊ฐ์ ์์คํ ๋ค์ด ๋ฑ์ฅํ์ต๋๋ค. ์ด๋ค์ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์ถ์ถ, ์ค๋ณต ์ ๊ฑฐ, ๋ถ๋ฅ ์์ ๋ฑ์์ ํ๋ฅญํ ์ฑ๋ฅ์ ๋ฐํํ๋ฉฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํจ์จ์ฑ์ ํฌ๊ฒ ๋์์ต๋๋ค. ํ์ง๋ง ์ด๋ค ์์คํ ์ ๊ทผ๋ณธ์ ์ผ๋ก '์ถ์ถ(Extraction)'๊ณผ 'ํํฐ๋ง(Filtering)'์ ์ด์ ์ ๋ง์ถ๊ณ ์ค๊ณ๋์์ต๋๋ค. ์ฆ, ์ด๋ฏธ ์กด์ฌํ๋ ๋ฐ์ดํฐ์์ ๋์ ๊ฒ์ ๊ฑธ๋ฌ๋ด๋ ๋ฐ์๋ ์ ์ฉํ์ง๋ง, ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด๋ด๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ๋ก ์ ์ผ๋ก ๋ณํํ๋ ๋ฐ์๋ ํ๊ณ๊ฐ ์์ต๋๋ค.
์ต๊ทผ์ ์ฐ๊ตฌ ํธ๋ ๋๋ LLM์ด ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ์๋นํ๋ ์ฃผ์ฒด๋ฅผ ๋์ด, ๊ณ ํ์ง ๋ฐ์ดํฐ๋ฅผ ์์ฐํ๋ ์ฃผ์ฒด๋ก ํ์ฉ๋๋ ๊ฒ์ ๋๋ค. ์ธ๊ฐ์ ์ํ ๋ฐ์ดํฐ ๋ผ๋ฒจ๋ง์ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ํ์ฅ์ฑ์ด ๋ฎ๊ธฐ ๋๋ฌธ์, LLM์ ์ด์ฉํ ๋ฐ์ดํฐ ํฉ์ฑ(Data Synthesis)์ด ํ์์ ์ธ ์์๋ก ์๋ฆฌ ์ก์์ต๋๋ค. ์ด์ ๋์ํ๊ธฐ ์ํด DataFlow๋ LLM ์ฃผ๋ ๋ฐ์ดํฐ ํฉ์ฑ์ ์ต์ฐ์ ์์๋ก ๋๋ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅํ ๋ฐ์ดํฐํ๋ก์ฐ ์ถ์ํ(Programmable Dataflow Abstraction)๋ฅผ ์ ์ํฉ๋๋ค. DataFlow๋ ๋ฏธ์ธํ ์ ์ด๊ฐ ๊ฐ๋ฅํ ์ฐ์ฐ์(Operator)๋ฅผ ์ ๊ณตํ๊ณ , ๋ช ์์ ์ด๊ณ ๊ฒ์ฆ ๊ฐ๋ฅํ ํ์ดํ๋ผ์ธ ์ ์๋ฅผ ์ง์ํ๋ฉฐ, ๋ค์ํ LLM ๋ฐฑ์๋์ ์คํ ๋ฆฌ์ง์ ๊ตฌ์ ๋ฐ์ง ์๋ ์ ์ฐ์ฑ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ค๋น ๊ณผ์ ์ ๋จ์ํ ์ ์ฒ๋ฆฌ๊ฐ ์๋, ๊ณ ํ์ง์ ํฉ์ฑ ์ฝํผ์ค๋ฅผ ๊ตฌ์ถํ๋ ํต์ฌ ์์ง๋์ด๋ง ๋จ๊ณ๋ก ๊ฒฉ์์ํค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
DataFlow ๊ฐ์ ๋ฐ ๊ตฌ์กฐ
DataFlow๋ ๋จ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ, ๋ฐ์ดํฐ ์ค๋น์ ์ ์ฒด ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์๋ํํ๋ ํฌ๊ด์ ์ธ ์์คํ ์ผ๋ก, ๋ค์ ์ฌ์ฏ๊ฐ์ง ํต์ฌ ์ฒ ํ์ ๋ฐํ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค:
-
์ฌ์ฉ ํธ์์ฑ(Ease of Use): PyTorch์์ ์๊ฐ์ ๋ฐ์ IDE ์นํ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ, ์ฌ์ฉ์๊ฐ ์ต์ํ์ ์์ฉ๊ตฌ(boilerplate) ์ฝ๋๋ง์ผ๋ก ๋ณต์กํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ณ ๋๋ฒ๊น ํ ์ ์๋๋ก ํฉ๋๋ค.
-
ํ์ฅ์ฑ(Extensibility):
torch.nn.Module๊ณผ ์ ์ฌํ ๋ชจ๋ํ ์ถ์ํ๋ฅผ ๋ฐ๋ฅด๋ฉฐ, ์๋ก์ด ์ฐ์ฐ์๋ ์๊ณ ๋ฆฌ์ฆ์ 'ํ๋ฌ๊ทธ ์ค ํ๋ ์ด(plug-and-play)' ์ปดํฌ๋ํธ์ฒ๋ผ ์ถ๊ฐํ์ฌ ๊ธฐ์กด ์ํฌํ๋ก์ฐ์ ์์ฐ์ค๋ฝ๊ฒ ๊ฒฐํฉํ ์ ์์ต๋๋ค. -
ํตํฉ๋ ํจ๋ฌ๋ค์(Unified Paradigm): ์ด์ง์ ์ธ ๋ฐ์ดํฐ ์ค๋น ์ํฌํ๋ก์ฐ๋ค์ ํ์คํ๋ ์ถ์ํ ๊ณ์ธต์ผ๋ก ํตํฉํฉ๋๋ค. ์ด๋ ์ผ๊ด์ฑ๊ณผ ์ฌํ์ฑ์ ๋ณด์ฅํ๋ 'ํ์คํ'์ ๋๋ฉ์ธ๋ณ๋ก ํ์ํ '์ปค์คํฐ๋ง์ด์ง' ์ฌ์ด์ ๊ท ํ์ ๋ง์ถฐ, ํ์ดํ๋ผ์ธ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฌ์ฉํ๊ณ ์กฐ์ ํ ์ ์๊ฒ ํฉ๋๋ค.
-
ํจ์จ์ฑ(Performance Efficiency): DataFlow์ ๊ณต์ ํ์ดํ๋ผ์ธ๋ค์ ์ต์ (SOTA) ๋ฐ์ดํฐ ์ค๋น ๋ฐฉ๋ฒ๋ค๊ณผ ๋๋ฑํ๊ฑฐ๋ ๊ทธ ์ด์์ ์ฑ๋ฅ์ ๋ฌ์ฑํ๋ฉฐ, ์ด๋ฌํ ์์คํ ํตํฉ์ด ์ค์ง์ ์ธ ์ฑ๋ฅ ์ค๋ฒํค๋๋ฅผ ๋ฐ์์ํค์ง ์์์ ์ ์ฆํฉ๋๋ค.
-
์ง๋ฅํ ์๋ํ(Intelligent Automation): ๊ฒฝ๋ํ๋ ์์ด์ ํธ ์๋ธ์์คํ ์ ํ์ฉํด ์์ฐ์ด๋ก ๋ ์ฌ์ฉ์ ์๋๋ฅผ ํด์ํ๊ณ , ์ฐ์ฐ์์ ํ์ดํ๋ผ์ธ์ ์๋์ผ๋ก ๊ตฌ์ฑํ๊ฑฐ๋ ์กฐ์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ ์ง์ํ๊ณ ์๋ ์์ง๋์ด๋ง ์์ ์ ์ค์ฌ์ค๋๋ค.
-
์คํ์์ค ์ํ๊ณ ๊ตฌ์ถ(Open Source Paradigm): DataFlow๋ LLM ๋ฐ์ดํฐ ์ค๋น๋ฅผ ์ํ ์ปค๋ฎค๋ํฐ ํ์ค์ด ๋๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ํตํฉ๋ ์ถ์ํ๋ฅผ ํตํด ํ์ดํ๋ผ์ธ์ ์ฌํ ๊ฐ๋ฅํ๊ฒ ๊ณต์ ํ๊ณ , LLM ๋ฐฑ์๋๋ฅผ ํฌ๋ช ํ๊ฒ ๊ต์ฒดํ๋ฉฐ, ํต์ ๋ ์คํ์ ์ํํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
DataFlow์ ์์คํ ์ํคํ ์ฒ
DataFlow์ ์ํคํ ์ฒ๋ ํฌ๊ฒ ๋ค ๊ฐ์ง์ ์ฃผ์ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ๊ฐ ๊ณ์ธต์ ๋ ๋ฆฝ์ ์ด๋ฉด์๋ ์ ๊ธฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํจ์จ์ฑ์ ๊ทน๋ํํฉ๋๋ค.
๋จผ์ , DataFlow-Core(ํต์ฌ ์์ง) ๊ณ์ธต์ด ์์ต๋๋ค. DataFlow-Core ๊ณ์ธต์ ์์คํ ์ ์คํ ๊ธฐํ ์ญํ ์ ํ๋ฉฐ, ์คํ ๋ฆฌ์ง ์ถ์ํ, LLM ์๋น, ์ฐ์ฐ์(Operator), ํ๋กฌํํธ ํ ํ๋ฆฟ(Prompt Template)์ ํฌํจํฉ๋๋ค. ์ด๋ค์ ๋ฐ์ดํฐ ๋ณํ์ด ์คํ๋๋ ๋ฌผ๋ฆฌ์ , ๋ ผ๋ฆฌ์ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค. ํนํ LLM ์๋น ๊ณ์ธต์ vLLM์ด๋ SGLang ๊ฐ์ ๋ก์ปฌ ๊ณ ์ ์ถ๋ก ์์ง๊ณผ Gemini, ChatGPT ๊ฐ์ ์๊ฒฉ API๋ฅผ ํตํฉํ์ฌ, ์ฌ์ฉ์๊ฐ ๋ฐฑ์๋ ์ธํ๋ผ์ ์ฐจ์ด๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ๋์ผํ ์ฝ๋๋ก ๋ชจ๋ธ์ ํธ์ถํ ์ ์๊ฒ ํฉ๋๋ค.
๋ค์์ผ๋ก๋ Pipeline Zoo(ํ์ดํ๋ผ์ธ ์ ์ฅ์) ๊ณ์ธต์ด ์กด์ฌํฉ๋๋ค. Pipeline Zoo์์๋ ํ ์คํธ ์ฒ๋ฆฌ, ์ํ์ ์ถ๋ก , ์ฝ๋ ์์ฑ, Text-to-SQL, ์์ด์ ํธ RAG ๋ฑ ๋ค์ํ ๋๋ฉ์ธ์ ๋ํด ๋ฏธ๋ฆฌ ์ ์๋ ์ต์ฒจ๋จ(SOTA) ํ์ดํ๋ผ์ธ๋ค์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ฌ์ฉ์๋ค์ ์ด ํ์ดํ๋ผ์ธ์ ๊ทธ๋๋ก ์ฌ์ฉํ๊ฑฐ๋, ์์ ์ ๋ชฉ์ ์ ๋ง๊ฒ ์์ ํ์ฌ ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ธ๋ฒ์งธ๋ Control Layer(์ ์ด ๊ณ์ธต) ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ์์คํ ๊ณผ ์ํธ์์ฉํ๋ ์ ์ ์ผ๋ก, DataFlow-CLI(Command-Line Interface) ๋ฐ DataFlow-Agent๊ฐ ์ฌ๊ธฐ์ ํด๋นํฉ๋๋ค. DataFlow-CLI๋ ๋ช ์์ ์ธ ๋ช ๋ น์ ํตํด ํ์ดํ๋ผ์ธ์ ์คํํ๊ณ ํ์ฅ ํจํค์ง์ ๋ผ๋(Scaffolding)๋ฅผ ์์ฑํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ฉฐ, DataFlow-Agent๋ ์์ฐ์ด ๋ช ๋ น์ ํด์ํ์ฌ ํ์ดํ๋ผ์ธ์ ์๋์ผ๋ก ์์ฑํ๊ณ ๋๋ฒ๊น ํ๋ ์ญํ ์ ์ํํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก๋ DataFlow-Ecosystem(ํ์ฅ ์ํ๊ณ) ๊ฐ ์์ต๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์ง์ ๊ฐ๋ฐํ ์ฐ์ฐ์๋ ํ์ดํ๋ผ์ธ์ Python ํจํค์ง ํํ๋ก ๋ฐฐํฌํ๊ณ ๊ณต์ ํ ์ ์๋ ๋ฉ์ปค๋์ฆ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฅผ ํตํด DataFlow๋ ์ ์ฒด๋ ์์คํ ์ด ์๋๋ผ ์ปค๋ฎค๋ํฐ์ ํจ๊ป ์งํํ๋ ํ๋ซํผ์ด ๋ฉ๋๋ค.
์ํฌํ๋ก์ฐ ์คํ ํ๋ก์ธ์ค
DataFlow์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ๋ฆ์ ์ ๋ ฅ์์ ์ถ๋ ฅ๊น์ง ์ผ๊ด๋ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค. ์์คํ ์ JSON, Parquet, SQL ๋ก๊ทธ, ์ฝ๋ ์ ์ฅ์, PDF ๋ฑ ๋ค์ํ ํ์์ ์์ฒ ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ ๋ด๋ถ์ ์ผ๋ก ํต์ผ๋ ํ(Tabular) ํ์์ผ๋ก ๋ณํํฉ๋๋ค. ์ดํ ์ฌ์ฉ์๊ฐ ์ ์ํ๊ฑฐ๋ ์์ด์ ํธ๊ฐ ์์ฑํ ํ์ดํ๋ผ์ธ์ ๋ฐ๋ผ ์ฐ์ฐ์๋ค์ด ์์ฐจ์ ์ผ๋ก ์คํ๋ฉ๋๋ค. ๊ฐ ์ฐ์ฐ์๋ ๊ณต์ ์คํ ๋ฆฌ์ง์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ๋ณํ ์์ ์ ์ํํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์คํ ๋ฆฌ์ง์ ๊ธฐ๋กํฉ๋๋ค. ์ด ๊ณผ์ ์์ LLM์ ์ถ๋ก ์ด ํ์ํ ๊ฒฝ์ฐ ํตํฉ ์๋น ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋ชจ๋ธ์ ํธ์ถํฉ๋๋ค. ์ต์ข ์ ์ผ๋ก ์์ฑ๋ ๋ฐ์ดํฐ์ ์ ๊ณ ํ์ง์ ํ์ต ๋ฐ์ดํฐ๋ก์ ๋ค์ด์คํธ๋ฆผ LLM ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฆ์ ํฌ์ ๋ ์ ์์ต๋๋ค.
DataFlow ํ๋ ์์ํฌ ์ค๊ณ ๋ฐ ๊ตฌํ ์์ธ
DataFlow๊ฐ ๊ธฐ์กด ์์คํ ๊ณผ ๊ฐ์ฅ ์ฐจ๋ณํ๋๋ ์ง์ ์ ๋ฐ๋ก ์ถ์ํ(Abstraction)์ ๋ชจ๋ํ(Modularity)์ ๊น์ด์ ๋๋ค. ์ฌ๊ธฐ์์๋ DataFlow์ ๊ธฐ์ ์ ์ค๊ณ๋ฅผ ๊ตฌ์ฑํ๋ ๋ค ๊ฐ์ง ๊ธฐ๋ฅ(Architectural Pillars)์ ๋ํด์ ์ดํด๋ณด๊ฒ ์ต๋๋ค:
-
์ ์ญ ์คํ ๋ฆฌ์ง ์ถ์ํ (Global Storage Abstraction): ๋ฐ์ดํฐ์ ์ ํ์ค์ ์ธ ํ(tabular) ํ์์ ์ ์ง ๊ด๋ฆฌํ๋ฉฐ, ์์คํ ๋ด์์ ์ด๋ฃจ์ด์ง๋ ๋ชจ๋ ๋ฐ์ดํฐ ์ ๊ทผ์ ์ค์ฌํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์ฐ์ฐ์ ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ์ผ๊ด๋ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ณด์ฅํฉ๋๋ค.
-
๊ณ์ธต์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค (Hierarchical Programming Interfaces): LLM ์๋น(Serving), ์ฐ์ฐ์(Operators), ํ๋กฌํํธ ํ ํ๋ฆฟ, ๊ทธ๋ฆฌ๊ณ ํ์ดํ๋ผ์ธ์ ์ ์ํ๊ธฐ ์ํ ์ผ๋ จ์ ๊ณ์ธตํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ฒด๊ณ์ ์ผ๋ก ๋ฐ์ดํฐ ์ค๋น ๋ก์ง์ ์์ฑํ ์ ์์ต๋๋ค.
-
์์น์ ๊ธฐ๋ฐํ ์ฐ์ฐ์ ๋ถ๋ฅ ์ฒด๊ณ (Principled Operator Categorization Scheme): ๋ฌดํํ ํ์ฅ๋ ์ ์๋ ๋ค์ํ ๋๋ฉ์ธ์ ์๊ตฌ์ฌํญ๊ณผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์์์ ํต์ฌ ๋ณํ ํ๋ฆฌ๋ฏธํฐ๋ธ(primitives) ์ฌ์ด์ ๊ท ํ์ ๋ง์ถ๊ธฐ ์ํ ์ฒด๊ณ์ ์ธ ๋ถ๋ฅ ๋ฐฉ์์ ์ ์ฉํฉ๋๋ค.
-
ํ์ฅ ๋ฉ์ปค๋์ฆ (Extension Mechanism): ์ฌ์ฉ์๊ฐ ์ง์ ๊ฐ๋ฐํ ์ปดํฌ๋ํธ๋ค์ ํตํด ์ํ๊ณ๊ฐ ์ง์์ ์ผ๋ก ์ฑ์ฅํ ์ ์๋๋ก ์ง์ํ๋ ํ์ฅ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ์คํ ๋ฆฌ์ง ์ถ์ํ (Global Storage Abstraction)
๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์คํ
์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ฐ์ดํฐ์ ํ๋ฆ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์
๋๋ค. DataFlow๋ ์ด๋ฅผ ์ํด DataFlowStorage ๋ผ๋ ์ ์ญ ์คํ ๋ฆฌ์ง ์ถ์ํ ๊ณ์ธต์ ๋์
ํ์ต๋๋ค. ์ด ์ถ์ํ๋ ๋ฐ์ดํฐ์
์ ํ์คํ๋ ํ(Tabular) ํ์์ผ๋ก ์ ์ง ๊ด๋ฆฌํ๋ฉฐ, ์์คํ
๋ด์ ๋ชจ๋ ๋ฐ์ดํฐ ์ ๊ทผ์ ์ค์ฌํฉ๋๋ค. LLM ํ์ต ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์ธ์คํธ๋ญ์
, ์๋ต, ์ ์, ๋ฉํ๋ฐ์ดํฐ ๋ฑ์ ํ๋๋ก ๊ตฌ์ฑ๋๋ฏ๋ก, ์ด๋ฌํ ํ ํ์์ ๋งค์ฐ ์ ํฉํ ์๋ฃ ๊ตฌ์กฐ์
๋๋ค.
DataFlowStorage๋ ๋ฌผ๋ฆฌ์ ์ธ ์ ์ฅ ๋ฐฉ์(ํ์ผ ์์คํ
, ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ)๊ณผ ์ฐ์ฐ์์ ๋ก์ง์ ์ฒ ์ ํ ๋ถ๋ฆฌํฉ๋๋ค. ์ฆ, ์ฐ์ฐ์๋ ๋ฐ์ดํฐ๊ฐ ์ค์ ๋ก ์ด๋์ ์ ์ฅ๋์ด ์๋์ง ์ ํ์๊ฐ ์์ผ๋ฉฐ, ์ค์ง read() ์ write() ๋ผ๋ ๋ ๊ฐ์ง ๋ฉ์๋๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ํธ์์ฉํฉ๋๋ค. read()๋ ํ์ฌ ๋ฐ์ดํฐ์
์ ์ฐ์ฐ์๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ํํ๋ก ๊ฐ์ ธ์ค๊ณ , write()๋ ์ฒ๋ฆฌ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ฐ์ดํฐ์
์ ์
๋ฐ์ดํธํ๊ฑฐ๋ ์ถ๊ฐํฉ๋๋ค.
์ด๋ ๊ฒ ๋ชจ๋ ์ฐ์ฐ์๋ read-transform-write ํจํด์ ๋ฐ๋ฅด๊ฒ ๋๋ฉฐ, ๋๋ถ์ ๊ฐ๋ฐ์๋ ์คํ ๋ฆฌ์ง ๋ฐฑ์๋๋ฅผ Pandas DataFrame์์ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ณ๊ฒฝํ๋๋ผ๋ ์ฐ์ฐ์ ์ฝ๋๋ฅผ ์ ํ ์์ ํ ํ์๊ฐ ์๊ฒ ๋ฉ๋๋ค.
๊ณ์ธต์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค (Hierarchical Programming Interfaces)
DataFlow๋ ๊ฐ๋ฐ์์๊ฒ ์ต์ํ๊ณ ์ง๊ด์ ์ธ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํด PyTorch์ ์ ์ฌํ ๊ณ์ธต์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์ฑํํ์ต๋๋ค. ์ด๋ ํฌ๊ฒ LLM ์๋น, ์ฐ์ฐ์, ํ๋กฌํํธ ํ ํ๋ฆฟ, ํ์ดํ๋ผ์ธ ์ธํฐํ์ด์ค๋ก ๋๋ฉ๋๋ค.
LLM ์๋น(LLM Serving API): ๋ค์ํ LLM์ ๋ค๋ฃจ๋ ๊ฒ์ ๋ณต์กํ ์ผ์
๋๋ค. ๊ฐ๊ธฐ ๋ค๋ฅธ API ์๋ํฌ์ธํธ, ์์ฒญ ํ์, ์๋ ์ ํ ๋ฑ์ ๊ด๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค. DataFlow๋ ์ด๋ฅผ generate_from_input(user_inputs, system_prompt, json_schema) ๋ผ๋ ๋จ์ผ ํจ์๋ก ์ถ์ํํ์ต๋๋ค. ์ด generate_from_input() ํจ์๋ ๋ฐฐ์น ์ฒ๋ฆฌ, ์ฌ์๋ ์ ๋ต, ์์ฒญ ๋ผ์ฐํ
๊ณผ ๊ฐ์ ๋ณต์กํ ๋ก์ง์ ๋ด๋ถ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์ฌ์ฉ์๋ ๋จ์ํ ์
๋ ฅ ํ
์คํธ์ ์์คํ
ํ๋กฌํํธ๋ง ์ ๊ณตํ๋ฉด ๋๋ฉฐ, ๋ก์ปฌ GPU์์ ์คํ๋๋ vLLM๊ณผ ๊ฐ์ ๋ก์ปฌ ์ถ๋ก ์์ง(Local Inference Engine)์ ์ฌ์ฉํ๋ , ์๊ฒฉ์ GPT-4 API์ ๊ฐ์ API ๊ธฐ๋ฐ์ ์๋น์ค(Online API-based Service)๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋๋ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค. ์ด๋ ์คํ ํ๊ฒฝ๊ณผ ๋ฐฐํฌ ํ๊ฒฝ ๊ฐ์ ๊ฐ๊ทน์ ์ค์ฌ์ฃผ๋ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ์
๋๋ค.
์ฐ์ฐ์ ์ธํฐํ์ด์ค(Operator Programming Interface): ์ฐ์ฐ์(Operator)๋ DataFlow์ ๊ธฐ๋ณธ ์ฒ๋ฆฌ ๋จ์์
๋๋ค. ๋ชจ๋ ์ฐ์ฐ์๋ ์ด๊ธฐํ ๋จ๊ณ(__init__ )์ ์คํ ๋จ๊ณ(run )๋ก ๋ช
ํํ ๊ตฌ๋ถ๋ฉ๋๋ค. ์ด๊ธฐํ ๋จ๊ณ์์๋ ํ์ดํผํ๋ผ๋ฏธํฐ ์ค์ , LLM ์๋น ๊ฐ์ฒด ์ฐ๊ฒฐ, ํ๋กฌํํธ ํ
ํ๋ฆฟ ๋ก๋ฉ๊ณผ ๊ฐ์ ์ ์ ์ธ ๊ตฌ์ฑ์ ์ํํฉ๋๋ค. ๋ฐ๋ฉด, ์คํ ๋จ๊ณ์์๋ ์ค์ ๋ฐ์ดํฐ ๋ณํ ๋ก์ง๋ง์ ์ํํฉ๋๋ค.
์ฐ์ฐ์ ์ธํฐํ์ด์ค์์ ํนํ ์ฃผ๋ชฉํ ๋งํ ์ ์ ์ฐ์ฐ์์ ์ ์ฐํ ์
์ถ๋ ฅ ๋ฐ์ธ๋ฉ(Key-Binding) ๋ฐฉ์์
๋๋ค. ์ฐ์ฐ์์ run() ๋ฉ์๋๋ ์ ์ฒด ๋ฐ์ดํฐ์
๊ณผ ํจ๊ป input_key ์ output_key ๋งคํ ์ ๋ณด๋ฅผ ์ธ์๋ก ๋ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ์
์๋ "question"์ด๋ผ๋ ์ปฌ๋ผ์ด ์๊ณ , ์ฐ์ฐ์๋ "prompt"๋ผ๋ ์
๋ ฅ์ ๊ธฐ๋ํ๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค. ๊ธฐ์กด ๋ฐฉ์์ด๋ผ๋ฉด ๋ฐ์ดํฐ์
์ ์ปฌ๋ผ๋ช
์ ๋ณ๊ฒฝํด์ผ ํ๊ฒ ์ง๋ง, DataFlow์์๋ ์คํ ์์ ์ input_key={"prompt": "question"}์ด๋ผ๊ณ ์ง์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด๋ ์ฐ์ฐ์์ ์ฌ์ฌ์ฉ์ฑ์ ๊ทน๋ํํ๊ณ , ์๋ก ๋ค๋ฅธ ์คํค๋ง๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ์
๋ค์ ์ ์ฐํ๊ฒ ์ฐ๊ฒฐํ ์ ์๊ฒ ํด์ค๋๋ค.
ํ๋กฌํํธ ํ
ํ๋ฆฟ(Prompt Template Interface): ๋ง์ LLM ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ก์ง๊ณผ ํ๋กฌํํธ๊ฐ ๋ค์์ฌ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. DataFlow๋ ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ํ๋กฌํํธ ํ
ํ๋ฆฟ์ ๋ณ๋์ ์ธํฐํ์ด์ค๋ก ๋ถ๋ฆฌํ์ต๋๋ค. PromptTemplate ํด๋์ค๋ build_prompt() ๋ฉ์๋๋ฅผ ํตํด ์
๋ ฅ ๋ฐ์ดํฐ์ ์คํค๋ง ์ ๋ณด๋ฅผ ๊ฒฐํฉํ์ฌ ์ต์ข
ํ๋กฌํํธ๋ฅผ ์์ฑํ๋ ์ญํ ์ ์ ๋ดํฉ๋๋ค.
์ด๋ฌํ ๋ถ๋ฆฌ๋ ์์ฒญ๋ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Text-to-SQL ์์
์ ์ํํ๋ SQLGenerator ์ฐ์ฐ์๊ฐ ์๋ค๊ณ ํฉ์๋ค. MySQL์ ์ํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๋์ SQLite๋ฅผ ์ํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๋, ์ฐ์ฐ์์ ๋ด๋ถ ๋ก์ง(๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , ๋ชจ๋ธ์ ํธ์ถํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ๊ณผ์ )์ ๋์ผํฉ๋๋ค. ์ฐจ์ด๋ ์ค์ง ํ๋กฌํํธ ๋ด์ฉ๋ฟ์
๋๋ค. DataFlow์์๋ ์ฐ์ฐ์ ์ฝ๋๋ ๊ทธ๋๋ก ๋๊ณ , ํ๋กฌํํธ ํ
ํ๋ฆฟ ๊ฐ์ฒด๋ง ๊ต์ฒดํจ์ผ๋ก์จ ์ด๋ฅผ ์์ฝ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค.
ํ์ดํ๋ผ์ธ ์ธํฐํ์ด์ค(Pipeline Composition Interface): ํ์ดํ๋ผ์ธ ์ธํฐํ์ด์ค๋ ์ฐ์ฐ์๋ค์ ์กฐ๋ฆฝํ์ฌ ์ ์ฒด ์ํฌํ๋ก์ฐ๋ฅผ ์ ์ํ๋ ๊ณณ์
๋๋ค. PyTorch์ nn.Module ๊ณผ ์ ์ฌํ๊ฒ, Pipeline ํด๋์ค๋ฅผ ์์๋ฐ์ __init__ ์์ ํ์ํ ์ฐ์ฐ์๋ค์ ์ ์ธํ๊ณ , forward() ๋ฉ์๋์์ ์ด๋ค์ ์คํ ์์๋ฅผ ์ ์ํฉ๋๋ค.
ํ์ดํ๋ผ์ธ์ ๋จ์ํ ์์ฐจ์ ์ธ ์คํ๋ฟ๋ง ์๋๋ผ, compile() ๋ฉ์๋๋ฅผ ํตํ ์ ์ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ปดํ์ผ ๋จ๊ณ์์๋ ์ฐ์ฐ์ ๊ฐ์ ์์กด์ฑ ๊ทธ๋ํ(DAG)๋ฅผ ๊ตฌ์ฑํ๊ณ , ํ์ํ ๋ฐ์ดํฐ ์ปฌ๋ผ์ด ์ด์ ๋จ๊ณ์์ ์์ฑ๋์๋์ง, ํ์
์ ๋ง๋์ง ๋ฑ์ ์คํ ์ ์ ๊ฒ์ฆํฉ๋๋ค. ๋ํ, '์ง์ฐ๋ ์คํ ๊ณํ(Deferred Execution Plan)'์ ์์ฑํ์ฌ, ๊ธด ์๊ฐ์ด ์์๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์
์ค๊ฐ์ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ํน์ ์ง์ ๋ถํฐ ์ฌ๊ฐ(Resume)ํ๋ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ด๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ํ์์ ์ธ ๊ธฐ๋ฅ์
๋๋ค.
์ฐ์ฐ์์ ์ฒด๊ณ์ ๋ถ๋ฅ(Operator Categorization)
DataFlow๋ ์ฝ 200๊ฐ์ ๋ฌํ๋ ๋ฐฉ๋ํ ์ฐ์ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ฌ์ฉ์๊ฐ ์ฝ๊ฒ ์ฐพ์ ์ ์๋๋ก ํ๊ธฐ ์ํด, DataFlow๋ ๋ค์ฐจ์์ ์ธ ๋ถ๋ฅ ์ฒด๊ณ๋ฅผ ๋์ ํ์ต๋๋ค.
์ฒซ ๋ฒ์งธ ์ฐจ์์ ๋ชจ๋ฌ๋ฆฌํฐ(Modality) ์ ๋๋ค. ํ ์คํธ, ์ด๋ฏธ์ง, ๋ฌธ์ ๋ฑ ๋ฐ์ดํฐ์ ์ ํ์ ๋ฐ๋ผ ์ฐ์ฐ์๋ฅผ ๋ถ๋ฅํฉ๋๋ค. ์ด๋ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์์ ์ฒ๋ฆฌํ๋ ์ฐ์ฐ์๊ฐ ์๋ชป ์ฐ๊ฒฐ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
๋ ๋ฒ์งธ ์ฐจ์์ ๋๋ฉ์ธ(Core vs Domain) ์ ๋๋ค. ์์คํ ์ ๊ธฐ๋ณธ ์ฒ ํ์ ๊ตฌํํ๋ ํต์ฌ ์ฐ์ฐ์(Core)์ ํน์ ๋ถ์ผ์ ํนํ๋ ๋๋ฉ์ธ ์ฐ์ฐ์(Domain)๋ฅผ ๊ตฌ๋ถํ์ฌ, ์์คํ ์ ์์ ์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์์ ํ๋ณดํฉ๋๋ค.
์ธ ๋ฒ์งธ์ด์ ๊ฐ์ฅ ์ค์ํ ์ฐจ์์ ๊ธฐ๋ฅ(Functionality) ์ ๋ฐ๋ฅธ ๋ถ๋ฅ์ ๋๋ค. ์ด๋ DataFlow๊ฐ ์ถ๊ตฌํ๋ ์์ฑ-ํ๊ฐ-ํํฐ๋ง-์ ์ (Generate-Evaluate-Filter-Refine) ํจ๋ฌ๋ค์์ ๋ฐ์ํฉ๋๋ค.
DataFlow๊ฐ ์ถ๊ตฌํ๋ ์์ฑ-ํ๊ฐ-ํํฐ๋ง-์ ์ (Generate-Evaluate-Filter-Refine) ํจ๋ฌ๋ค์์ ๊ตฌ์ฒดํํ๊ธฐ ์ํด, ๊ฐ๊ฐ ๋ช ํํ ์๋ฏธ๋ก ๊ณผ ๋ช ๋ช ๊ท์น์ ๊ฐ์ง ๋ค์๊ณผ ๊ฐ์ ๋ค ๊ฐ์ง ์ฐ์ฐ์ ๋ฒ์ฃผ๋ฅผ ์ ์ํฉ๋๋ค:
- ์์ฑ(Generate): ๋ฐ์ดํฐ์ ํ(Row)์ด๋ ์ด(Column)์ ์ถ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด
AnswerGenerator๋ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ์์ฑํ์ฌ ์ด์ ์ถ๊ฐํ๊ณ ,RowGenerator๋ ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐํ์ฌ ํ์ ๋๋ฆฝ๋๋ค. - ํ๊ฐ(Evaluate): ๋ฐ์ดํฐ์ ํ์ง, ๋์ด๋, ์ ํ์ฑ ๋ฑ์ ์ ์ํํฉ๋๋ค.
SampleEvaluator๋ ๊ฐ๋ณ ์ํ์ ํ๊ฐํ๊ณ ,DatasetEvaluator๋ ์ ์ฒด ๋ฐ์ดํฐ์ ์ ํต๊ณ๋ฅผ ์ฐ์ถํฉ๋๋ค. - ํํฐ๋ง(Filter): ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ๊ธฐ์ค์ ๋ฏธ๋ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ์ ํ์ง ๋ฐ๋๋ฅผ ๋์ด๋ ํต์ฌ ๋จ๊ณ์ ๋๋ค.
- ์ ์ (Refine): ๋ฐ์ดํฐ์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ํ์์ ๋ค๋ฌ์ต๋๋ค. ๊ฐ์ธ์ ๋ณด๋ฅผ ๋ง์คํนํ๊ฑฐ๋, ํ ์คํธ์ ํฌ๋งท์ ํต์ผํ๋ ์์ ๋ฑ์ด ์ด์ ํด๋นํฉ๋๋ค.
์ด์ ๊ฐ์ ๋ถ๋ฅ ์ฒด๊ณ์ ์ต์ํด์ง๋ฉด, ์ฌ์ฉ์๋ ์์ ์ ๋ชฉ์ ์ ๋ง๋ ์ฐ์ฐ์๋ฅผ ์ง๊ด์ ์ผ๋ก ์ ํํ๊ณ ์กฐ๋ฆฝํ ์ ์๊ฒ ๋ฉ๋๋ค.
๋ฌดํํ ํ์ฅ์ ์ํ DataFlow ์ํ๊ณ (DataFlow-Ecosystem)
ํตํฉ ๋ฐ์ดํฐ ์ค๋น ํ๋ ์์ํฌ๋ ํ์ฐ์ ์ผ๋ก ๋์์์ด ๋ฑ์ฅํ๋ ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ํฌํ๋ก์ฐ๋ฅผ ์์ฉํด์ผ ํ๋ฏ๋ก, DataFlow๋ ์ด๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด DataFlow-Extension ์ด๋ผ๋ ๊ฐ๋
์ ๋์
ํ์ต๋๋ค . ์ด๋ ์ถ๊ฐ์ ์ธ ์ฐ์ฐ์, ํ๋กฌํํธ ํ
ํ๋ฆฟ, ๊ทธ๋ฆฌ๊ณ ํ์ดํ๋ผ์ธ์ ํ๋์ ๋ชจ๋๋ก ์บก์ํํ Python ํจํค์ง์
๋๋ค. ์ด๋ฌํ ์ฌ์ฉ์ ๊ธฐ์ฌ ๊ธฐ๋ฐ์ ํ์ฅ ํจํค์ง๋ค์ด ๋ชจ์ฌ ๊ฑฐ๋ํ DataFlow-Ecosystem ์ ํ์ฑํ๋๋ฐ, ์ด๋ ๋ง์น Python์ ํจํค์ง ์ํ๊ณ์ ์ ์ฌํ 'ํ๋ฌ๊ทธ ์ค ํ๋ ์ด(Plug-and-Play)' ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ์ฆ, ์ฐ๊ตฌ์๋ค์ ์์ ์ด ๊ฐ๋ฐํ ๋๋ฉ์ธ ํนํ ๊ธฐ๋ฅ์ ๋
๋ฆฝ์ ์ธ ํจํค์ง๋ก ๋ฐฐํฌํ๊ณ , ๋ค๋ฅธ ์ฌ์ฉ์๋ค์ ์ด๋ฅผ pip install ๊ณผ import ๋ฅผ ํตํด ์์ ์ ํ๊ฒฝ์ ์ฆ์ ์ ์ฉํ๊ณ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ํ๊ณ ํ์ฅ์ ๊ธฐ์ ์ ์ผ๋ก ์ง์ํ๊ณ ๊ฐ๋ฐ ์ฅ๋ฒฝ์ ๋ฎ์ถ๊ธฐ ์ํด, DataFlow๋ CLI(Command-Line Interface) ๋๊ตฌ๋ฅผ ํตํ ๊ฐ๋ ฅํ ์๋ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ ๋ช ๊ฐ์ง ์์ ์์ค์ ๋ช ์ธ๋ง ์ ๋ ฅํ๋ฉด, CLI๊ฐ ์๋์ผ๋ก ๋ฐฐํฌ ๊ฐ๋ฅํ ํํ์ ์ ์ฒด ์ ์ฅ์ ๊ตฌ์กฐ(Scaffolding)๋ฅผ ์์ฑํด ์ค๋๋ค. ์ฌ๊ธฐ์๋ ์ฐ์ฐ์ ์คํ (Stub), ํ ํ๋ฆฟ, ํ์ดํ๋ผ์ธ ์ฝ๋ ๋ฑ์ด ํฌํจ๋์ด ์์ด, ๊ฐ๋ฐ์๋ ๋ฒ๊ฑฐ๋ก์ด ์ด๊ธฐ ์ค์ ์์ด ํต์ฌ ๋ก์ง ๊ตฌํ์๋ง ์ง์คํ๋ฉด ๋ฉ๋๋ค . ๋ ๋์๊ฐ, ์์ ์ค๋ช ํ DataFlow-Agent ๋ ์์ฐ์ด ์๋๋ฅผ ๋ถ์ํ์ฌ ์ด๋ฌํ ํ์ฅ ํจํค์ง์ ๋ค์ด๊ฐ ์ฐ์ฐ์๋ ํ์ดํ๋ผ์ธ ์ฝ๋๋ฅผ ์๋์ผ๋ก ํฉ์ฑํ๊ณ ๋๋ฒ๊น ๊น์ง ์ํํด ์ค์ผ๋ก์จ, ๊ณ ํ์ง ํ์ฅ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ฐ ๋๋ ๋น์ฉ์ ํ๊ธฐ์ ์ผ๋ก ์ ๊ฐ์ํต๋๋ค . ๊ฒฐ๋ก ์ ์ผ๋ก DataFlow๋ ์ด๋ฌํ ๋๊ตฌ๋ค์ ํตํด ํ์คํ๋ ์ฐ์ฐ์์ ํ์ดํ๋ผ์ธ ๋ ์ํผ๊ฐ ์ปค๋ฎค๋ํฐ ๋ด์์ ๊ณต์ ๋๊ณ , ๋ณต์ ๋๋ฉฐ, ์ง์์ ์ผ๋ก ๊ฐ์ ๋๋ ์ ์ํ ๊ตฌ์กฐ์ ์คํ์์ค ์ํ๊ณ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
DataFlow-Agent: ์์ฐ์ด๋ก ๋ง๋๋ ํ์ดํ๋ผ์ธ
DataFlow์ ํ์ ์ ์ธ ๊ธฐ๋ฅ ์ค ํ๋๋ DataFlow-Agent์ ๋๋ค. ์ด๋ ์ฝ๋ฉ ์ง์์ด ๋ถ์กฑํ ์ฌ์ฉ์๋ ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ ์ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํด, ์์ฐ์ด ๋ช ๋ น๋ง์ผ๋ก ๋ณต์กํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ์ ์๊ฒ ํด์ฃผ๋ ์ง๋ฅํ ์ค์ผ์คํธ๋ ์ด์ ๊ณ์ธต์ ๋๋ค.
DataFlow-Agent์ ์์ด์ ํธ ๊ตฌ์ฑ
DataFlow-Agent๋ LangGraph๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ฉํฐ ์์ด์ ํธ ์์คํ ์ผ๋ก ๊ตฌํ๋์ด ์์ผ๋ฉฐ, ์๋์ ๊ฐ์ ์ฌ๋ฌ ์ ๋ฌธ ์์ด์ ํธ๋ค ๊ฐ์ ์ ๊ตํ ํ์ ํ๋ก์ธ์ค๋ฅผ ํตํด ์๋ํฉ๋๋ค:
-
์๋ ๋ถ์ ์์ด์ ํธ(Intent Analysis Agent): ์ฌ์ฉ์์ ์ถ์์ ์ด๊ณ ๋ชจํธํ ์์ฐ์ด ์์ฒญ์ ๋ถ์ํ์ฌ, ์คํ ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์ธ ํ์ ์๋(Sub-intent)๋ค์ ์ํ์ค๋ก ๋ถํดํฉ๋๋ค. ์๋ฅผ ๋ค์ด "์ํ ๋ฌธ์ ๋ฐ์ดํฐ์ ์ ๋ง๋ค์ด์ค"๋ผ๋ ์์ฒญ์ "๋ฌธ์ ์์ฑ -> ๋์ด๋ ํ๊ฐ -> ์ ํ์ง ํํฐ๋ง"์ด๋ผ๋ ๋จ๊ณ๋ก ๊ตฌ์ฒดํํฉ๋๋ค.
-
๋ฐ์ดํฐ ๋ผ์ฐํ ์์ด์ ํธ(Data Routing Agent): ์ ๋ ฅ๋ ๋ฐ์ดํฐ์ ํน์ฑ์ ๋ถ์ํ์ฌ ์ ์ ํ ์ฒ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๋ง์ฝ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ์ง ์์๋ค๋ฉด, ํ์ดํ๋ผ์ธ ํ ์คํธ๋ฅผ ์ํ ๊ฐ์์ ํฉ์ฑ ๋ฐ์ดํฐ(Mock Data)๋ฅผ ์์ฑํ์ฌ ๋๋ผ์ด-๋ฐ(Dry-run)์ด ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
-
์ฐ์ฐ์ ๊ฒ์ ์์ด์ ํธ(Operator Retrieval Agent): ๋ถํด๋ ํ์ ์๋๋ฅผ ์ํํ๊ธฐ ์ํด DataFlow์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ฐ์ฅ ์ ํฉํ ์ฐ์ฐ์๋ฅผ ๊ฒ์ํฉ๋๋ค.
-
์ฐ์ฐ์ ํฉ์ฑ ์์ด์ ํธ(Operator Synthesis Agent ): ์ด ๋ถ๋ถ์ด DataFlow-Agent์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๋๋ค. ๋ง์ฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์ํ ๊ธฐ๋ฅ์ ์ํํ๋ ์ฐ์ฐ์๊ฐ ์๋ค๋ฉด, ์ด ์์ด์ ํธ๋ RAG(Retrieval-Augmented Generation)๋ฅผ ํ์ฉํ์ฌ ์๋ก์ด ์ฐ์ฐ์ ์ฝ๋๋ฅผ ์ฆ์์์ ์์ฑ(Coding) ํฉ๋๋ค. ์ด๋ ๊ฒ ์์ฑํ ์ฝ๋๋ ์๋์ผ๋ก ๋จ์ ํ ์คํธ์ ๋๋ฒ๊น ๊ณผ์ ์ ๊ฑฐ์ณ ์คํ ๊ฐ๋ฅํ ์ํ๊ฐ ๋ฉ๋๋ค.
-
์ฐ์ฐ์ ์ฌ์ฌ์ฉ ์์ด์ ํธ(Operator Reuse Agent): ํฉ์ฑ๋ ์ฐ์ฐ์ ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ, ์ด๋ฅผ ํฅํ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋กฌํํธ ํ ํ๋ฆฟ ํํ๋ก ๋ณํํ ์ ์๋์ง ํ๊ฐํฉ๋๋ค.
-
ํ์ดํ๋ผ์ธ ๊ตฌ์ถ ์์ด์ ํธ(Pipeline Construction Agent): ๊ฒ์๋๊ฑฐ๋ ์๋ก ์์ฑ๋ ์ฐ์ฐ์๋ค์ ์ฌ๋ฐ๋ฅธ ์์๋ก ์ฐ๊ฒฐํ์ฌ ๋ฐฉํฅ์ฑ ๋น์ํ ๊ทธ๋ํ(DAG) ํํ์ ํ์ดํ๋ผ์ธ์ ์กฐ๋ฆฝํฉ๋๋ค.
-
ํ์ดํ๋ผ์ธ ๊ฒ์ฆ ์์ด์ ํธ(Pipeline Verification Agent): ์กฐ๋ฆฝ๋ ํ์ดํ๋ผ์ธ์ ์๋๋ฐ์ค ํ๊ฒฝ์์ ์คํํด ๋ด ๋๋ค. ๋ฐ์ดํฐ์ ํ์ ๋ถ์ผ์น๋ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด, ์ค์ค๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ์กฐ์ ํ๊ฑฐ๋ ์ฐ๊ฒฐ์ ์์ ํ์ฌ ์ค๋ฅ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
์ด๋ฌํ ์๋ํ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด, ์ฌ์ฉ์๋ ๋ณต์กํ Python ์ฝ๋๋ฅผ ํ ์ค๋ ์์ฑํ์ง ์๊ณ ๋ ๊ณ ๋ํ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ ํ๋ณดํ ์ ์์ต๋๋ค. ์ด๋ ๊ธฐ์กด์ ์์คํ ๋ค์ด ๋จ์ํ ๋ฏธ๋ฆฌ ์ ์๋ ์ฐ์ฐ์์ ํ๋ผ๋ฏธํฐ๋ง ์กฐ์ ํด ์ฃผ๋ ๊ฒ๊ณผ๋ ์ฐจ์์ด ๋ค๋ฅธ ์ ์ฐ์ฑ๊ณผ ์์จ์ฑ์ ์ ๊ณตํฉ๋๋ค.
์ง๋ฅํ ํ์ดํ๋ผ์ธ ์ถ์ฒ
DataFlow-Agent์ ํต์ฌ ๊ธฐ๋ฅ ์ค ํ๋๋ LangGraph๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ํ ๊ธฐ๋ฐ์ ์ํ ์ ์ฅ ์ํฌํ๋ก์ฐ(Stateful Workflow) ๋ด์์ ์ผ๋ จ์ ์ ๋ฌธํ๋ ์์ด์ ํธ๋ค์ ์กฐ์จํ์ฌ ํ์ดํ๋ผ์ธ์ ์ถ์ฒํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์์ ์ค๋ช ํ ์์ด์ ํธ๋ค์ ๋์์ ๋ค์์ ๋ค ๊ฐ์ง ์ฃผ์ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
์๋ ๋ถํด (Intent Decomposition) ๋จ๊ณ: ๋จผ์ , ์ํฌํ๋ก์ฐ๋ ์์คํ ์ด ์ฌ์ฉ์์ ์์ฐ์ด ์ฟผ๋ฆฌ๋ฅผ ์์ ํ๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ์์ ์ค๋ช ํ ๊ฒ๊ณผ ๊ฐ์ด ์ด ๋จ๊ณ์์๋ ์๋ ๋ถ์ ์์ด์ ํธ (Intent Analysis Agent) ๊ฐ ์ฌ์ฉ์์ ์ถ์์ ์ธ ๊ณ ์์ค ๋ชฉํ๋ฅผ ์คํ ๊ฐ๋ฅํ ์ผ๋ จ์ ๊ฐ๋ณ์ ์ธ ํ์ ์๋(sub-intents)๋ก ๋ถํดํฉ๋๋ค. ์ดํ ๋ฐ์ดํฐ ๋ผ์ฐํ ์์ด์ ํธ (Data Routing Agent) ๊ฐ ๋์์ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ ํ๊ฐํ์ฌ ๋ค์ด์คํธ๋ฆผ ๋ผ์ฐํ ์ ์ํ ํ์คํฌ ๋ฒ์ฃผ๋ฅผ ๋ถ๋ฅํฉ๋๋ค. ๋ง์ฝ ๋ฐ์ดํฐ์ ์ด ์ ๊ณต๋์ง ์์ ๊ฒฝ์ฐ, ์ด ์์ด์ ํธ๋ ์ ์ฒด ๋๋ผ์ด ๋ฐ(dry-run) ์คํ์ด ๊ฐ๋ฅํ๋๋ก ๊ฐ์์ ํฉ์ฑ ๋ฐ์ดํฐ(placeholder)๋ฅผ ์์ฑํฉ๋๋ค .
์ฐ์ฐ์ ํฉ์ฑ (Operator Synthesis) ๋จ๊ณ: ๋ค์์ผ๋ก๋ ๋ถํด๋ ํ์ ์๋๋ค์ ์ถฉ์กฑ์ํค๊ธฐ ์ํด ์ ์ ํ ์ฐ์ฐ์๋ฅผ ์ฐพ๊ฑฐ๋ ๋ง๋ค์ด๋ ๋๋ค. ์ด ๋จ๊ณ์์๋ ์ฐ์ฐ์ ๊ฒ์ ์์ด์ ํธ (Operator Retrieval Agent) ๊ฐ DataFlow ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฒ์ํ์ฌ ๊ด๋ จ๋ ๊ธฐ์กด ์ฐ์ฐ์๋ค์ ์ฐพ์๋ด๊ณ , ์ด๋ ๊ฒ ๊ฒ์๋ ์ฐ์ฐ์๋ค์ ํธํ์ฑ์ ์ฐ์ฐ์ ์ํ์ฑ ์์ด์ ํธ (Operator Sequencing Agent) ๊ฐ ํ๊ฐํ๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ ํ์ํ ๊ธฐ๋ฅ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ, ์ฐ์ฐ์ ์ฌ์ฌ์ฉ ์์ด์ ํธ(Operator Reuse Agent) ๊ฐ ๋จผ์ ๊ธฐ์กด ์ฝ๋๋ฅผ ํ๋กฌํํธ ํ ํ๋ฆฟ(prompt_template)์ ํตํด ์ฌ์ฌ์ฉํ ์ ์๋์ง ํ๊ฐํฉ๋๋ค. ์ฌ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ, ์ฐ์ฐ์ ํฉ์ฑ ์์ด์ ํธ(Operator Synthesis Agent) ๊ฐ RAG(๊ฒ์ ์ฆ๊ฐ ์์ฑ) ๊ธฐ๋ฐ์ ํจ์ท ๋ฌ๋(few-shot learning)์ ์ฌ์ฉํ์ฌ ์๋ก์ด ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ์์ฑ๋ ์ฝ๋๋ ์์ ์ ์ธ ์คํ์ ๋ณด์ฅํ๊ธฐ ์ํด ์๋์ผ๋ก ๋๋ฒ๊น ๋ฉ๋๋ค .
ํ์ดํ๋ผ์ธ ์กฐ๋ฆฝ (Pipeline Assembly) ๋จ๊ณ: ์ด๋ ๊ฒ ๊ฒ์๋๊ฑฐ๋ ํฉ์ฑ๋ ๋ชจ๋ ์ฐ์ฐ์๊ฐ ๊ฒ์ฆ๋๋ฉด, ํ์ดํ๋ผ์ธ ๊ตฌ์ถ ์์ด์ ํธ(Pipeline Construction Agent) ๊ฐ ์ด๋ค์ ํ๋์ ํ์ดํ๋ผ์ธ์ผ๋ก ์กฐ๋ฆฝํฉ๋๋ค. ์์ด์ ํธ๋ ํ์ดํ๋ผ์ธ์ ๋ฐฉํฅ์ฑ ๋น์ํ ๊ทธ๋ํ(DAG)๋ก ํํํ๊ณ , ๋ฐ์ดํฐ๊ฐ ์์ค(Source)์์ ์ฑํฌ(Sink)๋ก ํ๋ฅผ ์ ์๋๋ก ์ด๊ธฐ ์ฐ๊ฒฐ์ ์ ์ํฉ๋๋ค .
๊ฒ์ฆ (Verification) ๋จ๊ณ: ์ด์ DataFlow ์์คํ ์ ํตํฉ ํ ์คํธ๋ฅผ ์ํํ์ฌ ํ์ดํ๋ผ์ธ์ ์์ ์ฑ์ ํ๋ณดํฉ๋๋ค. ์ด ๋จ๊ณ์์๋ ํ์ดํ๋ผ์ธ ๊ฒ์ฆ ์์ด์ ํธ (Pipeline Verification Agent) ๊ฐ ์๋๋ฐ์ค ํ๊ฒฝ์์ ๋ฐ์ดํฐ ์ํ์ ์ฌ์ฉํ์ฌ ํ์ดํ๋ผ์ธ์ ์คํํ๊ณ , ์ฐ๊ฒฐ ์ํ์ ๋ฐํ์ ๋์์ ํ์ธํฉ๋๋ค. ๋ง์ฝ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ํ๋ผ๋ฏธํฐ๋ ์ฐ๊ฒฐ์ ์กฐ์ ํ์ฌ ์ค์ค๋ก ๋ฌธ์ ๋ฅผ ์์ ํฉ๋๋ค. ํ์ดํ๋ผ์ธ์ด ๊ฒ์ฆ์ ํต๊ณผํ๋ฉด, ๊ฒฐ๊ณผ ๋ณด๊ณ ์์ด์ ํธ(Result Reporting Agent) ๊ฐ ์ต์ข ๋ฆฌํฌํธ๋ฅผ ์์ฑํ๊ณ ์คํ ๊ฐ๋ฅํ ํ์ดํ๋ผ์ธ ์ ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
Text-to-SQL ์ฌ์ฉ ์ฌ๋ก ๋ฐ ํ์ดํ๋ผ์ธ
DataFlow ํ์ ํ๋ ์์ํฌ์ ๋ฒ์ฉ์ฑ๊ณผ ์ฑ๋ฅ์ ์ ์ฆํ๊ธฐ ์ํด, ํ์ฌ LLM ์ฐ๊ตฌ์์ ๊ฐ์ฅ ์ค์ํ๊ฒ ๋ค๋ค์ง๋ ๋ช ๊ฐ์ง ์ฌ์ฉ ์ฌ๋ก๋ค์ ๋ํ ํ์ดํ๋ผ์ธ์ ์ง์ ๊ตฌํํ์ฌ ์คํ์ ์ํํ์์ต๋๋ค. ์ด ์น์ ๋ฐ ๋ค์ ์คํ ๊ฒฐ๊ณผ ์น์ ์ ๊ฐ ์ฌ๋ก๋ค์ ํด๋น ๋๋ฉ์ธ์ ํน์ฑ์ ๋ง์ถฐ ์ ๊ตํ๊ฒ ์ค๊ณ๋ ์ฐ์ฐ์๋ค์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
DataFlow ์ฌ์ฉ๊ณผ ๊ด๋ จํ ๋ ์์ธํ ํํ ๋ฆฌ์ผ์ด๋ ํ์ดํ๋ผ์ธ ์์, ์ฐ์ฐ์ ์์ค์ ๋ฌธ์๋ DataFlow ํํ์ด์ง๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์:
์ฌ์ฉ ์ฌ๋ก. Text-to-SQL ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ (Text-to-SQL Data Pipeline)
์์ฐ์ด ์ง๋ฌธ์ ์ ํํ SQL ์ฟผ๋ฆฌ๋ก ๋ณํํ๋ Text-to-SQL ๋ชจ๋ธ์ ํ์ต์ํค๊ธฐ ์ํด์๋ ๋งค์ฐ ์ ๊ตํ ๋ฐ์ดํฐ๊ฐ ํ์ํฉ๋๋ค. DataFlow๋ ์ด๋ฅผ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ํ์ฉํ ํฉ์ฑ ํ์ดํ๋ผ์ธ์ ์ ์ํฉ๋๋ค. ์ด ํ์ดํ๋ผ์ธ์ ํต์ฌ ์ฐ์ฐ์๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-
SQL Generator: ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง(ํ ์ด๋ธ ๊ตฌ์กฐ, ์ปฌ๋ผ ๋ฑ)๋ฅผ ๋ฐํ์ผ๋ก, '๋จ์ํจ'๋ถํฐ '๋งค์ฐ ๋ณต์กํจ'๊น์ง 4๋จ๊ณ ๋์ด๋์ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ฌด์์๋ก ์์ฑํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ค์ํ ํจํด์ ์ฟผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํฉ๋๋ค.
-
SQL Augmentor: ๊ธฐ์กด์ ์๋(Seed) SQL ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅ๋ฐ์, ์ด๋ฅผ ๋ณํํ์ฌ ๋ฐ์ดํฐ์ ๋ค์์ฑ์ ๋์ ๋๋ค. ์ฟผ๋ฆฌ ๊ตฌ์กฐ ๋ณ๊ฒฝ, ๋น์ฆ๋์ค ๋ก์ง ๋ณ๊ฒฝ, ๋ณต์ก๋ ์ฆ๊ฐ ๋ฑ 6๊ฐ์ง ์ฆ๊ฐ ์ ๋ต์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ํ๋ถํจ์ ๋ํฉ๋๋ค.
-
Execution Filter: ์์ฑ๋ SQL์ด ๋ฌธ๋ฒ์ ์ผ๋ก ์ฌ๋ฐ๋ฅธ์ง๋ฟ๋ง ์๋๋ผ, ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์์ ์คํ ๊ฐ๋ฅํ์ง๋ฅผ ๊ฒ์ฆํฉ๋๋ค. ์คํ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์คํ ์๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๋ ์ฟผ๋ฆฌ๋ ๊ณผ๊ฐํ ํํฐ๋งํ์ฌ ๋ฐ์ดํฐ์ ํ์ง์ ๋ณด์ฅํฉ๋๋ค.
-
Question Generator: ์์ฑ๋ SQL ์ฟผ๋ฆฌ์ ์๋ฏธ๋ฅผ ์ ํํ ๋ฐ์ํ๋ ์์ฐ์ด ์ง๋ฌธ์ ์์ฑํฉ๋๋ค. ์ด ๋, ์ง๋ฌธ์ ์คํ์ผ(๊ฒฉ์์ฒด, ๊ตฌ์ด์ฒด, ๋ชจํธํ ์ง๋ฌธ ๋ฑ)์ ๋ค์ํ๊ฒ ์กฐ์ ํ์ฌ ๋ชจ๋ธ์ ๋์ ๋ฅ๋ ฅ์ ๋์ ๋๋ค.
-
CoT Generator: ๋จ์ํ ์ง๋ฌธ๊ณผ ์ ๋ต SQL๋ง ์ฃผ๋ ๊ฒ์ด ์๋๋ผ, ์ด๋ค ๋ ผ๋ฆฌ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ํด๋น SQL์ด ๋์ถ๋์๋์ง๋ฅผ ์ค๋ช ํ๋ '์ฌ๊ณ ์ฌ์ฌ(Chain-of-Thought)'์ ์์ฑํฉ๋๋ค. ์ด๋ ๋ชจ๋ธ์ ์ถ๋ก ๋ฅ๋ ฅ์ ํ๊ธฐ์ ์ผ๋ก ํฅ์์ํต๋๋ค.
์ด๋ฌํ ์ฐ์ฐ์๋ค์ SQL ์์ฑ ํ์ดํ๋ผ์ธ(SQL Generation Pipeline) ๋ฐ SQL ์ ์ ํ์ดํ๋ผ์ธ(SQL Refinement Pipeline) ์ด๋ผ๋ ๋ ๊ฐ์ง ์ฃผ์ ํ์ดํ๋ผ์ธ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. SQL ์์ฑ ํ์ดํ๋ผ์ธ์ ์คํค๋ง ์ ๋ณด๋ง์ผ๋ก ์ ๋ก ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๋ฐ๋ฉด, SQL ์ ์ ํ์ดํ๋ผ์ธ์ ๊ธฐ์กด์ ์๋ ๋ฐ์ดํฐ์์ ์ถ๋ฐํ์ฌ ์ฆ๊ฐ ๋ฐ ์ ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค๋ ์ฐจ์ด์ ์ด ์์ต๋๋ค. ๋ ํ์ดํ๋ผ์ธ ๋ชจ๋ ์์ฑ-ํ๊ฐ-ํํฐ๋ง-์ ์ ์ ์ํ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋ฉฐ, ์ต์ข ์ ์ผ๋ก๋ SQL Component Classifier ๋ฐ SQL Execution Classifier ๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋์ด๋๋ฅผ ๋ผ๋ฒจ๋งํจ์ผ๋ก์จ ํ์ต ๋ฐ์ดํฐ๋ก์์ ๊ฐ์น๋ฅผ ๊ทน๋ํํฉ๋๋ค.
๋ํ, ์ด๋ฌํ ๋ณต์กํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ด ์์ ์ ์ผ๋ก ๋์๊ฐ๊ธฐ ์ํด์๋ ๊ฒฌ๊ณ ํ ์ธํ๋ผ๊ฐ ๋ท๋ฐ์นจ๋์ด์ผ ํฉ๋๋ค. DataFlow๋ ์ด๋ฅผ ์ํด Database Manager ๋ชจ๋์ ๋์
ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํธ์์ฉ์ ๋ณต์ก์ฑ์ ์ถ์ํํ์ต๋๋ค. ์ด ๋ชจ๋์ connect_db (์ฐ๊ฒฐ), execute_sql (์คํ), get_schema (๋ฉํ๋ฐ์ดํฐ ์ถ์ถ)์ ๊ฐ์ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ DatabaseConnector ์ถ์ ๊ธฐ๋ณธ ํด๋์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ฐ์๋ MySQL, SQLite, PostgreSQL ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์ ๋ง์ถฐ ์ด ํด๋์ค๋ฅผ ์์๋ฐ์ ๊ตฌํํ๊ธฐ๋ง ํ๋ฉด, ์์ ์ฐ์ฐ์ ๋ก์ง์ ์์ ํ์ง ์๊ณ ๋ ๋ค์ํ DB ๋ฐฑ์๋๋ฅผ ์ ์ฐํ๊ฒ ๊ต์ฒดํ๋ฉฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ์์คํ
์ ์ฒ๋ฆฌ๋์ ๋์ด๊ณ ๋์ ๋์์ฑ ๋ถํ์์๋ ์์ ์ ์ธ ์คํ์ ๋ณด์ฅํ๋ ํต์ฌ ์์์
๋๋ค.
์ด ์ธ์๋ DataFlow๋ Prompt Template ๋ชจ๋์ ํตํด ํ๋กฌํํธ ์์ง๋์ด๋ง์ ํจ์จ์ฑ์ ๊ทน๋ํํ์ต๋๋ค. Text-to-SQL ์์
๋ง ํ๋๋ผ๋ ๊ธฐ๋ณธ CRUD ์ฟผ๋ฆฌ ์์ฑ, ๋ฒกํฐ ๊ฒ์์ฉ SQL ์์ฑ, ๋์ด๋๋ณ ์์ฑ ๋ฑ ๋ค์ํ ์๋๋ฆฌ์ค๊ฐ ์กด์ฌํ๋ฉฐ, ๊ฐ ์๋๋ฆฌ์ค๋ง๋ค ์ต์ ํ๋ ํ๋กฌํํธ๊ฐ ๋ค๋ฆ
๋๋ค. DataFlow๋ ์ฐ์ฐ์ ๋ก์ง๊ณผ ํ๋กฌํํธ ๊ตฌ์ฑ์ ๋ถ๋ฆฌํ์ฌ, Prompt ํด๋์ค๋ง ๊ต์ฒดํ๋ฉด ๋์ผํ SQL Generator ์ฐ์ฐ์๋ฅผ ์ ํ ๋ค๋ฅธ ๋ชฉ์ ์ ์์
์ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๊ฐ๋ฐ์๋ ์๋ก์ด Prompt ํด๋์ค ๋ด์ build_prompt ๋ฉ์๋๋ง ์ฌ์ ์ํ๋ฉด ๋๋ฏ๋ก, ์ฝ๋์ ์ค๋ณต์ ์ค์ด๊ณ ํ์ดํ๋ผ์ธ์ ์ ์ง๋ณด์์ฑ์ ํฌ๊ฒ ๋์ผ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ค๊ณ๋ DataFlow๊ฐ ๋จ์ํ ๋๊ตฌ ๋ชจ์์ด ์๋๋ผ, ํ์ฅ ๊ฐ๋ฅํ ์์คํ
๋ ๋ฒจ์ ํ๋ ์์ํฌ์์ ์ฆ๋ช
ํฉ๋๋ค.
DataFlow ์ฑ๋ฅ ์คํ
์ฐ๊ตฌ์ง๋ค์ ํ ์คํธ, ์ํ, ์ฝ๋ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ถํฐ DataFlow๋ฅผ ํ์ฉํด ๊ตฌ์ถํ Text-to-SQL ๋ฐ AgenticRAG ์ํฌํ๋ก์ฐ์ ์ด๋ฅด๊ธฐ๊น์ง ํฌ๊ด์ ์ธ ์คํ์ ์ํํ์์ต๋๋ค. Recall ํ๋ ์์ํฌ๋ก ํ์ตํ AgenticRAG ์คํ์ ์ ์ธํ ๋ชจ๋ ์คํ์ LLaMA-Factory ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํด ์ํ๋์์ต๋๋ค. ๋ํ ๋ค์ํ ์์ ์ ๋ฐ์ ๊ฑธ์น ๋ชจ๋ธ์ ์ผ๋ฐ์ ์ธ ์ง์๋ฌธ ํ๋ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํด ์ด๋ฌํ ๋ชจ๋ฌ๋ฆฌํฐ๋ฅผ ํตํฉํฉ๋๋ค.
์คํ1. ํ ์คํธ ๋ฐ์ดํฐ ์ค๋น(Text Data Preparation)
DataFlow ์ฐ๊ตฌ์ง์ ํ ์คํธ ๋ฐ์ดํฐ ์ค๋น๊ฐ ๋ชจ๋ธ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ๊ฒ์ฆํ๊ธฐ ์ํด, ์ฌ์ ํ์ต(PT, Pre-Training)๊ณผ ๋ฏธ์ธ ์กฐ์ (SFT) ๋ ๊ฐ์ง ์๋๋ฆฌ์ค์์ ๊ด๋ฒ์ํ ์คํ์ ์ํํ์ต๋๋ค:
์ฌ์ ํ์ต ๋ฐ์ดํฐ ํํฐ๋ง (Pre-training Data Filtering): ์ฐ๊ตฌ์ง์ ๋จผ์ 627B ํ ํฐ ๊ท๋ชจ์ SlimPajama ์ฝํผ์ค์์ 100B ํ ํฐ์ ์ถ์ถํ ๋ค, DataFlow์ ํ
์คํธ ํํฐ๋ง ํ์ดํ๋ผ์ธ(dataflow/operators/text_pt/filter)์ ์ ์ฉํ์ฌ 4๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์์ 30%์ ํด๋นํ๋ ์ฝ 30B ๊ท๋ชจ์ ํ ํฐ์ ์ ๋ณํ์์ต๋๋ค:
- Random-30B: ๋ฌด์์ ์ํ๋ง์ ์ํ
- FineWeb-Edu-30B: FineWeb-Edu์์ ๊ต์ก์ ํํฐ๋ง(Educational Filtering)์ ์ํ
- Qurating-30B: Qurating Filter๋ฅผ ์ ์ฉ(educational_value โฅ 7.5, facts_and_trivia โฅ 4.0, required_expertise โฅ 5.0, writing_style โฅ 1.0)
- DataFlow-30B: DataFlow PT ํํฐ๋ฅผ ๊ต์ฐจ ์ ์ฉํ ์ ์์ 30%๋ฅผ ์ ํ
์ด๋ ๊ฒ ์ ๋ณํ 4์ข
๋ฅ์ ๋ฐ์ดํฐ์
์ ๊ฐ์ง๊ณ Qwen2.5-0.5B ๋ชจ๋ธ์ ์ฌ์ ํ์ต์ ํ์ ๋์ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ์
๋๋ค:
DataFlow์ ํํฐ๋ฅผ ํต๊ณผํ ๋ฐ์ดํฐ(DataFlow-30B)๋ก ํ์ตํ ๋ชจ๋ธ์ด ARC, MMLU, HellaSwag ๋ฑ 6๊ฐ ์ผ๋ฐ ๋ฒค์น๋งํฌ ํ๊ท ์์ 35.69์ ์ ๊ธฐ๋กํ์ฌ ๊ฐ์ฅ ๋์ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค. ์ด๋ FineWeb-Edu(35.57์ )๋ Qurating(35.02์ )๋ณด๋ค ๋์ ์์น๋ก, DataFlow์ ๋ค์ค ํํฐ ๊ต์ฐจ ์ ์ฉ ๋ฐฉ์์ด ์๋ฏธ๋ก ์ ์ผ๋ก ๋ ์ผ๊ด๋๊ณ ๊นจ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ณํจ์ ์ ์ฆํ์์ต๋๋ค.
SFT ๋ฐ์ดํฐ ํํฐ๋ง ๋ฐ ํฉ์ฑ (SFT Data Filtering & Synthesis): ์๊ท๋ชจ ๋ฐ์ดํฐ์ ์ ํ์ฉํ SFT(Supervised Fine-Tuning) ๋จ๊ณ์์๋ DataFlow์ ํจ๊ณผ๋ ๋๋ ทํ์ต๋๋ค. ์ฐ๊ตฌ์ง์ WizardLM๊ณผ Alpaca ๋ฐ์ดํฐ์ ์์ ๋ฌด์์๋ก ์ถ์ถํ 5,000๊ฐ(5K) ์ํ๊ณผ, DataFlow ํ์ดํ๋ผ์ธ์ผ๋ก ํํฐ๋งํ 5K ์ํ์ ๋น๊ตํ์ต๋๋ค.
์ฐ๊ตฌ์ง์ DataFlow์ 'Condor Generator'์ 'Condor Refiner' ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํด 15,000๊ฐ(15K)์ ํฉ์ฑ ๋ฐ์ดํฐ(DataFlow-SFT-15K)๋ฅผ ์์ฒด ๊ตฌ์ถํ์ต๋๋ค. ํฅ๋ฏธ๋ก์ด ์ ์ ์ด ํฉ์ฑ ๋ฐ์ดํฐ๋ ๋ณ๋์ ํํฐ๋ง ์์ด๋ ์ด๋ฏธ Alpaca๋ WizardLM์ ํํฐ๋ง๋ ๋ฒ์ ๋ณด๋ค ์ํ ์ฑ๋ฅ(49.3์ vs 39.8~44.8์ )์ด ์๋ฑํ ๋์๋ค๋ ์ ์ ๋๋ค. ์ด๋ ์ ์ค๊ณ๋ ํฉ์ฑ ํ์ดํ๋ผ์ธ์ด ๊ธฐ์กด์ ์ธ๊ฐ ์์ง ๋ฐ์ดํฐ๋ณด๋ค ๋ ๊ณ ํ์ง์ ํ์ต ์ ํธ๋ฅผ ์ ๊ณตํจ์ ์์ฌํฉ๋๋ค.
๋ํ ๋๋ฉ์ธ ํฉ์ฑ (Conversation-Domain Synthesis): ์ฑ๋ด์ ๋ํ ๋ฅ๋ ฅ์ ํฅ์์ํค๊ธฐ ์ํ ์คํ๋ ์งํ๋์์ต๋๋ค. ์ฐ๊ตฌ์ง์ ๋ํ ์์ฑ ํ์ดํ๋ผ์ธ์ ํตํด DataFlow-Chat-15K ๋ฐ์ดํฐ์ ์ ๊ตฌ์ถํ๊ณ Qwen2.5-7B-Base ๋ชจ๋ธ์ ํ๋ํ์ฌ ์ฑ๋ฅ์ ๋น๊ตํ์์ต๋๋ค.
๋๋ฆฌ ์ฌ์ฉ๋๋ ShareGPT-15K๋ UltraChat-15K ๋ฐ์ดํฐ์ ๊ณผ ๋น๊ตํ์ ๋, DataFlow ๋ฐ์ดํฐ๋ก ํ์ตํ ๋ชจ๋ธ์ ์ผ๋ฐ ๋ฒค์น๋งํฌ ํ๊ท ์ ์๋ฅผ 26.36์ ์์ 28.21์ ์ผ๋ก ๋์ด์ฌ๋ ธ์ต๋๋ค. ํนํ, ์ง์(instruction) ์ดํ ๋ฅ๋ ฅ์ ํ๊ฐํ๋ AlpacaEval ์งํ์์๋ 7.05์ ์์ 10.11์ ์ผ๋ก ๋น์ฝ์ ์ธ ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋กํ๋ฉฐ, DataFlow์ ์ ์ ๋ฐ ํํฐ๋ง ์คํ์ด ๋ํํ ๋ชจ๋ธ ๊ตฌ์ถ์๋ ๋งค์ฐ ํจ๊ณผ์ ์์ ์ฆ๋ช ํ์ต๋๋ค.
์คํ2. ์ํ ์ถ๋ก ๋ฐ์ดํฐ ์ค๋น(Math Reasoning Data Preparation)
DataFlow ์ฐ๊ตฌ์ง์ LLM์ ์ํ์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๊ทน๋ํํ๊ธฐ ์ํด, 'DataFlow Reasoning Pipeline'์ ๊ตฌ์ถํ๊ณ ์ด๋ฅผ ํตํด ์์ฑ๋ ๊ณ ํ์ง ํฉ์ฑ ๋ฐ์ดํฐ์ ํจ๊ณผ๋ฅผ ๊ฒ์ฆํ์ต๋๋ค. ์ด ํ์ดํ๋ผ์ธ์ ๋จ์ํ ๋ฌธ์ ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋์ด, ๋ฌธ์ ํฉ์ฑ(Problem Synthesis) โ ํ์ง ๊ฒ์ฆ(Quality Verification) โ ์ฌ๊ณ ์ฌ์ฌ ์์ฑ(CoT Generation) ์ 3๋จ๊ณ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค.
์ฐ๊ตฌ์ง์ NuminaMath ๋ฅผ ์๋ ๋ฐ์ดํฐ๋ก ํ์ฉํ์ฌ ์๋ก์ด ๋ฌธ์ ๋ฅผ ํฉ์ฑํ๊ณ , MathQ-Verify ๋ชจ๋์ ํตํด ๋ชจํธํ๊ฑฐ๋ ์ค๋ฅ๊ฐ ์๋ ๋ฌธ์ ๋ฅผ ์๊ฒฉํ ํํฐ๋งํ์ต๋๋ค. ์ดํ ๊ฒ์ฆ๋ ๋ฌธ์ ์ ๋ํด DeepSeek-R1 ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋จ๊ณ๋ณ ์ถ๋ก ๊ณผ์ (CoT)์ ์์ฑํจ์ผ๋ก์จ DataFlow-Reasoning-10K ๋ฐ์ดํฐ์
์ ๊ตฌ์ถํ์ต๋๋ค. ๋น๊ต ์คํ์ ์ํด Open-R1 ๊ณผ Synthetic-1 ๋ฐ์ดํฐ์
์์ ๋ฌด์์๋ก ์ถ์ถํ 10k ์ํ๊ณผ ์ฑ๋ฅ์ ๋น๊ตํ์์ผ๋ฉฐ, Qwen2.5-32B-Instruct ๋ชจ๋ธ์ 1 epoch ๋ฐ 2 epoch ๋์ ํ๋ํ์์ต๋๋ค.
์คํ ๊ฒฐ๊ณผ, Synthetic-1์ด๋ Open-R1์ ๋ฌด์์ ํ์ ์งํฉ์ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ณด๋ค DataFlow๋ก ์์ฑ๋ ๋ฐ์ดํฐ์
์ด ๋ ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค. ํนํ 2 epoch ํ์ต ์ DataFlow-Reasoning-10K๋ ํ๊ท ์ ์ 55.7์ ์ ๊ธฐ๋กํ์ฌ Open-R1(54.2์ )๊ณผ Synthetic-1(54.0์ )์ ๋ชจ๋ ์์ง๋ ์ต๋๋ค. ์ด๋ ๋จ์ํ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค, MathQ-Verify ์ ๊ฐ์ ๊ฒ์ฆ ๋ชจ๋์ ํตํด ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ํ๋ณดํ๊ณ ๊ณ ํ์ง์ CoT๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๋ชจ๋ธ์ ์ถ๋ก ๋ฅ๋ ฅ ํฅ์์ ๊ฒฐ์ ์ ์์ ์์ฌํฉ๋๋ค.
์คํ3. ์ฝ๋ ๋ฐ์ดํฐ ์ค๋น(Code Data Preparation)
์ฝ๋ ์์ฑ ๋ชจ๋ธ์ ์ฑ๋ฅ ํฅ์์ ์ํด ์ฐ๊ตฌ์ง์ Ling-Coder-SFT ๋ฐ์ดํฐ์
์ ์๋๋ก ํ์ฉํ์ฌ DataFlow์ CodeGenDataset_APIPipeline์ ํตํด ๋ฐ์ดํฐ๋ฅผ ํ์ฅํ์ต๋๋ค . ์ด ํ์ดํ๋ผ์ธ์ ํต์ฌ์ ๋จ์ํ ์ฝ๋๋ง ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ, ํด๋น ์ฝ๋๋ฅผ ๊ฒ์ฆํ ์ ์๋ ๋จ์ ํ
์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๊ณ ์ค์ ์คํ(Execution)์ ํตํด ๊ฒ์ฆํ๋ค๋ ์ ์
๋๋ค.
์ฐ๊ตฌ์ง์ ์ด๋ ๊ฒ ๊ตฌ์ถ๋ DataFlow-Code-1K/5K/10K ๋ฐ์ดํฐ์
๊ณผ ๊ธฐ์กด์ ์คํ์์ค ๋ฐ์ดํฐ์
์ธ Code Alpaca, Self-OSS-Instruct-SC2-Exec-Filter๋ฅผ ๋น๊ตํ์ต๋๋ค. ๊ณต์ ํ ๋น๊ต๋ฅผ ์ํด ๋ฒ ์ด์ค๋ผ์ธ ๋ฐ์ดํฐ์
๋ค๋ 1k ๊ท๋ชจ๋ก ์๋ธ์ํ๋งํ์ฌ Qwen2.5-7B/14B-Instruct ๋ชจ๋ธ์ ํ๋ํ์ต๋๋ค .
์ ๊ฒฐ๊ณผ์์ ๋ณผ ์ ์๋ฏ์ด, DataFlow๋ก ์์ฑ๋ ๋ฐ์ดํฐ์ ์ ๋ชจ๋ ๊ท๋ชจ(1k~10k)์์ ๋ฒ ์ด์ค๋ผ์ธ์ ์๋ํ์ต๋๋ค. ํนํ DATAFLOW-CODE-10K๋ก ํ์ตํ Qwen2.5-7B ๋ชจ๋ธ์ ํ๊ท 46.2์ ์ ๊ธฐ๋กํ์ฌ Code Alpaca(42.1์ ) ๋๋น ํฐ ์ฑ๋ฅ ํฅ์์ ๋ณด์์ต๋๋ค. ๋์ฑ ์ฃผ๋ชฉํ ์ ์ ์คํ ์ ํ๋๋ฅผ ์๊ฒฉํ ํ๊ฐํ๋ LiveCodeBench์์์ ์ฑ๋ฅ ํฅ์์ ๋๋ค. 14B ๋ชจ๋ธ์ ๊ฒฝ์ฐ, ๋ฒ ์ด์ค๋ผ์ธ ๋ฐ์ดํฐ์ ๋ค์ ์คํ๋ ค ์ฑ๋ฅ์ ์ ํ์ํค๊ธฐ๋ ํ์ผ๋(Code Alpaca: 28.2), DataFlow ๋ฐ์ดํฐ๋ ์๋ณธ ๋ชจ๋ธ ์์ค์ ์ ์งํ๊ฑฐ๋ ํฅ์์์ผฐ์ต๋๋ค. ์ด๋ DataFlow์ ์คํ ๊ธฐ๋ฐ ํํฐ๋ง์ด ์ฝ๋์ ๋ฌธ๋ฒ์ ์ค๋ฅ๋ฟ๋ง ์๋๋ผ ๋ ผ๋ฆฌ์ ์ค๋ฅ๊น์ง ํจ๊ณผ์ ์ผ๋ก ๊ฑธ๋ฌ๋ด์ด ๊ณ ํ์ง์ ํ์ต ์ ํธ๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์คํ4. Text-to-SQL ๋ฐ์ดํฐ ์ค๋น(Text-to-SQL Data Preparation)
Text-to-SQL ์์ ์ ์์ฐ์ด ์ง๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ก ๋ณํํ๋ ๊ณ ๋๋ ์์ ์ผ๋ก, ๋ฐ์ดํฐ์ ์ ํ์ฑ๊ณผ ์คํ ๊ฐ๋ฅ์ฑ์ด ๋ฌด์๋ณด๋ค ์ค์ํฉ๋๋ค. ์ฐ๊ตฌ์ง์ Spider, BIRD, EHRSQL ๋ฐ์ดํฐ์ ์ ์๋๋ก ํ์ฌ, DataFlow ํ์ดํ๋ผ์ธ(SQL ์์ฑ, ์ฆ๊ฐ, ์คํ ํํฐ๋ง, ์ง๋ฌธ ์์ฑ, CoT ์์ฑ)์ ํตํด DataFlow-Text2SQL-90K ๋ฐ์ดํฐ์ ์ ๊ตฌ์ถํ์ต๋๋ค .
์ด ์คํ์์๋ Qwen2.5-Coder-7B-Instruct ๋ชจ๋ธ ๋ฑ์ ์ฌ์ฉํ์ฌ DataFlow ๋ฐ์ดํฐ์
๊ณผ ๊ธฐ์กด์ ๋๊ท๋ชจ ํฉ์ฑ ๋ฐ์ดํฐ์
์ธ SynSQL์ ๋น๊ตํ์ต๋๋ค. ํนํ SynSQL์ 250๋ง ๊ฐ(2.5M)์ ๋ฐฉ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ ํ๊ณ ์์์๋ ๋ถ๊ตฌํ๊ณ , 9๋ง ๊ฐ์ ๋ถ๊ณผํ DataFlow ๋ฐ์ดํฐ์
์ด ๋ ๋ฐ์ด๋ ํจ์จ์ ๋ณด์์ต๋๋ค .
๊ฒฐ๊ณผ๋ฅผ ์ดํด๋ณด๋ฉด, DataFlow-Text2SQL-90K๋ก ํ์ตํ Qwen2.5-Coder-7B-Instruct ๋ชจ๋ธ์ Spider ๋ฐ์ดํฐ์ ์์ 85.0์ ์ ํ๋๋ฅผ ๊ธฐ๋กํ์ฌ SynSQL(90K)์ 83.1๋ฅผ ์ํํ์ต๋๋ค. ๊ฐ์ฅ ๋๋ผ์ด ๊ฒฐ๊ณผ๋ EHRSQL ๋ฒค์น๋งํฌ์์ ๋ํ๋ฌ๋๋ฐ, ๋ฒ ์ด์ค๋ผ์ธ ๋ชจ๋ธ๋ค์ด 24~40%๋์ ๋จธ๋ฌด๋ฅผ ๋ DataFlow ๋ชจ๋ธ์ ๋ฌด๋ ค 58.7์ ์ ํ๋๋ฅผ ๊ธฐ๋กํ์ต๋๋ค. ์ด๋ DataFlow ํ์ดํ๋ผ์ธ์ด ํฌํจํ๊ณ ์๋ 'SQL ์คํ ํํฐ(Execution Filter)'์ ๋ค์ํ '์ฆ๊ฐ ์ ๋ต(Augmentation)'์ด ๋ฐ์ดํฐ์ ์ค์ง์ ์ธ ํ์ง๊ณผ ๋ค์์ฑ์ ํ๊ธฐ์ ์ผ๋ก ๋์์์ ์ฆ๋ช ํฉ๋๋ค. ์ฌ์ง์ด 9๋ง๊ฐ์ ๋ฐ์ดํฐ(DataFlow-Text2SQL-90K)๋ง์ผ๋ก๋ 250๋ง ๊ฐ์ ๋ฐ์ดํฐ(SynSQL-2.5M)๋ฅผ ๋ฅ๊ฐํ๋ ์ฑ๋ฅ(ํ๊ท 71.6 vs 70.0)์ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
์คํ5. ์์ด์ ํธ RAG, ์ง์ ์ถ์ถ ๋ฐ ํตํฉ ๋ฐ์ดํฐ ์ค๋น(Advanced & Unified Data Preparation)
๋ง์ง๋ง์ผ๋ก, DataFlow ์ฐ๊ตฌ์ง์ ์์ด์ ํฑ RAG(Agentic RAG) ๋ถ์ผ์ ๋์ ์ธ ๋ค์ค ๋จ๊ณ(Multi-hop) ์ง์์๋ต ๋ฐ์ดํฐ ์์ฑ ์ฑ๋ฅ์ ๊ฒ์ฆํ๊ธฐ ์ํด, DataFlow ํ์ดํ๋ผ์ธ์ ํตํด ์์ฒด ๋ฐ์ดํฐ์ ์ ๊ตฌ์ถํ๊ณ ๊ธฐ์กด์ ์ธ๊ฐ ๊ตฌ์ถ ๋ฐ์ดํฐ์ ๋ค๊ณผ ๋น๊ต ์คํ์ ์ํํ์ต๋๋ค :
๋ฐ์ดํฐ์
๊ตฌ์ถ (Dataset Construction): ์ฐ๊ตฌ์ง์ ์ํคํผ๋์ ๋คํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก DataFlow AgenticRAG ํ์ดํ๋ผ์ธ์ ์ ์ฉํ์ฌ 10,000๊ฐ ๊ท๋ชจ์ ๊ณ ํ์ง ๋ฐ์ดํฐ์
์ธ DataFlow-AgenticRAG-10k๋ฅผ ๊ตฌ์ถํ์ต๋๋ค. ๊ตฌ์ฒด์ ์ธ ์์ฑ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค :
- ๋ฌธ์ ์ ๋ณ (Document Selection): ์ํคํผ๋์์์ ๋ฌธ์๋ฅผ ๋ฌด์์๋ก ์ ์ ํ๋, ๋ฐ์ดํฐ ๋ถํฌ์ ์ค๋ณต์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ ์คํธ ๋ฒค์น๋งํฌ์ ์ด๋ฏธ ํฌํจ๋ ๋ฌธ์๋ ์ฒ ์ ํ ๋ฐฐ์ ํ์์ต๋๋ค.
- ์ง๋ฌธ ์ด์ ์์ฑ (Draft Generation): GPT-4o-mini ๋ชจ๋ธ๊ณผ DataFlow์ ์์ฑ ๋ชจ๋์ ๊ฒฐํฉํ์ฌ, ์ ๋ณ๋ ๋ฌธ์๋ฅผ ๋ฐํ์ผ๋ก ๋ค์ค ๋จ๊ณ ์ถ๋ก ์ด ํ์ํ ์ง๋ฌธ์ ์ด์์ ์์ฑํ์ต๋๋ค.
- ํ์ง ๊ฒ์ฆ (Quality Verification): ๊ฒ์ฆ ๋ชจ๋์ ํตํด ์ค๊ฐ ์ ๋ณด ์ ์ถ(intermediate question leakage), ๋ ผ๋ฆฌ์ ์ค๋ฅ, ์ง๋์น๊ฒ ๋๊ฑฐ๋ ๋ฎ์ ๋์ด๋ ๋ฑ์ ์คํฌ๋ฆฌ๋ํ์ฌ ์ต์ข ๋ฐ์ดํฐ์ ์ ํ์ฑํ์ต๋๋ค.
์ฐ๊ตฌ์ง์ ReCall ํ๋ ์์ํฌ์ Qwen2.5-7B-Instruct ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ํ์ต์ ์งํํ์ต๋๋ค . ๋น๊ต ๋์์ผ๋ก๋ 2WikiMultiHopQA, Musique, HotpotQA, Bamboogle ๋ฑ ๋ํ์ ์ธ ๋ค์ค ๋จ๊ณ QA ๋ฐ์ดํฐ์ ๋ค์ด ์ฌ์ฉ๋์์ผ๋ฉฐ, ๊ณต์ ํ ๋น๊ต๋ฅผ ์ํด ํ์ต์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ์ ์ ํ๊ฐ์์ ์ ์ธํ๋ OOD(Out-of-Distribution) ํ๊ท ์ ์๋ฅผ ์ธก์ ํ์ต๋๋ค .
์ ํ๋ ๋ค์ํ ํ๋ จ ๋ฐ์ดํฐ ์์ค์ ๋ฐ๋ฅธ ๋ชจ๋ธ์ Exact Match(%) ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํด๋ณด๋ฉด, DataFlow๋ก ์์ฑ๋ ํฉ์ฑ ๋ฐ์ดํฐ(DF-AgenticRAG)๊ฐ ์ธ๊ฐ์ด ๊ตฌ์ถํ ๋ฐ์ดํฐ์ ๋ณด๋ค ๋ ๋ฐ์ด๋ ์ผ๋ฐํ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค. ๋จผ์ HotpotQA ๋ฐ์ดํฐ๋ก ํ์ตํ ๋ชจ๋ธ(OOD Avg 36.4)๊ณผ ๋น๊ตํ์ ๋, DataFlow ๋ชจ๋ธ์ 37.4์ ์ ๊ธฐ๋กํ์ฌ ์ธ๊ฐ์ด ๋ง๋ ๋ฐ์ดํฐ์ ์ ์ํํ๋ ์ฑ๋ฅ์ ๋ณด์์ผ๋ฉฐ, Musique(42.4์ )์ 2Wiki(33.8์ ) ๋ฐ์ดํฐ์ ์ผ๋ก ํ์ตํ ๊ฒฝ์ฐ์ ๋น๊ตํ์ ๋๋, DataFlow ๋ชจ๋ธ์ ๊ฐ๊ฐ 43.6์ ๊ณผ 36.4์ ์ ๊ธฐ๋กํ๋ฉฐ ๊ฐ์ฅ ๋์ OOD ์ ์๋ฅผ ๋ฌ์ฑํ์ต๋๋ค .
์ด๋ DataFlow ํ์ดํ๋ผ์ธ์ ํตํด ์์ฑ๋ ๋ค์ค ๋จ๊ณ ์ถ๋ก ๋ฐ์ดํฐ๊ฐ ํน์ ๋ฐ์ดํฐ์ ์ ๊ณผ์ ํฉ๋์ง ์๊ณ , ๊ฐ๋ ฅํ ๊ต์ฐจ ๋ฐ์ดํฐ์ ์ผ๋ฐํ(Cross-dataset Generalization) ๋ฅ๋ ฅ์ ์ ๊ณตํจ์ ์ ์ฆํฉ๋๋ค.
์คํ6. ์ง์ ์ถ์ถ(Knowledge Extraction)
์ฐ๊ตฌ์ง์ ์น์์ ๋ฐฉ๋ํ ๋น์ ํ ์ฝํผ์ค๋ฅผ ํ์ฉํ๊ธฐ ์ํด, ๋ฐ์๋ํ๋ ์ง์ ์ถ์ถ ํ์ดํ๋ผ์ธ(Knowledge Extraction Pipeline) ์ ์ ์ํ๊ณ ๊ทธ ํจ๊ณผ๋ฅผ ์ํ ๋๋ฉ์ธ์์ ๊ฒ์ฆํ์ต๋๋ค. ์ด ํ์ดํ๋ผ์ธ์ MinerU ๋๊ตฌ๋ฅผ ํ์ฉํ ํ ์คํธ ์ ๊ทํ, ๋ฌธ์ ๋ถํ , ๋ ธ์ด์ฆ ํํฐ๋ง, ํฉํธ ๊ธฐ๋ฐ QA ์์ฑ, ๊ทธ๋ฆฌ๊ณ ์๋ํ๋ ํ์ง ๊ฒ์ฆ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๊ณ ํ์ง์ SFT์ฉ ๋ฐ์ดํฐ์ ์ ์์ฑํฉ๋๋ค. ์คํ์ ์ํด ์ฐ๊ตฌ์ง์ USMLE ๊ต๊ณผ์(MedQA Books), NCBI์ StatPearls ๋ ผ๋ฌธ, ๊ทธ๋ฆฌ๊ณ 16๊ฐ ์ ๋ฌธ ๊ธฐ๊ด์ ์์ ๊ฐ์ด๋๋ผ์ธ ๋ฑ์์ ์์งํ 1์ต 4์ฒ๋ง(140M) ํ ํฐ ๋ถ๋์ ์์ ์ํ ๋ฐ์ดํฐ๋ฅผ ํ์ดํ๋ผ์ธ์ ํต๊ณผ์์ผ DataFlow-Knowledge ๋ฐ์ดํฐ์ ์ ๊ตฌ์ถํ์ต๋๋ค.
Qwen2.5-7B-Instruct ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ํํ ๋น๊ต ์คํ ๊ฒฐ๊ณผ๋ ์์ ๊ฐ์ต๋๋ค. DataFlow-Knowledge ๋ฐ์ดํฐ๋ก ๋ฏธ์ธ ์กฐ์ (SFT)๋ ๋ชจ๋ธ์ ๋ชจ๋ ๋ฒค์น๋งํฌ์์ ๋ฒ ์ด์ค๋ผ์ธ์ ์๋ํ์ต๋๋ค. ํนํ, ๋จ์ํ CoT ํ๋กฌํํ ์ด๋ RAG(๊ฒ์ ์ฆ๊ฐ ์์ฑ) ๋ฐฉ์๊ณผ ๋น๊ตํ์ ๋, DataFlow ๋ชจ๋ธ์ PubMedQA์ Covert ๋ฒค์น๋งํฌ์์ 15~20% ํฌ์ธํธ ์ด์์ ์ ํ๋ ํฅ์์ ๊ธฐ๋กํ์ต๋๋ค. RAG ๋ฐฉ์์ด PubMedQA์์๋ ์ํญ์ ์ฑ๋ฅ ํฅ์์ ๋ณด์์ผ๋ Covert์ PubHealth์์๋ ์คํ๋ ค ์ฑ๋ฅ์ด ๋ถ์์ ํ๋ ๊ฒ๊ณผ ๋์กฐ์ ์ผ๋ก, DataFlow ํ์ดํ๋ผ์ธ์ ํตํด ์ ์ ๋ QA ๋ฐ์ดํฐ๋ก ํ์ตํ ๋ชจ๋ธ์ ๋๋ฉ์ธ ์ง์๊ณผ ์ถ๋ก ๋ฅ๋ ฅ์ ํ์คํ๊ฒ ๋ด์ฌํํ์์ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
์คํ7. ํตํฉ ๋ฉํฐ ๋๋ฉ์ธ ๋ฐ์ดํฐ ์ค๋น(Unified Multi-Domain Data Preparation)
DataFlow ์ฐ๊ตฌ์ง์ ๋จ์ผ ๋๋ฉ์ธ์ ๋์ด, ์ํ, ์ฝ๋, ์ผ๋ฐ ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์์ฐ๋ฅด๋ ํตํฉ ๋ฐ์ดํฐ์
์ ํจ์ฉ์ฑ์ ๊ฒ์ฆํ๊ธฐ ์ํด DataFlow-Instruct-10K๋ฅผ ๊ตฌ์ถํ์ต๋๋ค. ์ด ๋ฐ์ดํฐ์
์ DataFlow ํ์ดํ๋ผ์ธ์ ํตํด ์์ฑ๋ ์ํ ๋ฌธ์ (3k), ์ฝ๋ ์ธ์คํธ๋ญ์
(2k), ์ผ๋ฐ ๋ํ ๋ฐ์ดํฐ(5k) ๋ฑ ์ด 1๋ง ๊ฐ(10k)์ ์ํ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. ์ฐ๊ตฌ์ง์ ์ด๋ฅผ 100๋ง ๊ฐ(1M) ๊ท๋ชจ์ ๋ํ ์ผ๋ฐ ๋ฐ์ดํฐ์
์ธ Infinity-Instruct ์ ๋น๊ตํ์ฌ, ์๊ท๋ชจ ๊ณ ํ์ง ํฉ์ฑ ๋ฐ์ดํฐ์ ํจ์จ์ฑ์ ์
์ฆํ๊ณ ์ ํ์ต๋๋ค.
์คํ ๊ฒฐ๊ณผ, ๋จ 1๋ง ๊ฐ์ DataFlow-Instruct-10K๋ก ํ์ตํ ๋ชจ๋ธ์ด 100๋ง ๊ฐ์ ๋ฐ์ดํฐ๋ก ํ์ตํ Infinity-Instruct-1M ๋ชจ๋ธ๋ณด๋ค ์ ๋ฐ์ ์ผ๋ก ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค. ์ํ ๋ฒค์น๋งํฌ์์ Qwen2.5-7B-Base ๋ชจ๋ธ์ DataFlow ๋ฐ์ดํฐ๋ก ํ์ต ์ ํ๊ท 46.7์ ์ ๊ธฐ๋กํด Inf-1M(33.3์ )์ ํฌ๊ฒ ์์ฐ์ผ๋ฉฐ, ์ธ์คํธ๋ญ์
ํ๋๋ ๋ชจ๋ธ(49.8์ )์ ๊ทผ์ ํ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค.
์ฝ๋ ๋ฐ ์ผ๋ฐ ์ง์ ๋ฒค์น๋งํฌ์์๋ DataFlow ๋ชจ๋ธ์ Infinity-Instruct ๊ณ์ด ๋ชจ๋ธ๋ค๋ณด๋ค ๋์ ์ ์๋ฅผ ๊ธฐ๋กํ๊ฑฐ๋ ๋๋ฑํ ์ฑ๋ฅ์ ์ ์งํ์ต๋๋ค. ์ด๋ ๋๋ฉ์ธ๋ณ๋ก ํนํ๋ ๊ณ ํ์ง ํฉ์ฑ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ์ฌ ํ์ต์ํค๋ฉด, ๋ฐ์ดํฐ์ ์์ด ์ ๋๋ผ๋ ๋ชจ๋ธ์ ๋ค๋ฐฉ๋ฉด ๋ฅ๋ ฅ์ ํจ์จ์ ์ผ๋ก ํฅ์์ํฌ ์ ์์์ ๊ฐ๋ ฅํ๊ฒ ์์ฌํฉ๋๋ค.
์คํ8. ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์ (Agentic Orchestration)
๋ง์ง๋ง์ผ๋ก, ์ฐ๊ตฌ์ง์ ์์ฐ์ด ๋ช ๋ น์ ํตํด ์๋์ผ๋ก ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๋ DataFlow-Agent์ ์ฑ๋ฅ์ ํ๊ฐํ์ต๋๋ค. ์ด๋ฅผ ์ํด 6๊ฐ์ ๋ํ์ ์ธ ํ์ดํ๋ผ์ธ์ ๋ํด ๋์ด๋๋ณ(Easy, Medium, Hard)๋ก ์ด 18๊ฐ์ ์์ฐ์ด ๊ณผ์ ๋ฅผ ์์ฑํ์ฌ ํ ์คํธ๋ฅผ ์งํํ์ต๋๋ค. ํ๊ฐ๋ ์์ด์ ํธ๊ฐ ์์ฑํ ํ์ดํ๋ผ์ธ์ด ํ ์คํธ ๋ช ์ธ๋ฅผ ์ผ๋ง๋ ์ ์ค์ํ๋์ง(Text Specification Alignment)์, ์ ๋ต ์ฝ๋์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ผ๋ง๋ ์ผ์นํ๋์ง(Code Implementation Consistency)๋ฅผ LLM ํ๊ฐ์(LLM-Judge)๊ฐ ์ฑ์ ํ๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ก์ต๋๋ค.
ํ๊ฐ ๊ฒฐ๊ณผ, DataFlow-Agent๋ ํ ์คํธ ๋ช ์ธ ์ค์ ์ธก๋ฉด์์ ์ ์ฒด ํ๊ท 0.80์ ์ ๋์ ์ ์๋ฅผ ๊ธฐ๋กํ์ต๋๋ค. ํนํ ๋ช ์ธ๊ฐ ๊ตฌ์ฒด์ ์ธ 'Easy' ๋์ด๋์์๋ 0.92์ ์ ๋งค์ฐ ๋์ ์ ํ๋๋ฅผ ๋ณด์์ต๋๋ค. ๋ฐ๋ฉด, ์ฝ๋ ๊ตฌํ ์ผ์น๋๋ ํ๊ท 0.49์ ์ผ๋ก ์๋์ ์ผ๋ก ๋ฎ๊ฒ ๋ํ๋ฌ๋๋ฐ, ์ด๋ ๊ณผ์ ๊ฐ ๋ชจํธํด์ง์๋ก(Hard ๋์ด๋ 0.23์ ) ์์ด์ ํธ๊ฐ ์ ๋ต ์ฝ๋์๋ ๋ค๋ฅด์ง๋ง ๊ธฐ๋ฅ์ ์ผ๋ก ํ๋นํ ๋์์ ํ์ดํ๋ผ์ธ์ ์ ์ฐํ๊ฒ ์์ฑํ๊ธฐ ๋๋ฌธ์ธ ๊ฒ์ผ๋ก ๋ถ์๋์์ต๋๋ค. ์ด ์คํ์ DataFlow-Agent๊ฐ ์ฌ์ฉ์์ ์๋๋ฅผ ํ์ ํ์ฌ ์ค์ ๋ก ์คํ ๊ฐ๋ฅํ ๋ณต์กํ ํ์ดํ๋ผ์ธ์ ์์จ์ ์ผ๋ก ๊ตฌ์ฑํ ์ ์์์ ๋ณด์ฌ์ค๋๋ค.
๊ฒฐ๋ก
DataFlow๋ ์ง๊ธ๊น์ง ํํธํ๋์ด ์๋ LLM ๋ฐ์ดํฐ ์ค๋น ๊ณผ์ ์ ํ๋์ ํตํฉ๋ ์์คํ ์ผ๋ก ๋ฌถ์ด๋ธ ํ์ ์ ์ธ ํ๋ ์์ํฌ์ ๋๋ค. DataFlow ๊ธฐ์ ๋ฌธ์๊ฐ ์ ์ํ๋ ํต์ฌ ๊ฐ์น๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ฒซ์งธ, ํตํฉ์ฑ(Unification) ์ ๋๋ค. ์๋ก ๋ค๋ฅธ ๋๋ฉ์ธ๊ณผ ํฌ๋งท์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ํ์คํ๋ ์ฐ์ฐ์์ ํ์ดํ๋ผ์ธ์ผ๋ก ํตํฉํจ์ผ๋ก์จ, ๋ฐ์ดํฐ ์์ง๋์ด๋ง์ ํจ์จ์ฑ๊ณผ ์ฌํ์ฑ์ ํ๊ธฐ์ ์ผ๋ก ๋์์ต๋๋ค.
๋์งธ, ๊ณ ์ฑ๋ฅ(Performance) ์ ๋๋ค. ๋ฐฉ๋ํ ์คํ์ ํตํด, ์ ์ค๊ณ๋ ํ์ดํ๋ผ์ธ์ผ๋ก ์์ฑ๋ ์๋์ ๊ณ ํ์ง ๋ฐ์ดํฐ๊ฐ ๋๋์ ์ ์ ๋์ง ์์ ๋ฐ์ดํฐ๋ณด๋ค ํจ์ฌ ๊ฐ๋ ฅํ ๋ชจ๋ธ ์ฑ๋ฅ์ ์ด๋์ด๋์ ์ฆ๋ช ํ์ต๋๋ค.
์ ์งธ, ์ง๋ฅํ(Intelligence) ์ ๋๋ค. DataFlow-Agent๋ฅผ ํตํด ์ฝ๋ฉ ๋ฅ๋ ฅ์ด ๋ถ์กฑํ ์ฌ์ฉ์๋ ์์ฐ์ด๋ง์ผ๋ก ๋ณต์กํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ์ ์๋ ๊ธธ์ ์ด์์ต๋๋ค.
DataFlow ์ฐ๊ตฌํ์ ์ฌ๊ธฐ์ ๋ฉ์ถ์ง ์๊ณ ์ํ๊ณ๋ฅผ ๋์ฑ ํ์ฅํ ๊ณํ์ ๋๋ค. ํ ์คํธ๋ฅผ ๋์ด ์ด๋ฏธ์ง, ๋น๋์ค, ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ DataFlow-Multimodal, ๊ณผํ์ ๋ฐ๊ฒฌ์ ์ํ DataFlow-AI4S, ๊ทธ๋ฆฌ๊ณ ์ฐ์ ํ์ฅ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ต์ ํ๋ DataFlow-Industry ๋ฑ์ ๊ฐ๋ฐํ์ฌ DataFlow๋ฅผ ๋ฐ์ดํฐ ์ค์ฌ AI ์๋์ ์ฌ์ค์ ํ์ค(De facto standard)์ผ๋ก ๋ง๋ค๊ณ ์ ํฉ๋๋ค.
DataFlow ๊ธฐ์ ๋ฌธ์
DataFlow ์๊ฐ ๊ธ (์ค์น ๋ฐ ์ฌ์ฉ๋ฐฉ๋ฒ ํฌํจ)
DataFlow GitHub ์ ์ฅ์
์ด ๊ธ์ GPT ๋ชจ๋ธ๋ก ์ ๋ฆฌํ ๊ธ์ ๋ฐํ์ผ๋ก ํ ๊ฒ์ผ๋ก, ์๋ฌธ์ ๋ด์ฉ ๋๋ ์๋์ ๋ค๋ฅด๊ฒ ์ ๋ฆฌ๋ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค. ๊ด์ฌ์๋ ๋ด์ฉ์ด์๋ผ๋ฉด ์๋ฌธ๋ ํจ๊ป ์ฐธ๊ณ ํด์ฃผ์ธ์! ์ฝ์ผ์๋ฉด์ ์ด์ํ๊ฑฐ๋ ์๋ชป๋ ๋ด์ฉ์ ๋ฐ๊ฒฌํ์๋ฉด ๋ง๊ธ๋ก ์๋ ค์ฃผ์๊ธฐ๋ฅผ ๋ถํ๋๋ฆฝ๋๋ค. ![]()
ํ์ดํ ์น ํ๊ตญ ์ฌ์ฉ์ ๋ชจ์
์ด ์ ๋ฆฌํ ์ด ๊ธ์ด ์ ์ฉํ์
จ๋์? ํ์์ผ๋ก ๊ฐ์
ํ์๋ฉด ์ฃผ์ ๊ธ๋ค์ ์ด๋ฉ์ผ
๋ก ๋ณด๋ด๋๋ฆฝ๋๋ค! (๊ธฐ๋ณธ์ Weekly์ง๋ง Daily๋ก ๋ณ๊ฒฝ๋ ๊ฐ๋ฅํฉ๋๋ค.)
์๋
์ชฝ์ ์ข์์
๋ฅผ ๋๋ฌ์ฃผ์๋ฉด ์๋ก์ด ์์๋ค์ ์ ๋ฆฌํ๊ณ ๊ณต์ ํ๋๋ฐ ํ์ด ๋ฉ๋๋ค~ ![]()



















