본문 바로가기

[LLM] 시작 본문

공부

[LLM] 시작

Savedata 2024. 4. 22. 13:42

LLM을 공부하여 회사의 데이터로 간단한 업무용 서비스를 만들어 보기 위한 그 여정 첫 번째. 업무에서 빠르게 모델을 구축해보기 위한 여정이라 자세한 기술 요약이나 알고리즘 이해보다는 사용하기 위한 최단 코스를 밟아갈 예정.

 

근데 시작하려면 LLM이 뭔지는 알아야 시작이나마 하겠지..?

 

LLM(Large Langauge Model)

 

LLM에 대해 알아가보기

 

1. LLM이란?

2. RAG란?

3. LangChain이란?

4. Next Level

추천글

위의 목차를 클릭하면 해당 글로 자동 이동 합니다.

 

1. LLM이란?

LLM은 방대한 양의 데이터를 기반으로 사전 학습된 초대형 딥러닝 모델이라고 한다. 트랜스포머 모델의 셀프 어텐션 알고리즘을 통하여 방대한 양의 데이터에서 자체 학습을 수행하도록 설계된 구조이다. 

쉽게 풀이하자면, LLM은 인간의 언어나 기타 복잡한 데이터를 인식하고 해석할 수 있을만큼 충분한 예제를 제공받은 컴퓨터 프로그램이다. 어마무지한 양의 텍스트 데이터를 학습하여 자연어를 학습하기에 데이터를 잘 선택하는 것이 중요하다.

LLM은 비정형 데이터의 확률적 분석을 이용하여 사람의 개입 없이도 콘텐츠 간의 연관성을 이해하거나 구분을 인식할 수 있게 된다.

이후에 튜닝을 통해 추가 학습을 진행하여 프로그래머가 원하는 특정 작업이나 의도에 맞게 미세 조정 되거나 프롬프트 조정을 한다.

 

*FM: Foundation Model.
학습시키는데 엄청난 양의 데이터와 자원이 소모되는 대규모 범용 모델.
ChatGPT, Llama 등

 

*RLHF: Reinforcement Learning from Human Feedback.
기초 FM의 모델학습이 끝난 이후 사람이 선호할만한 답변이 나오도록, 문제가 되는 발언들을 걸러주도록 하는 사후 조정 방식. 성, 종교, 정치 등 민감한 이슈들에 대해서 조정하기도 하고, 사람들이 선호할만한 결과가 나오도록 사람의 피드백으로 모델을 조정.

 

2. RAG란?

Retrieval Augmented Generation의 약자로 LLM 모델의 출력을 최적화하여 응답을 생성하기 전에 외부의 지식 베이스를 참조하도록 하는 프로세스.기존의 LLM 모델은 건드리지 않고, 외부 데이터 소스를 따로 구축하여 접목하는 방식이기에 모델을 학습하기 위한 소모비용이 작다.

위 그림과 같이 FM모델의 앞단에 한 단계를 두어 해당 내용을 참조하여 질의를 수행하도록 하는 방식.

(빠르게 모델을 구축하고, 특정 분야의 텍스트에 대한 답변을 내도록 하기 원하는 지금의 내 니즈에 아주 적절히 들어맞는다.)

 

3. LangChain이란?

LLM을 기반으로 어플리케이션을 구축하기 위한 오픈 소스 프레임워크. 자연어 처리와 관련된 다양한 기능을 제공하는 파이썬 라이브러리로 주요 목적 자체가 대화형 AI 시스템을 구축하고 연구하는데 있어 유용한 도구를 제공하는 것이기에 사상부터가 연구자를 위한 아름다운 녀석이다.

랭체인의 특징들

  1. 챗봇 구축: 챗봇과 AI시스템을 구축하기 위한 도구를 제공. 이를 통해 자신만의 챗봇을 쉽게 만들 수 있음.
  2. 다양한 NLP기능: 텍스트 생성, 요약, 번역과 같은 다양한 자연어 처리 기능을 포함.
  3. 플러그 앤 플레이 아키텍쳐: 기존의 NLP모델이나 시스템과 쉽게 통합할 수 있음.
  4. 확장성 및 커스터마이징: 사용자가 자신의 요구사항에 맞게 시스템을 커스터마이즈하고 확장할 수 있도록 설계됨.
  5. 연구 및 개발 지원: 기본적으로 연구자와 개발자들이 LLM모델을 실험하고 개발하는 것을 지원하는 목적임.

랭체인의 기능들

  • 📃 모델 I/O: LangChain은 다양한 LLM 제공업체(예: OpenAI, Google, Mistral, Ollama 등)와 상호 작용하기 위한 통합 API를 제공하므로 개발자가 쉽게 전환할 수 있습니다. 또한 모델 입력(프롬프트 템플릿 및 예제 선택기)을 관리하고 결과 모델 출력(출력 파서)을 구문 분석하기 위한 도구를 제공합니다.
  • 📚 검색: 사용자 데이터 로드(문서 로더를 통해), 변환(텍스트 분할기 사용), 의미 추출(임베딩 모델 사용), 저장(벡터 저장소에서) 및 사용할 수 있도록 검색(검색기를 통해)을 지원합니다. 모델의 응답을 기반으로 합니다(즉, 검색 증강 생성(RAG)).
  • 🤖 에이전트: LLM을 활용하여 지정된 작업을 수행하는 데 사용할 수 있는 도구(예: 웹 검색, 계산기, 데이터베이스 조회 등)에 대해 정보에 입각한 결정을 내리는 "봇"입니다.

공식 사이트의 내용을 얼핏 읽어보기만 했는데 이미 다 만든 것 같은 착각을 불러일으킨다. [찐착각]

이렇게 간단히만 서칭해보아도 굉장히 구현도 손쉬워 보이고 커스터마이징도 상당히 자유로워 보일 것만 같고, 질의를 했을때 적용한 데이터의 어느 부분에서 출처를 가져왔는지까지 정리해준다니... 바로 실습으로 넘어가 보렵니다.

4. Next Level [ㄷ]

테디노트님의 랭체인노트 & 랭체인 공식 튜토리얼 사이트 를 따라가며 초기 모델을 구축해볼 예정

 

막연히 LLM이라고 하니 투자해야하는 시간이 얼마나 걸릴지도 모르겠고, 당장 업무에 뭔가 적용은 해봐야하는데 코스트나 비용이나 걸리는 기간이 길면 안되서 압박이 좀 있었다. 하지만 이렇게 찾아보니 생각보다 라이브러리화도 잘되어 있고 나같은 사람 쓰라고 만들어 놓은 랭체인 덕에 생각보다 쉽게 해볼 수 있을 것만 같은 착.각.중.

 

추천글(이라고 쓰고 참조 사이트들이라 읽는다.)

랭체인 공식 튜토리얼 사이트 Link

AI관련 유투브 채널

LangChain.dart Link

AWS의 LLM설명 Link

RAG in LLM Link

Comments