본문 바로가기
728x90

LangChain17

Stream을 아시나요? ChatGPT 를 사용하다보면 기존의 챗봇에서 타자를 마치 사람이 치는것처럼 '타타타타타닥' 하면서 글자들이 출력되곤 하는데요. 챗봇을 구축할때 나도 저걸 할 수 없을까 생각을 한적이 있습니다. 막상 아 그냥 프론트엔드 영역이겠지~ 하고 넘어갔는데요. 손쉽게 구현이 가능 했습니다. Streaming | 🦜️🔗 Langchain All ChatModels implement the Runnable interface, which comes with python.langchain.com LCEL object 에서 stream 이 사용이 가능한데요. 모델이 토큰을 다 생성되고 출력을 해주는게 아니고 생성되는 토큰마다 바로 출력물을 제공하도록 Chunk 단위로 쪼개서 출력을 시켜주는 방식입니다. 여기에 time.s.. 2024. 2. 15.
Ollama를 활용한 맥북 Github Copilot 구축하기 - (2) Ollama를 활용한 아이폰으로 Ondevice AI 구축하기 안녕하세요 Simon 입니다. On-device AI 시대가 열리면서 삼성의 갤럭시 스마트폰은 AI 를 넣어서 출시가 되고 있고, 아마 최근에 막말로 유명한 샘알트만이 그리는 반도체 시장의 생태계 또한 모든 wiz-tech.tistory.com 안녕하세요 Simon 입니다. Ollama 로 아이폰에 Ondevice 형태의 어플로 구축하는 방법을 소개해드렸는데요. 이어서 M1 시리즈의 노트북을 보유하고 있다면 구독료 없이 코파일럿 형태의 서비스를 쓸 수 있을듯한 Idea가 떠올라서 글을 한번 써보겠습니다. Ollama 는 무엇인가? Ollama 는 오픈소스 프로젝트로 Hype이 되어 더욱 커지고 있는 프레임워크의 Tool 개념이라고 생각합니다... 2024. 2. 15.
Corrective Retrieval Augmented Generation 논문 리뷰 안녕하세요 오늘 소개해드릴 논문은 Corrective RAG 라는 주제의 논문 입니다. 사실 설에 링크드인과 트위터 알람에서 자꾸 이 실험에 관련된 게시글이 많이 보였습니다. 아 이거 중요하겠구나 싶어서 오늘 읽고 리뷰를 하게 되었습니다. 언제나 제 논문은 한글 번역 후 요약 정리 중요하게 생각되는 점을 기록하면서 리딩을 하고 있습니다. 참고해주시길 바랍니다. 논문 원본 Corrective Retrieval Augmented Generation Large language models (LLMs) inevitably exhibit hallucinations since the accuracy of generated texts cannot be secured solely by the parametric kno.. 2024. 2. 13.
Retrieval-Augmented Generation for Large Language Models: A Survey 논문 리뷰 안녕하세요 Simon 입니다. 오늘은 RAG 의 서베이 관련 논문이 있어서 가져와봤습니다. RAG 기술이 점점 LLM 의 할루시네이션을 개선하기 위한 기술로 자리를 잡고 있고 이곳저곳에서 도입이 되고있고, 텍스트 뿐만아니라 나중에는 멀티모달의 이미지 리트리버 분야도 분명 대두될거 같다는 생각을 종종하고 있습니다. RAG 기술이라도 잘 알고 설명 할 줄 아는 사람이 되고싶어서 위의 논문을 이해해보려고 합니다. Retrieval-Augmented Generation for Large Language Models: A Survey Large Language Models (LLMs) demonstrate significant capabilities but face challenges such as halluci.. 2024. 1. 30.
챗봇 구축 방법론을 생각해보다 챗봇 구축 W5100, W5500, W5100S 과 같이 제품군이 있는 Docs 정보를 토대로 검색증강생성 모델 챗봇을 구축하려고한다. 적용대상 : 실시간 챗봇 우선순위 (1) 포럼 QnA 자동답변기능 (2), 채널톡 자동답변(3) 데이터 : 제품군별 독스 모델이 이해할 수 제품군별 이해하도록 최대한 연관시켜서 재 가공 h/w engineer 가 매달 실제 고객과 상담한 상담내용을 토대로 자체 QnA(faq) 데이터셋 제작 모델 : OpenAI 쓸 예정 모두 (GPT3.5, GPT4) 오픈소스는 성능이 안좋음 , 한국어파인튜닝도 작업해야하는 우려 코드나, 핀맵을 출력하는 경우 token 제한 이슈 적용 방법론: VectorDB all data (Chunk size 고려) ChatGPT - fine-tun.. 2024. 1. 29.
LLM 구조를 파이프라인화해서 랭체인을 쓰면될까? 어제 소프트웨어개발자 의 조언대로 카테고리를 확실히 나누고 목표설정에 대한 구체화를 진행하라는 피드백이 있었다. 번뜩 아이디어가 떠올랐고 AI 관점에서 AI 가 다해주겠지라는 막연한 생각과 함께 구조화 파이프라인을 하지 않았다. 그래서 그런지 항상 파운데이션 모델을 만드는것처럼 뭔가 자꾸 데이터를 합쳐서 튜닝을 한다던지 생각만 했었다. PLM 은 당연히 클러스터링이 잘 되지 않는다면 할루시네이션을 반복할 것이다. 1. RAG기반의 챗봇을 Vector DB를 나눠서 카테고리가 입력한 타겟에 대한 답변을 유도할 수 있도록 한다. -> 포럼 자동봇에는 대응이 가능하다. 포럼자체도 카테고리를 입력해야 글을 쓸 수 있으니 그건 개발자와 협의해서 코드를 수정하면 되는 부분 아마 신뢰성은 많이 올라갈 것이다. 2. .. 2024. 1. 24.
[Langchain] 처음시작하는 랭체인 - (1) 안녕하세요 Simon 입니다. 오늘부터 랭체인 하나는 정복하자 느낌으로 쭉 글을 올려보려고 합니다. 랭체인의 개요, 기초 부터 천천히 하나씩 올리겠습니다. LangChain 이란? • Langchain 은 LLM 기반의 서비스를 구축하기 위한 다양한 모듈과 기능을 제공하는 프레임워크입니다. • 랭체인의 주요 목적은 대화형 AI 시스템을 구축하고 연구하는 데 있어 유용한 도구를 제공하는 것입니다. LangChain 구조 LangChain 라이브러리: 파이썬과 자바스크립트 라이브러리. 다양한 컴포넌트의 인터페이스 및 통합, 이러한 컴포넌트를 체인과 에이전트로 결합하기 위한 기본 런타임, 그리고 체인과 에이전트의 오프더셀프 구현을 포함합니다. LangChain 템플릿: 다양한 작업을 위한 쉽게 배포 가능한 참.. 2024. 1. 24.
나만의 챗봇 Service해보기(2) : WIZnet Doc에 있는 데이터를 학습시키자! 안녕하세요 오늘은 나만의 챗봇 서비스해보기 2탄으로 돌아왔습니다. 오늘은 나만의 챗봇을 학습하기 위한 데이터를 가져오는 방법을 알려드리려고 합니다. 우선 데이터를 구축하기 위한 예시로 WIZnet의 doc를 가져와봅시다. 아래 Github링크를 들어가면 WIZnet의 doc를 마크다운 파일로 확인할 수 있습니다. https://github.com/Wiznet/document_framework GitHub - Wiznet/document_framework Contribute to Wiznet/document_framework development by creating an account on GitHub. github.com 이중 W5500를 예시로 가져왔습니다. ## W5500 ![W5500 Photo .. 2024. 1. 19.
나만의 챗봇 Service해보기(1) - 결과부터 보자. 안녕하세요 Acorn입니다. 최근에 저는 기술의 발전에 매료되어 있습니다. 특히 LLM 분야에서의 급속한 진보가 놀라울 따름인데요. 이번 프로젝트는 LLM, 특히 RAG를 통한 CustomChatbot 제작을 위한 공부를 하고, Streamlit을 통해 서비스화를 시켜보았습니다. Streamlit은 데이터 사이언스와 머신 러닝을 위한 빠르고 사용하기 쉬운 앱 프레임워크입니다. Python 기반으로 작동하기 때문에, 저와 같은 개발자들에게 친숙한 환경에서 작업할 수 있었습니다. Langchain은 최신의 언어 모델을 사용하여 다양한 언어 작업을 수행할 수 있는 라이브러리입니다. 이 두 도구를 결합하여, 쉽고 빠르게 서비스화할 수 있는 챗봇 프로젝트를 제작하였습니다. 아래 사이트는 제가 제작한 챗봇 사이트입.. 2024. 1. 18.
프롬프트 엔지니어링의 새로운 방법 : PAL(Program-Aided Language Models) 의 원리와 실제 적용 사례 안녕하세요 Simon 입니다 오늘은 또 재미있는 새로운 프롬프팅 기법을 소개해드릴려고 합니다. PAL (프로그램지원언어모델) 입니다. 어떤 Application 을 구축함에 있어서 내가 원하는 형식의 Output 을 얻기 위해 LLM으로 부터 다양한 프롬프팅 방법과 프레임워크 등을 사용 하곤 하는데 이것도 Few-Shot 프롬프트의 종류로 원하는 숫자값, Date 값, 특정 값을 뽑아 낼 수 있도록 코드 인터프리터 프로그래밍 방식을 함께 런타임을 단계적으로 수행해서 해결해 나가는 기법입니다. 정답을 얻기 위해서 자유로운 텍스트 형식을 쓰기 때문에 CoT 와는 조금 차이가 있습니다. https://arxiv.org/abs/2211.10435 PAL: Program-aided Language Models L.. 2024. 1. 17.
[Simon] 챗봇개발일지 - (1) RAG 챗봇을 구축하는 과정에서 그냥 Langchain 으로 Document 로더를 통해서 , Finecon, 크로마DB 와 같은 Vector DB 로 임베딩을 한 후 코사인 시밀러 서치를 통해 값을 가져오면 끝? 간단하게 생각을 했다. 사실 아직 제대로 챗봇을 구성해보진 않았다 왜냐면 데이터가 정제가 잘 안되어있는 문제도 있을 뿐더러, 자꾸 만들지도 않고 성능개선에 대한 문제점만 생각을 했다. 처음에 랭체인의 Cookbook 을 따라 쳐보면서 클론코딩을 하면서 어느정도 라이브러리에 대한 이해도를 키웠는데 지금은 많이 이해한 상태이다. 그렇다면 우리 회사의 데이터는 다양한 파일이 존재하는데 이걸 어떻게 결합하지 그 의문이 사실 들었었다. 웹의형태도 있을거고, 그냥 문서를 로드하는 경우도 있을것이다. 그런.. 2024. 1. 11.
[LangChain] LangChain이란 무엇인가? - (1) 안녕하세요, Benjamin입니다. 최근 다시 기본을 다지기 위해서 다시한번 Langchain방식에 대해서 깊이있는 공부를 시작하였고 관련해서 공부한 내용을 순서대로 잘 정리해보려합니다. 가장먼저 LangChain의 정의부터 시작해서 Quickstart를 통한 예제 실습까지 순차적으로 진행하며 글을 추가하겠습니다. Langchain 이란? 가장 먼저 https://python.langchain.com/docs/get_started/introduction Docs사이트에 나와있는 설명을 다시 정리해보았습니다. LangChain 은 언어 모델을 기반으로 한 애플리케이션 개발을 위한 프레임워크로, 다음과 같은 특징을 갖추고 있습니다. 문맥 인식 : Langchain은 언어 모델을 다양한 문맥 소스(프롬프트 지.. 2024. 1. 10.
[Langchain] 평점기반의 맛집 RAG LLM 구축하기 안녕하세요 Simon 입니다. 이번에 소개해드릴 컨텐츠는 Langchain 을 활용해서 보다 쉽게 RAG 서비스를 구축하는 방법입니다. 다들 맛집 좋아하실텐데 평점을 얼마나 믿으시는지는 모르겠습니다. 사실 구축단계에서 한국 사람들이 아무래도 네이버라는 플랫폼을 많이쓰고 신뢰하고 정보도 많기 때문에 NAVER API 를 활용하고 싶었으나, 진짜 감촉같이 이거 조금만 api 데이터쓰면 item 이다 할만한것만 지원을 하지 않는 모습이더라구요. 그래서 더욱 범용적인 Google maps 를 활용해서 만들어보았습니다. 이전에 사실 카카오톡맵기반으로 크롤링을 해서 데이터를 구축해서 만들려고 시도를 해보았으나, 자꾸 동적페이지 다음페이지 넘어가면서 Chrome Driver 가 오류가 나는 바람에 데이터를 구축하지를.. 2023. 12. 15.
ReAct Prompting 에 대하여 최근 Yao et al., 2022의 연구에서 소개된 ReAct 프레임워크는 대규모언어모델의 사용 방식에 혁신을 가져왔습니다. 이 프레임워크는 추론 추적과 작업별 행동을 인터리브 방식으로 생성하여, 모델이 행동 계획을 유도, 추적, 업데이트하고 예외를 처리할 수 있게 합니다. ReAct의 핵심 개념 ReAct는 인간의 학습 및 의사 결정 과정에서 영감을 받아, "행동"과 "추론"의 시너지 효과를 모델링합니다. 이는 대규모언어모델이 외부 소스와 상호 작용하며 정보를 수집하고, 보다 신뢰할 수 있고 사실적인 응답을 생성하는 데 도움을 줍니다. ReAct의 장점 ReAct 프레임워크는 언어 및 의사 결정 작업에서 여러 최신 기술의 기준선을 능가하는 성능을 보여주었습니다. 특히, 인간의 해석 가능성과 대규모언어.. 2023. 12. 13.
[Langchain] RAG 멀티모달을 활용한 추론 - 이력서 첨삭 튜터 안녕하세요, 여러분. 오늘은 최근에 접한 흥미로운 프로젝트, 바로 '멀티모달 이력서 첨삭 튜터'에 대해 이야기해보려 합니다. 이 프로젝트는 GPT-4 기반의 인공지능을 활용하여 이력서 작성과 첨삭을 돕는 혁신적인 시도인데요, 그 세부 내용을 한번 살펴보겠습니다. 멀티모달 이력서 첨삭 튜터의 개발 배경 이 프로젝트의 출발점은 사람들이 널리 사용하는 인공지능 이력서 서비스에 GPT-4 기반의 기능을 추가하여 더 향상된 서비스를 제공하고자 하는 아이디어였습니다. 특히, 비전 관련 기능을 첨삭하는 부분에 초점을 맞추었죠. 이는 기존의 텍스트 중심 이력서 서비스를 한 단계 끌어올리는 시도라고 할 수 있습니다. 기능 및 사용 방법 사용자는 자신의 이력서를 PDF 형식으로 업로드하고, 이력서와 관련된 질문을 입력합니.. 2023. 11. 30.
Vector DataBase? 벡터 데이터베이스의 기본 원리 벡터 데이터베이스는 고차원 벡터 공간에서 데이터를 처리합니다. 기존의 관계형 데이터베이스가 행과 열로 데이터를 저장하는 데 반해, 벡터 데이터베이스는 데이터 포인트를 벡터로 변환하여 고차원 공간에 저장합니다. 이는 특히 복잡한 패턴 인식, 기계 학습, 이미지 및 오디오 분석 등에 유용합니다. 벡터 데이터베이스의 장점 벡터 데이터베이스의 가장 큰 장점 중 하나는 바로 속도입니다. 고차원의 데이터 검색을 빠르게 수행할 수 있으며, 이는 대규모 데이터 세트에서 유사성 검색과 같은 작업에 탁월한 성능을 나타냅니다. 또한, 스케일 아웃이 용이하여 대용량 데이터를 다루는 데 적합합니다. 유사성 검색 (Similarity Search) 유사성 검색은 벡터 데이터베이스가 매우 빠른 속도로.. 2023. 11. 9.
효과적인 AI 프롬프팅 전략을 위한 가이드 인공 지능(AI) 기술의 진화는 대화형 AI의 프롬프팅 기법에도 혁신적인 변화를 가져왔습니다. 특히 OpenAI의 GPT-4 같은 고급 모델에서는 사용자의 의도를 정확히 파악하고 적합한 결과를 도출하기 위해 구조화된 프롬프트 작성이 핵심적인 역할을 합니다. 이 글에서는 구조화된 프롬프트 작성을 위한 전략과 이를 효과적으로 활용하는 방법에 대해 설명하겠습니다. 1. 명확한 지침과 컨텍스트 제공 프롬프트는 사용자의 요구 사항을 분명하게 전달할 수 있도록 명확한 지침과 컨텍스트를 포함해야 합니다. 부정적인 표현보다는 명령문 형태로 지시를 제공하여 AI가 보다 효과적으로 행동을 이행하도록 해야 합니다. 예시: 잘못된 방식: "쓰지 마세요." 올바른 방식: "다음과 같이 작성해주세요." 2. 프롬프트 길이와 중복.. 2023. 11. 8.
728x90