전체 글 107

[LLM] 기업용 특화 LLM 생성 방법

들어가기에 앞서 아래의 포스트를 참고하여 작성하였습니다. 기업용 금융 특화 LLM 모델 만들기 (1)- 필요성과 RAG 개요 2022년에 OpenAI에서 chatGPT가 발표되고 다양한 서비스 회사에서 LLM을 결합한 여러 상품들을 출시를 하였습니다. 뿐만 아니라 llama2같은 오픈소스 LLM(Open source LLM)들과 LoRA(Low-Rank Adaptation)같은 효율적인 학습방법들 덕분에 자체 LLM을 학습하는 노력도 많아지고 있습니다. 다만, 기업들이 ChatGPT나 GPT-4, PALM2, Claude2, HyperClova X, LLAMA2 같이 범용으로 사용할 수 있는 Foundation model과 같이 막대한 자본을 투입하여 개발을 진행하는 것은 어려움이 많을 뿐더러 시간과 자..

[논문 리뷰] ALMA 논문 리뷰 및 새로운 고효율 강화학습 CPO 소개

https://arxiv.org/abs/2309.11674 A Paradigm Shift in Machine Translation: Boosting Translation Performance of Large Language Models Generative Large Language Models (LLMs) have achieved remarkable advancements in various NLP tasks. However, these advances have not been reflected in the translation task, especially those with moderate model sizes (i.e., 7B or 13B parameters), which stil arxiv.org..

[LLM]llama.cpp 실행방법

양자화 추론기로 많이 사용하는 llama.cpp를 사용하는 방법을 알아보도록 하겠습니다. 저는 여기서 Upstage에서 발표한 SOLAR-10.7B를 야놀자에서 파인튜닝한 yanolja/EEVE-Korean-10.8B-v1.0 모델을 사용해보겠습니다. llama.cpp 설치 처음에는 llama.cpp를 clone한 다음 파일을 실행을 시킵니다. $ git clone https://github.com/ggerganov/llama.cpp.git $ cd llama.cpp $ make LLAMA_OPENBLAS=1 make LLAMA_OPENBLAS=1 명령어는 llama.cpp 프로젝트를 빌드할 때 OpenBLAS 라이브러리를 사용하도록 설정합니다. 이렇게 설정함으로써, llama.cpp 내부에서 수행되는 ..

[LLM]LLM 파일 형식 GGML & GGUF이란?

현재 LLM에서 혁신적인 파일 형식이 등장하였는데 GGML과 GGUF를 소개하고자 합니다. GGML 개요 GGML은 기계학습 분야에서 중요한 역할을 하는 텐서 라이브러리입니다. 이는 크기가 큰 모델과 다양한 하드웨어 환경에서 높은 성능을 발휘합니다. 장점 GPT 모델용 파일 형식으로 처음 시도된 사례입니다. 하나의 파일로 모델을 쉽게 공유하는 것이 가능합니다. 다양한 사용자가 CPU에서도 GGML 파일 실행하는 것이 가능합니다. 단점 모델의 추가적인 정보를 입력하는 것이 어렵습니다. 새로운 기능 추가 시 기존 모델과의 호환 문제가 생깁니다. 사용자가 수동적으로 설정을 변경해야 하는 어려움이 있습니다. GGML 유형 GGML_TYPE_Q2_K - 16개의 블록을 포함하는 수퍼 블록의 "유형 1" 2비트 양..

[LLM]LangChain이란 무엇인가?

LangChain이란? 최근 다양한 기업들이 LLM 서비스를 어플리케이션과 통합을 하여 사용하는 추세입니다. 이러한 과정을 편리하게 하기 위하여 랭체인(LangChain)은 노출하여 대규모 언어 모델과 애플리케이션의 통합을 간소화하는 SDK입니다. 여기서 중요한 점은 오픈AI와 같은 공급업체가 제공하는 모델 API를 사용하든, 오픈소스 모델을 앱에 사용하든 LLM 기반 애플리케이션을 구축하기 위해서는 단순히 프롬프트를 보내는 것 뿐만 아니라 다양한 작업들이 존재합니다. 예를 들어, 매개변수 조정부터 프롬프트 보강, 응답 조정, LLM은 상태를 저장하지 않으므로 대화의 이전 메시지를 기억하지 못하기 때문에 맥락 정보가 새로운 대화에서 컨텍스트를 다시 가져오기 위해 영구적인 데이터 베이스를 사용해야 할수도 ..

Andrew Ng(앤드류 응) 프롬프트 엔지니어링 강의 요약(4)

확장 확장하는 것은 짧은 텍스트를 예를 들어 지시사항이나 주제 목록을 큰 언어 모델이 생성하도록 하는 긴 텍스트, 예를 들어 이메일이나 어떤 주제에 대한 에세이를 만드는 것입니다. 이것의 좋은 사용 예는, 브레인스토밍 파트너로 큰 언어 모델을 사용하는 경우입니다. 다만, 누군가가 이를 사용하여 대량의 스팸을 생성하는 경우같이 문제가 될 수 있는 사용 사례도 있을 수 있습니다. 그래서, 큰 언어 모델의 이런 기능을 사용할 때는 책임감 있게, 그리고 사람들에게 도움이 되는 방식으로만 사용해야합니다. # given the sentiment from the lesson on "inferring", # and the original customer message, customize the email sentime..

Andrew Ng(앤드류 응) 프롬프트 엔지니어링 강의 요약(3)

추론 이번 강의에서는 추론에 관한 것에 대해 이야기를 할 예정입니다. 모델이 텍스트를 입력으로 받아서 어떤 종류의 분석을 수행하는 이런 작업을 생각해봅니다. 이것은 라벨 추출, 이름 추출이 될 수 있고, 텍스트의 감정을 이해하는 것과 같은 것입니다. 감정을 추출하려면, 긍정적인지 부정적인지, 텍스트의 일부를, 전통적인 머신러닝 작업 흐름에서는 라벨 데이터 세트를 수집하고, 훈련시키고 모델을 배포하는 방법을 찾아야 하며 클라우드에서 추론을 해야 합니다. 그리고 감정 분석이나 이름 추출 등 각각의 작업에 대해서도, 별도의 모델을 훈련시키고 배포해야 합니다. 큰 언어 모델의 좋은 점 중 하나는 이러한 많은 작업들에 대해, 단순히 프롬프트를 작성하면 거의 즉시 결과를 생성하기 시작한다는 것입니다. lamp_re..

Andrew Ng(앤드류 응) 프롬프트 엔지니어링 강의 요약(2)

앞의 강의에 이어서 작성하면 프롬프트를 작성할 때 첫 번째 프롬프트가 작동하는지 여부는 중요하지 않습니다. 가장 중요한 것은 애플리케이션에 적합한 프롬프트를 얻는 과정입니다. 머신러닝 개발에서는 종종 아이디어를 가지고 그것을 구현한다는 다이어그램을 본 적이 있을 것입니다. 즉, 코드를 작성하고, 데이터를 얻고, 모델을 훈련시키면 실험 결과를 얻을 수 있습니다. 그리고 그 출력을 보고, 오류 분석을 하거나, 어떤 부분이 작동하거나 작동하지 않는지 파악하고, 어떤 문제를 해결하려는지 또는 어떻게 접근할지에 대한 아이디어를 변경할 수도 있습니다. 그리고 구현을 변경하고 다른 실험을 실행하고, 효과적인 머신러닝 모델을 얻기 위해 반복적으로 진행합니다. 원하는 작업을 생각하고, 그 작업을 완료하기 위해 첫 번째 ..

Andrew Ng(앤드류 응) 프롬프트 엔지니어링 강의 요약(1)

최근 ChatGPT, 네이버 Clover X 등 여러 LLM, 대형 언어 모델 제품들이 큰 발전을 이루어서 여러 기업들에서 앞다퉈 개발 중입니다. 다만, ChatGPT나 CLOVER X를 사용해보면 나는 정상적인 질문(프롬프트)를 했다 생각하는데 여러 이상한 대답이 나오는 결과가 나오곤합니다. 이는 아직 ChatGPT에게 아무런 질문을 하지 않았을 때는 깔끔한 상태로 사용자가 어떻게 질문하는지에 따라서 대답의 퀄리티와 결과가 다르기 때문입니다. 여기서 인공지능 분야에서 권위있는 Andrew Ng 박사님과 OpenAI팀에 소속된 Isa Fulford님의 강좌에서 어떻게 프롬프트를 주어야 좋은 대답이 나오는지에 관한 강의를 요약해 봤습니다. Base LLM과 Instruction-tuned LLM의 차이 인..