
시작하기에 앞서... 이제 회사에서 본격적으로 개발 일을 시작한지 1달 반이 다되간다. 현재 Svelte와 FastAPI 기반의 Monolothic 구조의 프로젝트를 유지보수 하고 있는데, 해당 프로젝트에서 이해가 안되는 부분이 매우 많이 있다. 특히 FastAPI의

Pydantic 오늘은 Pydantic에 대해서 알아보려고 한다. 최근에 오픈소스로 이루어진 프로젝트들을 보면, 백엔드 서버를 FastAPI를 사용하는 경우가 많은데, Pydantic은 FastAPI에서 데이터 스키마를 정의하고 데이터 직렬화/역직렬화를 위해 많이 사

이번에는 Bridge Pattern 에 대해서 알아보겠다. Bridge Pattern은 말 그대로 클래스와 클래스를 가교(Bridge)라는 관계로 정의하는 패턴이다. 한번 생각해보자, 우리가 어떠한 클래스를 상속을 통해 구현을 할때, 깊이 1에 있는 클래스들은 해당 클

LoRA (Low Rank Adaptation) 이제 대망의 LoRA(Low Rank Adaptation) 에 대해서 알아볼 시간이다. 「LoRA: Low-Rank Adaptation of Large Language Models (Hu et al., 2021)」

오늘은 갑자기 미니 프로젝트를 하고 싶어져서, Velog 포스트들을 백업해주는 프로그램을 만들려고 한다. 갑자기 미니 프로젝트를 하는 이유는 딱히 없다. 그냥 해보고 싶어졌다. 프로그램 목적은 사용자의 이름을 환경변수로 주면 GrphQL로 Velog 정보를 가져와서 시

이번에는 Adapter Pattern에 대해서 알아보겠다. GOF 디자인패턴 책에서는 구조패턴을 설명할 때 Adapter Pattern 을 제일 먼저 설명한다. Adapter Pattern은 말 그대로 기존의 클래스 인터페이스에 다른 라이브러리나 인터페이스를 결합하기

Transformer 구조를 이해했으니, 이제 자연스럽게 "그럼 이렇게 만들어진 모델을 어떻게 내 태스크에 맞게 쓰는가?" 라는 질문이 생긴다. 바로 여기서 Fine-tuning(파인튜닝) 이라는 개념이 나온다.LLM이나 Transformer 모델은 처음에 Corpus

오늘은 현대 LLM의 모델들이 활용중인 가장 중요한 요소인 Transformer에 대해서 알아보겠다. Transformer는 2017년 Google에서 발표한 「Attention is All you need」 논문에서 소개된 모델이다.Attention is All yo

나는 이전 글에 Prompt Engineering과 Chunking에 대해서 정리를 했었는데, LLM의 기초부터 Velog에 정리를 해야 할 필요를 느꼈다. LLM의 개념에 대해서는 예전에 책으로 몇 번 보고, 영상이나 강의자료로 가볍게 본 기억이 있는데, 이번에 제대

오랜만에 디자인패턴 글을 써보는데, 최근에 IPP로 회사에 가서 이것저것 배우고, LLM과 LangChain을 학습하느라 디자인패턴 글을 잊고 있었다. 앞으로는 일주일에 한번은 디자인패턴 글을 쓸 생각이다. 어쨋든 저번 프로토타입 패턴을 마지막으로 생성패턴은 전부 정리

이번에는 저번 Prompt Engineering에 이어서 Chunking에 대해서 알아보겠다.청킹은 자연어를 특정 크기로 나누는 것을 의미한다. 각 나누어진 단위를 청크(chunk)라고 하며, 이러한 기법을 적용하는 도구를 텍스트 분할기(Text splitters)라고

저번에는 LangChain을 통해서 Prompt Engineering을 적용하는 법을 알아보았는데, 사실 Prompt Engineering 최근 LLM을 구성하는데 있어서 매우 중요한 기술이다. 따라서 Prompt Engineering Guide에서 학습 한 내용을 내

이번에는 저번에 이어서 대화 맥락을 유지시켜 주는 trimmer 기능에 대해서 알아보겠다. Chatbot은 지금 하는 대화와 이전에 나눈 대화도 기억해서 사용자와 대화해야 한다. 이것을 가능하게 해주는 것이 trimmer 함수이다.위의 코드는 메시지 트리머를 정의한 코

저번 시간에 이어서 이번에는 Chatbot을 프롬프팅해서 지시를 내리는 작업을 하겠다. 프롬프팅은 간단하다. 프롬프팅의 기능으로는 자신이 원하는 스타일의 모델을 생성 가능하도록 자연어 지시를 내리는 것이다. 또한 언어를 설정하는 기능도 존재한다.위의 코드를 살펴보자.일

LangChain은 요즘에 핫한 AI 어플리케이션 개발을 도와주는 오픈소스 라이브러리이다. 간단하게 LangChain은 LLM Large Language Model 앱을 빠르게 조립하는 파이프라인 프레임워크인데, 프롬프트 설계부터 도구 호출과 검색 연동까지 구성 요소를

형식주요 옵션\-l 상세 목록\-a 숨김 파일 포함\-R 하위 디렉터리 재귀\-h 사람이 읽기 쉬운 크기예시현재 디렉터리의 숨김 파일까지 상세 정보 출력/var/log의 파일 크기를 사람이 읽기 쉬운 단위로 표시projects 아래 하위 디렉터리까지 재귀적으로 나열형식
일주일 동안 진행된 OJT 기간이 끝나고, 드디어 팀 선택을 통해 최종 팀 배정을 받는 시간이 찾아왔다. 팀 배정 방식은 본인이 원하는 팀과 각 팀장님이 원하는 인원을 서로 조율하여 결정하는 방식이었다. 즉, 내가 지원한 팀에서 나를 필요로 한다면, 높은 확률로 해당

이번 시간에는 최종적으로 GitHub Page 구현을 마치려고 한다. 그런데 역시 끈기가 부족해서 구현하는 게 상당히 귀찮게 느껴졌다. 특히 CSS로 렌더링을 구현하는 게 짜증이 났다. 그래서 이번에는 온전히 Cursor AI를 통해 프로젝트를 분석하고 적절한 코드를

Prototype은 "원형"이라는 의미를 가진다. 이를 토대로 Prototype 객체는 원형을 나타낸다는 것을 알 수 있고, Prototype Pattern은 원형 객체를 사용하여 객체를 생성하는 패턴임을 알 수 있다.원형이 되는(prototype) 인스턴스를 사용하여
이제 7시간 뒤에 IPP 일학습병행 출근을 하게 된다. 나는 지난 1~2월에 현장실습을 진행해서 회사에 대한 전반적인 구성과 어떻게 진행되는지는 알고 있다. 그러나 생각해 보면 1~2월에 진행한 현장실습 때 부족한 모습이 너무 많았던 것 같다. 그래서 부족했던 점을 한