본문 바로가기

소프트웨어-이야기/데이터과학

Low-code LLM: Visual Programming over LLMs

LLM이란?

LLM은 Large Language Model의 약어로, 대용량 언어모델을 말한다. LLM은 대규모 데이터셋에서 학습된 인공지능 모델로, 자연어 처리 분야에서 많이 사용된다. LLM은 단어, 문장, 문단, 문서 등의 자연어 데이터를 이해하고 생성할 수 있다. 이는 대용량 데이터셋을 이용해 학습된 모델이기 때문에, 다양한 자연어 처리 작업에서 높은 성능을 보이며, 최근에는 GPT-3 등의 모델이 대표적으로 알려져있다.

Low Code이란?

Low code이란, 최소한의 코딩 지식으로 애플리케이션을 만들 수 있도록 하는 프로그래밍 방법이다. Low code를 사용하면, 빌딩 블록 방식으로 빠르게 프로그램을 만들 수 있다. 스크래치 같은 UI 기반의 프로그래밍 툴을 떠올려보자.

기존 LLM의 한계

LLM으로 복잡한 작업을 해야할 때 어려움이 있다. 예를 들어, 복잡한 시스템을 설계하려면 여러 질문과 대답이 필요하다. 사용자는 명령을 하고, 기다리고, 다시 명령을 변경하는 과정을 반복한다. 프롬프트를 작성하고, 즉각적으로 대답하기 위해 응답 결과를 기다리는건 비효율적이다.

그리고 기존의 방법은 사용자가 작업 워크 플로우를 쉽게 계획하고, 변경하기 어렵다. 명확한 작업 워크 플로우 없이 사용자가 질문을 정제해가며, 문제를 해결하게 한다.

이러한 프롬프트 엔지니어링 프로세스는 통제하기 어렵고, 많은 시간이 걸린다.

Low-code LLM이란?

Low-code LLM: Visual Programming over LLMs 논문은 LLM과 사람이 상호작용을 하여, 복잡한 작업을 쉽게 해결하는 방법을 제안한다. Low-code LLM은 복잡한 프롬프트를 작성하는 시간을 줄여주고, 문제해결을 위한 워크플로우를 먼저 제안한다.

그림으로 Low Code LLM이 무엇인지 한눈에 살펴보자.

Low-code LLM 작동 순서

1. 첫 요청을 프롬프트로 전달하면, LLM에서 워크플로우를 계획한다. 이를 Planning LLM이라고 부른다.

2. 워크플로우는 사용자가 쉽게 이해할 수 있는 UI으로 표현된다.

3. 사용자는 클릭/드래그/텍스트 편집으로 LLM이 계획한 워크플로우를 조정할 수 있다.

4. 워크플로우를 실행하면, Low code LLM은 각 워크플로우 별로 LLM을 실행한다. 이를 Executing LLM이라고 부른다.

5. 실행 결과를 확인한다.

사용자는 원하는 결과가 나올 때까지 워크플로우를 조정하며, 실행 결과를 확인한다. 이를 통해 Low code LLM은 UI와 워크플로우 설계를 통해 사람과 컴퓨터 간의 간극을 좁혀준다.

Low-code 실행 결과 예시

1. 프롬프트에 "음주 운전에 대한 수필을 작성해줘"라고 명령한다.

2. Planning LLM은 다음과 같은 실행 계획을 순서대로 생성한다.

Step Step Name Step Description Jump Logic
1 자료 조사 음주운전 통계, 원인, 영향에 대한 자료 수집하기  
2 개요 정리 서론, 본론, 결론이 포함된 개요 정리하기 원하는 결과를 만들지 못하는 경우, Step 1으로 돌아가기
3 글쓰기 음주운전의 원인과 결과, 해결을 본문에 포함시켜서 글 작성하기  
4 교정하기 맞춤법과 문장 부호 검증하기  

3. 실행 계획을 UI에서 수정하기

Low-code LLM 의 장점

1. 복잡한 작업을 수행 계획 (Plan)으로 분해하여, 사용자가 제어할 수 있도록 제공한다.

2. 그래픽을 제공하여, 사용자가 편하게 기능을 사용할 수 있다.

3. 사람의 지능, 선호도가 반영되어야하는 영역에서 효과적으로 사용될 수 있다.

 

Low-code LLM 활용 아이디어

가상 호텔 서비스 

프롬프트

너는 호텔 고객 서비스 담당자야. 누군가 방을 예약하기 위해 전화를 할거야. 

사용자가 지정한 필수 요구사항

필수 프로세스: 인사, 객실 이용 가능여부 확인, 예약 확인

필수 정보: 이름, 체크인/체크아웃 날짜, 객실 옵션, 연락처, 결제 방법

 

이렇게 입력을 하면, Planning LLM은 좌측과 같은 워크플로우를 설계할 것이다. 그리고 여기에 몇가지 커스텀 예외 플로우를 사용자가 직접 입력할 수 있다. (빨간 박스 영역)

LLM Plan 플로우 차트로 돌려본 AI 모델의 실행 결과는 다음과 같다. 고객이 대화를 신청하면, LLM Plan에 있는 단계 별로 대화를 이끌어 나간다. 

코드 

github의 코드를 다운받은 후, docker를 실행하면 모델을 확인할 수 있다. 

브라우저에서 레파지토리 설치 경로 + /TaskMatrix/LowCodeLLM/src/index.html을 붙여서 조회하면 데모 화면이 뜬다.

https://github.com/microsoft/TaskMatrix/tree/main/LowCodeLLM

 

GitHub - microsoft/TaskMatrix

Contribute to microsoft/TaskMatrix development by creating an account on GitHub.

github.com

 

소감

chatgpt를 사용하여 프로그래밍을 하다보면, 야크 털 깎기를 하고 있는 듯한 느낌을 받을 때가 있다. 여러 질문과 답변을 통해, 내가 원하는 결과를 겨우겨우 찾아간다. Low LLM Code를 사용하면, 소프트웨어 개발 프로세스를 패턴화하기 유용하겠단 생각이 든다.

그리고 기업에서 적용한 GPT가 오남용되는 문제를 줄일 수 있겠단 생각도 든다. 최근에 토스에서 Chatgpt 를 적용한 기능을 출시했다. 이 기능을 통해 chatgpt 유료모델을 무료로 사용할 수 있다고 소문이 나고, 의도하지 않은 셀프 디스 답변을 하여 이슈가 되기도 했다. 만약 LLM을 통해 Step을 정의하고 유도할 수 있다면 이러한 어뷰징과 LLM을 통제할 수 없다는 문제를 해소할 수 있겠단 생각이 든다. 

그리고 작업의 각 단계를 나눠서 보여준 점에서 task-driven-autonomous-agent 개념이 반영된 기능으로 보였다. 

 

용어 사전

빌딩 블록 방식: 하나의 컴퓨터 시스템이나 대형 소프트웨어를 설계하는 과정에서 이들 제품을 구성하는 각각의 구성 요소를 서로 독립된 모듈로써 구성하는 방법.

 

원본

https://paperswithcode.com/paper/low-code-llm-visual-programming-over-llms

 

참고

https://yoheinakajima.com/task-driven-autonomous-agent-utilizing-gpt-4-pinecone-and-langchain-for-diverse-applications/