Internship_LLM
-
Langchain vs Llama-indexInternship_LLM 2024. 2. 6. 17:20
지금까지 Langchain과 Llama-index에 대해서 간단히 알아보았는데, 그렇다면 두 프레임워크를 적절히 비교해보려고 한다. 랭체인에서 쿼리 부분이 발전된 것이 라마인덱스인데, 발전은 되었지만 랭체인의 범용성이 아직은 더 우수하다고 본다. 랭체인과 라마인덱스의 비교를 통해 프레임워크를 적절하게 선택해보자. ※ Langchain vs Llama-index - 랭체인과 라마인덱스 모두 언어 모델(GPT) 등의 API를 이용해서 다양한 모델들을 쉽게 사용하고 통합할 수 있지만, 랭체인은 ChatOpenAI() 라이브러리를 사용하고, 라마인덱스는 os에서 API key를 직접 받아온다. Langchain from langchain.chat_models import ChatOpenAI llm = ChatO..
-
LLM 기법(3) - Llama-indexInternship_LLM 2024. 2. 6. 16:01
지난 시간에는 RAG를 구현할 수 있는 방법 중 Langchain에 대해서 포스팅을 진행해보았는데, 오늘은 Llama-index를 진행해보려고 한다. ※ Llama-index - 라마인덱스는 데이터를 수집, 구조화 및 엑세스 하는데에 초점을 맞추고 있는 프레임워크이다. - 인덱스 쿼리에 최적화되어 있어, 데이터를 수집하고 벡터화시키고 쉽게 쿼리까지 진행시킬 수 있다. - 데이터 쿼리와 정보 합성에 중점을 두어, 복잡한 메모리 관리가 필요한 경우에 적합하다. - 명확한 프로젝트 요구사항이 있는 경우에 적합하다. - 쿼리 엔진이 작동하게 되면 벡터화된 데이터에서 가장 관련성이 높은 정보와 비교하고 LLM에 context로 작용시킬 수 있어서 외부에서 데이터를 가지고 오고, 그 데이터를 이용해서 학습시키지 않..
-
LLM 기법(2) - LangchainInternship_LLM 2024. 2. 5. 15:45
지난 포스팅에서 소개했던 RAG 기법을 사용하기 위한 프레임워크를 소개하고자 한다. ※ LangChain - LangChain은 언어 모델을 이용한 개발을 촉진하고 간소화하는 목적으로 만들어진 프레임워크이다. - 언어 모델과 상호작용하는 애플리케이션을 빠르고 쉽게 구축할 수 있도록 설계되었다. - 주요 목적 : 언어 모델을 활용하여 다양한 도메인과 상황에서의 문제를 해결할 수 있도록 지원하는 것. 주요 기능 1. 언어 모델 통합 : 여러 언어 모델을 쉽게 통합하고 사용할 수 있도록 해서 다양한 소스의 언어모델을 쉽게 실험하고 최적의 결과를 얻을 수 있다. 2. toolchain & 유틸리티 : 텍스트 생성, 요약, 질문 답변 등과 같은 언어 모델을 활용한 작업 도구와 유틸리티를 제공한다. 3. 확장성 :..
-
LLM 기법 (1)Internship_LLM 2024. 2. 1. 17:47
※ PEFT - Parameter Efficient Fine-Tuning의 줄임말이다. - 모델이 점점 커지면서 단일 GPU로 모델 전체를 파인튜닝하는 것이 불가능해져가고 있다. 파인튜닝된 모델을 저장하고 사용하는 것도 굉장한 비용이 드는 일이다. 이러한 문제들을 해결하기 위한 방식으로 PEFT가 등장하게 되었다. - 대부분의 파라미터는 유지하면서 일부 파라미터만을 효율적으로 파인튜닝함으로써 저장공간과 계산 시간을 줄이는 기법 - 적은 데이터 체제나 도메인 밖의 데이터를 일반화할 때 더욱 좋은 성능을 보여준다. - 전체 파인튜닝에서 만들어지는 큰 크기의 체크포인트 파일과 달리 작은 체크포인트 파일을 얻을 수 있어 저장 공간 관리에도 도움이 된다. PEFT를 통해 학습된 적은 양의 가중치는 pre-trai..
-
LLaMA 논문 리뷰Internship_LLM 2024. 1. 31. 16:09
오늘은 LLaMA 논문을 리뷰해보려고 한다. Instruction tuning에 대해서 정리를 하면서 Instruction tuning을 사용한 모델에 대해서 알고 싶기도 했으며, parameter를 정리하는 과정에서 openAI GPT와 같이 hyperparameter를 공개하지 않는 모델들만 보다보니 오픈 소스화 된 LLaMA에 대해서 알고 싶기도 했다. 때문에, LLaMA의 가장 시초가 된 2023년 2월 세상에 등장하게 된 LLaMA : Open and Efficent Foundation Language Models 논문을 리뷰해보려고 한다. [2302.13971] LLaMA: Open and Efficient Foundation Language Models (arxiv.org) LLaMA: Op..
-
LLM ParametersInternship_LLM 2024. 1. 26. 12:11
LLM에서 hallucination을 제거하는 요소이기도 하며, Inference 시에 자주 사용되는 Hyper-Parameters 들을 정리해보려고 한다. ※ Temperature - 언어 모델 출력의 무작위성을 제어하는 하이퍼파라미터이다. - 높을 수록 예측하기 어렵고, 창의적인 결과가 생성되며 모델의 출력에 대한 "신뢰도"가 낮아지게 된다. - 낮을 수록 결정적이고 보수적인 결과가 생성되므로 예측가능한 출력이 생성된다. 예를 들어, 0.5로 temperature를 조정하면, 1.0으로 temperature를 설정할 때보다 더 예측하기 쉽고 덜 창의적인 텍스트가 생성되는 것이다. 애플리케이션의 경우 사실을 기반으로 하는 질의응답과 같은 작업에서는 낮은 temperature를 사용해서 사실적이고 간결한..
-
Instruction finetuning & Self-InstructInternship_LLM 2024. 1. 26. 10:54
Instruction tuning과 Self-Instruct에 대한 간단한 code 흐름을 정리해보려고 한다. ※ Instruction tuning instruction dataset이 json 파일이라면, with open등으로 json 파일을 받아와서 데이터프레임 형식으로 변환한다. 사용할 토크나이저와 모델을 만든다. transformers 기반의 AutoTokenizer를 사용하고, pretrained된 모델을 넣어서 토크나이징 instruction tuning시에는 AutoModelForSeq2SeqLM을 사용하여 모델을 만들어 주는것이 일반적이므로 model_name = "bert-base-uncased" # 예시 모델 이름 tokenizer = AutoTokenizer.from_pretrain..
-
SELF-INSTRUCT 논문 리뷰Internship_LLM 2024. 1. 24. 17:46
Instruction dataset에 대한 가공을 끝낸 후, 이어서 self-instruct에 대한 논문을 리뷰해보면 좋을 것 같아 선택한 논문이다. instruction 데이터를 자체적으로 생성하여 수준 높은 instruction dataset을 구축할 수 있다는 논문이다. [2212.10560] Self-Instruct: Aligning Language Models with Self-Generated Instructions (arxiv.org) Self-Instruct: Aligning Language Models with Self-Generated Instructions Large "instruction-tuned" language models (i.e., finetuned to respond to..