AI 회사에서 LLM을 업무에 활용하는 방법

AI 회사에서 LLM을 업무에 활용하는 방법

회사에 병가를 신청할 때 진료확인서와 진단서 중 어떤 서류를 제출해야 하는지 알고 있나요? ChatGPT에 물어본다고 해도 명확한 답을 알 수는 없습니다. 회사마다 규정이 다르고 ChatGPT는 우리 회사 규정을 학습하지 않았기 때문입니다. 담당자나 병가 신청 경험이 있는 동료에게 물어보면 가장 빨리 알 수 있을 텐데요. 하지만 지금이 오전 6시이고 병원 창구 앞이라면 누구한테 물어봐야 할까요? 이런 상황을 직접 겪은 마키나락스 AI 엔지니어 장종하님은 회사에 복귀해 곧바로 ‘드민이’를 개발했습니다. 이른 아침, 야근, 주말 등 담당자가 일하고 있지 않은 상황에도 24시간 답변해 줄 AI 챗봇이 탄생한 계기입니다. AI 회사에서는 대규모 언어 모델(LLM, Large Language Models)을 업무에 어떻게 활용하고 있을까요? 최신 AI 기술을 적용해 만든 챗봇 개발 과정과 구성원들의 사용 후기를 소개합니다.

 

똑똑하고 귀여운 우리 회사 맞춤 AI 드민이

빠르고 다정하게 답변해주는 드민이

빠르고 다정하게 답변해주는 드민이

드민이는 회사의 행정업무를 뜻하는 ‘Administration’에 인격을 부여해서 지은 이름입니다. 미니언즈를 닮은 귀여운 외모에 항상 마키나락스 내부 데이터를 공부하고 있습니다. 귀엽죠? 드민이는 마키나락스 구성원들이 Slack(슬랙) ‘ask-admin’ 채널에 회사 생활 관련 문의를 하면, 바로 스레드로 답변을 달아줍니다. 담당자나 해결 방법을 알려줘요. 또 슬랙에 @드민이를 검색한 후 DM을 보내도 빠르게 답변을 해주고요. 업무 관련 내용뿐만 아니라 같이 잡담도 나눌 수 있습니다. “배고프다”고 말을 걸면 간식을 챙겨먹으라고 다정하게 답해주고 간식을 신청하는 슬랙 ‘snack’ 채널에 지금 먹고 싶은 간식을 신청하라고 안내해 줍니다. 회사 관련 퀴즈도 만들어 주고요. 똑똑하죠?

 

드민이는 어떤 방법으로 개발된 LLM인가요?

드민이는 ▲잘 만들어진 LLM ▲우리 회사 데이터에 특화된 답변을 할 수 있게 정보를 주는 RAG(Retrieval-Augmented Generation) ▲사용 편의성을 위한 Slack-Bolt. 세 가지를 결합해서 만들었습니다. 종하님이 그린 전체적인 스키마는 아래와 같습니다.

드민이 스키마 구조

드민이 스키마 구조

드민이는 마키나락스 근무 규칙, 취업 규칙, 퇴직연금DC규약, 노사협의회 정책, 슬랙 채널 ‘ask-admin’ 내용, 전문연구요원 관련 문서 등 다양한 운영 관련 데이트를 참고해서 답변합니다. 이때 슬랙 채널 데이터를 제외하면 모두 PDF 방식의 데이터이고 PDF 데이터도 모두 텍스트로 변환했습니다. 또한, 잘못된 정보를 제공하는 할루시네이션(Hallucination)은 줄이고 명확한 문장을 전달하기 위해 Prompt Engineering을 통해 모르는 내용은 모른다고 하고 최대한 담당자를 추론할 수 있게 유도했습니다. 

드민이 작동 방식

드민이 작동 방식

‘회사 전화번호가 뭔가요?’ 라는 질문을 받았을 때, 이 문장을 모델이 잘 이해할 수 있도록 숫자로 임베딩(embedding)하는 과정을 수행합니다. 이후 리트리브(Retrieve)를 수행해 이 문장과 관련된 문장 여러 개를 추출하는 과정을 거치게 됩니다. RAG를 간단히 설명하면 질문에 답을 할 수 있는 데이터를 미리 가지고 있고 그 데이터를 잘 훈련된 LLM이 이해하기 쉽게 답변을 생성해 주는 방식입니다. 드민이를 만든 기술에 대한 자세한 내용은 🔗도메인 특화 LLM 성능을 높이는 AI 기술 트렌드 포스팅을 참고해 주세요.

 

사내 챗봇을 Slack에 연동하는 방법

드민이의 초기 기획 단계에서는 ChatGPT처럼 별도의 웹페이지에서 답변하는 방향을 생각했습니다. 하지만 드민이 오픈 전 관련 구성원들에게 테스트를 진행했는데, 생각보다 사용률이 높지 않았다고 해요. 그래서 종하님은 ‘ask-admin 데이터를 주로 참고했으니 회사에서 가장 많이 사용하는 슬랙과 연동하면 접근성이 좋아지지 않을까?’라는 생각을 하고 실행에 옮겼습니다.

지금부터 Slack-Bolt를 사용해 슬랙과 드민이를 연동한 방법을 단계별로 설명해 드릴게요.

  1. Slack 앱 생성: 먼저 Slack 앱을 생성하고 해당 앱의 설정에서 기본적인 구성을 완료해야 합니다. Slack 앱의 설정에서는 OAuth 토큰, 슬랙 봇 토큰 등을 얻을 수 있습니다.
  2. Bolt 설치: 선택한 언어(Node.js, Python, Java)에 따라 Bolt를 설치합니다. 이를 위해 해당 언어의 패키지 관리자를 사용하여 Slack-Bolt 패키지를 설치합니다.
  3. 앱 설정 및 이벤트 구독: Slack 앱의 설정에서 이벤트 구독을 활성화하고, 앱이 반응할 이벤트 유형을 선택합니다. 예를 들어, 메시지가 채널에 게시되거나 멘션 되었을 때 앱이 반응하도록 설정할 수 있습니다.
  4. 액션 설정: Slack 앱이 수행할 작업 또는 응답을 정의합니다. 이를 위해 Bolt의 API를 사용하여 각 이벤트에 대한 콜백 함수를 작성합니다. 예를 들어, 사용자가 특정 메시지를 보낼 때 앱이 특정 작업을 수행하도록 콜백 함수를 작성할 수 있습니다.

아래 예제 코드와 같이 수행한다면 스레드 달기, 답변, 이모지 달기 등의 작업을 할 수 있습니다.

from slack_bolt import App

app = App()

### 스레드 달기
@app.message("특정 메시지")
def thread_message(message, say):
say(text="스레드에 달릴 메시지입니다.", thread_ts=message["ts"])

### 답변하기
@app.message("특정 메시지")
def reply_message(message, say):
say(text="특정 메시지에 대한 답변입니다.", thread_ts=message["ts"])

### 이모지 달기
@app.message("특정 메시지")
def add_reaction(body, client, ack):
ack()
client.reactions_add(
channel=body["channel"],
name="이모지 이름", # 이모지의 이름을 지정합니다.
timestamp=body["ts"] # 메시지의 timestamp를 지정하여 해당 메시지에 이모지를 답니다.
)

if __name__ == "__main__":
app.start()

드민이랑 일해보니 어떤가요?

계속해서 소환되는 현주님

계속해서 소환되는 현주님

드민이는 실제 마키나락스 구성원들의 효율성을 높여주고 있습니다. 회사의 살림을 책임지고 있는 ask-admin 채널에는 정말 다양한 질문들이 생기고 있는데요. 자연스럽게 반복적인 질문들이 생기는데, 이때 드민이의 존재가 빛을 발하고 있습니다. 또 여러 가지 업무를 진행하고 있는 담당자들이 실시간으로 슬랙 채널을 확인하는 일은 쉽지 않은데요. 이때도 드민이가 가장 먼저 답을 해주고, 담당자를 알려주기 때문에 하루 종일 채널을 모니터링해야 하는 수고로움을 덜었습니다. 덕분에 다른 업무에 더 집중할 수 있다고 해요.

“드민이는 그동안 채널 안에서 나눴던 모든 질문과 답변을 학습해서 빠르게 답변을 해주고 있는데요. 바쁜 admin실의 귀여운 인턴 역할을 톡톡히 하고 있어요. 앞으로 더욱 똑똑해진 드민이를 기대합니다. 드민이 파이팅!” 드민이에게 담당자로 가장 많이 소환되는 용현주님은 드민이에게 칭찬을 아끼지 않았습니다. 다른 구성원들도 드민이 덕분에 슬랙이 더 활발해지고, 사내 분위기도 더 좋아졌다고 입을 모아 말했답니다. 드민이를 만든 종하님은 드민이가 ‘똑똑하다’는 말을 들을 때 가장 보람을 느낀다고 해요. 이런 게 아버지의 마음일까요? 마키나락스 구성원 여러분 앞으로 드민이에게 똑똑하다고 칭찬 많이 해 주세요!

 

LLM TF팀과 드민이의 상관관계

드민이는 마키나락스 구성원들의 효율적인 회사 생활을 지원해 주고 있는 동시에 산업 특화 LLM 개발을 위해 중요한 역할을 하고 있습니다. 다양한 시도와 연구를 진행 중인 마키나락스 LLM TF팀의 테스트 베드로 활약하고 있는 것인데요. 최근에는 CSV 파일을 기반으로 차트 그려주는 기능 테스트를 수행하고 있고, Runway 위에서 동작하고 있는 덕분에 Vector DB 와 챗봇을 쉽게 연결하는 기획도 이루어지고 있습니다. 또 마키나락스가 진행한 RAG 기반의 로봇 예지정비 특화 LLM 에이전트 아키텍처를 구현하는 작업에도 드민이 개발 경험이 녹아있습니다. 이 외에도 LLM을 실제 산업 현장에 적용할 수 있는 무궁무진한 테스크를 검증하는 데 핵심적인 역할을 해줄 것으로 기대하고 있어요.

이미지를 클릭하면 STK 사전 등록 페이지로 연결됩니다

이미지를 클릭하면 STK 사전 등록 페이지로 연결됩니다

마키나락스는 제조, 유통, 배터리, 반도체, 국방, 물류 등 다양한 산업 현장을 AI로 지능화하고 있습니다. AI를 실제 물리적인 환경과 연결하고 있는데요. 그간의 산업 AI 경험과 더불어 어떻게 하면 LLM을 통해 산업 현장에 더 큰 가치를 전달할 수 있을지도 함께 고민하고 있습니다. 그 고민의 결과는 ‘Smart Tech Korea’의 마키나락스 부스와 강연에서 공유할 예정이에요. 6월 19일부터 21일까지 서울 코엑스에서 열립니다. 곧 포스팅으로도 공유하겠습니다.

 

김란영
2024-06-07
Use Cases
See how AI technology in anomaly detection, optimization, and predictive analytics is making industries intelligent