search:

codeqai test 후기

02 Jun 2024

2024년 5월 말에 CGRAG - How to generate accurate LLM responses on large code repositories라는 글을 적으면서 codeqai라는 것을 알게 되었다.

codeqai를 아주 간단히 test해본 결과를 적어본다.

1)

  • 설치
    • 매우 쉬웠다
    • pip install codeqai를 실행만 하면 된다
    • codeqai configure를 하면 설정을 입력받는다
      • 설정 파일은 $HOME/.config/codeqai/config.yaml에 저장되며 직접 수정해도 된다
  • 실행
    • 분석하고자하는 code가 있는 디렉터리에서 codeqai chat을 입력하면 된다
    • 이때 embedding library를 한번 더 설치하게 된다
    • 궁금한 내용을 입력하면 된다
  • codeqai app을 입력하면 web ui에서도 사용할 수 있다
    • (streamlit으로 만들어졌다)

2)

  • github에서 임의의 java project를 clone 받은 후 분석해봤다
  • codeqai로 clone받은 code를 분석해봤는데 그닥 좋다는 느낌은 안들었다
    • “class A에 있는 method 알려줘”와 비슷한 질문을 해봤는데 제대로 답변을 못했다
    • “method B는 어떤 일을 하는 함수인가”에 대해서는 비교적 정확히 이야기했다
    • code를 보니 변수의 값으로 if-else 분기하는 코드가 보였다. 그래서 “method C의 param 1에서 허용되는 값은 무엇인가”라고 질의해봤는데 제대로 답변을 못 했다
    • class member variable이 어떤 용도인지 궁금해서 물어봤는데 이것도 답변을 못 했다
    • “log를 남기는 방법은?”에 대해선 올바른 답변을 하였다 (해당 project의 custom한 logging 함수의 사용법을 잘 설명했다)

3)

codeqai도 결국 code 관점에서의 RAG이다. 그런데 생각보다 품질이 좋지 않은 것 같다. 물론 내가 질문을 제대로 못했을 수도 있다. 또한 test에 사용한 Llama 3 70B의 품질이 안 좋았을 수도 있다.

그런데 Llama 3 70B의 품질이 꽤나 괜찮은 편이므로 가장 중요한 것은 sentence embedding model이라고 생각된다.

RAG에서 LLM이 개입되는 되는 것은 검색된 code 내에서 사용자 질문에 답을 만드는 것이기 때문에 일단 검색을 잘 하는 것이 중요하다. 이를 위해서 sentence embedding 이 중요해보인다.

또한 한국인이 사용하다보니 embedding model에서 다국어를 지원하는 게 중요해보인다. (한국어로 질문을 하더라도 영어로 작성된 code의 유사도가 높게 매칭이 되어야 한다)

4)

한동안 LLM 시대에 어떤 개발자가 되어야할지, 뭐를 공부해야할지 고민을 많이 해봤다. 현재까지의 답변은 LLM을 “개발 생산성 도구”로 사용하는 것이 나에게 가장 적합해보이고 그것은 바로 github Copilot 같은 도구를 업무에 적용해보는 것이라 생각된다.

이제 본격적으로 continue를 test 해봐야겠다.