완벽한 스미싱 분류 모델을 향해서 (2)
·
Data/AI
완벽한 스미싱 분류 모델을 향해서 (1)스미싱 분류 모델을 개발해야지! 라고 생각했던 처음의 포부와는 달리, 파인튜닝을 하는 편이 리소스나 시간 면에서 좋을 것 같다는 생각이 들었다. BERT 모델을 파인튜닝하는 것보다 HuggingFace에dropdew.tistory.com앞전에 얘기했던 것 처럼 정상 데이터의 종류가 너무 적었다는 판단이 들었다. [URL]이 들어있는 정상 문자 데이터를 모았다.구어체가 아닌 택배/금융/카드/보험/배달 등등의 정상 문자 데이터를 모았다.광고 문자도 어떻게 보면 스미싱은 아니니.. 넣어도 되는걸까? 싶었지만, 확실한 정상 문자를 넣어서 학습시키고자 뺐다.검색을 하다보니 기존 데이터에 없던 스미싱 문자 데이터도 발견해 함께 정리했다.운송장번호 → [INVOICE]송하인|보..
완벽한 스미싱 분류 모델을 향해서 (1)
·
Data/AI
스미싱 분류 모델을 개발해야지! 라고 생각했던 처음의 포부와는 달리, 파인튜닝을 하는 편이 리소스나 시간 면에서 좋을 것 같다는 생각이 들었다. BERT 모델을 직접 파인튜닝하는 것보다 HuggingFace에서 제공하는 라이브러리를 이용하면 더 쉽게 파인튜닝할 수 있다!허깅페이스는 다양한 트랜스포머 모델과 학습 스크립트를 제공하는 모듈로, 다양한 트랜스포머 모델을 손쉽게 이용할 수 있기 때문.트랜스포머(Transformer)란?CNN, RNN과 같이 인공지능 분야에서 많이 사용되는 모델 중 하나가 트랜스포머라고 할 수 있다. 트랜스포머 모델은 문장 속 단어들과 같은 순차 데이터 내의 관계를 한꺼번에 파악해서 문장의 맥락과 의미를 더 잘 이해할 수 있도록 학습하는 신경망이다. 예전에는 문장을 처리할 때 순..
[LLM] RAG와 Vector Database
·
Data/AI
Retrieval Augmented Generation(RAG)란?검색 증강 생성으로 대규모 언어 모델의 출력을 최적화하여 응답을 생성하기 전에 학습 데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 프로세스 즉, 내가 가져온 데이터를 제공할테니 이 정보를 아는 것처럼 "답변을 생성"하는 것 답변은 LLM이 생성하기 때문에 우리는 데이터를 잘 가져와서 LLM에 전달하면 된다. 그럼, 사용자의 질문과 관련있는 데이터인지 어떻게 파악할까?Vector판단을 하는 기준은 Vector를 활용한다. (Vector는 Raw 하나 짜리 행렬이라고 보면 된다.)Vector는 단어 또는 문장의 유사도를 파악해서 관련성을 측정하는 기술.Vector를 생성하는 방법Embedding 모델을 활용해서 vecto..
[NLP] 1. 텍스트 마이닝 기초
·
Data/AI
텍스트마이닝 패러다임의 변화BERT지금은 텍스트 분류 등의 작업에 딥러닝 기반의 BERT를 쓰는 것이 일반화됐다.BERT는 트랜스포머에 기반한 모형으로, 자세한 작동원리를 이해하기 매우 어려운 편인데도 최근 대부분의 작업에 사용된다.책 한권 정도의 분량에 대해서 문서를 분류해야할 때는 카운터 기반의 문서 표현이 BERT같은 최신모형 보다 낫다는 연구결과가 있다.카운터 기반의 문서 표현문서를 사용된 단어의 빈도로 표현하는 것이 과정에서 단어들이 텍스트에 나타난 순서에 대한 정보는 사라진다. 즉, 사람이 문서를 이해할 때 가장 중요하게 생각하는 문맥에 대한 정보는 사라지고, 대신 단어에 대한 통계만이 남게 된다. 그러나 텍스트 마이닝의 원래 목적, 텍스트 내용을 기반으로 어떤 사건을 예측하는 것은 이 정보의..
[LLM] Streamlit + Ollama를 통해 LLM 기반 챗봇 웹 앱 구현
·
Data/AI
Streamlit 패키지streamlit 패키지는 파이썬 패키지(라이브러리)로 오픈소스 웹 앱 프레임워크다.누구나 사용할 수 있고, 웹 대시보드를 만들어 시각화할 때 활용하기 좋다. Streamlit • A faster way to build and share data appsStreamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver interactive data apps – in only a few lines of code.streamlit.io 특히 챗봇 구현을 지원하는 여러 명령어를 제공하는데,st.chat_message(): 앱에 채팅 메시지 컨테이너를 삽입st.chat_input():..
[LLM] Ollama + gemma2로 간단한 챗봇 만들기
·
Data/AI
Ollama OllamaGet up and running with large language models.ollama.comOllama는 공개된 오픈소스 AI 모델을 편리하게 관리할 수 있는 도구로, 다양한 오픈소스 LLM을 쉽게 사용하고 실행할 수 있는 프레임워크라고 생각하면 된다. Ollama를 통해 언어 모델들을 쉽게 다운 받을 수 있고 로컬에서 실행 하는데 도움을 주는 프로그램! 홈페이지에서 다운받아서 설치하기만 하면 되어 정말 간편하다.그리고 라마 캐릭터가 귀여워요.귀여운 라마 그리고 실행하면 열심히 달리는 고양이 .. 🐈ollama run gemma2:9b로컬에 LLM을 설치하면 이렇게 쭈우욱 하얀색 게이지가 차오른다. LLM 모델 중 하나인 gemma2를 챗봇 형태로 사용하기 위해 터미..
[ML] 훈련세트와 테스트세트
·
Data/AI
지도학습과 비지도학습지도학습: 정답이 있는 데이터를 학습시켜 정답을 구분하는 것비지도학습: 정답이 없는 데이터를 학습시켜 데이터를 구분테스트 세트와 훈련 세트훈련에 사용한 데이터와 테스트 데이터는 달라야 한다.훈련 데이터 = 테스트 데이터일 경우 모델의 정확도가 100%로 평가될 수 있다.## 사이킷런의 KNeighborsClassifier 클래스 임포트from sklearn.neighbors import KNeighborsClassifier## 모델 객체 생성kn = KNeighborsClassifier()## 모델 훈련kn.fit(train_input, train_target)## 테스트세트로 score() 평가kn.score(train_input, train_target) cf) 사이킷런은 입력 데..