Facilitating Multi-Turn Function Calling for LLMs via Compositional Instruction Tuning
- Authors: Mingyang Chen, sunhaoze, Tianpeng Li, Fan Yang, Hao Liang, KeerLu, Bin CUI, Wentao Zhang, Zenan Zhou, weipeng chen
- Paper: https://openreview.net/forum?id=owP2mymrTD
- Affiliation: Baichuan Inc., Peking Univ
- Published: January 23, 2024
- Code: https://github.com/PKU-Baichuan-MLSystemLab/BUTTON
TL; DR
Task - Function์ผ๋ก ์ฐ๊ฒฐํ๋ Planning ๊ธฐ๋ฐ์ multi-turn* Function Calling ํ๋ ์์ํฌ BUTTON ์ ์

Background
- LLM์ API (external tool) call์ด ๊ธฐ๋ณธ ์ง์
- ์ต์ ์ฐ๊ตฌ์์๋ what (์ด๋ค ํจ์๋ฅผ ํธ์ถํด์ผ ํ๋๊ฐ + ๊ทธ ํจ์ augments๋?)์ ์ง์ค
- ํ์ค์์๋ user request ํ ๋ฒ์ ๋คํ(multi-turn) call ๋ฐ์
- e.g. ๋ฐ๋์์ ์๋ ๋ฒ๋ฌ๋ก ๊ฐ๋ ์ค๋์ ์ฒซ ๋ฒ์งธ ๋นํํธ์ ์์ฝํ๊ณ , ๋์ฐฉํ์ ๋ ๋ ์จ๋ ์๊ณ ์ถ์ด: search_flights > get_weather > book_ticket
- multi-turn: ํ ๋ฒ์ user ์์ฒญ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ชจ๋ธ์ด ์ฌ๋ฌ๊ฐ์ function call ๋จ๊ณ๋ฅผ sequentialํ๊ฒ ํน์ parallelํ๊ฒ ๊ณํ ๋ฐ ์คํ. (user-agent๊ฐ ์๋)
- ๋ณธ ๋ ผ๋ฌธ์์๋ user์๊ฒ๋ ๋ณด์ฌ์ง์ง ์๋ tool๊ณผ assistant ์ฌ์ด ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ผ๋ก turn์ผ๋ก ์ ์
Problem States
multi-turn function calling ๋ฐ์ดํฐ ๊ตฌ์ถ
- ๊ทธ๋ฐ ๋ฐ์ดํฐ๋ ์๊ณ
- ๊ทธ๋ฐ ๋ฐ์ดํฐ ๊ตฌ์ถํ๊ธฐ๋ ์ด๋ ค์: ๋ฐ์ดํฐ ์ค๊ณ 3๊ฐ์ง ์ด๋ ค์
- compositionality : ๋จ์ slot filling์ด์์ผ๋ก sub-task๋ก ๋ถ๋ฆฌ
- compatibility : ๊ตฌ์ถํ Instruction์ด ์ค์ function ์ ์์ ๋ง์์ผ
- trajectory ํ์ง : multi-turn function call์ด ์์ฐ์ค๋ฝ๊ฒ ์ฐ๊ฒฐ
- ๋จ์ ์ ๊ทผ์ผ๋ก๋ ํ๊ณ
- (LLMํํ ) ๊ทธ๋ฅ ํจ์ ๋ชจ์๋๊ณ ํฉ์ณ๋ด๋ผ = ์ค์ ๋ก ๋ชปํธ๋ ๋ฌธ์ ์์ฑ
- (LLMํํ ) trajectory๋ฅผ ์์์ ๋ง๋ค์ด๋ผ = ์๋ค๊ฐ ์๋ง๊ณ ์คํจ์จ๋ ๋์
Suggestions
BUTTON Fig 1
- Button Up: task > function
- atomic task ๊ตฌ์ฑ: ํ์ค ์๋๋ฆฌ์ค ์์ง > 1ํ ํธ์ถ๋ก ํ ์ ์์๋งํ ๊ฐ๋จํ๊ณ ๋ช ๋ฃํ๊ณ self-containedํ๊ณ ํจ์๋ฅผ ๊ณ ๋ คํ์ง ์๋ task ์์ฑ
- compositional task ๊ตฌ์ฑ: ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ค์์ ๋ฐ์์ผํ๊ฑฐ๋(sequential), ๋
๋ฆฝ์ ์ธ ๋ task ๋ฅผ ๊ฐ๊ฐ ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํฉ์ณ์ ๋ค์์ผ๋ก ๋๊ธฐ๋๋ก(parallel-then-sequential) ๊ตฌ์ฑ
- atomic task๋ก ์ค์ ์๊ฒฐ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ง ๋จ๊น
- function ๊ตฌ์ฑ: Descriptive(์ด๋ฆ/์ค๋ช
/์
์ถ๋ ฅ ๋ช
๋ฃ), General(ํน์ ๋์์ ๊ณ ์ X), Consistency(์ฐ์ ํธ์ถ ์ ์ถ๋ ฅ>๋ค์ ์
๋ ฅ์ด ๋ฌผ๋ฆฌ๋๋ก)
- ์คํค๋ง: {name, description, parameters, responses, required}
- ์ฌ์ฉ ๊ฐ๋ฅ ํจ์ ๋ชฉ๋ก์ ์ต์ข ์ ์ผ๋ก system prompt๋ก ์ ๋ ฅ
- Top Down:
- multi-agent ๊ตฌ์ฑ:
- user: ์ง๋ฌธ
- assistant: ๋ถํด > ๊ณํ > ํธ์ถ
- tool: ํจ์ ์๋ฎฌ๋ ์ดํฐ๋ก ๋์ํด์ ์ ์ ๋ณด๊ณ ๊ทธ๋ด๋ฏํ ๊ฒฐ๊ณผ ๋ฑ๋๋ก
- trajectory ์์ง:
- assistant๋ ์๊ฐ(react ์คํ์ผ)+ function call์ ์ถ๋ ฅํ๋๋ฐ, tool ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ ๋ค์ call์ ์ด์ด๋๊ฐ
- ์ต์ข ๋ต์ธ ๊ฒ ๊ฐ์ผ๋ฉด ์ต์ข ์๋ต์ฉ ํจ์ ํธ์ถํ๋๋ก ์ค๊ณ
- multi-agent ๊ตฌ์ฑ:
- ์ค์ ์์ง
- GPT-4o๋ก ๋๋ ค์ ์ต์ข ์ ์ผ๋ก 8,000๊ฐ์ BUTTONInstruct ์์ง
- ๋ณ๋ ฌํธ์ถ ๋ง๋ ๋ฐฉ๋ฒ: ์ฌ๋ฌ ํจ์๊ฐ ์๋ก ๋
๋ฆฝ์ด๋ฉด ๋ณ๋ ฌ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค๊ณ ๊ฐ์ , ํ๋กฌํํธ๋ก ์ ์ด.
- ๋ณ๋ด ํ์ฉ: ๊ฐ๋ฅํ๋ฉด ์๋ก ๋ ๋ฆฝ ํจ์๋ ๋ณ๋ ฌ ํธ์ถ์ด ๋๋ค
- ๋ณ๋ ฌ ๊ธ์ง: ํ๋ฒ์ ํ๋์ ํจ์๋ง ํธ์ถํ๊ณ ์๋ต์ ๊ธฐ๋ค๋ฆฐ ํ ๋ค์ ํจ์ ํธ์ถ
- ๋ณ๋ ฌ ๊ฐ๋ฅ task(ํน์ ๊ทธ ๋ฐ๋์ฌ๋) 50%ํ๋ฅ ๋ก ๊ธ์ง ํ๋กฌํํธ๋ฅผ ์์๋ค๊ณ (๋งฅ๋ฝ๋ณด๊ณ ์์์ ์ฐ๋๋ก ์ ๋ํ๊ธฐ ์ํ ๊ตฌ์ฑ)
Effects
- Experiment setup:
- training: SFT๋ก open source LLM ํ์ต
- input: instruction + function def. + context
- output: ํจ์ ํธ์ถ + ์๋ต
- ๋ฐ์ดํฐ: BUTTONInstruct 8k + OpenHermes 100k (์ผ๋ฐ ์ถ๋ก ๋ฅ๋ ฅ ์ ์ง ๋ชฉ์ )
- benchmark: Tool-Query, GTA(Generated Tool-using Agent)
- metrics:
- GA(grounding Accuracy): argument ์ ์ฑ์ฐ๋์ง
- Process Rate: ๊ณํ๋ ํธ์ถ์ ๋๊น์ง ์ ์ํํ๋์ง (๋์ค ํ๋ฝ ์์ด)
- Success Rate: ์ต์ข ์ฑ๊ณต๋ฅ
- training: SFT๋ก open source LLM ํ์ต
- Main Results:
- vanilla LLM์ hard (Tool Query) ์ฑ๊ณต๋ฅ 5~10% ์์ค
- BUTTON ํ๋ํ๋ฉด 30~60%๊น์ง ์์น
- ํฐ๋ชจ๋ธ์ ๋ ์ ๊ฐ์
- GPT-4o ์๋ ๊ทผ์
- ๋ฐ์ดํฐ ๊ตฌ์ถ์์ buttom up๋ง ํ๊ฑฐ๋ top down๋ง ํ ๊ฒฝ์ฐ ์ฑ๋ฅ ๊ธ๋ฝ โ ๋ ๋ค ๊ณ ๋ คํ๋๊ฒ ํ์ํ๋ค๊ณ ์ญ์ค
Fig 3
Personal note. ์ ๋ฌํ๋ ๋ฉ์ธ์ง๋ย function calling์๋ planning์ด ํ์ํ๋คย ์ด๊ธด ํ๋ฐ, ์ค์ ์ ์๋ค์ด ์ฐ๊ตฌํ ๋ด์ฉ์ ๋ฉ์ํ๊ฒ ํด์ํ๋ฉด instruction-tuning์ฉ synthetic data๋ฅผ ๋ง๋ค์๋ค ์ ๋๋ก ์์ฝํ ์ ์๊ณ , ๋ ผ๋ฌธ์์ ์ ์๋ SFTํด๋ผ ์์ค์ ๋จธ๋ฌด๋ฆ ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ICLR์ accept(5,8,8,5)๋ ํน๋ณํ ์ ์ด ์๋์ง ์ดํผ๊ณ ์ถ์ด์ ํ์ธ๋๋ฐ ๊ธ์ด ๊ฝค ๋ช ๋ฃํ๋ค๋ ์ธ์์ ํ์คํ์ง๋ง ๊ทธ ๋ฐ์ ๋ด์ฉ์ ์์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋คย ๐คย ๊ฐ์ธ์ ์ผ๋ก๋ ์ฒซ๋ฒ์งธ ๋ฆฌ๋ทฐ์ด๊ฐ ์ง์ ํ๋ task์ ๋ ผ๋ฆฌ์ ํฉ์ฑ ํ์ง์ ๋ํ ์๋ฌธ, ์ค์ ํจ์ ํธ์ถ์ ์๋ ์ (์ด ์ญ์ ํฉ์ฑ ์์ค์ด์๋ ์ ) ๋ฐ์ดํฐ ํ์ง์ ๋ํ ๋ฌธ์์ ๊ณต๊ฐ์ด ๋ ๊ฐ๋๋ค. ์ ์๋ ๋ฐ๋ฐ ํ๊ธด ํ๋๋ฐย ์ฌ์ ์ย ์์ฑ์ ๋ต๋ถํฐ ์๋ง๋ค๋๋ก ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ย ์ฌํ์ย ๋ณ๋ ๋ณต์กํ ํํฐ๋ง ๋ฑ ๊ฒ์ฆ์ด ํ์์๋ค๋ ์ฃผ์ฅ์ด ๋จนํ์ ์ ์๊ฐ ์ค๋ฅธ ๊ฒ๋ ์ ๊ธฐํ๋ค์. (๋ฌผ๋ก ๊ทธ ๋ฐ๋ฐ๋ง ์๋ ์ ์ ์๋์ง๋ง, ์ด ๋ฆฌ๋ทฐ์ด๋ ์ต์ข 5์ ์ผ๋ก ๋ง๋ฌด๋ฆฌํ์ต๋๋ค.)