Upstage(이하 업스테이지)의 LLM인 Solar의 API가 베타 공개를 했다는 기사를 접하고 한 번 사용해 보기로 했습니다.
업스테이지는 전부터 주목 및 기대하고 있던 회사인데요, Solar는 허깅페이스의 LLM 리더 보드에서 1등을 하기도 했다고 합니다(모델에 대한 자세한 내용 여기에서 확인할 수 있습니다).
https://console.upstage.ai 에 접속해서 가입을 하고 나면, 베타 버전을 사용할 수 있는 Access Key가 발급됩니다. 이 키를 가지고 사이트에서 제공하는 예제를 따라 하면 바로 결과를 확인할 수 있습니다.
사이트에서는 아래와 같이 예제를 제공하고 있습니다.
서버 API이기 때문에 당연히 기본적으로 HTTP 프로토콜로 접근이 가능하고요, openai, langchain, llamaindex 같은 파이썬 패키지로도 사용할 수 있습니다. 앞으로 이런 공용 패키지를 따르는 것은 기본이 되지 않을까 생각됩니다.
API는 Chat과 Translation 두 가지를 제공하고 있습니다. 그 중에서 Chat을 잠깐 테스트해 봤는데요, 예제 코드만으로도 간단한 테스트 하기에는 충분하기는 했지만, 매번 프롬프트 변경을 위해 코드 수정하는 것이 번거로워 간단한 웹앱을 하나 만들어서 Solar API를 테스트해 봤습니다(이전 대화 내용을 모두 포함하는 기능은 구현되지 않았습니다).
- 테스트용 웹앱 소스코드: https://github.com/intotherealworld/lunar
GitHub - intotherealworld/lunar: Upstage의 Solar API를 테스트하기 위한 간단한 애플리케이션
Upstage의 Solar API를 테스트하기 위한 간단한 애플리케이션. Contribute to intotherealworld/lunar development by creating an account on GitHub.
github.com
console.upstage.ai 사이트에 Chat을 테스트 해 볼 수 있는 ChatGPT 웹 화면과 같은 UI를 제공하고 있습니다.
https://console.upstage.ai/playground/chat
프롬프트에 대한 결과만을 확인하려는 경우 해당 화면을 사용하시면 됩니다.
이미 허깅페이스 LLM 리더보드에서 1등을 하기도 했다고 하니 상세한 비교 등은 잘 진행됐을 것이라 생각하여 세밀한 테스트를 진행하지는 않았고(못했고 가 더 맞을 거 같습니다), 느낌이 어떤지 몇 가지 프롬프트를 입력해 보면서 결과를 살펴봤습니다.
전반적으로 응답 결과가 상당히 괜찮다는 느낌을 받았습니다. 단순한 질문, 창작, 코드 생성 등등 대부분 자연스럽게 질문의 목적에 부합하는 대답을 해 줬습니다(코드의 경우는 생성 되는 것만 보고 실제 코드를 실행해 보지는 않아서 좀 더 검증이 필요하기는 합니다). 좀 아쉬웠던 점은 ChatGPT 3.5에 비해 답변 내용이 단순한 경우들이 많았습니다. 한 가지 예로 아래 같은 경우입니다.
관련해서 한가지 고려할 점은 system 정의를 예제 그대로 "You are a helpful assistant."로 지정하고, 그 외 다른 매개변수를 조정한 것은 없다는 것입니다. 그래서, 이 런 결과가 나왔을 수도 있을 거 같기는 합니다
예전에 업무상 텍스트에서 주요 키워드를 추출하는 작업이 있었고 그 당시 ChatGPT를 가지고 테스트를 했었는데 결과가 매우 좋았었습니다. 그래서, Solar는 어떨지 테스트를 해 봤습니다.
결과가 매우 만족스러웠습니다. 첨부한 내용 외에도 더 테스트를 해 봤는데 ChatGPT와 크게 차이 없이 좋은 결과를 보여줬습니다. 이런 도메인 특화된 부분이 Solar의 공략 대상일 수도 있겠다 하는 생각이 들었습니다.
마무리
이렇게 간단히 Solar API를 테스트 해 봤습니다. 대략적으로 어느 정도인지만 보려고 한 거라 이 정도 선에서 마무리했는데요, 추후 필요한 경우 세세적인 보정과 좀 더 Solar에 맞는 프롬프트를 찾아보려고 할 수도 있을 거 같습니다. 그리고, 프로그래밍 코드 생성 응답에 대해서는 결과들이 나오는 것만 보고 직접 해당 코드를 사용해 보지는 않았기 때문에 이 부분에 대해서 좀 더 확인해 볼 거 같습니다.
(논문도 초록만 읽어 봤는데 시간된다면 한 번 ...)
전반적으로 기본 성능이 맘에 들었고, openai, langchain, llamaindex 같은 범용 프레임워크에 맞춘 것도 좋았습니다. 그리고, 베타고 한시적 오픈이라 사용자가 적어서도 그렇겠지만 쾌적한 응답 속도도 맘에 들었습니다(기사 내용에 보면 GPT3.5 대비 2.5배 빠르다고 합니다). ChatGPT 3.5에 비해 좀 더 간결한 내용을 답하는 부분은 아쉬운 부분이었는데, 두 모델 간의 매개변수 수(Solar: 10.7B, ChatGPT 3.5: 17.5B)를 비교해 봤을 때는 당연한 부분이 아닌가 하는 생각도 듭니다. 기사에 보면 계속해서 최대 토큰 수도 증가시키고 다양하게 발전시켜 나간다 하니 앞으로를 기대해 봅니다.
업스테이지는 서두에도 언급한 것처럼 주목하고 있는 기업 중 하나기 때문에 앞으로도 계속 발전하길 기원하며, 그 결과로 나온 모델들을 open source나 open weights로 공유해 주길 바래 봅니다.
추가 사항 (2024-03-18)
Spring AI를 사용해서 API를 써 보려고 했는데 시작부터 막혔습니다.. Spring AI 쪽의 문제이기는 한데, base url 뒤에 붙는 패스에 /v1/을 이런 식으로 고정시켜 놨더군요. ㅠㅠ
OpenAI의 공식 파이썬 패키지의 경우 base url을 받은 후 path로는 /chat/completions 같이 버전이 안 붙은 형태를 붙이기 때문에 잘 동작합니다. 즉, base url을 https://api.upstage.ai/v1/solar 지정하고 사용하면 https://api.upstage.ai/v1/solar/chat/completions 로 제대로 동작합니다. 하지만, Spring AI에서는 https://api.upstage.ai/v1/solar/v1/chat/completions 로 요청을 해서 404가 발생합니다.
추가 사항 (2024-11-12)
바로 위에 있는 2024-03-18의 추가 사항 내용에 대해서 해결이 된 것을 확인했습니다. Spring AI 1.0.0 버전부터는 complement-path라는 속성을 지정해서 원하는 대로 경로를 수정할 수 있게 해 놨더군요. 소스 코드에서도 확인할 수 있습니다. 일전에 Spring AI GitHub의 Dicussions 쪽에 문의했을 때는 아무 대답 없더니, 시간이 지나니 알아서 적용했네요. 지금은 Upstage API 사용 권한이 없어 실제 테스트는 못해 봤지만 잘 될 것으로 예상됩니다.
추가 사항 (2024-11-14)
Open WebUI에서 Solar API를 사용하는 글이 추가 됐습니다. https://intotherealworld.tistory.com/69
'이거저거' 카테고리의 다른 글
Java - Virtual Thread - 고정 (Pinning) (0) | 2025.02.26 |
---|---|
Spring Security Architecture - Servlet 기반 애플리케이션 (3) | 2024.11.15 |
Upstage Solar API 사용해 보기 2 - Open WebUI 에서 사용 (2) | 2024.11.14 |
유니코드 한글 자소 분리 방법 (0) | 2024.10.26 |
앤트로픽의 프롬프트 라이브러리 (0) | 2024.03.22 |