DEV
-
vectorDB 없이 검색api만으로 RAG app만들기DEV 2024. 11. 10. 09:45
이전글 simple RAG pipelineRAGRetrieval augmented generation (RAG: 검색 증강 생성)할루시네이션, 학습되지 않은 최신 데이터, 메모리 이슈해결RAG의 간단한 인덱싱 파이프라인 4단계원본 데이터에서 데이터 로딩(load data)큰 문서를developer-as-job.tistory.com advanced RAGRAG overviewNaive RAGhttps://developer-as-job.tistory.com/48 simple RAG pipelineRAGRetrieval augmented generation (RAG: 검색 증강 생성)할루시네이션, 학습되지 않은 최신 데이터, 메모리 이슈해결RAG의 간단한 인덱싱 파이developer-as-job.tistory..
-
advanced RAGDEV 2024. 11. 9. 10:46
RAG overviewNaive RAGhttps://developer-as-job.tistory.com/48 simple RAG pipelineRAGRetrieval augmented generation (RAG: 검색 증강 생성)할루시네이션, 학습되지 않은 최신 데이터, 메모리 이슈해결RAG의 간단한 인덱싱 파이프라인 4단계원본 데이터에서 데이터 로딩(load data)큰 문서를developer-as-job.tistory.comNaive RAG와 단점검색 - 검색자가 모든 정보를 가져오지 못하거나 잘못된 정보를 가져오는 경우 정확도와 재현율이 낮음증강 - 정보가 여러 청크에서 출처 된 경우, 정보가 분리되어 의미를 잃고 LLM을 혼란스럽게 할 수 있음. 또한 검색된 정보에서 중복 및 반복의 가능성이 매..
-
simple RAG pipelineDEV 2024. 11. 8. 21:10
RAGRetrieval augmented generation (RAG: 검색 증강 생성)할루시네이션, 학습되지 않은 최신 데이터, 메모리 이슈해결RAG의 간단한 인덱싱 파이프라인 4단계원본 데이터에서 데이터 로딩(load data)큰 문서를 작은 덩어리(chunking)로 나눕니다.청크를 고밀도 임베딩(embedding)으로 변환임베딩을 벡터 데이터베이스(load vectorDB)에 저장합니다.RAG 생성 파이프라인의 3가지 구성요소지식베이스에서 정보를 검색하는검색기(retirever)몇 번의 샷 프롬핑, 사고의 사슬 등과 같은 신속한 엔지니어링 기술을 통해 이루어지는 프롬프트 증강최종 응답 생성을 담당하는 LLM Naive RAGdata crawl → text를 chunk로 분할 → Transforme..
-
LLM 기반 챗봇 설계, 구조 변화DEV 2024. 11. 7. 21:22
많은 곳에서 LLM을 활용한 챗봇 서비스를 만들고 있는데, 챗봇 개발의 설계, 구조의 흐름이 어떻게 변하고 있는지 조사해 보자.1. LLM api만을 사용2. prompt chainingprompt chaining을 이용SequentialChain, Router Chain → Langchain여러 단계가 필요한 문제 해결과정을 프롬프트를 각 단계로 나누고, 체이닝 하여 해결하는 방식위 구조는 하나의 LLM에게 프롬프트를 여러 단계로 나눠 추론아래 구조는 하나의 제너럴 LLM이 각각 도메인 또는 역할에 맞게 파인튜닝된 LLM에게 추론하도록 하고 추론된 결과를 취합https://www.aitimes.com/news/articleView.html?idxno=153902아래 나오는 agent구조와 더 비슷해 보..
-
블록체인과 해쉬DEV 2024. 7. 21. 20:17
라이스톤태평양 한가운데 있는 미크로네시아의 얍(Yap) 섬에는 라이스톤(Rai stones)이라는 가운데가 뚫린 거대한 돌이 전통적 화폐로 사용된다.이 돌들은 가로길이가 약 3미터에 이르고 픽업트럭정도의 무게가 나간다.얍 마을에는 수십 개의 라이스톤이 흩어져 있다.사람들은 이 돌들을 갖고 다니면서 쓸 수 없기 때문에 얍 섬의 사람들은 모두가 각 돌의 주인이 누구인지를 기억하며,지난 거래에 대한 기록을 머릿속에 남긴다.예를 들어 족장의 딸이 목수에게 배 한 척을 사고자 한다면, 그녀는 자신이 소유한 라이스톤 한 개가 목수의 것이 되었다고 마을 사람들에게 알린다. 그러면 마을 사람들은 족장의 딸이 목수에게 라이스톤 한 개를 주었다고 서로 간에 말을 퍼뜨린다.다음에 목수가 다른 사람에게 그 돌을 주고 싶어 할..
-
미술과 객체지향 프로그래밍의 추상DEV 2024. 1. 27. 11:39
최초로 추상화를 그린 화가는 러시아 태생의 칸딘스키로 알려져 있다. 컴퓨터 사이언스에선 추상이란 개념을 누가 먼저 도입했는지는 알 수 없지만, 미술과 컴퓨터 사이언스에서 사용하는 추상이라는 개념은 모두 같은 단어를 사용한다. 영어는 abstract, 한자는 抽象(뺄 추, 코끼리 상) 미술과 프로그래밍에서 사용하는 추상이라는 개념은 서로 관계가 있는걸까? 미술 추상미술은 두 가지로 정의할 수 있다. 첫 번째는 미술가가 형상을 생략, 단순화, 변형시키거나 주관적인 색채를 사용한 미술을 의미한다. 두 번째는 형태로 나타낼 수 없는 것을 표현하거나, 감정, 느낌, 생각 등 눈에 보이지 않는 개념을 표현한 미술이다. 프로그래밍 프로그래밍 추상 또한 '사상'과 '일반화'라는 2가지 관점에서 정리된다. 사상은 복잡한..
-
추상 클래스, 인터페이스, 상속, 합성, 프록시/데코레이터 패턴 그리고 Spring AOPDEV 2024. 1. 20. 12:08
추상클래스와 인터페이스는 어떻게 다른가? 왜 상속보다는 합성(조합)을 사용하는가? 데코레이터 패턴, 프록시 패턴은 이들과 어떤 관계가 있는가? 추상 클래스 public abstract class Logger { private String name; private boolean enabled; private Level minPermittedLevel; //생성자 public void log(Level level, String msg) { ... doLog(level, message); } protected abstract void doLog(Level level, String msg); } public class FileLogger extends Logger { private Writer fileWrite..
-
심리적 안전과 지식공유, 강백호와 중경삼림DEV 2024. 1. 12. 22:36
지식은 형태는 없지만, 소프트 엔지니어링 조직의 가장 중요한 자산이기 때문에, 지식 공유야 말로 조직에 탄력을 불어넣어 변화에 직면했을 때 생존할 수 있도록 하는데 결정적인 역할. 어떻게 하면 조직원들이 개방적이고 정직한 지식 공유를 장려하는 문화를 만들 수 있을까? 지식은 무엇인가? 데이터는 사물이나 사건에 대한 묘사(description)이며, 가공되지 않은 상태의 사실(facts)이다. 그리고 특정한 목적을 위해 데이터가 처리되면(혹은 추상되면) 그 목적에 유용한 정보가 된다. 나아가 정보가 체계화되면 지식이 되며, 지식이 고도로 추상화되면 지혜가 된다. 知 - 알 지 知(지)라는 글자는 矢(화살 시)에 口(입 구)자를 합한 것 입(口)으로 말이나 의견이 화살(矢)처럼 정확하고 빠르게 전달되고 그것..