|
길벗으로부터 책을 협찬 받아 작성되었으며, 독자의 주관적인 후기가 담긴 서평입니다
허깅페이스 인 액션 서적은 파이썬 기초를 익혔고 AI 기능 개발이나 연구용 데모를 시작하려는 독자에게 특히 추천할 만한 도서라고 생각합니다. 넘파이 (Numpy)와 판다스 (Pandas) 사용 경험이 있다면 코딩 예제를 따라가기 더 수월하게 느껴질 수 있습니다. 또한 다루는 범위가 넓어 관심 분야에 대한 깊이 있는 접근법은 추가적으로 찾아보며 학습할 필요는 있지만, 허깅페이스 생태계를 한눈에 파악하기 좋은 유용한 실습서라고 생각합니다. |
|
정리하면, 이 책은 허깅페이스를 처음 접하는 사람에게는 생태계 지도를 그려주고, 이미 조금 써본 사람에게는 “이걸 실제 프로젝트로 어떻게 연결할까?”를 생각하게 해주는 책이라고 느꼈습니다. 특히 이런 분들께 추천합니다.
반대로 파이썬이나 딥러닝 기초가 전혀 없는 완전 초보라면 처음에는 다소 빠르게 느껴질 수 있습니다. 하지만 기본적인 파이썬 문법과 노트북 환경에 익숙하다면 충분히 따라갈 수 있는 구성입니다. #협찬 |
|
이 책은 지루한 이론 대신 주피터 노트북 환경에서 가상환경 세팅부터 데이터 전처리, 모델 파인튜닝, 배포까지 전 과정을 직접 손으로 코딩하며 체득할 수 있도록 이끌어 줍니다. 특히 단순 텍스트 분류를 넘어 최신 실무 트렌드인 LangChain·LlamaIndex 기반 RAG 파이프라인, Gradio UI, Langflow, 그리고 평소 꼭 구축해 보고 싶었던 MCP 서버 실습까지 폭넓게 다루고 있어, 단순 API 호출을 넘어 실전형 AI 애플리케이션을 직접 구현하고자 하는 개발자라면 반드시 읽어봐야 할 필독서라고 생각합니다.
|
|
이 책은 <길벗>출판사로 부터 도서를 제공받고 작성한 리뷰입니다.
총평- 책의 난이도 : ★★★☆☆
AI 모델 계의 Github 허깅페이스를 통해서 우리가 AI 모델을 다운받고 사용하는 것에 대한 기본 책인 허깅페이스 인 액션을 길벗출판사의 도움으로 읽어볼 수 있게 되었다.
사실 이제 AI에 대한 책은 많고 내용도 알차게 잘 서술되어있다보니 굳이 이걸 리뷰에서 다룰 필요는 없는 것 같고.
챕터 7랭체인과 라마인덱스를 사용한 LLM기반 애플리케이션 구축에 대해서 실제로 실습 노트를 적어보고자 한다.
일단 LangChain이라 함은 대규모 언어 모델(LLM)을 활용해서 애플리케이션을 쉽게 만들 수 있도록 해주는 오픈소스 프레임 워크이다. 우리가 LLM을 통해서 개발하려면 빠질 수 없는 툴이다.
랭체인 설치는 간단하다.
랭체인의 여러 구성요소 중 프롬프트를 템플릿화 하여 제공하는 promptTemplate를 만들보자. 단순한 질문/답변이 있는 템플릿이다.
흠 책에서는 1.3.11버전을 통해서 검증했다고 되어있는데 저는 에러가 나서 아래와 같이 바꿔서 하니까 되더군요. 위에 코드는 0.대의 오류라고하네요?
우리는 LLM에게 질문을 던지고 답변을 받는 애플리케이션을 만든다고 보면된다.
다음은 LLM을 선택해야하므로 허깅페이스에서 호스팅하는 LLM부터 시작해보자.
허깅 페이스에 회원가입을 한뒤 해당 경로에서 읽기 토큰 생성을 진행하자.
https://huggingface.co/settings/tokens Hugging Face – The AI community building the future. We’re on a journey to advance and democratize artificial intelligence through open source and open science. huggingface.co
이와 같이 허깅페이스 토큰을 지정한 뒤 허깅페이스의 LLM 활용을 위한 langchain-huggingface를 설치한다.
책에서는 zephyr-7b-alpha 모델을 사용해서 그대로 했습니다. 실습을 중간중간 따로 하다보니 그런건지 모르겠는데 이 모델을 단순히 호출하면 안되고, repo_id로 지정하고, provider를 featherless-ai로 지정해야 가능했다.
이는 api 호출방식의 변화 특히 endpoint_url이 deprecated 되는 이슈가 있어서 그런것 같다.
LLM 체인을 이제 생성해 볼텐데 프롬프트 템플릿과 모델(LLM)을 결합해 체인을 만들어 LLM에 대해 쿼리를 실행할 수 있다. 실제로 한번 모델을 호출해서 응답을 받아보자.
응답을 잘 받는것을 확인할 수 있다.
다만 이와 같이 다음 질문을 넘기게되면 메모리가 없기 때문에 he라는 대상을 알지 못한다. 이럴때 우리는 체인을 생성한다.
아래와 같이 history 변수에 기존에 응답을 담도록 하고 while 루프에 두면 해당 세션에서는 질문을 계속 누적해서 메모리에 둘 수 있다. 다만 이 해당 메모리 값이 response를 담기 때문에 저 수많은 단어들(즉 토큰)이 모두 축적되게 된다는 단점이 생긴다. (이는 사실 추후에 생각하도록하자)
이 방식을 직접 지원하는 클래스가 있는데 RunnableWithMessageHistory 클래스가 바로 그것이다. /opt/anaconda3/lib/python3.12/site-packages/IPython/core/interactiveshell.py:3577: LangChainDeprecationWarning: RunnableWithMessageHistory is deprecated. Use LangGraph's built-in persistence instead. exec(code_obj, self.user_global_ns, self.user_ns)
난 아래 코드로 호출확인을 해보았다. 특히 2번째 PromptTemplate를 import할때 langchain_core.prompts 를 넣어줘야 가능했다.
다음은 이제 허깅페이스 모델이 아니라 openai와 같은 상용 api를 사용하는 경우이다. openai 모델 활용시에도 openai_api_key를 등록하고 langchain_openai에서 클래스를 임포트 해서 사용하면된다.
자 여기 까지 실습을 잘 했다면, 다음 단계는 RAG 기법을 통해서 우리 데이터를 직접 임베딩 해서 사용하는 방법을 책에서 소개하고 있다. 책에서 제공한 코드는 영어 전용 모델이라서 한국어가 가능한 다른 모델을 찾아서 사용하는 것을 추천한다.
이상으로 실습은 여기까지로 마치고, 내 로컬모델을 활용해 애플리케이션을 개발해보고 싶은 사람이라면 적극 추천한다.
참고로 책이 1년전 출판된 책이다보니 AI 발전상 1달만 있어도 변화가 있는듯하다. 그래서 옆에 gpt혹은 claude를 두고 같이 학습하는걸 권한다.
책에 대한 코드는 아래 깃헙에서 확인할 수 있다. |