langchain 공부

LLM 프로젝트를 기획할 때 겪게 되는 어려운 점들

필만이 2024. 8. 12. 22:21

LLM 프로젝트를 진행할 때 겪게 되는 어려운 점들

  • 전문가가 없다 : 가장 중요한 부분이라 생각한다. 로컬 LLM은 비교적 최근에 도입된 개념이다. 즉 전문가라고 할만한 사람이 아직 없다. 극소수가 있다 해도  새롭게 등장한 이 기술이 실제에 어떻게 적용될수 있을지 판단하느냐. 다들 바쁘다.질문에 답할 사람도, 시간도, 자료도 없다.

  • 기술의 난립 : 랭체인, 허깅페이스, 올라마 등 플랫폼도 난립하고 있다. 또한 세계 여러 회사들이 튜닝을 거쳐 여러 모델을 내놓고 있다. 플랫폼의 선택, 모델의 선택 그 어떤것도 쉽지 않다.

  • 멀티 변수 : 코딩도 하는 방법이 다양하다지만, LLM 프로젝트로 오면 베리에이션이 훨씬 심해진다. 결과에 영향을 미치는 변수만 뽑자면 플랫폼, 언어모델, temperature, score_threshold, 템플릿, 검색기, 컨텍스트, 벡터 DB 너무나 다양하다. 이 하나하나의 요소가 결과의 품질의 영향을 미친다.

    거기다 하드웨어(GPU자원)도 영향을 준다. 높을수록 좋은 언어모델을 쓸수 있고, 위의 변수들을 테스트 하는 시간을 줄일수 있다. 돈을 많이 쓸수록 개발에 들어가는 시간이 절대적으로 줄어드는 것이다.

  • 템플릿 작성 : 가장 중요한 부분이라 생각한다. 심지어 이거는 언어학적 재능을 더 필요로 한다. 언어모델에 쓰인 데이터가 수없이 많이 쓰인 사람들이 써왔던 언어로 학습 됐기 때문이다. 좋은 답변을 얻기 위해서는 그보다 더 좋은 질문을 만들어낼수 있는 능력이 필요하다. 근래에 템플릿 엔지니어링이라는게 생기고 이를 전문적으로 작성해주는 회사도 생겼다. 
    [참고 : 템플릿 작성이 왜 중요할까? https://makenow90.tistory.com/42]

  • 정리
    1. 결과에 영향을 끼치는 변수 종류가 너무 많다. 
    2. 기존의 코딩 실력으로 극복할수 없다. 실력보다는 경험이 중요한 분야이다.
    3. 좋은 GPU 등 하드웨어 자원도 필요로한다.
    4. 언어학적 소양까지 필요로 한다. 

  • LLM 프로젝트 시작하기 전에 생각해야 하는 것

    LLM 프로젝트를 시작하기가 쉽지 않아 보이는데, 그렇지 않다.
    근본적인 질문 세개만 던지면 된다.

    질문1 : 그래서 그 프로젝트 완성, 가능은 한거야?
    이 질문에 대한 대답은 현존하는 최강의 LLM 모델인 GPT가 해줄수 있다.
    직접 GPT 4에 데이터를 주고 질문했을때, 만족스러운 답변을 주는지 확인해보는거다.

    만약 GPT의 답변이 충분히 만족스러웠다면, 그렇다면 그건 만들수 있는 툴이다.
    왜냐하면 GPT를 전분야에서 이겨야 하는게 아니고, 오직 한가지 질문에 대해서만 GPT를 이기면 되기 때문이다.

    만약 GPT의 답변이 별로라면, 더 좋다. 내가 그 분야에 맞는 데이터만 가지고 있다면 GPT도 이길 수 있기 때문이다.

    질문2 : LLM에 들어가는 비용(하드웨어, API사용료)를 생각했을때, 가치가 있는 앱인가?
    GPT 4와 준하는 수준 또는 그 이상을 만들수 있다면, GPT4를 쓰는것과 로컬LLM을 개발하는데 들어가는 자원과 시간을 비교해야한다. GPT이상이라면 좋은 툴이되겠지만, 비슷한 수준이라면 자동화에서 의미를 찾아야한다. 

    이거는 기획팀과 잘 소통해야 한다고 생각한다.
    기획팀은 LLM을 만능 도깨비 방망이로 생각하겠지만, 실제로 다뤄 보면 원숭이를 키우는 느낌이다. 똑똑하고 퍼텐셜이 있지만, 고점이 결국 인간(GPT)를 넘기 어렵고 그에 준하는 수준 정도가 최고이다. 결국 다방면에서는 인간보다 못하지만 병뚜껑따기 장인, 나무타기 장인, 이잡기 장인을 만드려 한다면 원숭이를 훈련시켜도 괜찮은 상황이다. 또 훈련을 시킬수 있는 데이터를 가지고 있느냐가 중요하다. 이득이 되냐? 훈련 데이터가 있냐?
    기획팀도 이런 근본적인 두가지 고민을 해야한다.

    질문3 : LLM을 사용하는게 프로젝트에 시너지를 주는 상황인가?
    최근에 SQL을 LLM을 이용해 생성하려는 시도가 있는것 같다. 해보진 않았지만, 개인적으로는 회의적이다.
    굳이 높은 비용을 들여 LLM을 이용해 쿼리를 생성하려는 시도가 효율적인지는 잘 모르겠다.

    자주 사용하고 중요한 쿼리들은 이미 프로그램화 되고 DB가 구축돼있다.  

    자주 사용 안하는 분석용 쿼리는 각 분야의 전문가들도 각자 배울수 있다고 생각한다.( SQL문법 매우 쉽다)
    너무 모든걸 자동화하려는건 오히려 효율적이지 못하다고 생각한다.
    심지어 삼성전자, 테슬라의 첨단 공정에서도 사람의 손이 효율적인 부분은 사람이 하고 있다.

'langchain 공부' 카테고리의 다른 글

RunnablePassthrough() 사용 이유  (0) 2024.08.29
모든 Retriever(검색기) 비교  (0) 2024.08.29
langchain 퓨샷 프롬프트(prompt)  (0) 2024.08.04
langchain 프롬프트(prompt) 기초  (0) 2024.08.03
langchain LCEL 인터페이스  (0) 2024.08.02