반응형 자연어처리(NLP)22 [LLM] LLM 어플리케이션을 위한 선택 : RAG vs Finetuning LLM 어플리케이션을 구축할 때 RAG(Retrieval-Augmented Generation)와 fine-tuning 중에 어떤것을 선택하는것이 효과적일까요?아래 Medium 글을 참고하여 작성하였습니다.https://medium.com/data-science/rag-vs-finetuning-which-is-the-best-tool-to-boost-your-llm-application-94654b1eaba7 RAG vs Finetuning — Which Is the Best Tool to Boost Your LLM Application?The definitive guide for choosing the right method for your use casemedium.com 1. RAG와 Fine-tu.. 2025. 3. 30. 생성형 텍스트 평가 지표 ROUGE, BLEU, BLEURT 1. ROUGE와 BLEU의 차이?1) BLEU주로 기계번역의 품질을 평가하기 위해 개발됨모델이 생성한 후보문의 n-gram들이 참조문에 얼마나 포함되어 있는지 측정합니다.기준점은 후보문(모델 생성 텍스트)이고, 그 중에서 참조문(정답)에 있는 것들의 비율을 계산합니다.즉, 후보문에 있는 단어/구절 중 몇 개가 참조문에도 있는지 측정합니다. 정밀도(Precision) 기반: 생성된 문장이 참조 문장과 얼마나 유사한지 측정 짧은 출력에 부당하게 높은 점수가 부여되는 것을 방지하기 위해 간결성 패널티(Brevity Penalty)를 적용 2) ROUGE주로 요약 태스크의 품질을 평가하기위해 기발됨참조문의 n-gram들이 모델이 생성한 후보문에 얼마나 포함되어 있는지 측정합니다.기준점은 참조문(정답)이고, .. 2025. 3. 20. LLM fine-tuning 학습 데이터 전략 최적화 LLM 파인튜닝을 위한 학습 데이터 전략은 "Curriculum Learning", "Data Selection Strategies", "Data Curation", "Active Learning", "Data Ordering" 분야등이 있다. 이러한 연구들은 모델의 학습 효율성과 성능을 향상시키기 위해 데이터를 어떻게 구성하고 제공할지에 초점을 맞춘다.1. Curriculum Learning - 사람이 학습하는 방식처럼 쉬운 예제에서 어려운 예제로 점진적으로 학습하는 방법론난이도 기반 데이터 정렬: 쉬운 예제부터 어려운 예제로 순차적 학습모델이 초기에 기본 패턴을 파악한 후 점차 복잡한 패턴으로 확장로컬 미니마에 빠질 가능성 감소 및 더 효율적인 학습 촉진인간 학습 과정에서 쉬운 개념을 먼저 배우고 점.. 2025. 2. 25. [CIT/Continual Instruction Tuning] Task-Incremental Tuning① (PAPT, Continual-T0, ConTinTin, SLM) - 참고 논문 : Continual Learning for Large Language Models: A survey [paper]Task-Incremental Tuning1. Task-incremental CIT란?: task-incremental CIT는 task-specific한 지시(instruction)을 이어서 파인튜닝하여 새로운 task에 대한 능력을 획득하는 것을 목표로 함.- 하지만, LLM을 연속적으로 파인튜닝하는것은 이전 task에서 배운 지식과 문제해결능력을 망각하는 catastrophic forgetting을 야기할수있음. [Kotha et al.,,2023] Understanding Catastrophic Forgetting in Language Models via Implicit.. 2025. 2. 24. [Continual Learning] Continual Instruction Tuning (CIT) - 참고 논문 : Continual Learning for Large Language Models: A surveyhttps://arxiv.org/pdf/2402.01364 Continual Inistruction Tuning (CIT)1. Task-incremental CIT새로운 유형의 작업들을 순차적으로 학습예를 들어, 처음에는 번역만 할 수 있었다면, 점차 요약, 감성분석 등 새로운 작업들을 수행할 수 있게 됨주요 과제: 새로운 작업을 학습하면서 이전에 배운 작업 능력을 잃지 않는 것(catastrophic forgetting 방지)🧭 예를 들어 요리사가 처음에는 칼질만 할 줄 알다가 → 볶기 → 찌기 → 굽기 등 다양한 조리 기술을 차례로 배우는 것각각의 기술은 서로 다른 성격을 가지고 있지.. 2025. 2. 24. [LLM][기초] LLM의 Pre-Training Objective (Full, Prefix, Masked, Unified) LLM Pre-Training ObjectiveLLM의 Pre-training objective는 크게 아래 4가지 유형으로 나눌 수 있습니다. 1. Full Language Modeling이미 주어진 token을 가지고 미래의 token들을 예측하도록 하는 auto-regressive langue model objective입니다. 2. Prefix Language Modelingprefix는 random하게 선택되고, 남아있는 target token 만으로 loss를 계산합니다. 3. Masked Language Modeling토큰 또는 연속 토큰들이 random하게 마스킹 처리 되었을 때, 모델은 과거와 미래의 컨텍스트를 가지고 마스킹된 토큰을 예측하도록 학습됩니다. 4. Unified Langua.. 2024. 9. 11. [LLM][기초] LLM의 Layer Normalization (PreNorm, DeepNorm) Layer Normalization이란?Layer Normalization은 트랜스포머에서 각 layer의 입력값을 정규화함으로써 학습 중인 파라미터가 빠르고 안정적으로 수렴하도록 해주는 방법입니다. LLM에서는 기본적인 Layer Norm과 RMSNorm, 외에 pre-layer normalization을 멀티 헤드 어텐션 전에 적용합니다. 그 외에 LLM에서 사용하는 normalization은 PreNorm과 DeepNorm이 있습니다. 1) PreNorm : LLM에서 학습의 안정성을 높이는 방법으로 알려짐2) DeepNorm : pre-norm에서 gradient가 증가하는 이슈를 수정한 방법론 참고https://arxiv.org/pdf/2307.06435 2024. 9. 11. [LLM][기초] LLM의 Attention (self, cross, sparse flash) 1. Attention의 역할?Attention은 중요도에 따라서 입력된 토큰에 가중치를 부여함으로써, 모델이 연관이 있는 토큰을 더 강조할 수 있도록 합니다. 트랜스포머의 Attention은 입력 시퀀스의 query, key, value를 계산한 후, query와 key를 곱해서 attention score를 얻습니다. attention score는 value를 에 가중치를 부여하는데 사용됩니다. 2. Attention 유형1) Self Attention : encoder 혹은 decoder의 같은 block으로부터 query, key, value를 사용하여 attention을 계산2) Cross Attention : encoder-decoder 아키텍처에서 사용되는 방법으로, encoder가 out.. 2024. 9. 11. [LLM][기초] LLM의 Positional Encoding (absolute, relative, learned) 1. Positional Encoding이 필요한 이유?기본적으로 Transformer 모델은(1) 입력 시퀀스를 병렬적이면서 독립적으로 처리하고(2) 어텐션 모듈은 위치 정보를 잡아낼 수 없기 때문에단어의 순서에 따라서 달라지는 의미를 구분할 수 없습니다.즉, 아래 두 입력 시퀀스의 차이를 구분할 수 없습니다."The dog chased the pig""The pig chased the dog"따라서, 위치 정보를 추가해주는 Positional Encoding 작업이 필요합니다.즉, 아래 그림에서dog에 해당하는 단어 임베딩에2번째 위치를 의미하는 위치 임베딩을 넣어주는 작업을 진행합니다.이때, 위치 정보를 어떤 식으로 만들어내느냐에 따라 아래 2가지 유형으로 구분됩니다.2. Positional Enc.. 2024. 9. 11. [INTRO] 프롬프트 러닝(Prompt Learning) 이란? "Prompt Learning" prompt learning이란 자연어처리 분야에서 최근 새롭게 등장한 분야로, ChatGPT의 등장과 함께 새로운 트렌드로 떠오르고 있습니다. 4월 2일자 기사에 따르면, 글로벌 교육 플랫폼 '유데미'에선 프롬프트 강의만 7667개에 달하고, 한글자막을 제공하는 콘텐츠에는 1000명씩 수강자가 이어지고 있다고 합니다. 그 외에도 프롬프트 전문 기업과 프롬프트 엔지니어라는 직종까지 생겨나고 있는데요. ✔ 'prompt'의 의미 프롬프트(prompt)라는 것은 언어모델에 전달하는 질문이나 요청을 사용자가 응답을 유도(prompt)한다는 의미에서 프롬프트(prompt)라고 합니다. 자연어 질문, 코드 스니펫, 명령어 등을 프롬프트로 사용할 수 있는데, 언어모델이 정확하게 태스.. 2023. 4. 24. [논문리뷰] Fine-grained Post-training for Improving Retrieval-based Dialogue Systems. NAACL 2021 Fine-grained Post-training for Improving Retrieval-based Dialogue Systems[저자] Janghoon Han(Department of Computer Science and Engineering- Sogang University, LG AI Research), Taesuk Hong, Byoungjae Kim, Youngjoong Ko, and Jungyun Seo[게재] NAACL, 2021 June [pdf][인용수] 26회인용[요약] 대화 응답 선택 (Conversational Response Selection) 태스크의 대표 3가지 데이터셋(Ubuntu, Duoban, E-commerce)에서 아래 2가지를 적용한 'fine-grained post.. 2023. 1. 18. [Faiss][Error] ERROR:in method 'IndexFlatCodes_add', argument 3 of type 'float const *' faiss index에 document embedding을 add를 하는 과정에서 아래와 같은 에러 발생 ERROR:in method 'IndexFlatCodes\_add', argument 3 of type 'float const \*' 구글링을 하니, faiss index 에 add 하는 embedding값은 float 64가 아니라 float32여야한다고 한다. 아래와 같이 변경하여 에러 해결 확인 embeddings = embeddings.astype(np.float32) 2023. 1. 11. [NLP][RS] Response Selection 이란? (Retrieval-based dialogue system) Response Selection 이란? '대화' 라는 것을 무엇으로 정의할 것인가? 라고 했을 때 그 답변에 따라 여러가지 패러다임이 존재하지만, response selection는 현재 발화(utterance)에 대한 다음 발화(response)를 선택한다는 점에 초점을 두고 모델링을 한다고 할 수 있습니다. 논문에 나와있는 설명을 더하자면, "검색 기반 대화 시스템(Retrieval-based dialogue system)" 에서는 지난 대화 기록(history)이 주어졌을 때, 발화자의 발화(utterance)를 입력하여 가장 적당한 답변을 선택하는 대화 작업을 수행합니다. 이것이 "애드-혹 검색(ad-hoc retrieval)" 태스크로 분류된다면, "각각의 발화를 query로 취급하여 이 qu.. 2022. 12. 28. [Faiss][Erorr] name 'GpuResourcesVector' is not defined name 'GpuResourcesVector' is not defined 특정 서버에서 이전에는 발생하지 않던 에러가 갑자리 발생 사용하는 2개의 가상환경 모두 동시에 발생 에러 로그가 찍힌 시점은, 위와 같이 faiss index를 gpu로 올릴 때 faiss_index = faiss.index_cpu_to_all_gpus(faiss_index) 그리고 faiss.get_num_gpus() 를 찍어보면 0이 나온다. 서버의 GPU의 문제일것이라 생각하여 상태를 체크했지만, 아무 문제 없음 - cuda.is\_available() : True - self.device : cuda:0 이것저것 시도해도 안되서 faiss 라이브러리를 재설치하는데 conda faiss 라이브러리 관련 경로가 오염되었다는 경고.. 2022. 12. 12. [논문리뷰] Pre-training Methods Designed for IR 이 글은 "사전학습 언어모델을 이용한 정보 검색" 분야의 최신 이슈 및 연구 동향을 정리한 Suvey Paper인 "Pre-training Methods in Information Retrieval"의 내용 중 Section 6(Pre-training Methods Designed for IR) 을 정리한 글입니다. 제목 Pre-training Methods in Information Retrieval 저자 Yixing Fan, Xiaohui Xie, Yinqiong Cai, Jia Chen, Xinyu Ma, Xiangsheng Li, Ruqing Zhang and Jiafeng Guo 게재 일자 18 Aug 2022 인용 수 10회 인용 (2022.10.26 기준) 원본 https://arxiv.or.. 2022. 10. 26. 이전 1 2 다음 more 반응형