본문 바로가기

공부노트

12/12, 열네 번째 날의 TIL(클린코드, 파인튜닝)

요즘들어 새로운 것들을 많이 알아가기 시작했다. 예전에는 파이썬과 머신러닝 및 딥러닝, SQL정도를 보고 공부했는데 새로운 사람들과 다양한 얘기를 나누다 보니 그 사람들이 알고 있는 지식들도 배우게 되는 것 같다. 앞으로 많은 사람들과 새로운 팀이 돼서 프로젝트도 진행하고 공부를 할텐데, 다양한 의견을 나누며 다양한 경로로 지식을 습득하려고 노력해야겠다 ㅎㅎ


1. Medium 아티클 - 클린코드

튜터님 덕분에 알게 된 Medium 사이트에서 매일 아티클을 구독해서 마음에 드는 주제 글을 보고 있는데, 주로 인공지능이나 파이썬에 대한 아티클들을 보고 있다. 그 중에서도 오늘은 예전부터 신경을 많이 쓰고 궁금해왔던 클린 코드에 대한 아티클이 있어서 자세하게 읽어보았다.

클린 코드가 중요한 이유는 여러가지가 있지만 그 중에 네 개를 보면,

  • 유지보수성 : 깔끔한 코드는 읽고 이해하고 유지보수하기가 더 쉽다.
  • 확장성 : 잘 구성된 코드는 더 쉽게 확장하고 조정할 수 있다.
  • 협업 : 깔끔한 코드는 다른 개발자들이 접근하기 쉽고, 팀워크와 코드 검토를 용이하게 한다.
  • 디버깅 : 깔끔한 코드에서는 오류와 버그를 더 쉽게 발견하고 수정할 수 있다.

다음 네 가지이다. 지금까지는 협업을 할 일이 많지 않아서 잘 몰랐지만, 다른 사람이 작성한 파이썬 코드를 서로 공유하고 내 코드도 팀원들에게 공유하면서 깔끔하고, 잘 구성되고 의미를 알기 쉬운 코드의 중요성을 알게 되었다. 

 

변수 이름을 a, b, c처럼 의미 없이 짓는다거나 함수 안에 내용을 매우 복잡하게 적어놔서 이해하기 힘들거나, 예외처리를 생각하지 않은 코드 등 여러 상황에서 트러블이 생길 수 있기 때문에 신경을 써야 하는 것이다. 모두 중요하지만, 나중에 회사에 취업해서 협업을 하게 되면 코드 검토 및 유지보수 측면에서 많이 중요할 것 같다. 그래서 첫 주차부터 변수 이름과 함수 이름을 알기 쉽게 지정하거나, 주석을 달아서 코드에 대한 설명을 연습하는 등 미리 습관을 들여놓고 있는데, 나중에 도움이 많이 될 것 같다.


2. 파인 튜닝(GPT Open API 독스)

독스를 읽으면서 많은 내용을 얻는 것 같다. 지나가다 듣기만 했던 단어들이 많이 있는데, 읽으면서 궁금해져서 검색도 하고 실제 사용 사례도 살펴보고 있다. 내가 생각해봤을 때도 인터넷 같은 공용 스페이스에서는 모든 분야를 다루는 챗봇이 있으면 좋지만, 예를 들면 스포츠 회사에서 챗봇을 사용할 경우에는 스포츠 분야를 집중적으로 훈련시켰을 때 더 성능이 좋을 것 같다는 생각을 했다.

 

기업에서 내부 직원들이 사용하는 챗봇은 Chat GPT처럼 전세계 사람들이 사용할만큼 큰 모델이 필요없기 때문에 s_LLM 모델을 사용할 수도 있는데, 이 경우에 파인 튜닝을 사용해서 성능을 좋게 하는 것이다. 회사 내부 데이터 보안이 중요하기 때문에, 이 방법을 많이 사용할 것 같은데 아직 정확하지는 않아서 내일 검색도 해보고 튜터님들께도 여쭤볼 생각이다. 

 

또 RAG랑 파인튜닝에 대해서 알아보고 비교도 해봤는데, 파인튜닝은 맞춤 데이터셋을 더 학습하는 것이고 RAG 는 외부 데이터에서 필요한 내용을 검색해서 가져오고 그것을 기반으로 답변한다고 한다. 각각의 장단점이 있으니까, 파인튜닝으로 학습하고 그래도 부족한 부분은 RAG로 가져오면 좋지 않을까? 

 

내가 생각한 내용을 누군가는 꼭 생각을 했을 거기 때문에 분명 그 방법이 있을 것이다. 시간이 너무 부족하지만 이 두 개를 같이 사용하는 논문도 찾아보고, 어떤 원리인지도 알아봐야겠다. 공부를 할 수록 점점 호기심이 많아지고 깊게 알아가는게 재밌는 것 같다. 남은 시간동안 퍼지지 않게 관리하면서 많은 내용을 배우도록 노력해봐야겠다. 내일도 화이팅