[백준] BOJ 1004, 어린 왕자 파이썬 Python
·
IT, Digital
서론이번 포스팅에서는 백준 1004번 어린 왕자 문제를 풀겠다. 우선 어떻게 풀이 과정에 도달했는지에 설명하고 이어서 코드를 작성하는것으로 마무리할 예정이다. 백준 1004 문제를 보려면 여기로 가면 된다. 처음에 뭐야저거 했는데 쟤 그정도 아닙니다. 은하수 지도라고하는 참고용 도표만 없었어도 푼 사람 훨씬 많지 않았을까 싶다.BOJ 1004 풀이 과정 1문제를 보면 결국 요구하는게 출발점에서 도착점까지 몇개의 원을 통과해야 하는 지다. 은하수 지도를 보면 하나의 포물선으로 그려져 있으나 와리가리를 어떻게 해도 된다. 그냥 몇 개의 원을 지나는 지 구하기만 하면 되기 때문이다. 내가 이 문제를 풀었던 사고의 흐름을 보면 첫번째로 출발점 입장에서 왜 이 원은 지나야 하는지, 왜 이 원은 안 지나도 되는 지..
Fine-tuning LLM (5) fine-tuning
·
IT, Digital
서론지난 포스팅에서는 데이터를 curating하고 저장하는데 까지 진행했다. 이번 포스팅에서는 저장한 데이터를 가져와서, openai 모델을 파인튜닝하는걸 진행하도록 하겠다. 드디어 파인튜닝 시리즈의 마지막 단계가 온 것이다. 만약에 이전까지의 과정을 못봤다면 지난 포스팅을 꼭 보길 바란다. 여기서부터 시작할수가 없음. 지난 포스팅은 아래 링크부터 시작해서 링크의 마지막 숫자를 2,3,4로 바꾸면 됨. Fine-tuning LLM (1) Data Curation과 데이터 수집 및 로드서론이번 포스팅에서는 Fine-tuning을 위한 과정에 대해서 서술하고자 한다. 모델 성능 개선 방법에는 크게 세가지가 있다. 1. Prompting 2. RAG 3. Fine-tuning. 이 중 파인튜닝은 모델 자체를 ..
Fine-tuning LLM (4) Load & Download data
·
IT, Digital
서론지난 포스팅에서는 데이터를 정제하는 코드를 작성했다. 이번 포스팅에서는 데이터를 로드하고 로드된 데이터를 저장하는 방법에 대해서 적도록 하겠다. 이전 포스팅을 보려면 아래 포스팅을 참고하길 바란다. 여기서 만든 클래스를 활용해서 정제된 데이터를 로딩하는 것이기에 꼭 필요한 과정이다. Fine-tuning LLM (3) Item Parsing Class서론지난 포스팅에서는 데이터셋을 어떻게 수집하고, 데이터를 어떻게 분석하는 지 그 과정에 대해서 알아보았다. 이번 포스팅에서는 이렇게 분석한 데이터를 어떻게 프롬프트에 반영하는지에quiseol.cominit 함수와 load 함수우선 init함수를 통해 name과 dataset을 초기화한다. name은 카테고리명을, dataset은 데이터셋을 나중에 로드..
Fine-tuning LLM (3) Item Parsing Class
·
IT, Digital
서론지난 포스팅에서는 데이터셋을 어떻게 수집하고, 데이터를 어떻게 분석하는 지 그 과정에 대해서 알아보았다. 이번 포스팅에서는 이렇게 분석한 데이터를 어떻게 프롬프트에 반영하는지에 대해서 알아보고자 한다. 이렇게 만든 프롬프트를 기반으로 prompt를 만든 다음 나중에 Fine-tuning에 사용할 예정이다.생성자 설정 __init__()우선 초기 상태 설정인 init 함수를 적어준다. 받는 값들은 미리 넣어줄 것이고, 나중에 판단하거나 값을 새로 할당해야되는 것들은 None, 0 내지 False로 지정해줬다. detail을 바로 data['detail']로 받지 않은 이유는 디테일에 불필요한 요소가 너무 많기에 따로 받아서 정제를 해줘야되기 때문이다. 우선 데이터를 받으면 파싱하는 함수를 만들겠다.d..
Fine-tuning LLM (2) Dataset investigation
·
IT, Digital
서론앞선 포스팅에서는 Data Curation을 위해 데이터 로드하는 것 까지 진행했다. 이번에는 데이터 로딩 이후에 가공하는 과정을 진행하고자 한다. 참고로 가공에는 무조건적인게 없다. 데이터를 살펴보고 데이터에 따라 어떻게 가공해야될지 판단하는것은 본인의 몫이다. 그리고 시작에 앞서 이번 파인 튜닝의 목적은 제품 가격을 예측하는 LLM을 만드는 것임을 알리고자 한다. 물론 직접 데이터 분석해서 모델링할 수도 있지만 LLM도 Regression 기반이기 때문에 가능하기 때문이다. 다만 다른게 있다면 데이터 분석은 어떤한 변수를 주면 예측한다는건데 LLM은 query를 주면 그에 맞는 예측 답변을 말할 것이다.데이터 셋 살펴보기데이터 셋을 로드 하면 무엇이 들어있는 지 알아야 된다. 이는 다운받는 과정에..
Fine-tuning LLM (1) Data Curation과 데이터 수집 및 로드
·
IT, Digital
서론이번 포스팅에서는 Fine-tuning을 위한 과정에 대해서 서술하고자 한다. 모델 성능 개선 방법에는 크게 세가지가 있다. 1. Prompting 2. RAG 3. Fine-tuning. 이 중 파인튜닝은 모델 자체를 학습시키는 것인데, 이 과정의 첫번째 단계가 Data curation이다. 이번 포스팅에서는 데이터 큐레이션 및 데이터 수집하는 방법에 대해서 알아보도록 하겠다.Data Curation이란?Data curation은 데이터를 수집, 정제, 가공, 저장, 관리하는 작업을 의미한다. LLM을 Fine-tuning할 때 학습 데이터를 만드는 과정이기도 하다. LLM을 학습시킬 때 수집한 데이터를 냅다 집어넣으면 안 된다. 주어진 정보가 너무 많아도, 정보가 너무 적어도 학습에 문제가 생기기..
[RAG] Chroma와 FAISS 차이, 장단점 간단 정리
·
IT, Digital
서론RAG를 할 때 마주하는 것은 '어떤 DB를 써야되는가?'이다. 가장 많이 쓰이는 것이 Chroma와 FAISS인데 이번 포스팅에서는 이 두 벡터 데이터 베이스의 차이점에 대해 알아보도록 하겠다. 다른 RAG 시리즈 포스팅이 궁금하다면 아래 링크로 들어가길 바란다. Retrieval Augmented Generation(RAG) 복습 (1) RAG의 개념RAG란?Retrival : (언어 모델이 갖고 있지 않은 정보) 데이터를 가져오는 것.Augmented : AR/VR에서의 A도 Augmented임. 마치 있는 것처럼.Generation : 컴퓨터가 생성하는거 llm이 알아서 하는부분이다.여기서 R,Aquiseol.com FAISS란?FAISS는 엄밀히 말하면 vector data store가 아..