Google VertaxAI Python SDK gemini tokenizer는 원래 공개되지 않아 token을 계산하려면 API를 사용해야 하는 번거로움이 있었다. 그래서 Google Cloud Community에 질문을 등록했다. 요는 tiktoken과 같이 token 계산을 local로 할 수있게 공개해 달라는 것이었다. token 수를 알 수 없으면 gemini-api를 사용할 때 max_token에 맞게 계속 조정해야 하기 때문에 수 차례 API를 사용해야 한다. 이런 문제를 의식했는지 token 수를 API로 활용할 수 있게 공개했지만 문제는 두 번의 API 사용도 마음에 들지 않았다. tiktoken으로 OpenAI에서는 tokenizer와 vocab을 공개해 투명하게 API 비용을 청..
[Huggingface] Model Memory Calculator, GPU 얼마면 되니?
·
🗣️ Natural Language Processing
Model Memory Calculator, GPU 얼마면 되니? llama3, gemma2, florence 등 llama1(2023.2.24)이 나온 지 벌써 1년이 넘어가는데 아직 오픈 llm의 인기는 식을 줄 모르고 있다. 아니 더 인기가 늘고 있다. 학습 파이프라인은 더욱 쉽고 견고해지고 모델 inference는 더욱 리소스 속도 다 발달하고 있다. 그런고로 나의 리소스에 맞는 모델은 무엇이고 최대치로 돌릴 수 있는 것들이 궁금할 것이다. 먼저 2b, 7b, 9b이 숫자에 대해 간단히 설명하면 모델이 학습한 parameter의 수이다. 간단히 이야기하면 모델이 표현할 수있는 경우의 수가 이만큼 많다는 것이다. 과거 BERT 모델의 단위가 3M, 5M 백만 단위라면 지금은 수십억 단위로 넘어왔..
[Ollama] Response Structure Answer
·
🛠️ Tools
Ollama + Langchain Local llm의 성능이 나날이 좋아지며 이제는 8b이상의 모델 정도면 한국어 instruction이 잘되어 CoT를 할 수 있게 되었다. 간단한 예제를 통해 이리로 저리로 튀던 LLM을 어떻게 제어하는 지 알아보자. 1. Ollama cpp 모델 중 최근에 공개된 Gemma2 사용 gemma2 모델 중 기본 모델은 9b 모델로 google에서 만든 gemma의 버전 2인 open source llm이다. 한국어도 잘해서 몇 안되는 한국어 오픈 Foundation 모델이다. google 모델의 특징이 Markdown으로 output을 받아 원하는 형태로 더 넓게 가공해 받을 수있다. from langchain_community.llms import O..
[Why] 우편 개혁(.Rowland Hill)
·
❓ Why
우편물 발신자 부담 서비스 어떻게 만들어졌나? 우편물 수취인 부담 서비스는 우편물의 발송 비용을 수취인이 부담하는 방식으로, 국제적으로 "발신자 부담 우편"이라고도 불립니다. 이 서비스는 19세기 중반에 도입되었습니다. 우편 요금을 받는 사람이 부담하는 방식이 일반적이었습니다. 그러다 보니 높은 우편 요금에 받는 사람이 돈이 없으면 편지의 1/3만 읽어주는 경우도 있고 받지 못하는 경우도 허다했습니다. 높은 우편 요금과 불편한 서비스에 불만을 가진 로랜드 힐(Roland Hill)은 우편 요금에 대한 개혁을 해야겠다 마음을 먹고 캠페인을 벌였습니다. 많은 사람들은 힐의 선언문에 타당하다는데 동의를 했습니다. 3년 동안 이루어진 대중의 압력에 정부는 결국 굴복하고 hill을 우체국 최고 책임자로 임..
[iMessage] iMessage 불러오기(.py)
·
💻 Mac
iMessage 구조 Macbook에 iphone iMessage를 동기화하면 ~/Users/Name/Library/Messages 폴더에 저장된다. 저장된 폴더를 보면 .db로 관리되는 것을 볼수있다. sqlite로 저장되며 다양한 컬럼들이 있다. 주요 테이블은 message로 text와 attributedBody에서 메세지 본문을 찾을 수 있다. 더보기- **ROWID**: 각 행(row)의 고유 식별자.- **guid**: 메시지의 전역 고유 식별자.- **text**: 메시지의 내용.- **replace**: 대체 텍스트.- **service_center**: 메시지를 처리한 서비스 센터.- **handle_id**: 메시지의 송신자 또는 수신자의 ID.- **subject**: 메시지의 주제..
[OpenAI] 모델별 지원 중단 예정 날짜, Model deprecations
·
🛠️ Tools
Model deprecations OpenAI와 같이 vectordb를 구축할 수 있게 embedding API를 지원하는 서비스가 많아졌다. 이러한 platform은 일반인들이 보유하기 어려운 GPU 자원을 해소해 주면서 저렴하게 이용할 수 있으나 크나 큰 단점이 있다. legacy model의 지원이 영원하지 않다는 것이다. 예를 들면 내가 모은 자료를 모두 vector화 시켜 vectordb를 구축하고 RAG나 RetrievalQA를 통해 질의를 했는데 잘 나오던 답변이 조금씩 틀어질 수 있다. 그 원인으로 text-embedding-ada-002로 구축해 놓은 embedding vector 값들이 text-embedding-ada-003에서는 유효하지 않아 그렇다. 따라서 이러한 일이 없으려면 t..