대규모 언어모델(LLM)의 활용이 일반화되고, 서비스가 점점 더 고도화되는 과정에서 단순한 질의응답을 넘어서 복잡한 멀티스텝 reasoning이 요구되기 시작하고 있다.예를 들어 사용자의 질문을 해석하고, 적절한 모듈을 선택해 API를 호출하며, 호출이 실패할 경우 재시도하거나 추가 질문을 던지고, 결과를 가공해 다시 사용자에게 전달하는 일련의 과정은 단순한 LLM의 순차적 토큰 생성 기능만으로는 한계가 있다. 이런 과정을 효율적으로 처리하려면 구조적이고 체계적인 기술적 방안이 필수적이다.LLM 기반 서비스를 처음 개발할 당시에는 LangChain을 활용해 서비스 플로우를 구성하려는 시도가 활발히 이루어졌다. LangChain은 LLM과 각종 툴, 프롬프트, 메모리 등 여러 구성 요소를 연결해 간단한 체..
전체 글
소프트웨어학부 재학중/개발을 기록합니다.AWS SAA 시험에서는 시나리오 기반 문제를 통해 다양한 AWS 서비스의 연계 방식을 평가한다.특히, 네트워크 트래픽 로그를 수집하고 분석하는 문제는 자주 등장하며 VPC Flow Logs, CloudWatch Logs, Kinesis Data Firehose, OpenSearch Service 간의 연결 구조를 정확히 이해하는 것이 중요하다고 생각해서 정리해보고자 한다. 문제요약한 기업의 애플리케이션은 NLB, Auto Scaling Group, EC2 인스턴스, 데이터베이스 등으로 구성되어 있으며 Amazon VPC 내에 배포되어 있다. 해당 기업은 VPC 내 네트워크 인터페이스에서 발생하는 트래픽 정보를 거의 실시간으로 수집하고이를 Amazon OpenSearch Service로 전송하여 분석하..
Text-to-SQL 서비스를 만든다면, 왜 RAG를 알아야 할까?Text-to-SQL 기반의 서비스를 개발할 때는 LLM의 활용이 사실상 필수다. 특히 사용자의 자연어 질문을 정확한 SQL 쿼리로 바꾸려면 단순히 생성 능력만으로는 부족하고 정확하고 신뢰할 수 있는 정보가 함께 작동해야 한다.이런 이유로 요즘 특히 주목받는 기술이 바로 RAG이다. RAG는 LLM이 가진 생성 능력을 그대로 살리면서도 외부에서 필요한 정보를 검색해와 문맥처럼 자연스럽게 보강하고, 근거 있는 답변을 생성하는 구조를 뜻한다.이번 글에서는 RAG의 개념과 도입 배경 그리고 이를 구현하기 위한 핵심 구성요소인 Vector Database에 대해 정리해본다.1. RAG란 무엇인가?RAG는 이름 그대로 Retrieval, Augme..
넓고 넓은 S3의 개념,,덤프와 함께 관련 개념을 정리해보고자 한다. #21 문제 정리1. 매일 한 가지 상품만 판매 -> 데이터베이스에서 복잡한 재고 관리가 필요하지 않을 가능성이 높다.2. 피크 시간대에 수백만 건의 요청 처리 -> 확장성이 뛰어난 솔루션이 필요하다.3. 밀리초 단위 응답 시간 -> 빠른 성능이 필요하다.4. 운영 오버헤드 최소화 -> 관리 부담이 적은 서비스를 사용한다. 답은 D이다.S3는 Object Storage 서비스이다. 즉, 파일을 저장하는 공간이고 데이터베이스처럼 쿼리를 수행하는 구조가 아니다.그래서 정적 웹사이트 호스팅, 백업 및 로그 저장, 데이터 아카이브(오래된 데이터 보관), CloudeFront와 연계한 콘텐츠 배포에 적합하다. S3 + CloudFront + A..
과제를 진행하면서 LLM을 활용한 애플리케이션을 개발해야했다.회사에서 가장 활용성이 좋은 애플리케이션이 무엇일까 생각했더니 ChatBot이라고 생각했다.그래서 챗봇을 개발하기로 결심!! 기술 스택은 아래와 같다. 개발의 핵심은 내가 익숙한 언어로, 약 2-3일 동안의 시간동안 구현하는 게 목표였기에사용해본 FastAPI와 React를 사용해서 구현했다. LLM 사용하기 Hugging Face에서 Llama3 사용을 위한 Access 신청을 해야한다.보통 1시간 이내면 허용 이메일이 온다. 개발 환경은 당연 colab을 사용했다. 노트북으로 개발을 했기에 GPU가 없었다. 발급받은 허깅페이스 키로 로그인 해주고, 모델 로드를 했다.import torchfrom transformers import pip..
원래 목차별로 정리하려 했지만 급 S3로 강의로 넘어갔다..은근 강의 수가 많아서 안듣게됨 ㅎ Amazon S3란Simple Storage Service로, 데이터를 무제한 저장할 수 있는 스토리지 서비스이다.- 무제한 확장 가능으로 객체 크기는 최대 5TB까지 지원한다.- 고가용성 및 내구성은 거의 100퍼센트 제공한다.- 서버리스 서비스로 직접 서버를 관리할 필요가 없다.- HTTP 및 REST API 기반 데이터 엑세스를 지원한다.- 유연한 스토리지 클래스를 제공한다. 위와 같은 특징을 가지고 있는 S3에는 크게 2가지 용어가 있다. S3 BurketS3의 최상위 컨테이너 개념으로 데이터를 저장하는 공간이다.- 버킷 이름은 중복없이 유일해야 하고- EC2아 마찬가지로 Region 단위로 생성된다...
오늘 강의를 결제한 사람,, 사실 이 자격증은 따야지 생각 하면서 2025년 목표로 두고 있었다.관련 기사 자격증을 먼저 따고 다음 스텝으로 SAA는 6-7월쯤에 공부하려고 했지만, 나태지옥에 빠지지 않기 위해 ^_^강의를 결제 해놓고 시간이 있을 때마다 들으려고 한다. AWS SAA를 선택한 이유 AWS 안에서도 자격증 종류가 많은데 SAA를 선택한 이유는 클라우드 아키텍터 설계를 본격적으로 배우고 싶어서이다.프로패셔널까지는 지금 수준에서 투머치일 것 같고 가장 무난한 Associate를 선택했다. 오늘 강의들은 것을 간단하게 정리했다. IAMIAM은 Identity and Access Management로, AWS 리소스에 대한 접근을 관리하는 서비스이다. 이를 통해 개별 사용자, 그룹, ..
TLB와 MMU를 이해하려면 기본적으로 가상메모리, 페이지테이블 개념에 대해서 알아야 한다.이 부분을 먼저 복습하고, 알아보도록 하자. 😋 우리가 프로그램을 실행하면?프로그램의 실행 파일은 드라이브에서 메모리로 로드된 뒤 CPU가 이를 실행하게 된다. 하지만 여기에는 중요한 문제가 있다. 메모리 용량의 한계예를 들어, 어떤 프로그램이 16GB의 메모리를 사용한다고 가정해보자. 그러나 실제로 실행되는 여러 프로그램을 합치면 메모리 사용량이 30GB를 넘길 수도 있다. 물리적인 메모리 용량(예: 16GB)이 초과되면 메모리가 부족해질 수밖에 없다. 그렇다면, 이런 상황에서 프로그램 실행이 불가능 할까? 그렇지 않다. 운영체제는 가상메모리라는 기법을 통해 물리 메모리의 한계를 극복한다. 가상메모리가상메모리는..