본문 바로가기

전체 글49

규모 대비 성능을 크게 높인 Ai2의 오픈소스 거대 멀티모달 모델(LMM) Molmo 살펴보기 TL;DR앨런(Allen) AI 연구소와 워싱턴대가 협력하여 구축한 Ai2의 멀티모달 모델군 Molmo와 데이터셋 Pixmo가 공개되었습니다. 자체 구축한 고품질 데이터셋을 활용해 모델 크기 대비 성능을 크게 높였고, 대화형 모델에 맞게 평가 방법을 개선하여 체계적인 검증을 수행한 점이 눈에 띕니다. 무엇보다, 데이터셋을 공개한다는 것이 연구자들에게는 반갑습니다. 이번 포스트에서는 Molmo의 논문 및 블로그를 참고하여 모델 구조와 훈련 방법, 검증 결과를 간단히 살펴보겠습니다.  원문 및 데모 링크: https://molmo.allenai.org논문 링크: https://arxiv.org/abs/2409.17146  Molmo And Pixmo: Open Weights And Open Data For .. 2024. 10. 1.
Phi-3.5와 PGVector 벡터 DB를 이용한 검색증강생성(RAG) 시스템 구축하기 Phi 모델 구동 방법 참고:2024.09.22 - [🟣 AI & ML] - Microsoft의 Phi-3.5 모델 Mac Silicon 환경에서 구동하기PGVector 설치 방법 참고:2024.05.13 - [🟣 AI & ML] - 검색증강생성(RAG) - LangChain과 PGVector를 이용한 간단한 RAG 시스템 구축해보기 지난 포스트에서 Microsoft의 Phi-3.5 모델을 구동하는 법을 살펴보았습니다. 이번 포스트에서는, 이 Phi-3.5가 특정 문서의 정보를 참고하여 답변할 수 있게하는 RAG 시스템을 PGVector를 이용하여 구축해보겠습니다. 시스템의 대략적인 구조는 다음과 같습니다. RAG 시스템 구축 프로세스는 크게 두 단계로 구성됩니다. Step 1: 사전 작업 단계로, .. 2024. 9. 26.
Meta, Llama 3.2 출시: 경량 모델(1B, 3B)과 비전(Vision) 모델 공개 TL;DRMeta에서 Llama 3.2를 출시했습니다. 드디어 이미지 처리가 가능한 비전 모델이 포함되었고, Gemma나 Phi 수준의 경량 모델에 비견할 1B 및 3B 모델도 출시되었습니다. 특히, Llama 기반 앱 개발 및 배포를 간편하게 하는 Llama Stack의 출시도 눈에 띕니다. 이번 포스트에서는 먼저 Meta 공식 블로그 Llama 3.2 소개 포스트를 간단히 요약해 살펴보겠습니다.   원문 링크: https://ai.meta.com/blog/llama-3-2-connect-2024-vision-edge-mobile-devices Llama 3.2: Revolutionizing edge AI and vision with open, customizable modelsLlama 3.2: 개방.. 2024. 9. 26.
비공개 Git 저장소 파일을 로컬 환경에 내려받기(clone) Git에서 저장소를 내려받을 때, 저장소가 private으로 설정되어 있으면 저장소 clone에 보안용 토큰이 필요합니다. 이번 포스트에서는 private 저장소를 로컬로 내려받는 방법을 알아보겠습니다. 먼저, 인증을 위한 Git 토큰을 발급받아야 합니다. 로그인 후 프로필 > Settings > Developer settings > Personal access tokens > Tokens (classic) 메뉴로 진입합니다.    Generate new token을 클릭하면, 토큰 설정 메뉴가 나타납니다. 추가 인증 절차가 요구될 수 있습니다.    토큰 이름, 유효 기간, 권한 설정 등을 설정합니다. 저는 개인 프로젝트만을 위한 것이므로 대부분의 권한을 허용했습니다. 팀 프로젝트 등 보안이나 권한 제.. 2024. 9. 23.
Microsoft의 Phi-3.5 모델 Mac Silicon 환경에서 구동하기 이전 글에서 Google의 Gemma 모델을 Mac에서 구동해보았습니다. 이번 포스트에서는 Gemma와 함께 sLM으로 널리 이용되는 Microsoft의 Phi-3.5-mini 모델을 비슷한 방법으로 구동해보겠습니다. 거의 같은 구조이지만, 약간은 다른 설정을 가집니다. 2024.09.22 - [🟣 AI & ML] - Google의 Gemma 2 모델 Mac Silicon 환경에서 구동하기 Phi-3.5 모델은 지난 8월 공개되었고, 일반 sLM 모델인 Phi-3.5-mini 모델과 함께 이미지 작업이 가능한 vision 모델, MoE(Mixture of Experts) 모델을 함께 공개했습니다. 모델 규모는 3.8B으로 Gemma 2B 모델보다는 조금 더 큰 규모를 가집니다. 자세한 내용은 Micros.. 2024. 9. 22.
Google의 Gemma 2 모델 Mac Silicon 환경에서 구동하기 기존의 LLM 모델들은 CUDA 외의 다른 GPU 환경 지원을 잘 하지 않았지만, Mac의 Silicon 프로세서가 대중화되면서 Mac에서도 LLM을 사용할 수 있도록 환경이 많이 개선되었습니다. 이번 포스트에서는 Google의 Gemma 모델 중 크기가 가장 작은 2b 모델을 Mac 환경에서 구동해보고, 답변이 잘 출력되는지 간단히 테스트해보겠습니다. 먼저, 프로젝트 폴더 구성은 다음과 같이 설정할 것입니다. models 폴더 안에 모델명으로 폴더가 생성되고, 이 안에 모델 파일들이 내려받아지게 됩니다..env 파일은 보안이 필요한 Huggingface 토큰을 저장하는 용도이며, gemma-2b-it.ipynb 노트북에서 모델을 불러와 추론을 수행합니다.  myllm└───models│   └───ge.. 2024. 9. 22.
SQLAlchemy에서 automap_base 기능을 이용하여 데이터베이스 테이블을 간편히 불러오기 sqlalchemy를 이용하다보면, 데이터베이스의 테이블 구조를 python의 class 객체 형태로 매핑해준 후, 데이터에 접근하여 각종 작업을 수행해야 하는 경우가 많습니다. 예를 들면, 'User'라는 이름의 테이블을 불러오는 경우 다음과 같이 정의하곤 합니다.  class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) fullname = Column(String) password = Column(String)  하지만, 여러 테이블을 다루다보면 이러한 작업이 다소 복잡하게 느껴집니다. sqlalchemy에서는 이러한 작업 없이도 테이블을 .. 2024. 9. 20.
Amazon EC2에서 PM2와 Nginx로 JS 풀스택(백엔드/프론트엔드) 앱 배포하기 - 02 이전 포스트에서 EC2 인스턴스를 생성하고, 프로젝트 파일을 가져온 뒤 필요 모듈을 설치하고 환경 변수 설정까지 마쳤습니다.이제, pm2를 이용하여 백엔드를 먼저 실행해봅시다. pm2는 process manager 2로 node.js 앱의 프로세스를 관리하고 성능을 최적화하는 데 널리 사용되는 모듈입니다. 자동 재시작, 로드 밸런싱, 로그 관리 등 다양한 기능을 제공하여 백엔드 배포에 적합합니다.  pm2 공식 웹사이트 4. 백엔드 실행  먼저 pm2를 설치합니다. sudo npm install -g pm2  그 다음, 백엔드 파일 server.js가 포함된 api 경로로 진입하여 server.js를 pm2로 실행합니다. # cd project-folder/apipm2 start server.js  추가.. 2024. 9. 20.
Amazon EC2에서 PM2와 Nginx로 JS 풀스택(백엔드&프론트엔드) 앱 배포하기 - 01 앱을 배포하는 방법은 다양하지만, 백엔드를 함께 운영하는 앱의 경우 배포 과정에서 생각할 것이 많기 때문에 앱의 특성을 고려하여 배포 방법이나 플랫폼을 선택해야 합니다.본 포스트에서 예제로 사용할 앱의 특징은 다음과 같습니다. 백엔드와 프론트엔드 앱은 모두 JS 기반이다.앱의 용량은 크지 않다.데모 웹사이트 제작 목적이기 때문에, 높은 트래픽을 고려하지 않아도 된다.약간의 과금은 허용할 수 있다. 이와 유사한 상황이라면, Amazon EC2를 이용한 배포가 좋은 선택이 될 수 있습니다. 처음에는 데모 웹사이트 제작이 목적이기 때문에 무료로 이용할 수 있는 Vercel을 사용하려 했습니다. 이전에 개인 웹사이트 배포 시 편리하게 이용했던 기억이 있었기 때문입니다.  하지만, Vercel은 백엔드를 포함한 .. 2024. 9. 19.
OpenAI, 복잡한 작업의 추론에 특화된 'OpenAI o1' 모델 미리보기 공개 TL;DROpenAI에서 오늘 추론 특화 모델 'OpenAI o1'을 공개했습니다. 현재의 거대 언어 모델(LLM)들은 방대한 분야의 일반 지식을 학습하다보니 특정 분야의 깊이 있는 사고가 필요한 문제 해결에는 어려움을 겪는 모습을 보였습니다. OpenAI는 이러한 문제를 인식하고, 생각 사슬(Chain of thought)과 같은 알고리즘 등을 활용해 추론 능력을 특화시킨 모델을 별도의 제품 라인으로 출시했습니다. 특히, 소개 영상 중 Korean Cipher 라는 이름의 영상에서는 암호처럼 변형된 한국어를 해석해내는 재밌는 능력을 볼 수 있습니다. LLM 강의 영상에서도 보았던 OpenAI의 정형원 연구원님의 한국어 관련 영상이 보이는 것이 반갑습니다.   원문 링크:https://openai.com.. 2024. 9. 13.
Stability AI API의 Inpaint 기능으로 그림의 일부 파트만 생성하기 뛰어난 이미지 생성 성능으로 잘 알려진 diffusion 기반 이미지 생성 모델 stable diffusion은 오픈 소스로 공개되어 있기도 하지만, 모델을 운용할 인프라가 부족하다면 Stability AI 사의 API 서비스로 이용할 수 있기도 합니다. Stability AI API 서비스 페이지 API 서비스는 비용이 부과되지만, 간편하게 앱을 구축할 수 있다는 장점이 있습니다. 비용은 크레딧(credit)을 충전하는 형태이며, 10$에 1,000 크레딧을 구매할 수 있습니다. Pricing 메뉴에서 task 별 소모되는 크레딧을 볼 수 있는데, 업스케일이나 영상 생성 같은 무거운 작업이 아니라면 한 번에 4-8 크레딧 정도가 소모되는 것 같습니다. 1,000 크레딧 정도면 개인 프로젝트용으로는 충분.. 2024. 9. 9.
LangServe를 이용해 LangChain 앱을 API로 이용하기 LangChain 으로 LLM 기반 Chain 객체를 만들면, 이를 API로 구성하여 앱에서 이용하거나 원격으로 접근하여 공용으로 사용하게 할 수 있습니다. Python 기반 백엔드를 API로 구성하려면 Flask, FastAPI로 직접 구성할 수 있겠지만 LangChain에서는 이미 LangServe라고 하여 간편히 배포할 수 있는 도구를 제공합니다. LangServe 문서 LangServe는 이미 FastAPI 및 uvicorn을 기반으로 만들어져 있으므로, FastAPI에 익숙하다면 유사한 인터페이스로 이용할 수 있습니다. 본 예제에서는 OpenAI 언어 모델을 LangChain 객체로 변환한 간단한 구조의 API를 구성해볼 것입니다. 다음과 같이 langserve_server.py 라는 이름의 파.. 2024. 9. 7.