LLM 7

서버 없는 초 저비용 rag 인프라 구상

서버 없는 초 저비용 rag 인프라 구상배경1. 얼마전 3090 중고 본체를 샀다. 나는 뭘 사면 최대한 뽑아 먹어야 한다.2. 하나의 본체로 외부의 rag 작업을 처리하면서, 내 로컬의 작업도 처리하고 싶었다.3. 3090이 여전히 좋은 GPU긴 하지만 여러 작업을 한번에 처리하는데 무리가 있다.4. 작업을 순서대로 하나 씩 처리하면 좋겠다고 생각했다.5. 작업을 순서대로? 쌓아 놓고? 머릿속에 큐가 떠올랐다. 인프라 구조 질답 서버 : 디코에서 다른 사람이 질문을 올리면 가져와서 큐에 올린다.내 로컬의 작업도 큐에 올린다.LLM 추론서버 : 큐에서 작업을 받아서 LLM 작업을 하나씩 실행한다. 이때 우선순위에 따라 디코 질문은 빠르게 처리하고, 내 로컬 작업은 우선순위를 낮게 설정한다. ( 말하자면 ..

langchain 공부 2024.09.26

생성의 의미, 인코더 디코더 모델(LLM 역사와 발전3)

생성이란?생성 모델은 새로운 데이터를 만들어내는 모델을 의미합니다.이 모델은 이미 존재하는 데이터의 분포를 학습하여, 그와 비슷한 데이터를 생성할 수 있습니다.각 데이터는 고유한 특징들을 가지고 있으며, 이러한 특징들은 잠재 벡터(latent vector)로 표현됩니다.여러 잠재 벡터가 모여 잠재 공간(latent space)을 형성하며, 생성 모델은 이 잠재 공간을 학습하여 새로운 데이터를 생성합니다.잠재 벡터(latent vector): 데이터 포인트를 숫자로 표현한 것으로, 데이터의 주요한 특징들을 담고 있습니다.잠재 공간(Latent Space) 잠재 백터의 의미잠재 공간(Latent Space)은 생성 모델과 같은 딥러닝 모델에서 중요한 개념으로, 데이터를 더 효율적으로 표현하기 위해 고차원의 ..

langchain 공부 2024.09.01

LLM 프로젝트에서 저장되는 로그의 용량이 너무 큰 문제

배경프로젝트 진행중 저장되는 로그파일 용량이 너무 큰 문제발생몇번 실행하니 용량이 무려 4기가가 넘었다.몇개의 스크립트를 실행하는 프로젝트였는데, 우선 가장 로그가 많은 스크립트(hwpx -> pdf)를 조사해봤다. log_file = os.path.join(path_daily_download, 'execution.log') logging.basicConfig( filename=log_file, level=logging.DEBUG, # 로그 레벨 설정 (DEBUG, INFO, WARNING, ERROR, CRITICAL) format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d..

로컬 llm으로 좋은 결과를 뽑아내기 위한 사투

배경 : 공고 데이터에서, 내용요약, 키워드 추출, 지원금액, 신청기간을 뽑아내는 작업을 하기로 했다.내용요약, 키워드 추출은 쉽게 해냈지만, 지원금액, 신청기간은 극악의 난이도를 자랑했다. 그 이유는 10장 내외의 pdf에서 한 군데만 있는 특정 정보(지원금액, 신청기간)를 추출해야 했기 때문이다. 로컬 LLM 프로젝트 빌딩시 어려웠던 점https://makenow90.tistory.com/44정리 : 프로젝트 하는데 실력으로 극복할수 없는(경험이 중요한) 멀티 변수 다뤄야하고, 좋은 GPU의 하드웨어 자원 그리고 아주 뛰어난 언어학적 재능까지 필요한 상황이다. 복잡해 보이지만LLM 프로젝트를 시작하기에 앞서 한가지 근본적인 질문을 던졌다."그래서 그 프로젝트 가능은 한거야?"이 질문에 대한 대답은 ..

LLM 프로젝트를 기획할 때 겪게 되는 어려운 점들

LLM 프로젝트를 진행할 때 겪게 되는 어려운 점들전문가가 없다 : 가장 중요한 부분이라 생각한다. 로컬 LLM은 비교적 최근에 도입된 개념이다. 즉 전문가라고 할만한 사람이 아직 없다. 극소수가 있다 해도  새롭게 등장한 이 기술이 실제에 어떻게 적용될수 있을지 판단하느냐. 다들 바쁘다.질문에 답할 사람도, 시간도, 자료도 없다.기술의 난립 : 랭체인, 허깅페이스, 올라마 등 플랫폼도 난립하고 있다. 또한 세계 여러 회사들이 튜닝을 거쳐 여러 모델을 내놓고 있다. 플랫폼의 선택, 모델의 선택 그 어떤것도 쉽지 않다.멀티 변수 : 코딩도 하는 방법이 다양하다지만, LLM 프로젝트로 오면 베리에이션이 훨씬 심해진다. 결과에 영향을 미치는 변수만 뽑자면 플랫폼, 언어모델, temperature, score_..

langchain 공부 2024.08.12

ValueError: Ollama call failed with status code 500. Details: {"error":"llama runner process has terminated: CUDA error\""}

배경로컬에서 언어모델 돌리는데,자꾸 실패함.문제는 재부팅하고 초기에는 돌아갈때도 있음.오류 내용ValueError: Ollama call failed with status code 500. Details: {"error":"llama runner process has terminated: CUDA error""}과정구글에는 자료가 정말 거의 없었다.GPT에서는 메모리 문제 라고 나와, 처음에는 RAM 을 조절. llm이 동작하는 운영체제의 RAM을 더 할당함똑같은 방식으로 실패함.현재 언어모델 EEVE-Korean-10.8B로 7.7기가 (용량이 더 작은 언어모델 llama3 다운받아 테스트 해봄)결과 llama3만 동작, 재부팅하고 초반에는 EEVE-Korean-10.8B도 동작하나, 다른 프로세스 동..

(window) HuggingFace의 모델(gguf) Ollama에서 쓰기

HuggingFace가 뭔데HuggingFace는 자연어 처리(NLP) 모델과 데이터셋을 공유하고 배포하는 플랫폼입니다.다양한 사전 훈련된 언어 모델(Transformers)을 제공합니다.huggingface-cli를 사용하여 모델을 쉽게 다운로드할 수 있습니다.모델 다운로드 예시: huggingface-cli download --local-dir .커뮤니티와 연구자들이 모델과 데이터를 공유하고 협업할 수 있습니다.Ollama는 뭔데Ollama는 AI 모델을 생성하고 관리하는 도구입니다.다양한 형식의 모델 파일을 사용하여 새로운 AI 모델을 생성할 수 있습니다.Modelfile을 정의하여 모델의 설정을 지정합니다.모델 생성 예시: ollama create -f .Ollama 도구는 명령어 기반으로 ..