Claude를 잘 아시나요? 챗GPT로부터 시작된 생성형 AI의 흐름이 이제는 Claude로 귀결되는 것 같은 느 낌입니다. 특히 Claude 3의 성능에 대한 평가가 많이 회자되고 있어요. GPT-4를 간단히 능가한다는 의견이 있습니다. 특히 유료 모델인 Claude 3 Opus는 꽤 괜찮은 성능을 보여주는 듯 합니다.
(저도 써봤습니다. 챗GPT Plus도, Yeschat이란 좋은 사이트도, Copilot Pro도, Gemini Advanced도 꾹꾹 참아오면서 무료로 쓸 수 있는 데까지 써보려 했는데, Claude 3에는 졌습니다~)
Claude
Claude는 갑자기 어디서 튀어나온 걸까요? Anthropic이라는 스타트업에서 공개한 챗GPT와 비슷한 서비스입니다. 바로 챗GPT를 만든 OpenAI의 전 직원이 공동 설립했다네요. 그럼 이제 이해가 갑니다.
Claude 3
Claude 3의 성능이 그렇게 좋다고요? 평가 결과가 있나요?
Anthropic의 News 섹션에 공개되어 있습니다. 가장 성능이 좋은 것은 Opus, 다음이 Sonnet, 가장 가벼운 모델이 Haiku입니다. 특히, Opus는 GPT-4보다 나은 성능을 보입니다. 잘 모르셨던 분들도 이제 좀 관심이 생기셨나요?
Claude의 언어 능력
챗GPT 등의 거대 언어 모델(LLM)을 쓸 때 가장 아쉬운 게 언어입니다. 영어로 프롬프트를 썼을 때 가장 잘 동작하기 때문이죠. 영어의 언어 인식률이 높아 말을 잘 알아듣고, 학습된 데이터도 영어로 된 데이터가 많습니다.
이렇게 되면 비영어권 유저들은 웁니다. 챗GPT에는 프롬프트 지니라는 플러그인도 있지만, 아무래도 한계가 있죠.
이럴 때 Claude가 빛을 발합니다. Claude는 비영어권 학습 데이터 비율이 높습니다. 심지어는 우리나라 사투리까지 맛깔나게 구사한다는데요. 이제 한글로 쉽게 프롬프트를 작성해서 빠르게 빠르게 결과를 받아볼 수 있어요. 아주 매력적인 장점입니다.
Claude의 코딩 능력
클로드가 코딩도 잘하냐구요? 물론입니다! 포켓몬 API 사용법부터 Claude에게 물어보고, 웹 페이지도 Claude가 만들어줘서, 실제 배포까지 한 사례가 있습니다. 물어만 보세요~ 클로드가 다 해줍니다~
이런 걸 보고 가만 있을 수 없죠!! 저도 해봤습니다. Claude의 코딩 능력! 어디까지인가~ 시험해보는 기분으로 여러 개를 테스트해봤습니다.
코드 에러 수정
먼저 시도해본 건 파이썬 크롤링 소스 코드의 에러 수정입니다. 꽤 오래된 소스 코드였다고 합니다. 벌써 몇 년이나 되었다네요. 그 사이 라이브러리 는 업데이트를 주욱~ 했을 것이고, 소스를 돌리기 위해 필요한 것을 다 설치했는데 에러가 났습니다. Claude씨에게 가봤습니다.
이렇게 얘기하네요.
그대로 해봤습니다. 그래도 에러가 납니다. 이봐요. Claude씨. 안되잖아요.
다시 Claude 씨에게 에러를 전달해 줬습니다.
오! 이번에는 잘 고쳐줍니다.
Selenium 버전 문제를 해결해서 이제 소스가 잘 돕니다~~
여기서 LLM 기반 툴을 만들고 싶은 저는 삼천포로 빠집니다~
잠깐, Claude로 버그 수정이나 트러블 슈팅할 때 팁
버그 수정할 때는, 소스 코드와 에러 메시지를 붙여 넣는다.(너무 당연하지만요)
문제만 설명하지 말고, 문제가 발생한 맥락, 과정을 설명한다.
한 번에 해결이 안 되면, 다시 에러 메시지나 문제를 설명하는 과정을 반복한다.
인컨텍스트 러닝이 적용되므로 한 개의 대화에서는 하나의 문제만 해결한다.
코드 작성
파이썬 크롤링 프로그램 소스 전체를 Claude에 붙여넣기 했습니다. 그리고 생성형 AI를 활용해서 구현할 수 있냐고 물어봤습니다.
있다면서, 여러 대안을 제시해줍니다.
오~ 4번이 솔깃한데요~ 4번으로 작성해 달라고 했습니다. 그런데 Claude씨가 자기 API를 쓰지는 않고 OpenAI API를 써서 구현합니다.
그래서 Claude API 쓰게 바꿔 달라고 했습니다. 바꿔줍니다. 그런데 문제가 있어요!!
바로 Legacy Spec을 썼습니다. 이걸 쓰더라구요.
Legacy 스펙 정보와 Claude씨가 짜 준 소스입니다. 이 Spec 대로 짜 준 게 보이시나요?
Legacy 가 아닌 Spec은 이겁니다.
그래서, Spec에 맞게 소스 코드를 수정해줬습니다. Claude씨에게 Spec 문서를 물어보면Claude API Spec URL까지는 잘 줍니다. 그런데 그 내용대로 소스 코드를 작성해주지 않는군요.
이런 한계가 있습니다.
UTF-8 같은 인코딩 지정의 경우에도 그렇습니다. 인코딩을 지정하는 스트링이 안 떠올라 물어보면 그 스펙 문서는 잘 주는데, 그 문서의 내용 대로 스트링을 주지 않아요.
스펙 문서 확인은 오롯이 개발자의 몫입니다.
Claude에 코딩 시킬 때 팁 - 간단한 예제로
이번에는 Step by Step으로 HTML 템플릿부터 시작해봤습니다. 이건 Claude가 아니어도 어려울 게 없죠?(해당 내용은 Coding with AI for Dummies라는 책에서 제시하는 프롬프트입니다)
이제 HTML 페이지에 요소를 추가합니다.
다음은 프로그램 로직을 붙일 차례입니다.
간단한 것이었고, 잘 작성해줍니다.
근데 좀 동작을 바꾸고 싶습니다. 간단한 예제여서 Ajax 써서 표시하고 싶어졌어요.
그 요청도 해봅니다. 잘 작성해줍니다.
간단한 샘플 웹페이지가 완성되었습니다~ 쉽고 작은, 템플릿부터 작성해서 점점 살을 붙여나가는 방식! 사람이 코딩하나, Claude 씨가 하나, 그게 정답입니다!!
Step by Step!! 하나씩 차근차근!!(유명한 CoT 프롬프트 중 일부죠…)
코드 리팩토링
Claude가 코드 리팩토링도 잘 할까요? 한 번 시켜봤습니다. 반복적으로 수행해야 하는 로직이 있어서 아주 대강의 리팩토링을 한 다음에 Claude씨를 불러봤습니다.
몇 가지 포인트를 짚어주네요. 괜찮은 것도 있고, 빗나간 것도 있습니다. 이봐요. Claude씨, 주석 정리 정도는 누구나 눈 감고도 할 수 있다구요. 유사한 코드가 있다고 다 똑같이 해 버리면 어떻게 하나요!! 엄연히 다른 로직인데…
그래서 제안한 것 중 선택해서 해 달라고 했습니다.
그러자, 훌륭하게 리팩토링 해줍니다. Claude 씨, 똑똑한데요!
다만, 몇 가지는 원래 코드의 의도를 손상해버립니다.
검색한 데이터가 없어도, 출력할 때 그런 입력 데이터가 있었다는 것을 출력하기 위해 넣은 좀 일반적이지 않은 코드는 삭제해버렸어요.
예외 처리를 해서 큰 문제는 없지만, 예외도 안 나게 하기 위해 철저히 리스트의 길이까지 검사한 소스 코드도 없애버렸습니다.
하지만, 몇 가지만 검토하면 아주 훌륭한 리팩토링이었어요!!
코드 리팩토링은 이렇게
리팩토링의 의도를 모두 말로 풀기보다는(복잡합니다) 대강의 리팩토링을 한 후 개선점을 요청하기
제안하는 개선점을 검토하고 적용할 것 선택하여 요청하기
생성한 소스코드가 원래 소스의 의도를 훼손하지 않았는지 읽어보기
Claude로 코딩 공부하기
입문이나 초급 단계에서는 간단한 문제도 어려울 수 있습니다. 이런 방법을 써보세요.
잘 이해가 가지 않는 소스를 붙여넣고 설명을 요청해봅니다.
소스 코드의 동작 원리도 물어봅니다.(왜 Int와 Float를 연산하면 Float가 돼? 등)
책의 소스에 에러가 있거나 설명 이 불충분할 수 있으니, 의심가는 소스 코드도 역시 설명을 요청해봅니다.
잘 모르는 개념을 설명해달라고 해봅니다. 입문자라면 비유를 드는 등, 입문자도 알아듣기 쉽게 설명해 달라고 해보세요.
이걸 어디에 쓰기 위해 배우는지 모르겠다면, 이 구문 또는 개념을 활용한 실용적인 예제를 작성해달라고 해 봅니다.
프로그램 요구사항을 잘 정리한 다음, 소스 코드를 작성해달라고 해봅니다. 때로는 입력과 출력을 주고 그 사이의 로직을 구현하는 소스 코드를 작성해달라고도 해 봅니다.
Claude vs GPT-4
Claude에서는 Claude 3 Opus가 낫다고 하지만, 과연 GPT-4가 더 좋은 점은 없을까요? GPT-4가 확연히 떨어지는 부분도 있나요?
언어 능력
아무래도 언어 능력은 Claude 승입니다. 한글로 빠르게 입력하고 빠르게 답변을 이해할 수 있다는 건 이 시간부족 사회에서 큰 장점이죠.
인터넷 연결
여러 장점에도 불구하고, Claude가 계속해서 최신 정보를 학습하는 것으로 보임에도 불구하고, 인터넷이 연결되고, 검색 엔진이 연결되는 건 아무래도 GPT-4의 강점입니다!!
Claude vs Local LLM
그렇다면, Ollama, Mixtral 같은 로컬 LLM 들은 어떨까요?
보안
회사에서 챗GPT도, Claude도, 클로바도, 다 막았다구요!! 보안 때문에 어쩔 수 없답니다. 그건 맞는 말입니다. 생성형 AI에 입력한 프롬프트는 모델의 학습에 쓰일 수 있으니까요. 회사 입장에서는 기밀 정보를 함부로 LLM에 넣게 할 수는 없죠. 그럴 때 Local LLM이 답이 될 수 있습니다. Local PC에서 돌리면 되니까요. 내 PC에서 LLM을, 나만의 입맛에 맞게 쓸 수 있습니다. Ollama에는 소스 코드를 작성해주는 CodeLlama도 있습니다.
성능
일단, 로컬에서 돌리려면 PC 메모리 등이 좋아야 합니다. Ollama는 최소 사양이 메모리 8GB인 것 같아요. 그래도 생각보다 그렇게 심하지는 않죠?
7b 모델을 돌려봤습니다. 흠… 생각보다 GPT, Claude의 성능에는 못 미치네요. 아직 CodeLlama는 안 써봤습니다. CodeLlama는 코드에 최적화되어 있으니 다르려나요. 한 번 시도해보겠습니다.
결론이라면
Claude 3 구독일까요. Ollama 파인 튜닝과 API 호출을 공부해보는 것일까요. 이도 저도 아니면 YesChat 구독일까요.
저는 그냥 Claude 3 구독해버렸지만, 차차 알아가는 과정이 필요할 것 같습니다.
참고 도서 하나 소개해드립니다.
Coding with AI for Dummies입니다. 번역서는 없는 것 같아요. 국내 저자의 책은 엔트리 코딩 관련밖에 못 찾았습니다. 아마존에 있어요~
결론은 직구력 향상인가요. ㅎㅎㅎ
이 코딩에는 Claude 3 Sonnet과 Opus 모델이 사용되었습니다.
<블로그 서포터즈 글입니다> => 블로그에서 확인