728x90

AI-자연어처리 13

[Langchain] 랭체인으로 RAG 간단하게 구현하기 / RAG pipeline

langchain 라이브러리 이용해서 RAG 구현하기 langchain + RAG 결합한 가장 기본적인 구조순서: 검색할 데이터 로드 -> 텍스트 분할 -> 인덱싱(임베딩) -> 검색 -> 생성 1. 데이터 로드: 사용할 데이터 불러오기 - loader객체 호출해 load 메소드로 데이터 로딩# Data Loader - 웹페이지 데이터 가져오기from langchain_community.document_loaders import WebBaseLoader# 위키피디아 정책과 지침url = 'https://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%A0%95%EC%B1%85%EA%B3%BC_%EC%A7%80%EC%B9%A8'loader =..

AI-자연어처리 2024.09.05

[Langchain] 랭체인이란 & 파이썬 설치하기

Langchain에 대해서 알아보자배경LLM은 강력한 도구이지만, LLM 기반 애플리케이션을 구축하려면 고려해야 할 요소들이 너무 많음.LLM은 상태를 저장하지 않으므로 이전 대화내용(context)을 저장하지 못함 -> 이전에 사용한 context를 기억할 수 없으며, 해당 '기억'은 개발자의 몫.또다른 문제: LLM에 대한 일률적 규칙이 없음: 감정 분석, 분류, 질문 답변과 요약 등 서로 다른 시나리오에 특화된 다양한 모델을 사용해야 할 수도 있음. 여러 LLM을 처리하는 작업은 복잡함.+ Langchain의 등장langchain은 언어 모델과 여러 기능을 쉽게 연결할 수 있게 해주는 프레임워크 => LLM 어플리케이션 개발을 쉽고 빠르게 구축/배포할 수 있게 설계됨.. 랭체인의 주요 요소는 모듈식..

AI-자연어처리 2024.09.05

[NLP] Retrieval Augmented Generation(RAG)란 / RAG와 LLM

RAG(Retrieval Augmented Generation)의 개념데이터를 사전학습한 대규모 언어모델(LLM) 한계 극복 위해 제안된 자연어처리 기술.생성형 LLM의 정확성/신뢰성 문제 해결을 위해 등장한 기술 중 하나. LLM의 여러 단점 중 '사실관계 오류 가능성', '맥락 이해의 한계'를 개선하는 데 초점을 맞춘 방법. LLM + 외부 지식 베이스를 연결하여 모델의 생성 능력 & 사실관계 파악 능력을 upgrade할 수 있으며, 사실 기반 답변 제공 및, 모델의 출력 결과에 대한 증거를 제시할 수 있음.  '지식 검색'과 '언어 생성'을 결합한 프레임워크로, 기본 아이디어는 질문에 답하기 위해 필요한 지식을 외부 DB에서 검색해 활용하는 것. 모델이 학습 데이터에 포함되지 않은 외부 데이터를 실..

AI-자연어처리 2024.09.05

[HuggingFace Tutorial/Ch6] Tokenizers 라이브러리 2

QA pipeline 구현해보기QA pipeline - question & context를 순서대로 배치시켜 쌍(pair)로 토큰화함 - 해당 logit을 확률로 변환하기 위해 softmax를 적용해야 하지만, 그 전에 context 아닌 token index를 masking해야 함- 입력: [CLS] question [SEP] context [SEP] 이므로, 질문 & SEP을  masking해야 함.- 그러나 일부 모델에서는 컨텍스트에 답이 없음을 나타내기 위해 사용할수도 있으므로 [CLS] 토큰은 마스킹하지 않고 그대로 유지- 나중에 softmax를 적용할 것이기 때문에 마스킹(masking)하려는 로짓을 큰 음수로 변경(-10000 사용) start / end prob의 argmax 취할 수 있으..

AI-자연어처리 2024.09.04

[HuggingFace Tutorial/Ch7] 1. Token Classification (NER) 실습

주요 NLP 태스크들토큰 분류 (Token Classification)마스킹된 언어 모델링 (Masked Language Modeling)요약 (Summarization)번역 (Translation)인과적 언어 모델링 사전학습 (Causal Language Modeling Pretraining like GPT-2)질의응답 (Question Answering)다뤄보기 1. 토큰 분류(token classification)- "문장의 각 토큰에 레이블을 지정"하는 것으로 정형화될 수 있는 모든 문제   Named entity recognition (NER): 문장에서 개체명(혹은 엔터티, 예: 사람, 위치 또는 조직) 찾기 Part-of-speech tagging (POS): 문장의 각 단어에 대한 특정 품..

AI-자연어처리 2024.09.03

[HuggingFace Tutorial/Ch6] Tokenizers 라이브러리 1

보통 미세 조정 과정에서 사전 학습된 모델과 동일한 토크나이저를 사용모델을 처음부터 학습하고 싶을 때?다른 도메인이나 언어의 말뭉치로 사전 학습된 토크나이저를 사용하는 것은 일반적으로 차선책(suboptimal).  corpus에서 새로운 토크나이저를 학습하는 방법과 이를 언어 모델을 사전 학습하는데 사용하는 방법 있음.transformers 라이브러리에서 fast tokenizer 제공하는 Tokenizers 라이브러리 확인 기존 토크나이저에서 새로운 토크나이저 학습하기사전 언어모델에 적응된 새로운 tokenizer 만들고 싶을 경우: 모델 학습처럼 기존 토크나이저에 corpus 학습 시킬 수 있음= 대부분의 transformer model은 subword tokenization 알고리즘을 이용하는데,..

AI-자연어처리 2024.09.03

[HuggingFace Tutorial/Ch5] Datasets 라이브러리 다루기 2

Datasets과 DataFrames 간의 상호 변환Dataset.set_format() 함수를 통해 데이터의 출력 형식 변경기본 데이터 포맷 (Apache Arrow)에는 영향X - 내부적으로 Dataset.set_format()은 __getitem__() 메소드 반환 형식을 변경함=> pd dataset에서 train_df와 같은 새 객체를 생성할 때, 전체 데이터셋을 slicing해야함!검증 집합(Validation set) 생성하기- 검증 집합: 평가 집합에서 떼어오기- 검증 집합에서 모델 성능에 만족하면, 평가 집합에서 최종적인 온전성 검사(sanity check)를 수행할 수 있기 때문.Datasets는 scikit-learn의 Dataset.train_test_split() 함수를 제공함 -..

AI-자연어처리 2024.09.03

[LlamaIndex] 튜토리얼

## LlamaIndex 작업: LLM ~ 데이터 연결 인터페이스 제공하는 파이썬 라이브러리- index란: LLM 이용 데이터 검색 & 조직하는 구조 의미.  - 목록 색인  - 트리 인덱스  - 벡터 스토어 인덱스  - 키워드 인덱스데이터 검색 및 정보 추출 위한 데이터 인덱싱 활용 / 데이터 소스 내용 저장 및 정보 탐색.데이터 커넥터(Data connectors): LlamaIndex는 API, PDF, 문서, SQL 데이터베이스를 포함한 다양한 데이터 소스에 연결할 수 있습니다.프롬프트 제한(Prompt limitations): LlamaIndex는 Davinci 모델의 토큰 수 제한과 같은 프롬프트 제한을 처리할 수 있습니다. 이렇게 하면 컨텍스트가 큰 경우에도 LLM이 정확한 결과를 생성할 ..

AI-자연어처리 2024.05.31

[Langchain] 써보기

대규모 언어 모델을 활용한 혁신적인 프레임워크 대규모 언어 모델(LLM)을 활용하여 애플리케이션과 파이프라인을 신속하게 구축할 수 있는 플랫폼의 필요성  - 개발자들이 챗봇, 질의응답 시스템, 자동 요약 등 다양한 LLM 애플리케이션을 쉽게 개발할 수 있도록 지원하는 프레임워크 [ Langchain framework 구성 ] LLM 애플리케이션 개발에 도움이 되는 여러 구성 요소로 이루어져 있습니다.랭체인 라이브러리(LangChain Libraries): 파이썬과 자바스크립트 라이브러리를 포함하며, 다양한 컴포넌트의 인터페이스와 통합, 이 컴포넌트들을 체인과 에이전트로 결합할 수 있는 기본 런타임, 그리고 체인과 에이전트의 사용 가능한 구현이 가능합니다.랭체인 템플릿(LangChain Templates)..

AI-자연어처리 2024.05.17

[Huggingface Tutorial/Ch5] Dataset Library로 huggingface에 데이터셋 다루기 1

- 고급 파인튜닝 위해서, 내 데이터를 쓰기 위해서 꼭 알아야하는 dataset library 다루기https://wikidocs.net/166816 1. 만일 자신의 데이터셋이 허브에 없다면?우리는 이제 [Hugging Face Hub](https://huggingface.co/datasets)를 사용하여 데이터셋을 다운로드하는 방법을 알고 있지만, 일반적으로는 노트…wikidocs.net Datasets library가 지원하는 loading script 로컬에서 데이터셋 로딩하기예제 데이터: SQuAD-it datasetgithub에서 다운받아주기!wget https://github.com/crux82/squad-it/raw/master/SQuAD_it-train.json.gz!wget https:..

AI-자연어처리 2024.03.29