프로젝트 개요안녕하세요, 지난번 Llama-3.2-1B-Instruction 모델을 한국어 QA 태스크에 파인튜닝했던 경험을 공유드렸는데요. 이번에는 AIHub의 초거대 AI 헬스케어 질의응답 데이터를 활용하여 비슷한 프로젝트를 수행한 경험을 공유하고자 합니다. [지난 Llama-3.2-1B 파인튜닝 프로젝트 보기] Llama-3.2-1B-Instruction 모델 파인튜닝하기Llama 모델이란?먼저, Llama 모델에 대해 간단히 소개하겠습니다. Llama(Large Language Model Meta AI)는 Meta AI에서 개발한 대규모 언어 모델입니다. OpenAI의 GPT 시리즈와 마찬가지로 트랜스포naakjii.tistory.com 이번 프로젝트의 목표는 AIHub에서 제공하는 헬스케어 ..
Llama 모델이란?먼저, Llama 모델에 대해 간단히 소개하겠습니다. Llama(Large Language Model Meta AI)는 Meta AI에서 개발한 대규모 언어 모델입니다. OpenAI의 GPT 시리즈와 마찬가지로 트랜스포머 아키텍처를 기반으로 하며, 다양한 크기와 성능을 제공합니다. 이 포스팅에서 다룰 Llama-3.2-1B-Instruction 모델은 약 10억 개의 파라미터를 가진 모델로, sLLM에 해당하는 아주 작은 파라미터를 가지고 있지만, 특정 태스크에서는 뛰어난 성능을 보여주는 모델입니다.한국어 QA 튜닝 방법한국어 QA 시스템의 발전은 국내 AI 산업에서 매우 중요한 부분을 차지합니다. 검색 엔진, 고객 서비스 챗봇, 교육용 AI 등 다양한 분야에서 활용될 수 있기 때..
개요'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..
자연어 처리(NLP) 기술이 급속도로 발전하면서, 한국어 처리 기술도 큰 진전을 이루고 있습니다. 그 중심에는 '벡터 임베딩'이라는 혁신적인 기술이 자리 잡고 있습니다. 이 글에서는 한국어 벡터 임베딩의 개념, 방법, 그리고 실제 응용 사례에 대해 자세히 알아보겠습니다.벡터 임베딩이란?벡터 임베딩은 자연어의 의미를 수치화된 벡터로 표현하는 기술입니다. 이를 통해 컴퓨터는 단어나 문장의 의미를 이해하고 처리할 수 있게 됩니다. 예를 들어, "강아지"와 "고양이"라는 단어는 서로 다른 벡터로 표현되지만, 이 벡터들은 상대적으로 가까운 거리에 위치하게 됩니다. 반면 "강아지"와 "자동차"는 더 먼 거리에 위치하게 됩니다.벡터 임베딩의 핵심 아이디어는 "유사한 맥락에서 사용되는 단어들은 유사한 의미를 가진다"는..
서론최근 인공지능과 자연어 처리 분야에서 RAG(Retrieval-Augmented Generation)가 큰 주목을 받고 있습니다. RAG는 대규모 언어 모델의 생성 능력과 외부 지식 베이스의 정확성을 결합하여 더 정확하고 신뢰할 수 있는 정보를 제공하는 기술입니다. 이 과정에서 핵심적인 역할을 하는 것이 바로 벡터 임베딩입니다. 본 글에서는 RAG를 위한 벡터 임베딩의 중요성, 최신 기술 동향, 그리고 실제 구현 방법에 대해 자세히 살펴보겠습니다.벡터 임베딩의 기본 개념벡터 임베딩은 텍스트, 이미지, 음성 등의 고차원 데이터를 저차원의 밀집된 벡터 공간으로 변환하는 기술입니다. 이를 통해 복잡한 데이터의 의미와 관계를 수치화하여 컴퓨터가 이해하고 처리할 수 있는 형태로 만듭니다.예를 들어, "고양이"..
RAG의 기본 개념RAG는 크게 두 가지 주요 구성 요소로 나눌 수 있습니다:Retrieval (검색): 외부 데이터베이스나 문서에서 관련 정보를 검색하는 단계입니다. 이는 특정 질문에 답변하기 위해 필요한 정보를 찾는 과정입니다. 검색 단계는 일반적으로 'Dense Retrieval' 또는 'Sparse Retrieval' 방식으로 이루어지며, 전자는 BERT와 같은 임베딩 기반 검색 방식을, 후자는 전통적인 TF-IDF나 BM25와 같은 방식으로 수행됩니다.Generation (생성): 검색된 정보를 바탕으로 답변을 생성하는 단계입니다. 이 과정에서 대형 언어 모델(예: GPT, BERT 등)이 사용되며, 검색된 정보와 질문을 결합하여 최종 답변을 생성합니다.RAG의 구조RAG는 두 가지 구조로 나뉩..
프로젝트 개요이번 개인 프로젝트에서는 Streamlit과 OpenAI API를 활용해 사용자에게 맞춤형 아기 이름을 추천해주는 웹 애플리케이션을 개발했습니다. 아기가 생긴지 얼마 되지 않아서 한참 이름을 어떻게 지을까 고민하고, 생각하던 찰나 생성형 AI를 이용해서 이런 문제를 쉽게 풀어볼 수 있겠다는 생각이 들어 이 서비스를 기획했습니다. 이 서비스는 인기있는 이름 혹은 특이한 이름, 돌림자 적용, 성별 적용 등 기본적인 기능을 구현했으며, streamlit cloud를 통해 배포한 상태입니다. 관심있는 분들을 위해 코드도 공개해두었습니다. 데모 : 바로가기Github : https://github.com/nakjun/KoreanBabyNameGeneratorAI사용한 기술 스택Streamlit: Py..
인사고과 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [구현 환경] C++ [문제 설명] 각 사원마다 [근무 태도 점수, 동료 평가 점수]가 기록되어 있음 사원 A가 임의의 사원 B보다 두 점수가 모두 낮으면 인센티브 수령이 불가능함 이외의 케이스는 두 점수의 합이 높은 순으로 석차를 매기고 첫번째 배열의 사원(완호)의 석차를 return [제한 사항] 1 ≤ scores의 길이 ≤ 100,000 scores의 각 행은 한 사원의..