Jump to content

자연어와 기계어 그리고 그 사이 (Text 2 Command)


Recommended Posts

01000011 01001100 01001111 01010110 01000001 00100000 01010011 01110100 01110101 01100100 01101001 01101111

뭐죠? 암호문인가요?
 
0a710ba9-7e47-1064-817e-da4850b962d8.jpg.7bb60f45823e646f8a88d950a57688a6.jpg
 
이 복잡한 숫자는 바로 0과 1을 사용하는 컴퓨터의 언어입니다.
위 이진수를 인간의 언어로 변환하면 'CLOVA Studio'가 된답니다!
 
그러면 사람과 컴퓨터는 어떻게 의사소통할까요?
컴퓨터는 사람이 사용하는 말을 바로 알아들을 수 없어서, 컴퓨터가 알아들을 수 있는 말로 변환이 필요하죠.
이때 사람의 언어와 컴퓨터의 언어를 이어주는 것이 바로 프로그래밍 언어입니다.
 
프로그래밍 언어는 컴퓨터에 가까울수록 저수준 언어, 인간과 가까울수록 고수준 언어라고 합니다.
흔히 우리가 '컴파일링'이라고 하는 건 고수준 언어를 저수준 언어로 변환하는 과정을 말해요.
 
지금부터 클로바 스튜디오를 통해 사용자 발화의 의도를 이해하고, 지시문 형태로 변환하여 대신 수행 해주는 작업을 보여 드리겠습니다.
 
▼ 먼저 자연어 문장과 intent를 예제로 넣었습니다.
0a710dbd-7e47-1e04-817e-d870c38d5b49.thumb.png.3f745ebad68727729e0723d8b2422d27.png
 
 "TV 볼륨 10으로 해줘."라는 문장을 [음량.높임(TV) => 10]으로 시스템이 이해할 수 있는 형태로 변환하였네요.
0a710dbd-7e47-1e04-817e-d87151035b59.thumb.png.31aed6a6865818bdbbe992965199dbda.png
 
 "블라인드 닫아줘."라는 문장은 [조작.닫힘(블라인드) => CLOSE]으로 변환했습니다.
0a710dbd-7e47-1e04-817e-d87555887bd6.thumb.png.2baaba7de1ce82a0aec05312532c0200.png
 
 이렇게 지시문만 입력한 경우에도 자연어로 변환을 했습니다.
0a710dbd-7e47-1e04-817e-d88197c24201.thumb.png.a6164200f649a3dee0e2463715f2ad76.png
0a710dbd-7e47-1e04-817e-d8819cc14205.thumb.png.86f47906b90a5941fae159c60db89879.png
 
어때요? 그럼 이렇게 활용할 수도 있지 않을까요?
 
 
▼ 예약 시스템의 포맷 데이터를 가지고, 대화형으로 변환할 수 있습니다.
[...] 입력은 제가 한 것이고, 컬러 표시된 것이 클로바의 결과입니다.
0a710ba9-7e47-1064-817e-da769be86a34.thumb.png.aa7698943107c9acf7529ad8db6afae0.png
 
뿐만 아니라 자연어 질의를 검색엔진에 유리한 형태로 가공하여 정답을 출력할 수도 있습니다.
 
 "미금역 근처에 있는 스테이크 집 아웃백 위치가 궁금해 왜냐하면 내 아들이 거기 가고 싶다고 했거든 빵이 맛있어"라는
아주 긴 이 문장에서도 '미금역 근처에 있는 스테이크 집 아웃백 위치'라는 사용자 의도를 파악하고,
최종적으로 [검색("미금역 근처 맛집") = '아웃백스테이크하우스 분당미금점']라는 지시문으로 변환했습니다.
0a710dbd-7e47-1e04-817e-d883b2764ae1.thumb.png.890069eca239b4939b6310cb5204d424.png
 
응답 결과는 대화형으로 변환할 수도 있죠.
 
 "나 궁금한게 있는데 피가 왜 빨간색인지 그것이 너무 궁금한거야. 왜냐하면 내가 내가 색종이 자르다가 피가 났는데 왜 초록색이 아닐까"
[검색('피 색깔') = 적혈구에 포함된 헤모글로빈의 색 때문에 붉은 색을 띠는것]라고 지시문과 결과를 출력했습니다.
"피는 적혈구에 포함된 헤모글로빈의 색 때문에 붉은색을 띠는 것입니다."라고 대화형 결과도 제공합니다.
0a710dbd-7e47-1e04-817e-d8d79cbf7f0f.thumb.png.60482d4fbfd22e347fc2abff50667bd3.png
 
조금 더 까다로운 질의를 해보겠습니다.
 
 "그 머냐 그 거미인간 거미줄 쏘고 댕기는 그 머지 그 영화 찾아줘"라는 질문은
[검색('스파이더맨')=스파이더맨 홈커밍] 이라고 변환했습니다.
0a710dbd-7e47-1e04-817e-d8d82ab906cb.thumb.png.a4fa890c5564647e0420506e7f63ce0d.png
 
개떡같이 말해도 찰떡같이 알아듣는 하이퍼클로바 언어모델입니다.
 
0a710dbd-7e47-1e04-817e-da10871e3816.jpg.5ef3f7dafe682a3f9fe158a8d8ecd25a.jpg
 
자연어를 본격적인 프로그래밍 언어로 가공하는 작업을 만들어볼까요?
 
입력한 문장에서 스타일적인 요소를 파악하여, HTML 코드에 style 속성을 입히는 작업을 만들어보았습니다.
 
▼ "'하이퍼클로바 클로즈 베타를 시작합니다.'를 초록색 볼드체로 씁니다. 다음 줄에는 '2022년 2월8일(화)'라고 파란색으로 씁니다. 가운데 정렬로 쓰세요."라고 입력을 합니다.
참고로 프롬프트에는 하나의 예제만 넣은 상태입니다.
 
0a710dbd-7e47-1e04-817e-da2d27383d90.thumb.png.d409dba23756af66254121764e96d5ce.png
▲ style 태그를 적용한 html 코드로 전환된 것을 확인할 수 있습니다.
 
아, 이런! 결과가 출력된 상태에서 이런 요청이 생겼네요.
0a710dbd-7e47-1e04-817e-da2e24393f1e.png.0b945c36fadf1eeca66f83073078e7fb.png
▼ '신청하기 버튼도 그려줄래요? 신청하기 버튼의 outlink는...'이라고 한 줄 추가하고 다시 실행합니다.
0a710dbd-7e47-1e04-817e-da29102d3c5d.thumb.png.db4e94d904dad21bf5114152b44c9e04.png
 
 그러면 이렇게 버튼에 대한 코드가 추가로 생성됩니다.
0a710ba9-7e47-1064-817e-da3d083262a2.thumb.png.c7fc7e8db7913590d54e755706709771.png
 
 이제 코드 편집기에서 실행해보면, '신청하기' 버튼이 만들어진 것을 확인할 수 있습니다.
물론 버튼을 클릭하면 요청한 페이지로 이동까지 합니다.
 
0a710ba9-7e47-1064-817e-da3d49ec62a6.png.460869863680c635a4cfc5a178b10286.png
 
이번엔 자연어를 if문으로 가공하는 실험을 해보았습니다.
 
 마일리지, 연령별 조건들을 적고, 조건이 아닌 경우에 대해서도 명시했습니다.
실행을 눌렀더니 간단한 if~else문으로 변환해주었네요.
이 작업의 경우, 프롬프트에 별도의 예제를 넣지 않았습니다.
 
0a710dbd-7e47-1e04-817e-da0ec2e0380c.thumb.png.4e1cc908c78a1b1e85bc8c78100e4910.png
 
지금까지 텍스트를 커맨드로 변환하는, 그리고 그 반대의 과정에 대해서도 살펴보았습니다.
 
최근 Deepmind가 AlphaCode(링크)를 공개하여 많은 화제가 되었죠.
Github 등 여러 출처의 개발 코드들을 가지고 Pre-trained과 Fine-tuned된 모델을 통해, 아주 고수준의 프로그래밍 언어를 구사할 수 있습니다.
 
이제는 지시문을 기계 언어로 변환하는 것에서만 그치는 것이 아니라, 복잡한 문제를 해결하는 단계까지 다가간 거 같습니다.
 
0a710ba9-7e47-1064-817e-da5c2aa869df.thumb.png.e83ed09a39141ed2572b3f8c5c40f1a9.png
 
Text 2 Command로 시작한 글이었는데, 결론은 코딩하는 AI가 되었네요.
하이퍼클로바 언어모델은 앞으로 어떤 형태로 발전해 나갈 수 있을까요?
 
0a710ba9-7e47-1064-817e-da600df869ef.jpg.2e33b14efd301fadf908328f2dab1099.jpg
 
  • Thanks 1
링크 복사
다른 사이트에 공유하기

게시글 및 댓글을 작성하려면 로그인 해주세요.



로그인
×
×
  • Create New...