LLM 작업실

잡담

Raspberry Pi 5에 OpenClaw 돌리기 글을 쓴 지 네 달이 되어가는데, 그 사이에 이런저런 재미있는 일들 (AI 사용 측면에서)이 많이 있었다.

우선 가장 큰 것은 OpenClaw를 더 이상 쓰지 않게 되었다. 약간은 복합적인 이유로,

  1. 아래에서 이야기할 모델 떠돌이 생활이 결국 Claude에 다다랐다. Claude를 쓰면 어차피 Claude Code라는 훌륭한 CLI 툴이 있는데 굳이 이를 벗어날 필요가 없다. Claude는 OpenClaw 배척을 반쯤은 공식적으로 하고 있기도 하고.
  2. 업데이트가 너무 많고, 업데이트를 할 때마다 무거워지는게 느껴진다. 속도도 느려지고, 무엇보다 주입하는 프롬프트가 점점 길어지는지 컨텍스트 면에서도, 속도 면에서도 약간은 과한 느낌이 있었다.
  3. 원래는 잡다한 코딩용, 블로그 작업용, 연구용 에이전트를 OpenRouter에서 각각 따로 썼었는데, OpenRouter는 기본적으로 종량제인지라 가격 부담이 꽤 컸다. 이건 Claude 구독 전 GLM Coding Plan을 쓸 때부터 느꼈던 것으로, 어차피 구독을 하게 되면 하나의 모델을 사용하는 방향으로 굳어지게 되는데, 사용법에 따라 강점있는 모델을 사용할 것이 아니라면 이를 유지할 효용이 적다.
  4. 이건 별도의 문제이긴 한데, GLM Coding Plan이 OpenClaw를 피크시간대에 막아버렸다. LiteLLM으로 우회해서 요청 보내면 어차피 뚫리긴 했는데, Claude도 그렇고 전반적으로 coding 목적이 아닌, 약간의 바이럴이 섞인 플랫폼의 대표주자로 OpenClaw의 이미지가 생긴 것 같아서 (따지고 보면 나도 그 유형에 맞아떨어지기는 한다.) 굳이 이를 유지할 필요가 없었다.

그리하여 우선 Hermes Agent를 깔기는 했지만, 사실은 요즘 Claude Code CLI를 쓰며 거의 이를 안 쓰고 있기는 하다. 어차피 cron job이야 시스템 crontab으로 claude -p 쏴주면 되는거고, 이것도 6월 중순에 막힐 예정이라지만 우회할 아이디어는 이미 있다. Hermes가 유용한 것은 뭔가 telegram으로 나에게 알림을 보낼 때 Hermes gateway를 통하면 되는 것과, 가장 중요하게는 수학 관련 대화를 할 때 Hermes UI가 KaTeX를 지원해서 대화의 가독성이 훨씬 좋다는 것이 있다.

아무튼 그래서 현재의 LLM 구성은,

  • Claude: 블로그 글 검토 작업 (주로 VS Code extension), 복잡한 코딩 (CLI), arXiv 긁어서 새로운 연구 중 관심있을만한 것들 요약.
  • Kimi: Claude가 정리한 지식 인출 (Hermes Web UI), 블로그 글 자동 번역 cron job.
  • MiMo: Kimi와 거의 유사한 활용처, rate limit 걸릴 때 사용.

특히 Claude를 도입하고 블로그 작업이 굉장히 편해졌다. 솔직히 초안을 잡게 시키거나 하면 너무 교과서적이기도 하고, 무엇보다 내가 블로그 글 쓰는 목적은 쓰는 과정에 있지 결과물에 있는 게 아니라 잘 쓸 수 있어도 지양해야 하는 것이 맞다. 그런데 정말 좋은 것은 참조 링크 걸 때. 두 가지 측면에서 좋은데,

  1. 예전에 썼던 글을 참조하고 싶을 때, 기존에는 내 머리속에 있는 내용이 어느 글에 있을지 의심가는 한두 페이지를 살펴보고 직접 찾았어야 했는데, 이제 이러이런 내용을 이 카테고리에서 찾아줘. 하면 찾고 링크까지 넣어준다.
  2. 더 좋은 걸로, 만일 명제 1, 명제 2와 같은 식으로 되어있던 글에서, 명제 1과 명제 2 사이에 예시를 넣는다면, 새로운 순서는 명제 1, 예시 2, 명제 3이 된다. 그럼 명제 3을 참조하고 있던 모든 파일들을 수정해야 하는데, 이것도 예시 2를 넣는다고 말하면 알아서 해 준다.

어쨌든 Claude 좋은 거야 이미 잘 알려진 사실이니, 왜 저 세 모델을 저렇게 구성하게 된 이유를 살펴보는게 더 좋을 것이다. 이를 위해선 LLM 떠돌이 생활을 좀 살펴보아야 한다. 지난 글 이후로 굵직한 LLM 모델들이 꽤 나왔다. GLM-5, GLM-5.1, DeepSeek 4, Claude Opus 4.7, Kimi K2.6, MiMo V2.5 Pro 등등. 그 동안 썼던 LLM에 대한 간략한 평가를 하자면,

  • GLM-5, GLM-5.1: GLM Coding Plan으로 썼었는데, 솔직히 말하자면 오픈소스 모델들 중에는 제일 성능이 마음에 들었다. 다소 느리기는 한데, 한글 처리도 잘 하고 OpenClaw에서 쓸 시 페르소나 놀이도 꽤 잘 해줬다. 가장 큰 문제점은 명목상 표기된 컨텍스트가 그렇게 믿을만하지 않아서, 절반 정도를 넘기면 수동 compact해야한다. 그러지 않으면 출력이 다 깨진다.
  • Kimi K2.6: GLM 다음으로 넘어온 선택지 중 하나였는데, AI leaderboard들을 보면 성능 자체는 오픈소스 최상위권으로 보이는데 체감상 그 정도는 아니었다. GLM이 성능상으로는 조금 더 나은 느낌이었다. 가장 큰 특징은 overthinking으로, 간단한 문제도 과하게 생각해서 틀리거나 복잡한 길로 돌아가는 문제가 있고 약간 복잡한 걸 시키면 thinking에 토큰을 다 쓰고 출력은 없는 때도 있다. Thinking block을 직접 켜 보면 Wait, let me reconsider. 문장만 수십번은 볼 수 있다. 사실 그거야 결과만 좋으면 문제가 아닌데, 진짜 문제는 블로그 작업 보조용으로 쓸 때 발생한다. 한글 문서 학습을 덜 했는지 자꾸 한글이 깨진다. 이게 왜 심각한 문제냐면, 예를 들어서 Kimi CLI에 내장된 StrReplace 툴은 파일과 oldString과 newString을 인자로 받아서, 파일의 oldString 부분을 newString으로 바꾸는 툴이다. 그런데 이 인자를 넣을 때 oldString에서도 깨진다. 즉, 파일을 읽고, 같은이라는 단어를 다른 이라는 단어로 바꾸는 작업에서, 같은갋은과 같은 이상한 단어로 잘못 쓴다. 그럼 주어진 파일에 이런 이상한 글자는 없으니 StrReplace가 실패한다. Thinking block을 보면, 이렇게 fail한 사실 자체는 인지하지만 "갊은"이 아니라 "갊은"을 써야 합니다... 등으로 계속 헛된 시도를 반복한다.
  • MiMo 2.5: MiMo 모델을 예전에 MiMo 2 때도 썼었는데, 그 때도 생각보다는 괜찮았던 걸로 기억한다. 다만 Kimi와 비슷한 느낌으로 한글이 깨져나오는 경우가 많다. Edit 툴 사용에서는 크게 문제는 안 일어나는 것 같은데, 출력이 한글, 중국어, 심지어 일본어까지 다채롭게 나오는 문제가 있다. 다만 이게 출력만의 문제라서 그런지, 혹은 이런 빈도가 Kimi보다 적어서 그런지 위의 Kimi처럼 실패하는 경우는 별로 없었다.
  • MiniMax M2.7: 출력이 섞여 나오는 현상이 MiMo보다 심하다. DeepSeek도 그렇고, 아무래도 한글 학습 덜 된 모델들에게는 필연적인 일 같기는 한데 얘는 좀 선을 넘었다.

결국 성능만 따지고 보면 내 체감상으로는 GLM이 제일 나았다. 여기서 바꾸게 된 이유는 모델 성능 외적인 게 제일 큰데,

  1. 우선 coding plan에서 OpenClaw 사용시, 피크타임에 속도 제한한 것. 위에서 말했듯, 간단한 workaround가 있긴 했지만 꽤나 괘씸했다.
  2. Coding plan 가격 인상. 사실 이게 제일 큰데, 가격이 두 배로 뛰어서 거의 Claude Max 급이다. 물론 토큰 사용량은 훨씬 널널하지만 굳이? 그 가격에? 그럴거면 Claude를 쓰지? 하는 말이 안 나올 수가 없다.
  3. 가장 큰 이유. 카드를 잃어버려서 재발급받는 바람에 결제일 아침 일찍 카드를 바꿨는데, 자동결제가 되지 않더니 다음날 보니 coding plan이 취소되어 있었다. 문의했더니 두 배 오른 가격으로 결제하라는 안내를 받아서 미련없이 해지하고 claude로 갈아탔다.

위에서 언급했듯 Claude 외의 모델들의 경우 약간씩은 하자가 있지만 사실 쓰려고 하면 못 쓸 정도는 아니다. 예를 들어, K2.6은 한글 문서 작업이 제일 큰 문제인데, 영어로만 이루어진 작업 (가령 잡다한 코딩작업, 블로그 글 영어번역 작업 등) 과정에서는 이는 큰 문제가 아니다. MiMo도 이와 비슷한 장점에, 하나의 장점이 더 있는데 Token Plan이 굉장히 flexible하다는 것이다. 다른 플랜들은 보통 5h quota, 7d quota가 제한되어 있는 반면 MiMo는 그냥 한 달치 크레딧을 매 결제시마다 채워주고 한 달동안 그걸로 버티면 된다. 다른 모델들과 쓴다면, 다른 모델들 quota 걸려있는 동안 쓰기 굉장히 좋은 구조다.

그래서 이 카테고리는?

잡담이 길었는데, 결국 어찌됐건 예전보다 내 LLM 사용처가 늘어난 것도 사실이고, 이에 대한 글을 써 보고 싶은 것도 사실이다. 그러나 나는 본업이 AI는 아니라, 이렇게 글을 쓰며 시간을 쏟기는 약간 아쉬웠다. 따라서 나는 이 카테고리의 글들을 LLM에게 맡겨보기로 했다.

이 블로그는 처음부터 여러 author를 지정할 수 있는데, 그동안은 이를 쓸 일이 없었다. 그런데 이렇게 LLM에게 맡길거면 LLM이 쓰는 author를 하나 새로 만드는 것이 합리적일 것이라 생각했다. 그래서 Marvin을 새로운 author로 등록했다. 이는 당연히 은하수를 여행하는 히치하이커를 위한 안내서의 그 마빈으로, 원래는 OpenClaw에서 에이전트 페르소나로 뒀던 것인데 써보니 LLM 특유의 아부떠는 것이 Marvin 특유의 냉소적인 기질과 만나 어느정도 상쇄되고, 또 티키타카 하는 맛도 나름 있어서 이를 되살려보았다.

이 카테고리의 주된 내용이 되는 것은 아마 블로그 기능 관련 내용일 것이다. 블로그 개발 카테고리까지는 내가 손봤지만, 이제 블로그 기능 추가는 거의 LLM에게 시키고, 나도 그 세부적인 코드를 뜯어보지도 않으므로 이 설명 또한 LLM이 담당하는 것이 합리적일 것이다. 대략적인 구상은 내가 시킨 걸 LLM 페르소나가 구현하고 나서, 툴툴거리는 투로 쓰는 것을 상상했는데 (그리고 그렇게 프롬프트를 짰는데) 꽤나 잘 하고 있는 것 같다.

또 다른 방향으로, 기존 내가 쓴 수학 글들을 쭉 읽으며 내가 정의 없이 사용한 개념이나 broken link 같은 걸 탐방하는 cron job도 만들어놨다. 아이디어는 내 블로그의 지식만 가지고 글을 읽을 때, 이해가 될 만큼 self-contained인지 체크하는 거기는 한데, 기본적으로 LLM 입장에선 자신이 원래부터 가지고 있는 지식과 내 블로그의 지식을 구별하는 것이 힘든 일이라 크게 기대는 안 하기는 한다. 그래도 일단 독후감 비슷한 느낌으로 달아두게 cron job을 설졍해보기는 했다.

댓글남기기