본문 바로가기
반응형

전체 글47

Flask + Docker + Google Cloud Run으로 LLM 서비스 배포 흐름 Flaskflask 설치 후 python 스크립트 작성 Docker container 는 instance 느낌, images 는 class 느낌Docker 에서 계정을 만들고 (app.docker.com) repository 생성 -> docker build (docker run 해서 테스트) -> docker push Google Cloud 프로젝트 생성 -> cloud run 탭 이동 -> create service (billing 정보 필요) -> container image url 항목에 docker image url 입력 -> cloud에서 받은 url 로 local 아니어도 실행 가능간단한 스크립트로 틀만 만들어서 google cloud 까지 세팅 한 후 스크립트 수정하는 방식 추천 '.. 2026. 2. 16.
LLM 서비스 개발 시 참고할만한 UI 디자인 패턴 HAX 디자인(Human-AI eXperience Design)사람과 인공지능(AI)이 서로 원활하게 소통하고 협력할 수 있도록 설계하는 인간 중심의 AI 경험 디자인https://www.microsoft.com/en-us/haxtoolkit/library/ HAX Design Library - Microsoft HAX ToolkitHAX Design Library Interactive collection of the 18 Guidelines for Human-AI Interaction, with design patterns for applying them and examples.www.microsoft.com 2026. 2. 15.
LLMOps Stack, LLM 속도 향상 전략 LLMOps 스택이란? 대규모 언어 모델(LLM)을 실제 환경에서 원활하고 효율적으로 작동시키는 도구 및 프로세스주요 구성 요소데이터 파이프라인 (데이터 수집 및 전처리)모델 훈련 (학습 인프라 및 프레임워크, 하이퍼 파라미터 튜닝 및 최적화)배포containerization, orchestration컨테이너화 (Docker, Kubernetes)확장성 / 로드 밸런싱모니터링latency, requests completedmodel driftupdatesLLM 속도 향상 전략모델 경량화 가지치기 (Pruning): 불필요한 모델 파라미터 제거양자화 (Quantization): 모델 파라미터의 정밀도 감소지식 증류 (Knowledge Distillation): 작고 빠른 모델에 지식 전달 추론 최적화 배치.. 2026. 2. 15.
Ollama local LLM 으로 사용할 수 있음https://ollama.com/download/mac Download Ollama on macOSDownload Ollama for macOSollama.com 2026. 2. 14.
Fine Tuning 용어 정리 용어 설명 & 공부하는 학생에 비유한다면...Base Model기본 모델공부 전의 학생Train학습 공부Tokenizer텍스트를 의미 단위로 나누는 도구책 내용을 쪼개는 단위Epochs (학습 반복 횟수)전체 학습 데이터셋이 신경망을 통해 앞뒤로 통과되는 횟수학생이 교제를 처음부터 끝까지 읽은 횟수Batch size (묶음 크기)한 번의 반복에서 사용되는 학습 예제의 수학생이 한 번에 공부하는 양 (한 장, 한 단원...)Learning rate (학습률)최적화 과정에서의 스텝 크기를 제어학생이 새로운 정보를 배우는 속도, 너무 빠르면 이해가 부족하고, 너무 느리면 비효율적임Weight decay (가중치 감소)큰 가중치를 페널티하여 과적합을 방지하는 정규화 기법 학생이 공부하면서 중요하지 않은 세부 사.. 2026. 2. 14.
distributed(분산형) IT 시스템 패턴 스케일링 시스템 (Scaling System) 컴퓨팅 환경에서 사용자 수, 데이터 양, 처리할 작업량(트래픽)이 증가할 때, 시스템의 처리 능력을 유연하게 늘리거나 줄이는 기능 및 방식을 의미 '[재직자 내배카] LLM을 이용한 AI 서비스 개발부터 운영까지' 수업을 정리한 내용입니다. 2026. 2. 10.
Embedding, VectorDB, Chunking 개념 Embed어떤 것을 다른 것에 삽입하거나 통합하는 행위, 예를 들어 웹페이지에 외부 콘텐츠를 '임베드'Embedding AI 에서는 단어나 문장과 같은 텍스트 데이터를 벡터의 형태로 표현하는 과정을 의미 임베딩 벡터는 텍스트보다 낮은 차원을 가짐, 데이터의 의미적, 문맥적 특성을 수치화 (위치 표현)embedding 된 벡터끼리 consine similarity를 계산하여 텍스트 간 유사도를 파악할 수 있음정확한 문자열이 아닌 "의미"로 검색하는 semantic search 가 가능다양한 embedding 모델이 있음VectorDB텍스트, 이미지 등을 임베딩한 고차원 벡터로 변환해 저장하고(key, value), 유사도 기반의 검색을 제공하는 특수 데이터 베이스 Pinecone, Weaviate, QD.. 2026. 2. 8.
RAG, Grounding 개념 RAG Retrieval augmented generation : 검색하여 더 나아진 답변 생성기본 개념 : 오픈 북 시험, langchain으로 유튜브나 웹 검색한 결과를 기반으로 답변하는 것처럼 Grounding 단어 사용 예시: hallucination이 있기 때문에 grounding을 해야 해 (사실 기반으로 답변할 수 있도록 해야한다는 의미)Grounding의 주요 방식: RAG사용자 LLM 서비스 방식 '[재직자 내배카] LLM을 이용한 AI 서비스 개발부터 운영까지' 수업을 정리한 내용입니다. 2026. 2. 7.
[Python] zip 함수 - 길이가 동일한 iterable 연산 길이가 같은 리스트, 튜플 등의 iterable의 요소들을 묶어서 하나의 zip 객체로 리턴해주는 함수 1. 리스트끼리 연산 dummy_list1 = [1, 2, 3, 4, 5] dummy_list2 = [1, 10, 100, 1000, 10000] print("결과:", [i * j for i, j in zip(dummy_list1, dummy_list2)]) dummy_list1 = [1, 2, 3, 4, 5] dummy_list2 = [1, 10, 100, 1000, 10000] dummy_list3 = [-1, -10, -100, -1000, -10000] print("결과:", [i * j + k for i, j, k in zip(dummy_list1, dummy_list2, dummy_list.. 2023. 6. 14.
[Python] sum 함수 - sum의 인자 iterable, start에 대하여 sum 함수의 인자 iterable은 리스트, 튜플과 같은 자료형을 의미하며, numeric으로만 구성되어 있어야 한다. 그동안 항상 sum(iterable) 으로만 사용했었는데, start 인자도 활용할 수 있다는 걸 알게 되었다. 😆 1. sum(iterable) dummy_list = [1, 2, 3, 4, 5] print("결과:", sum(dummy_list)) 2. sum(iterable, start) start의 default 값은 0이고, 다른 값을 넣게 되면 덧셈의 시작 값이 변경된다. dummy_list = [1, 2, 3, 4, 5] print("결과:", sum(dummy_list, start=10)) start를 숫자가 아닌, 리스트로 넣을 수도 있다. 물론 iterable이 이중.. 2023. 6. 14.
[Python] map 함수 - function, lambda map( )은 function과 리스트, 튜플 등 iterable 을 인자로 받아 map 객체로 리턴 1. function을 사용하는 경우 dummy_list = [1,2,3,4,5] def square(i): return i**2 list(map(square, dummy_list)) 2. python 기본 모듈을 사용하는 경우 dummy_list = [1,2,3,10,11] max(map(min, enumerate(dummy_list))) 3. lambda를 사용하는 경우 dummy_list = [1,2,3,4,5] list(map(lambda x: x**2, dummy_list)) 2023. 6. 13.
[Python] Collections - Counter 객체로 key, value 쌍 생성 - collections 모듈의 Counter 클래스는 별도 패키치 설치가 필요 없으므로, import해서 사용 - Counter 클래스는 list, tuple, set 객체를 이용하여 key-value 쌍 생성 import collections dummy_list1 = ["a", "c", "b", "a"] print(collections.Counter(dummy_list1)) 2개의 Counter 객체는 빼고 더하는 것이 가능함 import collections dummy_list1 = ["a", "c", "b","a"] dummy_list2 = ["b", "a", "c", "d"] counter1 = collections.Counter(dummy_list1) counter2 = collections... 2023. 6. 13.
[Python] list 정렬 - sort, sorted의 차이 1. sort() list 객체를 정렬하는 함수 dummy_list = ["x", "c", "a", "e", "f"] dummy_list.sort() print("결과:", dummy_list) list 객체에 string과 integer가 섞여있는 경우 sort() 동작하지 않음 dummy_list = ["x", "c", "a", "e", 5, "f", 1] dummy_list.sort() print("결과:", dummy_list) list 객체에 string과 integer가 이중 list 안에 들어있는 경우 아래와 같이 동작 dummy_list = [["x", 1, 3], ["c", 5, 2], ["a", 3, 2]] dummy_list.sort(key=lambda x:[x[2],x[0]]) pr.. 2023. 6. 13.
[Course 4] Convolutional Neural Networks. W4 - Special Applications: Face Recognition & Neural Style Transfer [Coursera] Convolutional Neural Networks 4주차 강의 (Special Applications: Face Recognition & Neural Style Transfer)를 수강하며 작성한 필기 노트입니다. 1-2 강의에서 face recognition 문제를 풀기 위해서는 'one-shot learning' 가능해야 한다고 했다. 그런데 뒤에 나오는 'triplet loss'에서는 모델 학습에 한 사람당 여러 장의 이미지가 필요하다고 해서, 의문이다. 모델 학습 시에는 여러 장이 필요하고, 모델이 학습된 이후에 새로운 사람을 recognition할 때에는 1장의 이미지만 필요하다는 의미일까? 아니면 최소한의 이미자만으로 모델 학습이 진행되어야 한다는 의미였을까? 아직 헷갈.. 2023. 5. 4.
[Course 4] Convolutional Neural Networks. W3 - Object Detection [Coursera] Convolutional Neural Networks 3주차 강의 (Object Detection)를 수강하며 작성한 필기 노트입니다. 2023. 5. 4.
반응형