목록NLP (38)
꿈 많은 사람의 이야기
포스팅 개요AI Agent를 구현하기 위해서는 기억(Memory) 기능이 필요합니다. 주로 랭그래프(LangGraph) 예제를 보면 InMemorySaver를 사용하기도 하는데요.기존의 InMemorySaver는 프로그램이 종료되면 대화 기록이 모두 사라지는 한계가 있었습니다. 하지만 실제 서비스에서는 사용자와의 대화 내역을 영구적으로 보존하고, 언제든지 이전 대화를 이어갈 수 있어야 합니다.이번 포스팅에서는 관계형 데이터베이스(RDB)인 PostgreSQL를 활용해서 영구적인 메모리 관리를 구현하는 방법을 알아봅니다. 본 포스팅을 작성하면서 참고한 자료는 다음과 같습니다. https://langchain-ai.github.io/langgraph/concepts/memory/ OverviewPersis..
포스팅 개요본 포스팅은 거대 언어 모델(LLM)의 추론(inference) 과정에서 발생하는 심각한 메모리 병목 현상을 해결하기 위한 핵심 최적화 기법인 Grouped-Query Attention(GQA)을 소개합니다. GQA는 구글 리서치에서 제안한 기술로 기존의 표준 Attention 방식인 Multi-Head Attention(MHA)의 높은 성능은 유지하면서, 추론 속도를 극대화한 Multi-Query Attention(MQA)의 장점을 결합한 아키텍처입니다. 본 포스팅에서는 MHA에서 MQA를 거쳐 GQA에 이르기까지 Attention 메커니즘의 발전 과정을 추적하고, GQA가 어떻게 속도와 성능이라는 두 마리 토끼를 모두 잡을 수 있었는지 그 원리를 상세히 분석합니다. 또한, Llama 2, ..
포스팅 개요이번 포스팅은 구글 코랩(google colab)에서 Ollama를 사용하는 방법에 대해서 정리합니다. 아무래도 요즘은 LLM을 활용해 RAG와 같은 다양한 애플리케이션 개발을 많이 수행하게 되는데요. 이때, 로컬에 LLM을 올려두어 사용하기도 하죠. 이때 많이 사용되는 것이 Ollama인데요. 이러한 Ollama를 colab에서도 사용할 수 있고, 최근에 개인적으로 해야할 상황이 있었습니다. 따라서, 이번 글은 코랩에서 ollama을 실행해서 LLM을 사용하는 방법에 대해서 정리해볼까 합니다.포스팅 본문구글 코랩은 무료로 GPU도 사용할 수 있고, 구글 드라이브 등에 데이터를 올려둔 상태로 파이썬(Python) 개발 등을 수행할 수 있는 매우 유용한 서비스인데요. 문제는 HuggingFace..
포스팅 개요본 포스팅은 Local 환경에서 LLM을 실행시킬 때 많이 활용하는 Ollama를 스트리밍(streaming) 형태로 LLM의 응답(response)를 받는 방법에 대해서 정리한 포스팅입니다. Ollama에게 직접 request 할 때와, Python requests를 이용한 방법 그리고 PoC(Proof-of-Concept)으로 많이 활용하는 Python streamlit으로 웹 페이지를 만들었을 때 활용하는 방법을 기준으로 설명합니다.Ollama란 무엇인지는 본 포스팅에서 소개하지 않습니다. LLM을 로컬 환경에서 실행하고 서버 형태로도 배포 가능한 Ollama에 대해서 궁금하신 분들은 제 이전 포스팅이나, 다른 글들을 참고하시길 바랍니다. - Ollama란?: https://lsjsj92..
포스팅 개요본 포스팅은 LLM을 활용한 추천 시스템 논문인 TALLRec: An Effective and Efficient Tuning Framework to Align Large Language Model with Recommendation이라는 논문을 리뷰한 포스팅입니다. 글을 쓰고 있는 시점으로 300회가 넘는 인용이 있고 LLM을 추천(Recommendation) 테스크로 파인튜닝(Fine-tuning)을 한 방법을 제안하는 논문입니다. 이를 위해 LoRA 방법을 채택하였고 기존에 대규모 언어 모델(Large Language Model, LLM)이 추천 시스템 영역에 Alignment가 부족했는데, 이를 보완하여 LLM이 추천 시스템 영역으로 확장된 Large Recommendation Langu..
포스팅 개요이번 포스팅은 시간이 지날수록 중요성이 부각되고 있는 인공지능 윤리(AI 윤리, AI Ethics)에 대해서 AI 개발자의 입장에서 정리해본 생각을 작성한 포스팅입니다. 본 포스팅은 지극히 개인적인 생각과 입장을 정리한 포스팅이니, 부족한 점이 있으면 양해 부탁드리면서 피드백 주시면 좋을 것 같습니다. 또한, 본 포스팅의 내용은 당근대장(당근=당연히 대장님)님께서 주최하시는 AI 기획자 Day에서 발표한 자료를 기반으로 작성하였습니다.전체 발표 자료는 포스팅 하단에 첨부하였습니다.포스팅 본문포스팅 개요에서도 언급하였듯, 본 포스팅은 AI 윤리에 대해서 AI 개발자의 입장에서 간단하게 생각을 정리한 포스팅입니다. 부족한 한 개발자가 가지고 있는 생각을 정리한 포스팅이니, 가벼운 마음으로 봐주시면..
포스팅 개요이번 포스팅은 추천 시스템 방법 중 추천(Recommendation)을 위해 개인화를 고려한 LLM 모델 및 방법을 소개한 PALR: Personalization Aware LLMs for Recommendation 논문을 리뷰하고 정리하는 포스팅입니다.대규모 언어 모델(Large Language models, LLM)을 활용한 다양한 추천 시스템 방법들이 소개되고 있는데요. 본 논문은 LLM을 통해 사용자 정보를 추출하고 LLM에서 발생할 수 있는 할루시네이션 등을 방지할 수 있도록 후보 셋을 제공하는 등의 방법론을 제시합니다. 또한, 저자들은 추천 시스템을 수행하기 위한 LLM 파인튜닝(fine-tuning) 방법도 소개합니다. 본 논문은 저자들이 아마존 알렉사(Amazon Alexa) 소..
포스팅 개요이번 포스팅은 대규모 언어 모델(Large Language Models, LLM)을 쉽고 빠르게 배포(deploy), 추론(inference) 및 서빙(serving)할 수 있는 vLLM 라이브러리에 대해서 알아봅니다. vLLM이란 무엇이고, vLLM을 사용해서 어떻게 LLM을 배포하고 실행하는지 예제(example) 형태로 정리합니다. 결과적으로 vLLM을 사용하면 빠른 속도로 LLM들을 API 형태로 서빙 및 배포할 수 있습니다. vLLM과 관련된 글들은 아래와 같이 주제별로 분리되어 있습니다. vLLM 사용법과 소개 : 본 포스팅vLLM을 OpenAI 서버(server)로 배포하는 방법 : https://lsjsj92.tistory.com/673OpenAI 서버로 배포된 vLLM을 랭체인..
포스팅 개요본 포스팅은 추천 시스템에 대규모 언어 모델(Large Language Models, LLM)을 결합해 연구한 LlamaRec: Two-Stage Recommendation using Large Language Models for ranking이라는 논문을 읽고 정리한 포스팅입니다.본 논문은 검색 단계인 retrieval 단계와 LLM 기반으로 만든 Ranking 단계로 구성되어 Two-Stage 방법을 제안하는데요. 그 결과로 효율성도 좋은 LLM 기반 추천 시스템을 구성할 수 있었다고 합니다. 본 논문은 아래 링크에서 보실 수 있습니다.https://arxiv.org/abs/2311.02089 LlamaRec: Two-Stage Recommendation using Large Languag..
포스팅 개요이번 포스팅은 대규모 언어 모델(Large Language Model, LLM)을 개인 로컬 환경에서 실행하고 배포하기 위한 Ollama 사용법을 정리하는 포스팅입니다. Ollama를 사용하면 유명한 모델들인 LLaMA나 Mistral와 같은 LLM 모델들을 쉽게 사용할 수 있도록 로컬에서 서버 형식으로 구성할 수 있는데요. Ollama가 무엇인지, 어떻게 설치하고 사용하는지를 정리해보고자 합니다. 본 포스팅은 아래 사이트를 참고해서 작성했습니다. https://github.com/ollama/ollama https://github.com/ollama/ollama-pythonhttps://ollama.com/ https://github.com/ollama/ollama/blob/main/docs..