목록언어 AI (NLP) (27)
토니의 연습장
참고 : https://starknotes.tistory.com/202 MiniGPT-4MiniGPT-4: Enhancing Vision-Language Understanding with Advanced Large Language ModelsThe recent GPT-4 has demonstrated extraordinary multi-modal abilities, such as directly generating websites from handwritten text and identifying humorous elements withinstarknotes.tistory.com class MultimodalProjector(nn.Module): def __init__(self, image_embe..

MLLM : Multimodal Large Language ModelLMM : Large Multimodal Model *이미지 인코더 사용방식 / 이미지 토크나이저 사용방식 / 이미지 인코딩하지 않는 방식(fuyu 등) -> 아래 내용은 이미지 인코더 사용방식 ex1) HPT ex2) Idefics2 ● Architecture ○ Vision Encoder + Connector + LLM● Data ○ 2 가지 데이터셋 필요 ■ pre-train ■ instruction tune● Evaluation ○ MMMU ex1) NExT-GPT ex2) ANYGPT "결국 GPT(트랜스포머)의 입력은 토큰이기에, 멀티모달 데이터를 토큰으로 변화시키면, 다양한 입력들을 처리할 수 있다" ..

✅ 핵심 특징모델 압축 (Model Compression)큰 모델(teacher)의 지식을 작은 모델(student)에 전달해 경량화된 모델을 만듦.소프트 타겟 (Soft Targets)정답 레이블(hard label)뿐만 아니라, teacher의 예측 확률 분포(soft label)를 student가 학습함.이 soft label에는 클래스 간의 유사도 정보가 담겨 있음.일반화 성능 향상student 모델이 단순히 hard label만 학습할 때보다 더 좋은 일반화 성능을 보일 수 있음.모델 구조 유연성student는 반드시 teacher와 같은 구조일 필요는 없음. 훨씬 작거나, 다른 구조여도 가능. ✅ Distillation Loss의 정의Distillation Loss는 Knowledge Dis..

from operator import itemgetterfrom langchain.memory import ConversationBufferMemoryfrom langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholderfrom langchain_core.runnables import RunnableLambda, RunnablePassthroughfrom langchain_openai import ChatOpenAI# ChatOpenAI 모델을 초기화합니다.model = ChatOpenAI()# 대화형 프롬프트를 생성합니다. 이 프롬프트는 시스템 메시지, 이전 대화 내역, 그리고 사용자 입력을 포함합니다.prompt = ChatPromptTe..

DDP : Distributed Data ParallelDMP : Distributed Model Parallel출처 : https://youtu.be/Wer9odeBWNg without accumulation : 순차 처리 방식with accumulation : 병렬 처리 방식 (multi-gpu)출처 : https://youtu.be/toUSzwR0EV8
*PDFRAG class 는 하단의 코드 참고from myrag import PDFRAG# 질문에 대한 답변하는 함수를 생성def ask_question_with_llm(llm): # PDFRAG 객체 생성 rag = PDFRAG( "data/SPRI_AI_Brief_2023년12월호_F.pdf", llm, ) # 검색기(retriever) 생성 retriever = rag.create_retriever() # 체인(chain) 생성 rag_chain = rag.create_chain(retriever) def _ask_question(inputs: dict): # 질문에 대한 컨텍스트 검색 context = r..
*아래는 전체코드가 아닌 핵심 코드만을 다루고 있습니다.참고) RAGAS: https://docs.ragas.io/en/latest/getstarted/evaluation.htmlfrom ragas.testset.generator import TestsetGeneratorfrom ragas.testset.evolutions import simple, reasoning, multi_context, conditionalfrom ragas.llms import LangchainLLMWrapperfrom ragas.embeddings import LangchainEmbeddingsWrapperfrom ragas.testset.extractor import KeyphraseExtractorfrom ragas.te..