뒤로
양영준
양영준 ·

취준생을 위한 면접 연습 서비스, 모뷰를 만들면서 마주쳤던 문제들

다음은 SW 마에스트로에서 LLM 서비스를 만들면서 느꼈던 것들을 정리한 글입니다.

(참고로, 이번 달 내로 저희 서비스를 보여 드릴 예정입니다~)

LLM 개발은 쉬워 보였습니다.

LLM 개발을 하기 전에 생각했던 것중 가장 첫 번째가 "그냥 ChatGPT에게 보내면 끝 아닌가?"였습니다…

그래서 처음엔 배울게 없을거라 느꼈습니다. 하지만 그건 오산이었습니다. LLM app 개발은 생각보다 어려움이 많았습니다.

특히 어려운 것은, toy project 수준이 아니라 production 수준까지 끌어올리는 것이었습니다.

LLM 어플리케이션 개발에서 어려웠던 일들

1. LLM은 생각보다 멍청하다.

Chatgpt 할루시네이션은 유명하죠. 이는 제가 작업을 할 때도 마찬가지였습니다.

제가 무언가를 원해도 헛소리를 하는 경우가 많았습니다.

 특히 복잡한 작업일 때 더더욱 그랬는데요. 

예를 들어, “A를 참고하여 B를 하고, 포맷형식은 C로 해달라”라고 한 번에 프롬프트를 보내면, 적절하지 않은 답변을 낼 때가 많았습니다.

하지만 이러한 문제는 고급 프롬프팅 기법을 참고하더니 좀 완화 되더군요… (참고 링크는 아래에 첨부드릴게요!)

그리고 결과에 대한 형식을 지정 해도 100% 동일 하리란 보장을 하기가 어려웠어요. 

정규 표현식 에러를 일으키는 경우가 빈번하게 있었습니다.

2. 선례가 없다.

Spring security, JPA... 이런 건 Well known 영역이에요. 누군가 해당 문제를 풀어본 적이 있고, 구글링하면 정보를 얻기 쉬운 것들이죠. GPT도 어느 정도까지는 잘 알려 줍니다.

그런데 Prompt engineering, 특히 LLM을 제어해야 할 필요가 있을 때 선례를 찾기가 힘들었어요… 

그래서 삽질해가면서 스스로 검증해 나갔어요. 여러가지 가설과 프롬프트 예시들을 세워놓고, 쥬피터 노트북을 키고 코딩 해가며 제일 괜찮은 프롬프트를 찾았습니다.

만약 LLM 서비스를 목표로 한다면, 처음엔 text in text out 으로 CLI 프로그램을 짜서 실제로 잘 작동하는 지 먼저 검증하는 것을 추천드려요.

그리고나서 간단한 플로우와 모듈이 구상된다면, 그 다음부터 아키텍쳐 설계를 해나가는게 좀 더 낫더라고요! (이것 역시 선례가 없기 때문에 직접 부딪혀가며 알아가는게… ㅠ)

3. 테스트하기 어렵다. (== 성능 측정이 어렵다.)

첫 째, 프롬프트 날리는 걸 테스트 코드로 작성하기 어렵습니다.
테스트 입력은 고정되어 있지만, 테스트 출력은 아니에요… 심지어 gpt call은 api 이용료까지 들기 때문에, 모킹 없이 한다면 테스팅도 돈이 듭니다. 

둘 째, gpt의 출력값을 어떤 방식, 어떤 기준으로 측정할지가 어렵습니다.

이는 논문에서도 많이 나오고 있는 문제인데요. 논문에서도 사람이 보고 판단해서 수작업으로 라벨링하고 있거나, 다른 LLM한테 평가를 맡기는 식으로 많이 하더군요…

(그래서 저도 “마음”을 써서 프롬프트 성능을 측정했습니다! ^^;;)

결론

그래도 LLM이 주는 장점은 많다고 봅니다.

이유는 다음과 같습니다.


1. 기존 ai의 문제점인 데이터 라벨링 등의 수작업이 없어져서 AI 서비스를 더 쉽게 만들 수 있게 된 것 같습니다. (물론 이는 gpt 결과 테스트할 때 라벨링의 숙제로 미뤄지는 것과 같긴 합니다만 ㅋㅋ;;;)


2. ai 잘모르는 사람도 쉽게 창의적인 앱을 만들 수 있게 됬습니다. (백엔드건 프론트엔드건 ai를 프롬프트로 건들 수 있게 됐으니까요.)

하지만 재밌는 app을 만들긴 쉽지만, 제품 수준의 app을 만들긴 어렵습니다. 왜냐면 제품 수준 app은 할루시네이션이 나오면 치명적이기 때문이에요. 이러한 할루시네이션을 어떻게 최소화하면서도, gpt call을 줄여나갈지가 새로운 문제이겠습니다. 그리고 성능 측정과 테스트도 새로운 문제이겠죠.

참고 링크

Prompt Engineering Guide | Prompt Engineering Guide (promptingguide.ai)

openai-cookbook/techniques_to_improve_reliability.md at main · openai/openai-cookbook (github.com)

9

댓글

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.