본문 바로가기

전체 글

LLM을 활용한 자연어 처리 파이프라인: 의도 분류용 프롬프트 의도를 분류하기 위한 순차적으로 구조 설계를 한다. LLM이 의도를 파악할 수 있도록 구체적으로 프롬프트를 작성한다. 프롬프트에는 다음의 내용이 포함되어 있어야 한다.시스템 역할 정의 → 컨텍스트 제공 → 작업 명세 → 출력 형식 → 예시문 → 제약사항 의도 분류용 프롬프트당신은 지도 애플리케이션의 사용자 의도를 분석하는 전문가입니다.## 컨텍스트- 사용자 위치: {user_location}- 현재 시간: {current_time}- 이전 검색 이력: {recent_searches}## 작업사용자 입력에서 다음 의도를 분류하세요:- ROUTING: 경로 찾기, 길안내 요청- SEARCH: 특정 장소나 시설 검색- ANALYSIS: 지역 분석, 통계 정보 요청- RECOMMENDATION: 추천 요청## .. 더보기
LLM을 활용한 자연어 처리 파이프라인: 시나리오1 LLM 활용 일반 시나리오사용자 입력 전처리입력 정규화입력: "강남역에서 홍대까지 지하철로 가는법좀"정규화: "강남역에서 홍대까지 지하철로 가는 방법"다국어 지원 및 방언의 처리한국어 : 근처, 주변, 가까운 곳영어 : nearby around, close to음성 입력 오류 보정의도 분석 (Intent Classification)주요 의도 카테고리{ "ROUTING": ["길찾기", "경로", "가는법", "route", "direction"], "SEARCH": ["찾기", "검색", "어디", "find", "search", "locate"], "ANALYSIS": ["분석", "통계", "변화", "비교", "analyze", "compare"], "RECOMMENDATION": ["추천".. 더보기
최초 선택과 옵션 보정으로 LLM 결과 정확도 높이기 문제 상황LLM을 활용해 기능을 실행하는 도구를 설계할 때 처음부터 복잡한 선택지를 주는것 보다 기본 동작을 단순하게 고르고, 이후 옵션을 보정하는 방식을 사용하는 것이 Accuracy를 높이는데 도움을 준다.예를 들어 LLM이 커피 주문을 처리한다고 하자. 사용자는 다음과 같이 말할 수 있다."아메리카노 큰거 한잔 줘""라떼 하나, 아이스로""디카페인 아메리카노 따듯한걸로"orderCoffee('아메리카노', '뜨거운', '디카페인', '라지')만약 이런 주문을 처음부터 LLM이 모든 옵션을 포함한 함수를 호출해야 한다면 옵션이 누락되거나 잘못된 매핑과 순서가 뒤죽박죽 되는 것과 같은 오류가 발생할 가능성이 높아진다. 단순한 접근성정확도를 높이는 방법은 다음과 같이 두 단계로 구분하는 것이다.최초 선택.. 더보기
[WebGL] 셰이더(Shader)란 무엇인가? 셰이더가 무엇인가?셰이더(Shader)는 그래픽 처리 장치(GPU)에서 실행되는 프로그램이다. 3D 장면의 렌더링 과정에서 빛, 그림자, 색상 등 시각적 효과를 계산하고 조절하여 사실적인 렌더링을 구현한다. 셰이더는 버텍스 셰이더(Vertex Shader, 위치 계산)와 프래그먼트 셰이더(Fragment Shader, 픽셀)로 나뉜다. 이를 통해 빛의 반사, 표면 질감 표현, 물결 효과 등 다양한 시각 효과를 만드는데 사용된다. 왜 셰이더가 필요한가?GPU는 CPU처럼 일반 명령어를 실행하는 구조가 아니다. WebGL은 GPU 파이프라인에 셰이더 프로그램(vertex + fragment)을 올려놓고, 데이터를 버퍼에 넣어 GPU에 전달한다. CPU는 "데이터를 GPU에 넘기고 > 어떤 방식으로 처리할지(.. 더보기
[MapLibre] Projection 변환시 발생되는 렌더링 오류 투영법은 지구의 곡면을 2차원 평면으로 표현하는 방식이다. MapLibre GL JS에는 map.setProjection() API, Style Spec을 통해서 mercator, globe 2가지 종류의 투영법을 지정할 수 있다. 다음과 같은 API를 통해 mercator ↔ globe 전환을 쉽게 할 수 있다.// Globe 3D 지구본map.setProjection({ type: 'globe' });// Web Mercator 투영map.setProjection({ type: 'mercator' }) 하지만 투영법 전환시에 내부 렌더링 충돌로 오류가 발생된다. 해상도 변경(줌인,줌아웃)시 주로 발생되는데, 원인은 크게 2가지로 볼 수 있다.첫째, 랜더링 파이프라인 차이로 mercator와 globe.. 더보기
다중 의도 처리 (Multi-intent Handling) 다중 의도(Multi-intent) 처리 방식순차 실행 (Sequential Execution)사용자가 한 문장 안에 여러 명령을 말해도 시스템은 이를 분리해서 차례로 실행한다.예 : 음악을 틀고 불을 꺼줘. > [명령1 : 음악 재생] > [명령2 : 조명 끄기]병렬 실행 (Parallel Execution)시스템이 동시에 여러 명령을 실행할 수 있다면 동시에 처리한다.다만, 제어나 API 호출이 얽혀 있는 경우 충돌 방지 로직이 필요하다.대화 관리(Dialog Management) 모듈의도 분류 (Intent Classification)사용자 발화를 여러 의도로 분해한다.예 : "내일 오전 9시에 회의 일정을 잡고, 거실 조명을 꺼줘."의도1 : 일정 생성의도2 : 스마트홈 제어슬롯 추출 (S.. 더보기
필수로 사용되는 React 라이브러리 React 프로젝트 시작하기클라이언트 사이드 렌더링(CSR)React 프로젝트를 설정하는 가장 인기 있는 도구. 빠른 빌드 속도와 간편한 TypeScript 지원 제공서버 사이드 렌더링(SSR)Next.js : React 기반 메타 프레임워크로 서버사이드 렌더링(SSR) 및 정적 사이트 생성(SSG) 지원정적 사이트 생성(SSG)Astro : 프레임워크에 구애받지 않는 정적 사이트 생성 도구. React와 함께 사용할 수 있으며, 불필요한 JavaScript를 최소화하여 성능 최적화 가능React 패키지 매니저일반적인 패키지 관리npm : Node.js 기본 패키지 매니저이자 가장 널리 사용됨성능 최적화 필요 시pnpm : 성능이 뛰어나지만 상대적으로 덜 보편적모노레포 필요 시Turborepo : Mon.. 더보기
Great-circle Distance - 대원 거리 Great-CircleGreat-Circle (대원)은 구의 중심을 지나는 평면이 구면과 만나서 생기는 원으로, 구면 위에서 그을 수 있는 가장 큰 원입니다. 지구에서는 적도와 모든 경선(자오선)이 대원에 해당합니다. Great-Circle Distance지구는 구형으로 평면 지도에서 보는 직선이 실제로는 최단 거리가 아닙니다. Great-circle distance는 구면(지구) 위의 두 점을 연결하는 최단 거리로 지구를 완전한 구로 가정했을 때, 두 지점을 잇는 가장 짧은 경로의 길이를 의미합니다.Great-Circle Distance 계산 방법Haversine Formula (하버사인 공식)하버사인 공식은 구면 위의 두 점의 경도와 위도를 고려하여 대원 거리를 구합니다. 짧은 거리 계산에서 수치 안.. 더보기
쿠버네티스를 처음 구성하는 방법 퍼블릭 클라우드 서비스클라우드 사업자가 완전관리형으로 제공하는 쿠버네티스 서비스로 다음과 같은 종류가 있다.AWS EKS (Elastic Kubernetes Service)GCP GKE (Google Kubernetes Engine)Azure AKS (Azure Kubernetes Service)Naver Cloud Kubernetes ServiceKT Cloud K8s 등컨트롤 플레인(Control plane)을 클라우드에서 자동 패치, 업그레이드, 백업을 지원하여 관리가 불필요하다. 네트워크, 스토리지, 로드밸런서 등 클라우드 리소스와 통합하기가 쉬워 운영 난이도가 낮다.클라우드 네이티브 서비스와 손쉬운 연동으로 빠른 구축, 고가용성이 보장된는 장점이 있다. 하지만 클라우드 종속성, 네트워크 비용 증.. 더보기
가장 많이 사용되는 임베딩(Embedding) 모델 OpenAI: text-embedding-ada-002ChatGPT, LangChain 공식 튜토리얼에서 사용되는 가장 많이 언급되는 모델로 다국어도 어느 정도 지원하고 사용법이 쉽다. 품질이 뛰어나 실무에 사용되지만 유료(OpenAI API)로 사용해야 한다.랭체인에서 많이 쓰는 예제 기본값으로 사용되며 OpenAIEmbeddings 클래스를 활용한다.from langchain.embeddings import OpenAIEmbeddingsembeddings = OpenAIEmbeddings(openai_api_key = "YOUR_OPENAI_API_KEY")result = embeddings.embed_query("세종대왕 맥북 던짐 사건이 뭐야?")print(result)Hugging Face / .. 더보기
[AI] LLM 모델의 평가 및 검증 모델의 평가 및 검증 방법모델의 평가와 검증은 얼마나 잘 작동하는지 확인하고 이것을 실제로 서비스로 올렸을 때 어느 정도의 성능을 낼 수 있는지 확인하는 과정이다. 성능은 답변의 정확도, 답변의 속도를 말한다.모델을 평가하기 위해서는 데이터가 필요한데, 수집된 데이터를 다음과 같이 훈련, 검증, 테스트 용도로 나눠야 한다. 훈련 데이터는 말 그대로 모델을 훈련시킬 때 사용하고 검증과 테스트는 모델의 성능을 평가하기 위한 용도로 사용한다.검증 데이터와 테스트 데이터의 차이점에 대해 이해가 어려울 수 있다. 검증 데이터는 모델의 하이퍼파라미터를 조정하고 모델의 성능을 중간 평가하는 데 사용한다. 테스트 데이터는 모델의 최종 성능을 평가하는 데 사용된다. 모델이 완전히 학습되고 나서 실제로 데이터에 모델을 적.. 더보기
나의 기준으로 정한 좋은 제품을 만들기 위해 고려해야 할 것 좋은 제품을 만들기 위해 고려해야 할 아주 진부하고 식상한 원칙들이다. 하지만 '백 투 더 베이직' 이라고, 만들기 전/후에 하나씩 점검해 본다면 아무 생각 없이 만드는 것보다 더 좋은 제품을 만들수 있지 않을까?1. 매일 쓰고, 누구나 사용할 수 있어야 한다. 많이 사용할 수록 많이 팔릴 수 있다.2. 하늘아래 완전히 새로운 것은 없다. 불편한 제품을 찾아서 가려운 곳을 긁어줘라.3. 쓰레기라면 그래도 예쁜 쓰레기가 낫다. 사람들은 미적인 것을 좋아한다.4. 미니멀리즘 디자인 제품이 성공한다. 애플을 봐라.5. 브랜딩에 올라타자. 이름 값이라도 해당 분야 전문가와 협업이 더 나은 결과를 만든다. 더보기

반응형