전체 글

싱싱한 국내산 자연어를 탐구합니다.
· Etc./Books
본인은 대학원에서 LLM 및 RAG를 연구중인 대학원생이다. 산업계에서는 RAG를 다양한 라이브러리와 함께 응용하는 engineering의 느낌이 강하겠지만, 평소 본인은 RAG를 research 레벨로 접한터라, RAG를 langchain 같은 라이브러리를 사용하여 구현하지는 못했다. (연구나 실험 단계에선 langchain을 사용하기보단, pytorch로 밑바닥부터 구현하기 때문이다.) 그러던 중 RAG 관련한 여러 유튜브 영상을 보다보니, RAG를 응용하여 서비스를 개발하는 것에도 관심을 갖게 되었고, 이 책을 접했다.  이 책은 langchain을 메인으로 사용하여 RAG 서비스를 개발하는 법을 소개하는 책이다. langchain 이외에도 간단한 AI 기반 웹 서비스 제작을 돕는 streamlit..
· Paper Review
(NAACL 2024) Adaptive-RAG: Learning to Adapt Retrieval-Augmented Large Language Models through Question Complexity arXiv : https://arxiv.org/abs/2403.14403 code : https://github.com/starsuzi/Adaptive-RAG 1. Introduction 논문이 다루는 task Open-Domain Question-Answering task with RAG (Retrieval-Augmented Generator) Single-hop QA: 한 문서만 필요한 질문에 답하는 것 Multi-hop QA: 질문과 함께 거대한 지식 말뭉치(corpus)가 주어졌을 때 답을 찾기..
P vs. NP vs. NP-hard vs. NP-complete P 다항시간 내에 풀 수 있는 문제 또는 다차시간 알고리즘을 찾은 문제 NP 다항시간 내에 답이 맞았는지 틀렸는지 확인해줄 수 있는 문제 (verification) 또는 다루기 힘들다고 증명되지 않았고, 다차시간 알고리즘도 찾지 못한 문제 NP-hard 아무리 답을 추측해도 그 답이 맞았는지 틀렸는지 확인이 어려운 문제 (예 : 최적화 문제) NP-complete NP-hard임과 동시에 NP인 문제, 즉 모든 NP 문제를 Polynomial-Time Reduction (다항식 시간 변환)시킨 문제가 다시 NP가 될 때, 그 문제를 'NP-complete 문제'라고 부른다. NP-hard NP-hard에 속하는 문제는? 모든 NP-comp..
· NLP
Recurrent Neural Networks (RNN) $$h_t = \tanh (W_{hh}h_{t-1} + W_{xh}x_{t})$$ Backpropagation Through Time (BPTT) 기존의 신경망 구조에서는 backpropagation 알고리즘을 이용한다. RNN에서는 이를 살짝 변형시킨 버전인 Backpropagation Through Time (BPTT) 을 사용하는데, 그 이유는 각 파라미터들이 네트워크의 매 시간 스텝마다 공유되기 때문이다. 즉, 각 시간 스텝의 출력단에서의 gradient는 현재 시간 스텝에서의 계산에만 의존하는 것이 아니라 이전 시간 스텝에도 의존한다. RNN 장단점 RNN 장점 어떤 길이의 입력이라도 처리할 수 있다. 긴 길이의 입력이 들어와도, 모델의 ..
참고하면 좋은 자료 : KL divergence - 공돌이의 수학정리노트 KL divergence - 공돌이의 수학정리노트 (Angelo's Math Notes) angeloyeo.github.io Entropy Entropy는 정보 이론에서 사용되는 개념 중 하나로, 어떤 확률 분포가 가지는 정보의 평균적인 양을 나타내는 값이다. 정보량이 많을수록 Entropy 값은 높아지며, 정보량이 적을수록 Entropy 값은 낮아진다. (엔트로피가 크다 = 무질서도가 크다 = 예측 불가능) $$H(X) = - \sum_{i=1}^{n} P(x_i) \log_{2} P(x_i)$$ 여기서 $P(x)$는 확률 분포를 나타낸다. Examples 엔트로피를 이해하기 위해 동전 던지기의 예를 고려할 수 있다. 공정한 동전..
· NLP
PPL (Perplexity) PPL은 언어 모델 (Language Model)을 평가하기 위한 평가 지표 중 하나로써, 언어 모델이 예측한 예측값에 대해 "얼마나 헷갈리는지에 대한 정도" 를 수치로 나타낸 것이라 이해할 수 있다. 예를 들어, PPL이 10이라면 "10만큼 헷갈리는 것" 이고, PPL이 3000이라면 "3000만큼 헷갈리는 것" 이다. 예시에서 추론할 수 있듯이, PPL은 낮을수록 언어 모델의 성능이 좋다는 것을 의미한다. Basic Notation 문장 $S$는 $N$개의 단어로 이루어짐 (문장 $S$를 이루고 있는 각각의 단어들은 $w_1, w_2, \cdots, w_N$) $P_{LM}(S) = P_{LM}(w_1, w_2, \cdots, w_N)$은 $LM$ (Language M..
oneonlee
One Only