DeepSeek R1을 사용하여 Rag 시스템을 구축하는 방법은 무엇입니까?

DeepSeek R1을 사용하여 Rag 시스템을 구축하는 방법은 무엇입니까?

나는 Rag 및 AI 에이전트에 대해 많이 읽었지만 DeepSeek V3 및 DeepSeek R1과 같은 새로운 모델이 출시되면 효율적인 Rag 시스템을 구축 할 가능성이 상당히 개선되어 더 나은 검색 정확도, 강화 추론 기능 및 향상된 추론 기능 및 실제 응용 프로그램을위한보다 확장 가능한 아키텍처. 보다 정교한 검색 메커니즘, 향상된 미세 조정 옵션 및 멀티 모달 기능의 통합은 AI 에이전트가 데이터와 상호 작용하는 방식을 변경하고 있습니다. 전통적인 래그 접근 방식이 여전히 최선의 방법인지 또는 새로운 아키텍처가보다 효율적이고 상황에 맞는 솔루션을 제공 할 수 있는지에 대한 의문을 제기합니다.

RAG (Retrieved-Augmented Generation) 시스템은 AI 모델이 검색 기반 및 생성 접근법을 결합하여보다 정확하고 상황을 인식하는 응답을 생성함으로써 데이터와 상호 작용하는 방식에 혁명을 일으켰습니다. 출현으로 Deepseek R1효율성과 비용 효율성으로 알려진 오픈 소스 모델 인 효과적인 래그 시스템을 구축하는 것이 더욱 접근 가능하고 실용화되었습니다. 이 기사에서는 DeepSeek R1을 사용하여 Rag 시스템을 구축하고 있습니다.

DeepSeek R1은 무엇입니까?

DeepSeek R1은 OpenAI의 오퍼링과 같은 독점 모델 비용의 일부에서 고품질 추론 및 검색 기능을 제공하기 위해 개발 된 오픈 소스 AI 모델입니다. MIT 라이센스가있어 상업적으로 실행 가능하고 광범위한 응용 프로그램에 적합합니다. 또한이 강력한 모델은 침대를 볼 수 있지만 Openai O1 및 O1-Mini에는 어떤 추론 토큰도 표시되지 않습니다.

Deepseek R1이 OpenAi O1 모델에 얼마나 도전하는지 알기 위해 : DeepSeek R1 vs Openai O1 : 어느 것이 더 빠르고, 저렴하며, 더 똑똑합니까?

Rag 시스템에 DeepSeek R1을 사용하는 이점

DeepSeek-R1을 사용하여 검색 된 세대 (RAG) 시스템을 구축하면 몇 가지 주목할만한 장점이 있습니다.

1. 고급 추론 능력: DeepSeek-R1은 결론에 도달하기 전에 정보를 단계별로 분석하고 처리하여 인간과 같은 추론을 모방하도록 설계되었습니다. 이 접근법은 특히 논리적 추론, 수학적 추론 및 코딩 작업이 필요한 영역에서 복잡한 쿼리를 처리하는 시스템의 능력을 향상시킵니다.

2. 오픈 소스 접근성: MIT 라이센스에 따라 릴리스 된 DeepSeek-R1은 완전히 오픈 소스로 개발자가 모델에 대한 무제한 액세스를 가능하게합니다. 이러한 개방성은 독점 모델과 관련된 제약 조건없이 사용자 정의, 미세 조정 및 다양한 응용 프로그램에 통합 할 수 있습니다.

3. 경쟁력있는 성능: 벤치 마크 테스트에 따르면 DeepSeek-R1은 추론, 수학 및 코딩과 관련된 작업에서 OpenAI의 O1과 같은 주요 모델과 동등한 수준의 모델과 비교하여 수행됩니다. 이 수준의 성능은 DeepSeek-R1로 구축 된 Rag 시스템이 다양하고 도전적인 쿼리에서 고품질의 정확한 응답을 제공 할 수 있도록합니다.

4. 사고 과정의 투명성: DeepSeek-R1은“생각한 사슬”방법론을 사용하여 추론 중에 추론 단계가 보이게합니다. 이러한 투명성은 시스템을 디버깅하고 정제하는 데 도움이 될뿐만 아니라 결론에 도달하는 방법에 대한 명확한 통찰력을 제공함으로써 사용자 신뢰를 구축합니다.

5. 비용 효율성: DeepSeek-R1의 오픈 소스 특성은 라이센스 비용을 제거하고 효율적인 아키텍처는 계산 자원 요구 사항을 줄입니다. 이러한 요소는 상당한 비용을 발생시키지 않고 정교한 걸레 시스템을 구현하려는 조직에보다 비용 효율적인 솔루션에 기여합니다.

DeepSeek-R1을 RAG 시스템에 통합하면 고급 추론 능력, 투명성, 성능 및 비용 효율성의 강력한 조합을 제공하여 AI 기능을 향상시키기위한 개발자 및 조직에 강력한 선택이됩니다.

DeepSeek R1을 사용하여 Rag 시스템을 구축하는 단계

스크립트는 검색 된 세대 생성 (RAG) 파이프 라인입니다.

  • PDF 문서를로드 및 처리합니다 페이지로 나누고 텍스트를 추출함으로써.
  • 벡터화 된 표현을 저장합니다 데이터베이스 (ChromADB)의 텍스트.
  • 관련 콘텐츠를 검색합니다 쿼리를 요청할 때 유사성 검색을 사용합니다.
  • LLM (DeepSeek 모델)을 사용합니다. 검색된 텍스트에 따라 응답을 생성합니다.

전제 조건을 설치하십시오

curl -fsSL  | sh

이 후 DeepSeek R1 : 1.5B를 사용하여 다음을 사용합니다.

ollama pull deepseek-r1:1.5b

다운로드하는 데 잠시 시간이 걸립니다.

ollama pull deepseek-r1:1.5b

pulling manifest
pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB                         
pulling 369ca498f347... 100% ▕████████████████▏  387 B                         
pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB                         
pulling f4d24e9138dd... 100% ▕████████████████▏  148 B                         
pulling a85fe2a2e58e... 100% ▕████████████████▏  487 B                         
verifying sha256 digest 
writing manifest 
success 

이 작업을 수행 한 후 Jupyter 노트북을 열고 코딩 부분부터 시작하십시오.

1. 종속성을 설치하십시오

실행하기 전에 스크립트는 필요한 파이썬 라이브러리를 설치합니다.

  • langchain → LLMS (Lange Models)를 사용하여 응용 프로그램을 구축하기위한 프레임 워크.
  • langchain-openai → OpenAI 서비스와 통합을 제공합니다.
  • langchain-community → 다양한 문서 로더 및 유틸리티에 대한 지원을 추가합니다.
  • langchain-chroma → 벡터 데이터베이스 인 ChromADB와의 통합을 가능하게합니다.

2. Openi API 키를 입력하십시오

OpenAi의 임베딩 모델에 액세스하려면 스크립트는 사용자에게 API 키를 안전하게 입력하십시오 사용 getpass(). 이것은 일반 텍스트로 자격 증명을 노출시키는 것을 방지합니다.

3. 환경 변수 설정

대본 API 키를 저장합니다 환경 변수로. 이를 통해 코드의 다른 부분이 OpenAI 서비스에 액세스 할 수 있습니다. 하드 코딩 자격 증명없이보안을 향상시킵니다.

4. OpenAi 임베딩 초기화

스크립트는 호출 된 OpenAI 임베딩 모델을 초기화합니다 "text-embedding-3-small". 이 모델 텍스트를 벡터 임베딩으로 변환합니다이는 텍스트의 의미의 고차원 수치 표현입니다. 이 임베딩은 나중에 익숙합니다 비슷한 내용을 비교하고 검색하십시오.

5. PDF 문서를로드하고 분할하십시오

PDF 파일 (AgenticAI.pdf) 이다 로드 및 페이지로 분할. 각 페이지의 텍스트가 추출되어 허용됩니다 더 작고 관리하기 쉬운 텍스트 청크 전체 문서를 단일 장치로 처리하는 대신.

6. 벡터 데이터베이스를 작성하고 저장합니다

  • PDF에서 추출 된 텍스트는 다음과 같습니다 벡터 임베딩으로 변환.
  • 이 임베딩은 다음과 같습니다 ChromADB에 저장됩니다고성능 벡터 데이터베이스.
  • 데이터베이스는 사용하도록 구성됩니다 코사인 유사성시맨틱 유사성이 높은 텍스트가 효율적으로 검색되도록합니다.

7. 유사성 임계 값을 사용하여 유사한 텍스트를 검색하십시오

에이 리트리버 ChromADB를 사용하여 작성됩니다.

  • 가장 유사한 상위 3 개를 검색합니다 주어진 쿼리를 기반으로 한 문서.
  • 유사성 임계 값이 0.3 인 결과를 필터링합니다 (즉, 문서는 관련성이있는 것으로 간주 되려면 적어도 30%의 유사성을 가져야합니다).

8. 유사한 문서에 대한 쿼리

두 가지 테스트 쿼리가 사용됩니다.

  1. "What is the old capital of India?"
    • 결과가 발견되지 않았습니다저장된 문서에 관련 정보가 포함되어 있지 않음을 나타냅니다.
  2. "What is Agentic AI?"
    • 관련 텍스트를 성공적으로 검색합니다시스템이 의미있는 맥락을 가져올 수 있음을 보여줍니다.

9. 헝겊 (검색 섭취량) 체인을 구축하십시오

스크립트는 a 헝겊 파이프 라인이를 보장합니다.

  • 텍스트 검색 답을 생성하기 전에 발생합니다.
  • 모델의 응답은입니다 검색된 컨텐츠를 엄격히 기반으로합니다환각 방지.
  • 에이 프롬프트 템플릿 모델에 구조화 된 응답을 생성하도록 지시하는 데 사용됩니다.

10. LLM에 연결을로드 (DeepSeek 모델)

OpenAi의 GPT 대신 대본 DeepSeek-R1 (1.5B 매개 변수)로드검색 기반 작업에 최적화 된 강력한 LLM.

11. 헝겊 기반 체인을 만듭니다

랭케인 검색 모듈은 다음에 사용됩니다.

  • 관련 컨텐츠를 가져옵니다 벡터 데이터베이스에서.
  • 구조화 된 응답을 형식화합니다 프롬프트 템플릿을 사용합니다.
  • 간결한 답변을 생성하십시오 깊은 모델과 함께.

12. 래그 체인을 테스트하십시오

스크립트는 테스트 쿼리를 실행합니다.
"Tell the Leaders’ Perspectives on Agentic AI"

그만큼 LLM은 사실 기반 응답을 생성합니다 검색된 컨텍스트를 엄격히 사용합니다.

시스템 데이터베이스에서 관련 정보를 검색합니다.

DeepSeek R1을 사용하여 Rag 시스템을 구축하는 코드

코드는 다음과 같습니다.

OpenAI 및 Langchain 종속성을 설치하십시오

!pip install langchain==0.3.11
!pip install langchain-openai==0.2.12
!pip install langchain-community==0.3.11
!pip install langchain-chroma==0.1.4

열린 AI API 키를 입력하십시오

from getpass import getpass
OPENAI_KEY = getpass('Enter Open AI API Key: ')

설정 환경 변수

import os
os.environ['OPENAI_API_KEY'] = OPENAI_KEY

AI 임베딩 모델을 엽니 다

from langchain_openai import OpenAIEmbeddings
openai_embed_model = OpenAIEmbeddings(model="text-embedding-3-small")

벡터 DB를 생성하고 디스크에 지속됩니다

from langchain_community.document_loaders import PyPDFLoader
loader = PyPDFLoader('AgenticAI.pdf')
pages = loader.load_and_split()
texts = [doc.page_content for doc in pages]

from langchain_chroma import Chroma
chroma_db = Chroma.from_texts(
    texts=texts,
    collection_name="db_docs",
    collection_metadata={"hnsw:space": "cosine"},  # Set distance function to cosine
embedding=openai_embed_model
)

임계 값 검색과 유사성

similarity_threshold_retriever = chroma_db.as_retriever(search_type="similarity_score_threshold",search_kwargs={"k": 3,"score_threshold": 0.3})

query = "what is the old capital of India?"
top3_docs = similarity_threshold_retriever.invoke(query)
top3_docs
[]
query = "What is Agentic AI?"
top3_docs = similarity_threshold_retriever.invoke(query)
top3_docs
산출

래그 체인을 만듭니다

from langchain_core.prompts import ChatPromptTemplate
prompt = """You are an assistant for question-answering tasks.
            Use the following pieces of retrieved context to answer the question.
            If no context is present or if you don't know the answer, just say that you don't know.
            Do not make up the answer unless it is there in the provided context.
            Keep the answer concise and to the point with regard to the question.
            Question:
            {question}
            Context:
            {context}
            Answer:
         """
prompt_template = ChatPromptTemplate.from_template(prompt)

LLM에로드 연결

from langchain_community.llms import Ollama
deepseek = Ollama(model="deepseek-r1:1.5b")

래그 체인에 대한 랑케인 구문

from langchain.chains import Retrieval
rag_chain = Retrieval.from_chain_type(llm=deepseek,
                                           chain_type="stuff",
                                           retriever=similarity_threshold_retriever,
                                           chain_type_kwargs={"prompt": prompt_template})
query = "Tell the Leaders’ Perspectives on Agentic AI"
rag_chain.invoke(query)
{'query': 'Tell the Leaders’ Perspectives on Agentic AI',
산출

DeepSeek 작업 및 유사한 모델과의 비교에 대한 자세한 기사를 확인하십시오.

결론

사용을 사용하는 헝겊 시스템 구축 Deepseek R1 문서 검색 및 응답 생성을 향상시키는 비용 효율적이고 강력한 방법을 제공합니다. 오픈 소스 특성과 강력한 추론 능력을 갖춘 독점 솔루션의 대안입니다. 비즈니스와 개발자는 자신의 요구에 맞는 AI 중심 애플리케이션을 만들기 위해 유연성을 활용할 수 있습니다.

DeepSeek을 사용하여 응용 프로그램을 구축하고 싶습니까? 오늘 무료 DeepSeek 코스를 체크 아웃하십시오!

Pankaj Singh

안녕하세요, 저는 Pankaj Singh Negi -Senior Content Editor | 아이디어를 충격적인 콘텐츠로 바꾸는 스토리 텔링 및 제작에 대한 열정. 나는 우리의 라이프 스타일을 혁신하는 기술에 대해 읽는 것을 좋아합니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다