GPT가 나오기 전에는 코드를 작성하기 위해선 구글링과 책은 필수 였죠
하지만, GPT가 나오고 난 후에 코드를 작성할 일이 생기면 구글링을 하기 전에 GPT에게 먼저 물어봅니다. GPT가 아직 만능은 아니기 때문에 틀린 코드도 많지만, 이는 구글링을 통해 보완이 가능하죠
실제로 저도 ChatGPT-3.5 에서 코드를 많이 물어봅니다.
주로 정규식 코드, 변수명 추천, 주석 생성, 에러 원인 및 분석 등을 맡겨요. 코드를 작성하다보면 에러가 발생하게 되는데 처음 접하는 에러의 경우는 스트레스가 왕창 뿜어져나오게 되죠. 바로 해결이 안되니까요. (물론 GPT에게 물어보면 60% 정도는 바로 해결이 되지만, 잘 안되요)
현재는 ChatGPT-3.5를 사용하지만 추후에 더 좋은 서비스가 생길수도 있기에 간단하게 소개를 해볼려합니다.
GitHub Copilot
개발자들의 협업 툴로 많이 사용하는 깃허브에서 만든 코파일럿이에요. 솔직히 직접 사용은 못해봐서 성능은 어떤지 몰라요. 사용자 입장에서 가장 중요한 금액을 알려드릴게요.GitHub Copilot의 경우 구독제로 운영하며 월 10달러 혹은 연 100달러를 내야 사용가능합니다. 솔직히 저는 무료로 사용 가능한 ChatGPT를 사용하고 있기에 돈을 내면서 사용하기에는 무리가 있다고 생각해요. 주변에서 누군가 사용하면 후기 들어보고 사용 유무를 선택하는게 좋을거 같아요!
StarCoder
StarCoder는 인공지능 윤리에 엄격한 Hugging Face와 클라우드 컴퓨팅업체 ServiceNow가 개방적으로 협업체인 BigCode에서 만든 코드용 LLM입니다. StarCoder의 경우 모델이 공개되어 있어 누구나 접근해서 무료로 사용할 수 있습니다. 사용하는 코드는 다음과 같습니다.
from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "bigcode/starcoder"
device = "cuda" # for GPU usage or "cpu" for CPU usage
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
Code-LLaMA
Code-LLaMA는 LLaMA 2에 코드에 특화된 데이터셋을 추가로 학습시켜 만든 코드버전입니다. 그렇기에 위에서 봤던 GitHub Copilot이나 StarCoder와 달리 코드와 코드에 대한 자연어까지 생성할 수 있습니다. Code-LLaMA의 경우 LLaMA 처럼 7B, 13B, 34B 3가지 크기로 출시되었습니다. 7B의 경우 단일 GPU에서 작동할 수 있게 만들었으며 34B의 경우 최상의 결과를 반환하지만 시간 지연이 존재합니다. Code-LLaMA를 잘 튜닝했을 경우 현재 최고의 퍼포먼스라 불리는 GPT-4보다 코드추론능력이 좋다고 평가받고 있습니다. LLaMA 특유의 라이선스로 인해 상업적으로 사용할 때 문제가 발생할 수 있습니다.