Node 환경에서의 KoGPT 사용기

Node.js 환경에서 카카오 KoGPT API를 호출하고 JSON 요청 본문을 구성하는 방법.

Node.js, KoGPT, AI, NLP

출처: kakao Developers
출처: kakao Developers

카카오 브레인에서는 한국어에 특화된 언어 모델인 KoGPT의 API를 제공한다.

공식 문서에 따르면, GPT-3 기반 언어 모델로, 주어진 문장의 긍정과 부정 판단, 내용 요약 또는 결론 예측, 질문에 대한 답변, 다음 문장 작성 등 한국어와 관련된 모든 과제를 수행할 수 있다고 한다.

이전에 인공지능 모델을 이용한 프로젝트를 진행하며 OpenAI의 ‘text-davinci-003’ 모델을 사용해 봤고, 이번에 진행하는 프로젝트는 한국어 기반의 프롬프트의 가공이 필요했기 때문에 koGPT를 이용한 간단한 테스트를 진행해 봤다.

공식 문서에서는 Python을 사용한 구현 예제를 제공하지만, Node, Spring 같은 다른 환경에서도 구현하기 어렵지 않다. 요청의 헤더에 content-type을 json으로 설정해야 하는데 body 객체를 그대로 전송할 경우, 400 Bad Request 응답을 받을 수 있으니 요청의 body를 꼭 JSON 형식으로 직렬화하여 보내주어야 한다는 것을 유의하는 것이 좋다.

프로젝트는 Node.js 환경에서 진행했고, fetch 함수는 node-fetch 라이브러리를 이용했다.

const KOGPT_URL = "https://api.kakaobrain.com/v1/inference/kogpt/generation";

const prompt = "한글을 창제한 조선의 임금이 누군지 알려주세요.";

const body = {
    prompt,
    max_tokens: 2048, // 생성할 결과의 최대 토큰 수
    temparature: 1, // 온도 설정
    top_p: 1, // 상위 확률 결정
    n: 1, // 생성할 결과 수(쿼터 차감)
  };

// kogpt API 호출
const response = await fetch(KOGPT_URL, {
  method: "POST",
  headers: {
    "Content-Type": "application/json;charset=UTF-8",
    Authorization: "KakaoAK " + process.env.KOGPT_API_KEY, // API Key
  },

  body: JSON.stringify(body),
});

const json = await response.json();

console.log(json);
토큰을 최댓값으로 설정했더니 꽤 자세한 결과를 얻었다.
토큰을 최댓값으로 설정했더니 꽤 자세한 결과를 얻었다.

온도와 상위 확률을 기본 값으로 설정하고 요청했지만, 이렇게 상세하게 나올 줄 몰랐다! 이 밖에도 공식 문서에서 다양한 예제와 정보를 제공하고 있다.

카카오에서 제공하고 있으므로 공식 문서가 한국어라는 점과, OpenAI에서 GPT 모델을 이용하는 경우에는 의존성 패키지 설치가 필요했는데 koGPT의 경우는 그런 추가적인 의존성 패키지가 필요하지 않다는 점은 확실히 메리트라고 느껴졌다.

또한, 테스트를 위해 OpenAI의 gpt-3.5-turbo 모델도 비교했었는데, 응답을 얻기까지 빠르면 10초, 20초 내외까지도 시간이 소요되었는데 비해, koGPT의 경우 약 400~500ms 만에 결과를 얻을 수 있어 결과 산출 속도 면에서도 장점이 있었다.

이용 정책에서도 토큰에 비례해 과금되는 OpenAI에 비해, 월 1,000건의 요청까지는 무료로 이용할 수 있다는 점은 꽤 확실한 장점이라고 생각한다.

물론 아쉬운 점도 존재하긴 했다. 온도와 상위 확률 값을 고정하고 다양한 프롬프트를 대입해서 여러 값을 뽑아본 결과, 정확한 프롬프트 전달의 중요성이 조금 더 부각되는 느낌을 받았다.

원래 아티클로써 작성할 생각은 없었지만 OpenAI의 text-davinci-003 모델을 이용해본 경험이 있기에 간단한 비교와 함께, Node 예제는 찾기 어려워 간단한 예제를 공유하고자 기록을 남기게 되었다.

References

KoGPT, kakao developers : https://developers.kakao.com/product/kogpt


원문: Medium