본문 바로가기

전체 글

(1188)
챗봇 만들기 3탄 (특정 도메인을 학습시켜 보기) # 나만의 LLM 만들기나만의 LLM을 만들어보자. 1. 데이터 셋 만들기일단 데이터가 필요하니까, 데이터는 검색문을 파라미터로 하여 구글에서 크롤링을 해오자.아래와 같이 크롤링이 실행된다.크롤링이 완료되면 일단 CSV 파일로 저장한다.아래와 같이 저장이 된다.2. 생성된 데이터 셋을 가지고 학습하기데이터 셋 경로를 아래와 같이 크롤링 후 저장된 파일 경로와 파일로 지정한다.해당 파일의 경로를 참고로 학습이 이루어진다.학습을 시작하기 전에 새롭게 학습된 데이터는 아래와 같이 별도의 폴더로 생성되도록 구현했다.학습을 시작기본 모델에 크롤링한 데이터만 학습시키는 것이기 때문에 학습 시간은 사양 낮은 노트북을 에 비해 그리 오래 걸리진 않는다. 약 7분 소요.3. 학습된 결과를 가지고 테스트학습된 결과를 가지..
챗봇 만들기 2탄 (질문과 응답을 개선) # 챗봇 만들기 2탄챗봇을 만들어보자, 질문과 응답을 개선해 보자.1. 데이터 셋데이터 셋을 바꿔서 전처리를 수행하고 질문과 응답을 구현했다.데이터 셋의 데이터는 아래의 링크에서 활용했다.https://github.com/songys/Chatbot_data GitHub - songys/Chatbot_data: Chatbot_data_for_KoreanChatbot_data_for_Korean. Contribute to songys/Chatbot_data development by creating an account on GitHub.github.com2. 코드파이썬 코드는 아래와 같다.이전에 생성한 코드에서 데이터 셋의 경로와 데이터 셋 전처리 부분만 바꾼 후 테스트 데이터 약 1000개를 별도로 저장 ..
ElasticSearch를 Repository Pattern을 활용하여 구성 (2) # 생성한 ElasticSearch Index에 실제 로그 데이터를 적재하는 작업1. 디자인 패턴ElasticSearch에 최적화된 Repository Pattern을 적용자세한 설명은 아래 url 참고https://medium.com/@pererikbergman/repository-design-pattern-e28c0f3e4a30 Repository Design PatternThe repository pattern is one of the more popular patterns at the moment. I for one like it, it follows the solid principles and done right…medium.com간단하게 말하면 Repository 패턴은 데이터 액세스 로직을 ..
ElasticSearch를 Repository Pattern을 활용하여 구성 (1) # ElasticSearch는 주로 언제 사용 될까?Elasticsearch는 분산형 검색 및 분석 엔진으로, 대량의 데이터를 실시간으로 검색하고 분석하는 데 사용된다. 주로 로그 분석, 텍스트 검색, 데이터 시각화, 애플리케이션 모니터링 등에 사용된다. 언제 사용할까? 로그 및 이벤트 데이터 분석: 대량의 로그 데이터를 실시간으로 수집하고 분석할 때. 텍스트 검색: 웹사이트나 애플리케이션에서 빠른 텍스트 검색 기능을 제공할 때. 데이터 시각화: Kibana와 함께 사용하여 데이터를 시각화하고 대시보드를 만들 때. 애플리케이션 모니터링: 시스템 성능 모니터링 및 알림 설정을 할 때. 어떻게 사용할까? Elasticsearch 설치 및 설정 Elasticsearch를 다운로드하고 설치한다. elastics..
ChatBot(챗봇) 만들어보기 # 챗봇을 만들어보자.skt/kogpt2-base-v2 라는 한국어 모델을 활용해서 데이터를 학습 시켜보고 챗 봇을 만들어보자. 음 일단 학습을 시키기엔 내 노트북이 사양이 좋지 않으니, 학습 데이터 양을 조절해서 진행을 해야한다.학습 데이터의 양은 약 700개 정도이다. 원래 학습 해야할 데이터 셋의 약 10%정도를 학습을 시켜서 챗봇을 만들어 보고자 한다. 700개 학습 시키는데도 30분정도가 걸린다... 1. 데이터 셋 준비일단 데이터 셋을 준비 해야 하는데, 인터넷에서 잠시 찾아보면 쉽게 찾을 수 있다.예를들면 캐글에서 챗봇 데이터를 찾는다면 아래와 같이 쉽게 찾을수 있다. 이외에도 데이터는 많다. 깃헙만 가봐도 많이 찾을수 있다.https://www.kaggle.com/code/pinooxd/g..
LLM 파인튜닝 해보기 # 파인튜닝을 해보자skt/kogpt2-base-v2 모델을 활용하여, 파인튜닝을 진행해 보기로 했다. 학습전 상태학습 전에 아래와 같이 몇가지 질문을 던져보면, 어뚱한 답변을 한다. 아주 간혹 그럴듯한 답변을 하지만, 음... 이상하다.AI: 로로드밸런서가 뭔지 알아????????????????????????????????????사용자: l4AI: l4ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml, 500ml,사용자: l4 l7AI: l4 l7Lv.1 lv.1 lv.1 lv.1 lv.1140 lv.1 lv.1 lv.1140 lv.1 lv.1 lv.1140 lv.1사용자:..
ollama를 활용한 llm 만들어보기 오픈소스 llm 리소스들이 많이 등장한다.대표적으로 ollama와 llama 시리즈일 것이다.오늘 밤에는 ollama를 활용한 llm을 로컬에서 간단하게 실행 시켜 보고자 한다. 1. ollama 다운로드일단 여기서는 ubuntu 22버전을 사용했다.다운로드 명령어는 아래와 같다.curl -fsSL https://ollama.com/install.sh | sh2. 실행 시킬 모델을 다운받기ollama의 모델을 여러개 존재한다. 그중 한개를 다운받는다.ollama pull llama3:8b3. 다운받은 모델을 실행 시키기ollama run llama3:8b4. 테스트 하기test@DESKTOP-BUANL37:~$ ollama run llama3:8b>>> 안녕안녕하세요! 👋>>> 너의 이름은 뭐니나의 이..
분산 트랜잭션 (2) 사이드카 패턴에 대해서 알아보고 이것저것 해보다가 문뜩 분산 트랜잭션에 대해서 궁금증이 생겼다.일단 트랜잭션이란 무엇인지 잠깐 정리하자면, 트랜잭션은 데이터베이스에서 하나의 논리적 작업 단위를 의미하며, 여러 개의 데이터베이스 연산을 하나의 작업으로 묶어 처리하는것을 의미한다. 트랜잭션의 주요 특징은 ACID 속성으로 요약된다.BEGIN TRANSACTION: 트랜잭션의 시작을 알린다. COMMIT: 트랜잭션을 성공적으로 완료하고, 모든 변경 사항을 데이터베이스에 영구적으로 반영을 수행 한다.ROLLBACK: 트랜잭션을 취소하고, 모든 변경 사항을 원래 상태로 되돌리는 작업을 수행한다. SAVEPOINT: 트랜잭션 내에서 특정 지점을 저장하여, 필요 시 해당 지점으로 롤백할 수 있게 한다. 1. 분산 환..