목록분류 전체보기 (95)
Ssul's Blog

0. RAG란? Retrieval-Augmented Generation의 약자로 한글로 표현하면, 검색증강생성? 뭔가 알듯 모르는 단어 느낌? 간단하게 말하면, ai가 응답을 하기 전에, 질문받은 내용과 유사한 자료(텍스트 또는 문장) 찾아서, 찾은 문서와 질문을 함께 AI에게 보내는 것이다. gpt한테 최철수씨 나이를 물으면 다음과 같은 대답을 한다. 하지만, 최철수씨에 대한 정보를 알려주고, 나이를 물으면 잘 알려준다. "최철수는 30살이고, 서울에 살아"가 바로 RAG를 통해서 가져오는 정보이며, 이 정보를 질문과 함께 보내는 것이 RAG의 간단한 맥락으로 이해하면 되겠다. 1. 어떻게 질문과 유사한 정보(자료)를 가져올까?(임베딩) 기존의 gpt는 프롬프트 튜닝만 해서 사용하는 구조이다. 적절한 ..
2024. 02월 버전으로 작업해 보자 #0. openai 셋팅 pip install openai pip install langchain pip install python-dotenv #.env파일 환경변수 가져올려고 - 주요 라이브러리 설치합니다 # 0. openai 셋팅 import os from dotenv import load_dotenv import openai load_dotenv() openai.api_key = os.getenv("OPENAI_API_KEY") - openai의 api키를 설정합니다. - .env에 넣고, 불러오기 #1. Langchain으로 시스템메세지 셋팅하고, 질문하고 응답받기 from langchain.chat_models import ChatOpenAI from l..

이사를 마치고, 조금 넓어진 집 덕분에... 취미생활을 복귀할 수 있게 되었다. 테니스 벽치기와 커피. 요 며칠, 홈카페 관련 유튜브 영상들을 주구장창 봤다. 그리고, 에스프레소 머신을 사고 싶은 마음이 넘쳐나는 시점... 마음에 드는 에스프레소 머신을 볼때마다.. 계속 가격이 올라갔다. 이러다가, 커피숍 차릴판 ;;;; 우선 겸손하게(?) 핸드드립부터 배우고 넘어가는 것으로, 혼자서 합의 완료. 연휴기간동안, 타임모어 저울과 펠로우 주전자를 주문완료. 그리고, 선반에 쌓여있던 하리오 드리퍼와 porlex핸드밀을 꺼내어 정비하였다. 우선 저울과 주전자가 오기전에 동네 카페에서 로스팅된 원두를 구매하여 간만에 핸드드립. 그전에는 아무생각없이 막 갈아서 내렸다면, 지난 며칠간 유튜브로 학습한 핸드드립 정보에..

0. 챗봇을 쉽게 만들수 있는 세상 - 그동안은 NLP연구와 알고리즘을 통해서, 챗봇이 동작하였다. - 하지만, GPT가 나오면서, 그동안 챗봇기술은 모두 비슷한 출발 선상에 서게 되었음 - 정말로 비슷한 출발 선상에 서게 되었을까? 그렇다면 나만의 상담챗봇, 그림그려주는 챗봇을 제작해보자! - 카카오챗봇 + openai + lambda(aws서버)를 통해서 24시간 동작하는 챗봇 만들기 1. 카카오채널 셋팅 - business.kakao.com 방문 - 오른쪽 상단 내 비즈니스 클릭 - 왼쪽 상단 채널 클릭 - 새 채널 만들기 클릭 - 작성해서 확인 클릭(채널 생성 완료) - 생성한 채널로 들어가서 - 오른쪽 하단에 채널공개, 검색허용 on으로 셋팅 - 왼쪽상단 채널 클릭 -> 서랍형태로 챗봇나오면 클..

1. 스팸문자 여부를 판단하는 모델 만들기 지난 글들을 통해서, - 도메인특화 챗봇 만들기(https://issul.tistory.com/417) - 허깅페이스 사용법(https://issul.tistory.com/429) PLM모델들을 어떻게 파인튜닝하고, 활용할수 있는지에 대한 이론적인 개념을 알았다. 실제 이 개념을 어떤 프로젝트에 활용할 수 있을까? 매일 5개 이상 오는 스팸문자를 보면서, AI가 스팸여부를 판단하고 걸러주면 좋겠다는 생각을 했다. 키워드 기반의 기계적인 필터링이 아닌, 인간인 내가 봤을때 직관적으로 스팸이다 아니다를 판단하는 것처럼... 직관성이 있는 모델. 이런 것은 알고리즘보다는 LLM이 잘 할수 있기에 딱 인것 같다.(물론 뒤에서 언급하겠지만, 배보다 배꼽이 더 커지기 때문..

0. 들어가며, 앞전 글(https://issul.tistory.com/430)에서 function_call로 반말하기 챗봇을 작성하였는데, 여전히 헤깔리는 부분이 있어서, 내 머리속에서도 정리할겸 제대로 어떻게 돌아가는지 이해해보고자 한다. 내가 원하는 상황은 이런 것이다. ChatGPT가 평소 대화하는 것처럼 대화하다가, - 오늘 서울 날씨를 물어보면, 정확하게 대답을 해주고, - 특정 대답결과를 파일로 저장하기도 해주는 것이다. 그러면 평소처럼 대화도 가능해야 하고, 특정 상황이 되었을때는 function_call이 호출되는 구조이다. 그럼 차근차근 어떻게 function_call이 작동하는지 알아보자. 순서1. 일반대화를 하다가, 특정상황이 되었을때 function_call작동 이게 기존의 개발과..

#0. 프론트 글쓰기, 댓글 작업 - 백앤드에서 익숙한 CRUD - 프론트만 오면 왜 이렇게 헤깔리는지... 이번에 정리해보자!!! #1. api 정리 - 글쓰기/글목록: api/community/cp/ + post, get - 글상세/수정: api/community/cp/cp_id/ + post, get - 댓글쓰기/댓글목록: api/community/cp/cp_id/cpc/ + post, get - 댓글상세/수정: api/community/cp/cp_id/cpc/cpc_id #2. 글쓰기/글목록 작업 2-1. src/app/(route)/counseling/page.tsx - nextjs특성상 '도메인주소/counseling'으로 src/app/(route)/counseling/layout.tsx 접..

0. signal은 언제 사용하나? 예전에 구독서비스를 개발할때, 카드결제가 정기적으로 이뤄지는 과정을 개발할때 사용했다. 매번 관리자가 카드결제를 실행할 수 없기에... 카드등록 후, 첫 구독 결제를 실행해서 구독객체가 생성되면, signal을 활용해서 자동으로 payment 객체생성과 다음 결제를 생성해 놓는 개념이다. 이번에는 질문글에 자동으로 AI가 답변을 남기는 기능을 구현하기 위해서 signal을 활용해 보고자 한다. 1. 평소처럼 models.py생성 class CounselingPost(models.Model): cp_index = models.AutoField(primary_key=True) cp_u_index = models.IntegerField() cp_content = models..

0. 최신 추천시스템은? - 지금까지 컨텐츠기반 추천, 협업필터링 추천, 딥러닝 등 다양한 추천 방법을 알아봤다. - 협업필터링에는 메모리기반과 모델 기반으로 나눠지고, - 메모리기반은 유저기반의 협업필터링, 아이템기반의 협업필터링으로 구분된다. - 또한 모델기반의 협업필터링은 MF, FM 등이 있었다. - 최근에는 추천에도 많은 딥러닝 기술들이 들어왔고, 가장 기본으로는 데이터를 임베딩한후 신경망에 단순히 넣는 Neural CF가 있다. - Wide and Deep은 구글 플레이스토어 추천 알고리즘으로 사용되어서 유명했으며, - 기존의 FM과 딥러닝이 합쳐저서 구현된 DeepFM - 오토인코더를 활용한 추천시스템도 있으며, 최근에 SOTA를 찍었다는 Graph기반의 추천시스템도 있다. 1. 최신 딥러닝..

0. 딥러닝을 어떻게 추천시스템에? - 딥러닝을 통해서, 이미지를 classification하고, - 문장을 입력해서 감성을 분석하는 등 - 이미 딥러닝을 통해서 다양한 것이 된다는 것을 확인했다. - 그렇다면 추천시스템도 가능하지 않을까? 당연히 가능하다. 아이디어는 넣을수 있는 것은 모두(?) 신경망에 넣고, 아웃풋으로 rating을 주는 모델을 학습. - 기존의 머신러닝이 feature extraction(engineering)과 classification으로 구분되었다면, 딥러닝은 신경망에 넣으면 알아서 feature extraction+classification 진행된다. 그 사례를 이번 딥러닝 추천에서도 잘 보여줄 것이다. 1. 딥러닝 추천시스템 구조 - 잘 알려져 있는 무비렌즈 데이터를 사용..