본문 바로가기

분류 전체보기53

FastAPI로 복수 파일 업로드 API 구현하기 FastAPI에서는 File, UploadFile 객체를 이용해 간편히 프론트엔드에서 업로드한 파일을 처리할 수 있습니다.다음 예제 코드는 사용자가 업로드한 파일을 특정 경로에 저장합니다. 전송받는 파일 타입을 List 형식으로 설정하여, 여러 파일을 업로드할 수 있도록 합니다.   from fastapi import FastAPI, File, UploadFile, HTTPExceptionfrom typing import Listfrom fastapi.responses import JSONResponseimport osapp = FastAPI()UPLOAD_DIR = "uploads"os.makedirs(UPLOAD_DIR, exist_ok=True)@app.post("/api/upload/")async.. 2024. 9. 6.
Pytorch, 온디바이스 LLM 구동이 가능한 torchchat 소개 TL;DRPytorch에서 torchchat이라는 LLM 프레임워크를 소개했다.이미 LLM을 연동하는 서비스는 많은데 왜?라는 생각이 들었는데, torchchat은 로컬이나 온디바이스에서의 효율적인 추론에 초점을 맞춘 것 같다.Github에서도 llama.c, 양자화와 같은 LLM 경량화 프로젝트에 영향을 많이 받았음을 언급하고 있다.본 포스트에서는 torchchat을 사용해보기 전에 Pytorch가 소개한 아티클을 살펴보도록 한다.  출처:https://pytorch.org/blog/torchchat-local-llm-inference Introducing torchchat: Accelerating Local LLM Inference on Laptop, Desktop and MobileToday, we.. 2024. 7. 31.
Google DeepMind, AI로 국제 수학 올림피아드(IMO) 은메달 수준 달성 TL; DRLLM을 이용하여 각종 정보를 요약하다보면, 가장 난관에 부딪치는 부분이 수식 파트이다. 특히 논문 정보를 요약하고자 할 때, 수식 파트에 대한 깊이 있는 해석을 얻기 힘들다.Neuro-symbolic 시스템은 이러한 수식들을 잘 이해하고, 이를 바탕으로 수학적 추론이 가능하게 학습된 모델이다. 본문에 등장하는 Goolgle DeepMind(Alphago로 유명한)의 AlphaGeometry 및 AlphaProof가 여기에 속한다.본 포스트에서는 Google DeepMind가 AlphaGeometry 및 AlphaProof로 이루어낸 최근 성과를 요약하여 소개해 본다.  * 가독성을 위해 그림 크기를 최소화 했습니다. 클릭 시 확대됩니다.출처: https://deepmind.google/dis.. 2024. 7. 26.
Mistral, 새로운 플래그십 모델 Mistral Large 2 출시 TL; DRLlama 3.1이 출시된 지 하루만에 소형 모델의 강자인 프랑스 기업 Mistral에서도 새 모델 Large 2를 발표했다.  Google I/O 하루 전날 OpenAI에서 GPT-4o를 공개했던 것이 생각나는데, AI 기업 간의 신경전이 치열해 보인다.Mistral의 새 모델은 Llama의 플래그십 모델만큼 크지는 않지만, 충분히 강력하고 실용적으로 보인다. 무엇보다, 한국어를 지원하는 것이 반갑다.공식 홈페이지의 릴리즈 노트를 먼저 살펴보자.  * 가독성을 위해 그림 크기를 최소화 했습니다. 클릭 시 확대됩니다.출처: https://mistral.ai/news/mistral-large-2407/ Large EnoughToday, we are announcing Mistral Large 2.. 2024. 7. 25.
405B 사이즈 모델을 포함한 Llama 3.1 버전 릴리즈 노트 살펴보기 TL;DRLlama 3 초기 버전 출시 후 예고되었던 405B 모델이 출시되었다. 이런 저런 업데이트를 포함하여, Llama 3.1로 발표가 되었다. 405B 모델의 성능은 공개 모델만큼 강력해보이지만, 높은 인프라 수준을 요구할 것으로 보인다. 이 외에도 각종 개발 편의성이나 안정성이 개선된 것으로 보인다. 모델을 사용해보기 전에, 먼저 공식 홈페이지의 릴리즈 노트를 살펴보자.  * 가독성을 위해 그림 크기를 최소화했습니다. 클릭 시 확대됩니다.출처: https://ai.meta.com/blog/meta-llama-3-1/ Introducing Llama 3.1: Our most capable models to dateFor this release, we evaluated performance on o.. 2024. 7. 25.
마구잡이 질문에도 강건한 RAG 시스템 만들기: Query Transformation TL;DRRAG 기반 어플리케이션은 질문 텍스트를 바탕으로 정보를 검색하기 때문에, 사용자의 무작위적인 질문 형식에 매우 취약한 시스템이다.이를 해결하기 위해 모델이 질문의 핵심 내용을 잘 인식할 수 있도록 질문을 변형하여 재구성할 수 있는데, 이를 'query transformation'라 한다.본 포스트에서는 LangChain 환경을 바탕으로 이러한 변형 방법 중 하나인 'Rewrite'를 알아보고 실제로 구현을 해보도록 한다.   Query transformation은 다양한 방법이 있지만, 이 포스트에서 소개할 방법은 'Rewrite'이다. 말 그대로 사용자 쿼리에 LLM을 한번 더 적용하여, 사용자가 알고자 하는 핵심 정보로 재작성한다. 먼저, 필요한 라이브러리들을 설치해보자. DuckDuckG.. 2024. 7. 20.
문서 내 이미지를 함께 활용할 수 있는 멀티모달(Multi-modal) RAG 시스템 만들어보기 2024.05.13 - [🟣 AI & ML] - 검색증강생성(RAG) - LangChain과 PGVector를 이용한 간단한 RAG 시스템 구축해보기 TL;DR이전 포스트에서 소개했던 일반적인 RAG 시스템은 문서의 텍스트만을 추출하여, 생성 모델의 답변에 활용합니다. 하지만, 많은 문서에서는 유용한 정보들이 텍스트가 아닌 이미지로 표현되어 있기도 합니다.이 때, 멀티모달(multi-modal) 모델을 이용하면 자연어로 문서의 이미지에 대한 검색도 수행할 수 있습니다.이번 포스트에서는 OpenAI의 멀티모달 모델, PGVector, Qdrant DB, LlamaIndex 등의 도구를 활용하여 문서의 텍스트와 이미지에 함께 질의할 수 있는 멀티모달 RAG 시스템을 구축해보겠습니다.    먼저, 아래와 같.. 2024. 6. 20.
검색증강생성(RAG) - LangChain과 PGVector를 이용한 간단한 RAG 시스템 구축해보기 TL;DR이번 포스트에서는 벡터 DB 중, pgvector를 이용하여 간단한 RAG 시스템을 구축해봅니다. pgvector는 PostgreSQL에서 확장 기능(extension)으로 사용할 수 있는 오픈소스 벡터 DB 이며, 오픈소스임에도 불구하고 상용 벡터 DB에 준하는 성능을 보여줍니다.LangChain 프레임워크 상에서, PDF 파일을 벡터로 변환하여 pgvector에 저장하고 유사 문서를 검색하는 과정까지 수행해보겠습니다.   *샘플 PDF 파일 링크: https://www.dir.ca.gov/injuredworkerguidebook/InjuredWorkerGuidebook.pdf 먼저, 필요한 라이브러리들을 설치해주어야 합니다. LangChain은 LLM 기반 어플리케이션을 구축하는 데에 널리 .. 2024. 5. 13.