Main

개발/AI

PPT 슬라이드를 Vision-Language 모델로 해석하기

개요'PPT 슬라이드를 자동으로 분석해볼 수 없을까?' 에서 시작된 간단한 토이 프로젝트로 Python 환경에서 다음과 같은 기능을 구현해봤습니다. 사용된 기술 스택 및 dependency 설치# torch 버전은 본인의 GPU에 맞게 세팅pip install torch transformers==4.44.0pip install pdf2image python-pptx comtypes 구현 과정1. PPT를 PDF로 변환PPT를 PDF로 변환하는 과정은 comtypes 라이브러리를 이용합니다. 이 라이브러리는 Windows COM(Component Object Model) 인터페이스와 상호 작용할 수 있게 해줍니다.이를 이용해 Microsoft Office 애플리케이션(Powerpoint, Word, Exc..

개발/AI

[공부] 한국어 벡터 임베딩

자연어 처리(NLP) 기술이 급속도로 발전하면서, 한국어 처리 기술도 큰 진전을 이루고 있습니다. 그 중심에는 '벡터 임베딩'이라는 혁신적인 기술이 자리 잡고 있습니다. 이 글에서는 한국어 벡터 임베딩의 개념, 방법, 그리고 실제 응용 사례에 대해 자세히 알아보겠습니다.벡터 임베딩이란?벡터 임베딩은 자연어의 의미를 수치화된 벡터로 표현하는 기술입니다. 이를 통해 컴퓨터는 단어나 문장의 의미를 이해하고 처리할 수 있게 됩니다. 예를 들어, "강아지"와 "고양이"라는 단어는 서로 다른 벡터로 표현되지만, 이 벡터들은 상대적으로 가까운 거리에 위치하게 됩니다. 반면 "강아지"와 "자동차"는 더 먼 거리에 위치하게 됩니다.벡터 임베딩의 핵심 아이디어는 "유사한 맥락에서 사용되는 단어들은 유사한 의미를 가진다"는..

개발/AI

[공부] RAG를 위한 벡터 임베딩

서론최근 인공지능과 자연어 처리 분야에서 RAG(Retrieval-Augmented Generation)가 큰 주목을 받고 있습니다. RAG는 대규모 언어 모델의 생성 능력과 외부 지식 베이스의 정확성을 결합하여 더 정확하고 신뢰할 수 있는 정보를 제공하는 기술입니다. 이 과정에서 핵심적인 역할을 하는 것이 바로 벡터 임베딩입니다. 본 글에서는 RAG를 위한 벡터 임베딩의 중요성, 최신 기술 동향, 그리고 실제 구현 방법에 대해 자세히 살펴보겠습니다.벡터 임베딩의 기본 개념벡터 임베딩은 텍스트, 이미지, 음성 등의 고차원 데이터를 저차원의 밀집된 벡터 공간으로 변환하는 기술입니다. 이를 통해 복잡한 데이터의 의미와 관계를 수치화하여 컴퓨터가 이해하고 처리할 수 있는 형태로 만듭니다.예를 들어, "고양이"..

개발/AI

[공부] RAG 개념

RAG의 기본 개념RAG는 크게 두 가지 주요 구성 요소로 나눌 수 있습니다:Retrieval (검색): 외부 데이터베이스나 문서에서 관련 정보를 검색하는 단계입니다. 이는 특정 질문에 답변하기 위해 필요한 정보를 찾는 과정입니다. 검색 단계는 일반적으로 'Dense Retrieval' 또는 'Sparse Retrieval' 방식으로 이루어지며, 전자는 BERT와 같은 임베딩 기반 검색 방식을, 후자는 전통적인 TF-IDF나 BM25와 같은 방식으로 수행됩니다.Generation (생성): 검색된 정보를 바탕으로 답변을 생성하는 단계입니다. 이 과정에서 대형 언어 모델(예: GPT, BERT 등)이 사용되며, 검색된 정보와 질문을 결합하여 최종 답변을 생성합니다.RAG의 구조RAG는 두 가지 구조로 나뉩..

개발/AI

Streamlit과 OpenAI API를 활용한 아기 이름 추천 서비스 개발기

프로젝트 개요이번 개인 프로젝트에서는 Streamlit과 OpenAI API를 활용해 사용자에게 맞춤형 아기 이름을 추천해주는 웹 애플리케이션을 개발했습니다. 아기가 생긴지 얼마 되지 않아서 한참 이름을 어떻게 지을까 고민하고, 생각하던 찰나 생성형 AI를 이용해서 이런 문제를 쉽게 풀어볼 수 있겠다는 생각이 들어 이 서비스를 기획했습니다. 이 서비스는 인기있는 이름 혹은 특이한 이름, 돌림자 적용, 성별 적용 등 기본적인 기능을 구현했으며, streamlit cloud를 통해 배포한 상태입니다. 관심있는 분들을 위해 코드도 공개해두었습니다. 데모 : 바로가기Github : https://github.com/nakjun/KoreanBabyNameGeneratorAI사용한 기술 스택Streamlit: Py..

개발/뇌를 말랑하게하는 코테 연습

[프로그래머스 Lv3][C++] 인사고과

인사고과 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [구현 환경] C++ [문제 설명] 각 사원마다 [근무 태도 점수, 동료 평가 점수]가 기록되어 있음 사원 A가 임의의 사원 B보다 두 점수가 모두 낮으면 인센티브 수령이 불가능함 이외의 케이스는 두 점수의 합이 높은 순으로 석차를 매기고 첫번째 배열의 사원(완호)의 석차를 return [제한 사항] 1 ≤ scores의 길이 ≤ 100,000 scores의 각 행은 한 사원의..

개발/C++

[Design Pattern] Strategy Pattern(전략 패턴) 정리

Strategy Pattern의 정의 Strategy Pattern(전략 패턴)은 특정 클래스의 행위를 변경하고 싶을 때 사용하는 디자인 패턴 알고리즘을 객체의 형태로 캡슐화하여, 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있음 동일한 문제를 해결할 수 있는 여러 알고리즘을 정의하고, 런타임에 알고리즘을 선택할 수 있도록 하는 방식 개념 Context(문맥): 전략을 사용하는 역할 / 필요에 따라 다른 전략을 사용하도록 설정할 수 있음 Strategy(전략): 여러 알고리즘을 인터페이스로 정의 / Context에서 사용할 수 있는 메소드 또는 알고리즘 제공 ConcreteStrategy(구체적인 전략): Strategy 인터페이스를 실제로 구현하는 클래스 / 각기 다른 알고리즘을 구..

개발/AWS

[공부 정리] AWS Lambda와 Serverless

개요 AWS Lambda와 서버리스(Serverless) 아키텍처는 클라우드 컴퓨팅 환경에서 중요한 개념으로 인식되고 있음 이러한 개념들은 애플리케이션의 확장성, 유지 보수, 그리고 운영에 큰 이점을 제공하고 더 높은 수준의 추상화에서 작업할 수 있게 해주는 역할을 함 Serverless 정의: 서버 관리와 운영을 최소화하며, 애플리케이션 개발에 집중할 수 있게 해주는 클라우드 네이티브 개발 모델 백엔드 서비스를 완전히 관리하는 서드파티 서비스를 활용하며, 개발자는 코드 작성에만 집중할 수 있음 특징: 자동 프로비저닝 및 자동 확장: 서버리스 플랫폼은 자동으로 리소스를 프로비저닝하고 확장 이벤트 기반: 대부분의 서버리스 애플리케이션은 이벤트에 응답하여 작동 마이크로 서비스 구조: 서버리스는 작고 독립적인..

njsung
'분류 전체보기' 카테고리의 글 목록