Python 65

LangChain의 PyPDF로 PDF 텍스트 추출하기: 간단한 실습 가이드 [7]

Python에서 LangChain과 PyPDF 라이브러리를 활용하여 PDF 문서의 텍스트를 추출하는 방법을 소개합니다. 특히, PDF 파일의 첫 페이지에서 텍스트를 추출하는 간단한 실습을 진행하겠습니다.Python 환경임의의 PDF 파일 (예: test.pdf)1. 필요한 라이브러리 설치먼저, PDF 텍스트 추출에 필요한 라이브러리를 설치합니다. 아래 명령어를 실행하세요pip install langchainpip install langchain-communitypip install pypdf2. PDF 텍스트 추출 코드 작성다음은 LangChain의 PyPDFLoader를 사용해 PDF 파일의 첫 페이지에서 텍스트를 추출하는 코드입니다from langchain_community.document_loade..

RAG 고려사항 [8]

RAG(기억 보강 생성) 구현 시 고려사항RAG(Retrieval-Augmented Generation)는 생성형 AI와 검색 기술을 결합하여, 보다 정확하고 신뢰할 수 있는 답변을 제공하는 방식입니다. RAG 구현 시, 답변 속도와 정확도를 높이면서 보안과 개인정보 보호를 고려해야 합니다. 아래에서는 RAG 구현 시 고려해야 할 주요 사항들을 속도, 정확도, 보안, 개인정보 보호, 그리고 질의 답변 모니터링 측면에서 정리해 보겠습니다.1. 답변 속도RAG 시스템의 답변 속도는 사용자 경험에 큰 영향을 미칩니다. 이를 최적화하기 위해 다음 사항들을 고려해야 합니다.1.1 Chunk Size정의: Chunk Size는 문서나 텍스트를 검색 엔진에 입력하기 위해 쪼개는 단위 크기를 의미합니다.고려사항: 너무..

RAG 2024.09.02

RAG 벡터 검색 [7]

벡터 검색(Vector Search) 개요벡터 검색은 데이터 간의 유사성을 기반으로 원하는 정보를 찾는 데 중요한 역할을 하는 기술로, 최근 자연어 처리(NLP), 컴퓨터 비전, 추천 시스템 등 다양한 분야에서 활용되고 있습니다. 이 글에서는 벡터 검색의 기본 개념인 유사도 검색과 MMR 알고리즘에 대해 설명하고, FAISS를 활용한 인덱스 생성 과정, 다양한 인덱스 유형의 성능 비교, 그리고 검색 결과의 Ranking이 필요한 이유와 해결 방법을 다루겠습니다.유사도 검색(Similarity Search)1. 유사도 검색 정의유사도 검색(Similarity Search)은 주어진 쿼리와 데이터베이스 내의 데이터 간의 유사도를 측정하여 가장 유사한 결과를 반환하는 검색 방식입니다. 텍스트, 이미지, 오디오..

RAG 2024.09.02

RAG 개념 [2]

RAG(Retrieval-Augmented Generation)란 무엇인가?RAG는 자연어 처리(NLP) 분야에서 정보 검색을 통해 언어 생성 과정을 향상시키는 모델입니다. 이 모델은 사용자의 질문에 대해 더 정확하고 관련성 높은 답변을 생성하기 위해 외부 지식 소스로부터 정보를 검색하고 이를 활용하여 답변을 생성하는 방식으로 작동합니다.RAG의 작동 원리RAG는 크게 두 가지 주요 단계로 이루어져 있습니다:정보 검색 단계: 사용자의 질문이 입력되면, RAG는 관련 문서나 데이터를 외부 지식 소스(예: 데이터베이스, 검색 엔진)에서 검색합니다. 이 단계에서는 질문과 관련된 문서들이 선택됩니다.언어 생성 단계: 선택된 문서들을 기반으로, GPT와 같은 언어 생성 모델이 질문에 대한 답변을 생성합니다. 이 ..

RAG 2024.08.29

후기 요약 데모 [2]

손쉽게 디자인 가능한 웹 프레임워크가 많이 나왔다. 그 중에 gradio를 사용해보겠습니다. streamlit도 많이 사용됩니다. gradio는 손 세팅이 엄청 쉽다. 반면 streamlit은 좀 더 예쁘지만, 세팅이 어렵다. 이번 실습은 gradio를 진행하겠습니다.https://www.gradio.app/guides/quickstart QuickstartA Step-by-Step Gradio Tutorialwww.gradio.app  아래 Building Your Firstg Demo 부분에 코드를 사용해보겠습니다.import gradio as grdef greet(name, intensity): return "Hello, " + name + "!" * int(intensity)demo = gr..

프롬프트 평가 [4]

LLM 모델을 사용하여 질문을 통하여 얻은 답변을 평가하는 시간을 가죠보겠습니다.이 프롬프트가 좋은지 아닌지 확인할 필요가 있습니다.우선 평가 방법은 총 3가지로 구분할 수 있습니다.사람모델코드평가 기준은 LLM이 어느 정도 성능을 가진 모델인지 정량 or 정성적으로 확인하는 객관적인 지표로 나타냅니다. 태스크에 적합한 평가 지표 설정이 필요한 이유는, 실사용 입장에선 사실 위 지표들간의 미미한 우위는 의미 없고 특정 태스크 점수가 중요합니다. 지표가 높다고 특정 태스크에서 무조건 높은건 절대 아닙니다. 사람을 활용한 평가가 필요한 이유는?전문가 평가(주관적)블라인드 평가명확한 기준더 좋은 답변을 선택하는 테스트모델을 활용한 평가가 필요한 이유GPT-4 강한 LLM을 통해 평가하는 방법 (가장 유사하다)..

Prompt Engineering 2024.07.26

Prompt Development Cycle [3]

Prompt Development Cycle은 AI 모델(예: GPT-4)과의 상호작용에서 효과적인 프롬프트를 작성하기 위한 체계적인 과정입니다. 이 과정은 프롬프트가 명확하고 관련성이 있으며 원하는 응답을 끌어낼 수 있도록 설계하는 것을 목표로 합니다. 최고의 성능을 달성하기 위한 방법으로테스트 케이스와 평가 기준 설정Baseline Prompt 생성테스트 및 고도태스크 : 요약, 코드, Q&A, 글쓰기태스크 별 사용하는 평가 기준과 지표는 다릅니다. 어떤 문제를 풀어야하는지 구체화하고 명확하게 정의를 해야합니다.이제 Prompt Development Cycle의 주요 단계를 알아보겠습니다.1. 목표 정의목적 식별: 프롬프트를 통해 얻고자 하는 결과나 정보를 명확히 합니다.대상 청중 파악: 프롬프트가 ..

Prompt Engineering 2024.07.25

실습 환경 준비 (OpenAI 계정 생성, API 키 발급) [2]

오늘은 프롬프트 엔지니어링을 실습하기 위한 실습 환경을 준비해보겠습니다.https://platform.openai.com/docs/overview먼저 위 링크로 들어가서 회원가입을 한 후, 로그인을 진행해주세요. 우측 상단에 'Dashboard'를 클릭한 후, API keys를 클릭한다. API key를 발급받기 위해서는 전화번호 인증을 해야한다.그 후, 초록버튼에 'Create new secret key'를 클릭 - 자유롭게 Name을 작성 - 'Create secret key'를 클릭api key가 나오고 메모장이나 다른곳에 key를 복사해서 저장해둔다.잃어버리면 다시 key를 발급해야하는 번거러움이 있다. 다른 탭을 사용하려면 신용카드를 등록해야 한다.오른쪽 'Setting' 톱니모양 클릭 - 'B..

Prompt Engineering 2024.07.24

프롬프트 엔지니어링 [1]

프롬프트 엔지니어링(Prompt Engineering)이란?Prompt : 사용자가 텍스트 입력을 통해 모델의 출력을 유도하는 방법론ex) 대한민국으로 4행시 해줘 Prompt Engineering : 모델의 입력 텍스트를 조정해서 성능을 끌어올리는 방법 모델이 Prompt의 미세한 변화를 인지할 수 있는 능력이 있다고 가정Q : 반가워요!A : 저도 반가워요! 변화 후 Q : 반가워요..A : 저도 반가워요. 무슨 문제가 있으신가요? 이렇게 다른 답변을 유도할 수 있다.Prompt Engineering 기법'Few Shot, Chain-of-Thought, ReAct, Generated Knowledge, Self-Consistency, Prompt Chaining, Least-to-Most'중요한것이..

Prompt Engineering 2024.07.24

생성형 AI의 종류 [2]

ChatGPTChatGPT는 가장 유명한 언어 생성 AI이다.Q&A 기능이 가능하여 묻는 질문에 맞는 답변을 ChatGPT를 통해 얻을 수 있다.번역 기능도 가능하여 원하는 영어 단어 혹은 문장을 입력하면 한글로 번역된 대답을 얻을 수 있다.요약 기능도 가능하여 긴 문장이나 스토리를 입력하여 2-3줄로 짧게 요약을 요청하면 원하는 대답을 얻을 수 있다.코드 생성 기능은 프로그래밍 할 때, 많이 참조할 수 있다. 원하는 언어를 말하고, 원하는 명령을 내리면 해당 언어에 맞는 코드를 얻을 수 있다. 코드 생성 기능은 프로그래밍을 원할하게 할 수 있게 되었다. 그리고 밑에 코드를 설명해주는 문장도 생성되어 쉽게 이해할 수 있게 된다.언어 생성 AI 종류구글Bert (2018)Bard (2022)Gemini (..

Generative AI 2024.07.23