대규모 언어 모델(LLM)이란?
대규모 언어 모델(LLM)은 텍스트 인식 & 생성 등의 작업을 수행할 수 있는 인공지능 프로그램이에요. LLM은 빅데이터(방대한 학습 데이터)를 학습해서 "대규모"라는 이름이 붙었어요. LLM은 머신 러닝, 특히 트랜스포머 모델이라고 하는 일종의 신경망을 기반으로 해요 인간의 언어나 기타 복잡한 데이터를 인식하고 해석할 수 있을 만큼 충분한 예제를 제공받은 컴퓨터 프로그램이라고 생각하면 이해하기 편하실 거에요!
LLM은 수천 또는 수백만 기가바이트에 달하는 수집 텍스트로 학습돼요. 샘플의 품질이 LLM의 자연어 학습 결과에 영향을 미치기 때문에, LLM 프로그래머는 잘 정리된 데이터 세트를 사용해야 해요.
LLM은 문자, 단어, 문장이 함께 작동하는 방식을 이해하기 위해 딥러닝이라는 일종의 머신 러닝을 사용해요. 딥러닝은 비정형 데이터의 확률적 분석을 포함하며, 결국 딥러닝 모델은 사람의 개입 없이도 콘텐츠 간의 구분을 할 수 있어요.
[그림 1] LLM(Large Language Model)
![그림 출처: nbsp](https://inblog.ai/_next/image?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fhttps%253A%252F%252Fprod-files-secure.s3.us-west-2.amazonaws.com%252F3336fb05-8c59-4612-bf94-d161e78403a4%252Fff1c681f-8b6e-440d-946a-4490eda091d3%252FUntitled.png%3Ftable%3Dblock%26id%3Dea826adf-b7de-41f1-8d12-d8bcacbcd87a%26cache%3Dv2&w=3840&q=75)
기억을 저장하지 못하고, 일률적인 규칙이 없는 LLM
LLM(Large Language Model: 거대 언어 모델)은 최신 AI 기술이에요.
하지만 매개변수 조정, 프롬프트 보강, 응답 조정 등 LLM 기반 어플리케이션을 구축하기 위해선 모델 API(ex. 오픈AI)를 사용하든, 오픈 소스 모델을 사용하든 개발자가 고려해야 할 사항이 많아요.
그렇다면 개발자들은 어떤 부분을 신경써야 할까요?
- LLM은 이전 대화 내용을 기억하지 못해요. 기억을 저장하지 못하는 거죠. 개발자들은 기록을 유지하고 LLM에 꾸준하게 기억(context)을 제공할 의무가 있어요. 새로운 대화에서 이전에 사용한 기억을 가져오기 위해 영구 데이터베이스에 저장해야 할 수 도 있고요. 이렇게 LLM에 장기와 단기 메모리를 추가하는 것은 필수적이에요.
- LLM 기술은 일괄적인 규칙이 적용되지 않아요. 감정 분석, 분류, 질문 답변과 요약 등 서로 다른 시나리오에선 서로 다르게 적용되는 LLM 모델을 사용해야 할 가능성이 커요. 여러 LLM을 한번에 처리하는 작업은 상당한 노력을 요하죠.
LLM을 활용하는 데에 사용되는 프롬프트 작성은 그 사용법이 대체로 간단한 반면, 언어 모델을 사용한 프로그래밍은 적용이 어려울 수 있어요. 이럴 때, 사용되는 것이 랭체인이에요.
언어모델에 사용되는 랭체인은 대체 무엇일까?
랭체인(LangChain)은 언어 모델 기반 어플리케이션을 개발하는 프레임워크에요.
랭체인의 주요 기능을 한 번 살펴볼까요?
랭체인의 주요 기능
1. 챗봇 or 개인 비서를 만들 수 있음
2. 문서 or 구조화된 데이터에 대한 Q&A를 요약, 분석, 생성
3. 코드 작성 or 이해
4. API 와 상호작용
5. 생성형 AI를 활용해, 다양한 어플리케이션 제작 가능
(현재 랭체인의 버전은 파이썬, 타입스크립트/자바스크립트 2가지 버전이 있어요!)
랭체인이란, 언어 모델이 뭐든 간에 데이터 소스와 연결되고 해당 환경과 상호작용을 도와주는 친구예요.
하단 이미지는 LangChain이 정보를 처리하고 사용자의 프롬프트에 응답하는 방식을 보여줘요. 초기 방대한 양의 데이터를 포함하는 큰 문서로 시작한 이 시스템은, 이후 이 문서를 더 작고, 관리하기 쉬운 조각으로 분해해요. 이 과정을 벡터에 임베디드 되었다고 표현하며, 이 과정을 통해 데이터를 빠르고 효율적으로 검색할 수 있어요. (벡터들은 벡터 스토어에 저장되며, 이는 벡터화된 데이터를 처리하는데 최적화된 프로세스에요.)
사용자가 시스템에 프롬프트를 입력하면, LangChain은 사용자의 요청과 밀접하게 일치하거나 관련된 정보를 찾기 위해 관련 벡터 스토어를 검색해요. 거대 LLM을 사용하여 시스템은 사용자 프롬프트의 맥락과 의도를 이해하며, 이는 벡터 스토어에서 관련 정보를 검색하는데 가이드 역할을 할 수 있죠.
관련 정보 식별 이후, LLM은 질의를 정확하게 처리하는 답변을 생성하거나 완성하죠. 이 최종 단계는 사용자 맞춤형 응답으로, 데이터 처리 능력과 언어 생성 능력의 산출물이에요.
[그림 2] Lang-Chain 구동 방식
![그림 출처: medium](https://inblog.ai/_next/image?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fhttps%253A%252F%252Fprod-files-secure.s3.us-west-2.amazonaws.com%252F3336fb05-8c59-4612-bf94-d161e78403a4%252F91dd6f2f-1185-47b6-89b4-b86b93d5d69a%252FUntitled.png%3Ftable%3Dblock%26id%3D4be23b75-46d6-421b-9c50-4fc6879aa362%26cache%3Dv2&w=3840&q=75)
자료출처: CIO & medium
Share article