HugginFace 의 오픈소스 언어모델 활용하기

2025. 9. 7. 02:56·RAG 을 활용하여 LLM 만들어보기

1. HugginFace 의 동작 방식

HuggingFace  는 AI 모델과 데이터셋을 공유 및 실행할 수 있는 오픈 플랫폼을 의미한다.

 

Langchain 과 차이는 LangChain 은 chat openai 를 불러온 뒤에 모델을 그대로 chain 에 입력한다.

 

반면 HuggingFace 는 `텍스트 생성기`일 뿐, 채팅의 개념이 없어서 HugginFace model을 사용하는 것이 아닌,

토크나이저와 모델을 묶은 파이프라인을 만들고 그것을 LangChain 이 이해하는 Chat 인터페이스로 감싸서 쓰는 구조이다.

2. HuggingFace API 준비하기

HuggingFace 홈페이지에서 token을 발급받을 수 있다. 이 토큰을 HF_TOKEN 의 변수명에 입력한다.

 

3. HuggingFace 오픈소스 언어모델 활용하기

3-1. 패키지 설치

!pip install -q langchain transformers langchain-huggingface langchain-community langchain-core langchain-text-splitters bitsandbytes docx2txt langchain-chroma
  • langchain 관련: AI 애플리케이션 구축을 위한 프레임워크
  • transformers : HuggingFace의 모델 사용을 위한 라이브러리
  • bitsandbytes : 모델 양자화(용량 축소)를 위한 라이브러리
  • docx2txt : Word 문서 처리용
  • langchain-chroma : 벡터 저장소 관리

3-2. 기본 모델 로드

먼저 아래와 같이 dotenv 를 사용하여 .env 파일의 환경변수를 로드한다.

 

여기서 HuggingFacePipeline 을 생성하는데, 모델은 `microsoft/Phi-3-mini-4k-instruct` 를 사용한다.

text-generation 을 활용하여 텍스트 생성을 수행하고, max_new_tokens, do_sample, repetition_penalty 를 설정한다.

3-3. 챗 모델 인터페이스 생성 후 모델 사용

chat_model 에 모델을 래핑 후 모델에 "what is huggingface" 를 질문한 뒤 응답 내용을 출력한다.

다만 해당 모델은 양자화되지 않은 상태라서 모델이 너무 큰 상태라서 실행하는 데 시간이 오래 걸리게 된다.

3-4. 양자화하기

양자화란, 모델을 작게 만들어서 추론 시간을 빠르게 하는 기술을 의미한다.

나는 quantization(양자화) 를 활용하여 양자화를 진행하고, 양자화된 모델을 로드한다.

3-5. 양자화된 모델 사용

양자화된 모델을 사용하면 양자화되기 전에 비해서 훨씬 속도가 빨라진 것을 확인할 수 있다.

다음번에는 huggingface 오픈소스 언어모델을 활용한 RAG Pipeline 을 구성해볼 예정이다.

'RAG 을 활용하여 LLM 만들어보기' 카테고리의 다른 글

HuggingFace 오픈소스 언어모델 활용한 RAG Pipeline 구성  (0) 2025.09.10
streamlit cloud 를 활용하여 서비스 배포하기  (0) 2025.08.20
Few Shot 을 활용한 답변 정확도 향상과 포맷 수정.  (0) 2025.08.18
Chat History 추가와 Streaming 구현  (6) 2025.08.17
Streamit 으로 chatbot 만들기  (2) 2025.08.09
'RAG 을 활용하여 LLM 만들어보기' 카테고리의 다른 글
  • HuggingFace 오픈소스 언어모델 활용한 RAG Pipeline 구성
  • streamlit cloud 를 활용하여 서비스 배포하기
  • Few Shot 을 활용한 답변 정확도 향상과 포맷 수정.
  • Chat History 추가와 Streaming 구현
몽자비루
몽자비루
코딩공부 정리용 블로그입니다.
  • 몽자비루
    공부하는 블로그
    몽자비루
  • 전체
    오늘
    어제
    • 분류 전체보기 (195)
      • python (30)
        • python_selenium (16)
        • python_pygame (3)
      • appium (0)
      • 쿠버네티스 (60)
        • linux (8)
        • shell programming (8)
        • docker (18)
        • cka (23)
      • postman&API (16)
      • QA성장하기 (33)
        • 개발자에서 아키텍트로 스터디 (6)
        • 소프트웨어 공학 이해도 높이기 (6)
        • 테스팅 전문 지식 쌓기 (18)
        • 제4회 QA conference (3)
      • 에러일기 (1)
      • Server&load (35)
        • AWS (27)
        • load test (5)
        • CI CD (3)
        • Jmeter (0)
      • RAG 을 활용하여 LLM 만들어보기 (12)
      • git&github (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    로스트아크
    postman
    LOSTARK
    application log
    API
    도커
    스터디
    애플리케이션로그
    앱공존성
    공존성테스트
    linux
    k8s
    qa
    qa conference
    vi에디터
    python
    QAKOREA
    포스트맨
    .cpu
    쿠버네티스
    e2c
    cka
    리눅스
    사드웨어리소스
    개발자에서아키텍트로
    테스트 결과보고서
    테스트스크립트
    qa 컨퍼런스
    네트워크 테스트
    로스트아크api
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
몽자비루
HugginFace 의 오픈소스 언어모델 활용하기
상단으로

티스토리툴바