용바오의 연구실

JGI (Jaypyon General Intelligence)

한국형 언어모델 서비스의 제작: 언어모델의 토크나이저 조작

서론 언어모델은 다양한 언어를 이해하고 생성하는 데 큰 강점을 지니고 있지만, 특정 언어 환경에서 최적화가 필요할 때가 있다. Qwen2 72B Instruct 모델은 프롬프트 엔지니어링만으로도 한국어를 능숙하게 처리할 수 있지만, 일부 특정 키워드를 제대로 …

GPU 로드밸런싱 문제 해결 사례 분석

문제 상황 나는 서버에 두 개의 GPU를 보유하고 있으며, 이를 활용하여 효율적인 로드밸런싱을 구현하려는 고민을 하고 있다. 현재 서버는 동시 요청 114건을 처리하는 데 약 2분 30초가 소요되며, 이는 H800*1EA GPU 하나만 사용한 결과다. 나는 LLM 추론 A…

現職でLLMエンジニアとして感じたことを率直に書いてみる (LLM 엔지니어링을 하며 느낀점)

現職でLLMエンジニアとして感じたことを率直に書いてみると、 今年1月末に社内で新技術に関するPoCを行う組織が設立され、その部署に異動となりました。 社内では誰も私たちに期待しておらず、「すぐに無くなるチーム」という認識が非常に強かったです。 し…

DARE TIES

DARE TIES (Drop And REscale with Trim, Elect Sign & Merge)는 대형 언어 모델(LLM) 병합을 위한 고급 방법론입니다. 이 방법은 여러 모델의 가중치를 효과적으로 결합하여 성능을 유지하거나 향상시키는 것을 목표로 합니다. 각 용어의 의미와 병합 방법…

Fine tuning with ORPO

Scrap : huggingface.co ORPO is a new exciting fine-tuning technique that combines the traditional supervised fine-tuning and preference alignment stages into a single process. This reduces the computational resources and time required for …

Fine Tuning Guide

😊파인튜닝용 포맷으로 변환 indataset = [] with jsonlines.open(json_file_path) as f: for line in f.iter(): indataset.append(f'<s>[INST] {line["inputs"]} [/INST] {line["response"]} </s>') # indataset.append(f'<s>### Instruction: \n{line["inputs"]} \n\n#</s>…

ElasticSearch에서의 Lexical Search와 Nori Tokenizer의 구체적인 쓰임

예를 들어, "유통시장의"라는 텍스트가 들어오면 다음과 같이 토큰화됩니다: 유통시장의 유통 시장 의 이렇게 되면 "유통시장의"라는 전체 토큰이 인덱스에 저장되고, "유통시장"이라는 토큰은 생성되지 않습니다. 따라서 "유통시장"으로 검색했을 때 원하는…

Marlin

Marlin은 혼합 자동 회귀 선형 커널(Mixed Auto-Regressive Linear kernel)로, 이름은 지구상에서 가장 빠른 물고기 중 하나인 '청새치(Marlin)'에서 유래되었습니다. 이 커널은 대규모 언어 모델(LLM) 추론을 위해 매우 최적화된 FP16xINT4 행렬 곱셈(matmu…

요제프 슘페터의 경제이론

그 누구보다 공대생 마인드였던 슘페터 요제프 슘페터의 이론은 경제 발전과 경기 변동에 대한 독특한 접근 방식을 제공합니다. 슘페터는 특히 '기술 혁신'이 경제 변동의 주된 원인이라고 봤습니다. 이를 좀 더 쉽게 설명해 보겠습니다. 혁신의 역할: 슘페…

루카스의 경제 이론

루카스의 경제 이론은 경제주체들의 행동과 경제 변동성에 대한 이해를 깊게 해줍니다. 여기에서 '경제주체'란 개인이나 기업과 같이 경제 활동에 참여하는 모든 사람과 조직을 의미합니다. 루카스의 주장을 좀 더 쉽게 풀어서 설명하겠습니다. 합리적 기대:…

프리드만의 경제 이론

밀턴 프리드만은 경제학자로서, 그는 경제의 변동이나 경기 순환의 주요 원인 중 하나가 통화정책, 즉 정부나 중앙은행이 조절하는 돈의 양(통화량)에 있다고 보았습니다. 그의 이론을 몇 가지 주요 포인트로 나눠 설명해 보겠습니다. 통화량의 중요성: 프리…

존 메이너드 케인즈의 경제 이론

민간기업의 투자지출 변화와 경기변동: 케인즈는 경제에서 민간기업들이 투자를 늘리거나 줄일 때, 이것이 전체 경제에 큰 영향을 미치며 경기가 좋아지거나 나빠지는 원인이 된다고 보았습니다. 예를 들어, 기업들이 많이 투자하면 일자리가 생기고 경제가 …

금융 - 통화유통속도을 알아보자.

통화유통속도란 간단히 말해서, 돈이 경제 안에서 얼마나 빠르게 돌고 있는지를 나타내는 것이에요. 이걸 계산하는 방법은 나라의 총 경제 활동량(명목 GDP)을 그 나라에서 돌고 있는 돈의 총량으로 나눠서 알아봅니다. 즉, 특정 시간 동안 돈이 몇 번이나 …

금융 - 통화의 종류에 대해서 알아보자.

이 내용은 통화의 양을 측정하는 방법과 금융 상품의 유동성(즉, 현금으로 바꾸기 쉬운 정도)에 대해 설명하고 있어요. 여기서 언급된 통화지표는 크게 네 가지 유형으로 나뉘는데, 각각 다른 종류의 자산을 포함하죠. 협의통화(M1): 이것은 현금과 같이 바…

금융 - 경기순환의 개념들을 알아보자.

경기순환은 경제 활동이 일정한 패턴을 따라 오르내림을 반복하는 것을 말해요. 시계열 거시경제지표들의 변동요소: 경제를 나타내는 데이터(거시경제지표)는 크게 네 가지 변화 패턴을 보여요. 추세변동: 오랜 기간에 걸쳐 경제가 따라가는 일반적인 방향이…

금융 - 물가지수의 개념들을 알아보자.

소비자 물가지수(CPI): 이건 사람들이 평소에 살 때 드는 비용이 얼마나 변하는지를 보여주는 지표예요. 예를 들어, 먹을 것이나, 옷, 전기 같은 생활 필수품과 서비스의 가격이 오르거나 내리는 걸 측정해요. 생산자물가지수(PPI): 이건 제품이나 원자재를 …

On-Premise sLLM 개발 환경 구축 간 발생한 에러 정리

no module named ' _ctypes' libffi-devel 패키지가 없기 때문에 발생하는 오류입니다. sudo yum install libffi-devel 그 후, Python을 다시 make altinstall 하면 해결 완료. sudo make altinstall no module named ' _sqlite3' Solution. sudo yum instal…

vLLM : Efficient Memory Management for Large Language Model Serving with PagedAttention 리뷰

본 글은 https://arxiv.org/pdf/2309.06180.pdf 해당 논문을 참고하여 작성하였습니다. 대규모 언어 모델(LLMs)을 높은 처리량으로 서비스하기 위해서는 한 번에 충분히 많은 요청을 묶어서 처리하는 배치 작업이 필요합니다. 그러나 기존 시스템은 각 요청…

RAG(Retrieval-Augmented Generation)를 위한 Elastic Search Engine 구현 (부제 : Langchain으로부터 독립해보자!)

현대의 기술 진보는 많은 분야에서 눈부신 속도로 발전하고 있으며, 특히 인공지능 기술은 그 중심축을 이루고 있습니다. 인공지능의 여러 하위 영역 중에서도 언어 모델은 우리의 생활과 밀접한 관련을 가지고 있으며, 이를 활용한 서비스와 애플리케이션은…

Mac M3 Silicon 사용자를 위한 Stable Diffusion Web UI 설치 가이드

맥 사용자를 위한 메모 이 지침이 여러분에게 작동하는지, 또는 작동하지 않는지 피드백을 제공해 주시기 바랍니다. 현재 언급되지 않은 설치 문제가 있거나, 무엇인가 불명확하거나, 다른 문제가 있는 경우 알려주세요. 중요 사항 대부분의 웹 UI 기능은 ma…

20240214.Building an information retrieval app using LangChain and ElasticSearch

Origin In this short article, I will show how we used LangChain, ElasticSearch, and ChatGPT to provide our customers with a question and answering capability over their knowledge bases. Given the power of LLMs (Large Language Models), this…

RAG

RAG RAG(Retriever-Augmented Generation)는 데이터베이스에서 관련 정보를 검색(retrieve)하여 생성(generate)하는 작업을 돕는 기술입니다. 간단한 RAG 모델을 구현하기 위해, 먼저 벡터 데이터베이스와 언어 모델을 준비해야 합니다. 이 예제에서는 Faiss…

Elastic Search , 그리고 langchain

Elasticsearch를 사용하여 PDF 문서를 파싱하고, 해당 문서의 내용을 임베딩하여 검색 가능한 형태로 만드는 과정은 여러 단계를 포함합니다. 아래에는 이 과정을 구현하는 방법에 대한 개요와 예제 코드를 제공합니다. 이 예제는 Elasticsearch에 문서를 인…

독립망(내부망) K8S pause container image 부재 현상

내부망의 Harbor 레지스트리에 pause 이미지를 업로드한 후, containerd의 설정을 변경하여 이를 해결할 수 있습니다. 먼저, 인터넷이 연결된 환경에서 pause 이미지를 다운로드합니다. bash docker pull k8s.gcr.io/pause:3.1 다운로드 받은 이미지를 Harbo…

지정 노드에 파드 배포를 위한 nodeAffinity

nodeAffinity는 쿠버네티스에서 Pod가 특정 노드에 스케줄링되도록 지정하는 방법을 제공하는 기능입니다. nodeAffinity는 Pod의 스케줄링 결정에 영향을 주는 노드의 속성을 지정할 수 있습니다. nodeAffinity는 다음과 같은 두 가지 유형으로 구성됩니다: …

Kubernetes의 Kind 종류에 대한 정리

Kind: Deployment Deployment는 쿠버네티스에서 애플리케이션을 배포하고 관리하기 위한 리소스 유형입니다. 아래는 Deployment의 예시 YAML 파일입니다: apiVersion: apps/v1 kind: Deployment metadata: name: my-app-deployment spec: replicas: 3 select…

K8S概念整理

今日はこれまで整理できなかったK8S概念を整理するために、1学期休みを利用したいと思います。 Pod、Service、Persistent Volume、Persistent Volume Claimの概念 はい、Pod、Service(SVC)、Persistent Volume(PV)、Persistent Volume Claim(PVC)は、…

日本旅行

今回日本旅行行ってきました。 東京では聖地を色々回ってお祈り申し上げてきました。 神田聖堂 神田聖堂 東京カテドラル聖マリア大聖堂 留学の時の大親友達也に久々会って、千葉県にドライブ行ってきました。 海蛍と鋸山の動画です。 大仏はすごかったな~ …

K8S GPU 분석환경 구축 메모

기존 분석환경에 GPU를 추가하여 더 완벽한 분석환경을 구축하고 싶다고 생각하고 있다. POC를 개인적으로 진행하며, 간략하게 메모한다. Architecture 신규 GPU 서버 구성: 새로운 GPU 서버를 구성하기 위해 다음 단계를 수행해야 합니다: GPU가 장착된 서…

K8s on On-Premise CIrcumstances

사용되는 라이브러리 및 프로그램: 라이브러리: Calico (CNI 플러그인) 프로그램: Kubernetes (K8s), Docker 인프라 구성: 물리 서버: 각 물리 서버에 운영 체제 설치 (예: Ubuntu 20.04 LTS) 클러스터 관리 도구: Kubernetes (K8s) 설치 네트워크 구성: CNI…