Develop GenAI Apps with Gemini and Streamlit Skill Badge
evelop GenAI Apps with Gemini and Streamlit Skill Badge은 사실 Streamlit에 혹해서 시작해본 녀석이었으나 진행을 해보니 Docker build하고 deploy하는 과정이었다.
requirements.txt
처음 제공되는 requirements.txt에 2개가 빠져있는데, 아무생각없이 pip로 설치만 했다가, 나중에 docker deploy하고 나서 테스트하는 과정에서 없다고 나와서 지우고 새로 올리는 사태가 벌어졌다.
pip install google.cloud-logging
pip install vertexai
# requirements.txt에 빠진내용
pip freeze > requirements.txt
# 나중에 docker build 할 때 requirements.txt 사용된다는 점을 생각하자.
export 변수명
중요하게 사용되는것은 project와 region인데.. 물론 다 하드코딩으로 하면 전혀 문제될 것이 없겠지만, 치환해서 사용하려면, 좀 보고 주의를 기울여야 한다.
GData ananysis Module 1
[Data lifecycle]
Introduction to the data management
-
회사가 사용자에 대한 데이터를수 수집한다고 가정.
-
모든 사용자가 전체 데이터에 접근 할 수 있다면 재앙이 됨. –> Data Management
-
Data Management는 수집, 저자으 활용에 대한 명확한 계획을 수립하고 전달하는 과정
-
각 단계에 대한 처리과정을 모든 직원이 이해할수 있도록 계획수립. == 데이터 거버넌스라고도 부름.
- 원할한 협업이 보장. 문서화된 절차에 따라 데이터에 엑세스 할 수 있음으로. 데이터는 거버넌스 및 규정 준수 요구사항 내에서 유지.
- 데이터 보안 프로그램 지원. 데이터 침해나 데이터 손실을 방지하기 위한 매개변수를 설정하는데 도움.
- 명확한 절차를 갖추어 확장성을 높이는데 도움.
-
고려 핵심 측면.
PGVector
postgres를 사용하면서 개발 생성하는 user에 superuser role을 부여하지는 않았었는데, vector extension을 사용할려고 보니 부여하는게 간편하다.
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
Supported distance functions are: <-> - L2 distance <#> - (negative) inner product <=> - cosine distance <+> - L1 distance <~> - Hamming distance (binary vectors) <%> - Jaccard distance (binary vectors)
지원되는 거리측정 표현이다.
Automation Bias
GPT와 같은 도구를 사용 할 때 항상 의심하라는 생각을 하게된다.
그리고 그 의심을 전제하지 않은 사용자가 만약 지인이라면 그것을 전제 하도록 이야기 해 줘야하는 것 아닐까?
**자동화 편향(Automation Bias)**은 사람들이 자동화된 시스템(예: AI, 알고리즘, 자동화 도구 등)의 결과나 권고를 지나치게 신뢰하고, 이에 대한 비판적 사고나 추가적인 검증을 소홀히 하는 경향을 의미합니다.
📌 자동화 편향의 주요 특징
- 과도한 신뢰: 자동화 시스템이 항상 정확하고 오류가 없다고 가정하는 경향이 있음.
- 검증 부족: 사람이 직접 데이터를 확인하거나 추가적인 판단을 내리지 않고 자동화된 결과를 그대로 수용함.
- 실수 간과: 자동화 시스템이 오류를 발생시켜도 이를 인지하지 못하거나 중요하게 여기지 않음.
- 의사 결정 능력 저하: 지속적으로 자동화된 시스템에 의존하면 사람의 독립적인 사고와 판단력이 약화될 수 있음.
🚨 자동화 편향의 예시
- 의료 진단: AI 기반 진단 시스템이 잘못된 판단을 내렸을 때, 의사가 이를 검토하지 않고 그대로 환자에게 적용하는 경우.
- 자동 조종 장치: 항공기 조종사가 자동 조종 시스템을 지나치게 신뢰하여, 이상 상황에서도 직접 개입하지 않아 사고가 발생하는 경우.
- 금융 거래: 알고리즘 기반 주식 거래 시스템이 오류를 일으켜도, 투자자가 이를 믿고 추가적인 검토 없이 매매를 진행하는 경우.
✅ 자동화 편향을 줄이는 방법
- 이중 검토(Double-Checking): 자동화 시스템의 결과를 사람이 직접 검증하는 절차 마련.
- 비판적 사고 강화: 자동화된 결정이 항상 옳다고 가정하지 않고, 지속적으로 의문을 갖고 분석하는 습관 기르기.
- 교육 및 훈련: 사용자가 자동화 시스템의 한계를 이해하고 올바르게 활용할 수 있도록 교육 제공.
- 책임 분배: 중요한 의사 결정에서는 사람이 최종적으로 판단을 내리는 구조를 유지.
자동화는 효율성을 높여주지만, 맹목적으로 의존하면 오히려 문제가 될 수 있어요. 따라서 자동화 시스템을 활용하되, 항상 사람의 개입과 검증을 병행하는 것이 중요합니다. 😊
HP Envy + Freezing
리퍼로 몇 년 전인가 사서 방치하다가 개발용 머신으로 세팅해서 사용하는 녀석이 가끔 화면이 Freezing되는데, 마우스 커서는 움직이는데, 그 아래있는 화면이 응답이 없는 현상에 대해서 원인이 무엇일까 몇 달을 착고있다.
GPT에게 물어봐도 다 해본 방법밖에 없는 것을 보니. 이건 다른 문제인가 싶기도 하고.
Arch Linux에서 AMD 그래픽 카드가 멈추는(freezing) 문제를 점검하고 해결하는 방법을 정리해 보겠습니다.
🔍 1. 시스템 로그 확인 (freeze 원인 분석)
Freeze의 원인을 파악하려면 로그 확인이 필수입니다.
1.1 dmesg 로그 확인
sudo dmesg -l err,crit,alert
- 시스템 부팅 후 발생한 오류(error), 치명적(critical), 경고(alert) 메시지를 출력합니다.
amdgpu관련 오류가 있는지 확인하세요.
sudo dmesg | grep -i amdgpu
amdgpu드라이버에서 발생한 오류만 필터링할 수 있습니다.
1.2 journalctl 로그 확인
sudo journalctl -p 3 -xb
- 현재 부팅(
-b)에서 발생한 심각한(-p 3) 오류만 출력합니다. amdgpu관련 메시지가 있는지 확인하세요.
sudo journalctl -k | grep amdgpu
- 커널 로그에서
amdgpu관련 메시지만 필터링할 수 있습니다.
⚙ 2. AMD 드라이버 상태 점검
2.1 lsmod로 AMD 드라이버 확인
lsmod | grep amdgpu
amdgpu모듈이 로드되어 있어야 합니다.- 아무것도 나오지 않는다면 드라이버가 제대로 로드되지 않은 것입니다.
2.2 lspci로 GPU 확인
lspci -k | grep -A3 "VGA"
- AMD GPU가 감지되었는지 확인하세요.
- 출력 결과에서
Kernel driver in use: amdgpu가 보이면 정상적으로 로드된 것입니다.
2.3 glxinfo로 OpenGL 드라이버 확인
glxinfo | grep "OpenGL renderer string"
- AMD GPU가 제대로 사용되고 있는지 확인하세요.
- 이 명령어가 실행되지 않으면
mesa-utils를 설치하세요:sudo pacman -S mesa-utils
🔄 3. 커널 및 드라이버 문제 해결
3.1 최신 Linux 커널 또는 LTS 커널로 변경
최신 커널 사용 중인데 문제가 발생하면 LTS 커널로 변경해보세요.
tensorflow + python 3.13 + 3.12 + 3.11 +3.10
Google ML Sample을 풀어보려고 jupyter notebook에 Tensor를 설치하려고 하고 있었다.
- System에 설치된 Python 버전은 3.13
- tensorflow는 설치가 되었는데, tensorflow_hub를 살펴보니 3.12만 있다.
- 거기다가 tensorflow_text는 3.10만 있다.
- uv를 살펴보다 보니, python version을 지정해서 설치 할 수 있다.
- .python-version 파일의 버전을 수정 한 상태로 venv를 생성하면, 알아서 잘 만들어 준다.
uv python list
uv python install ***특정버전
- jupyter를 3.10에서 실행하는 방법에 대해 잠시 고민했는데, 그냥 venv환경에 jupyter를 add하고 실행하면 자연스럽다
훌륭하다.
AI. 단어들 그리고 용어들
손실함수
Transformer 모델에서 손실 함수를 사용하는 이유는 모델이 학습하는 동안 예측과 실제 값 간의 차이를 정량적으로 측정하고, 이를 바탕으로 모델을 최적화하기 위해서입니다.
Machine learning vs. Deep learning
assets/images/2025-03-18-01-01.png
Transfer model은 Deep learning model인가?
A Transformer model is a type of deep learning model designed for sequence-to-sequence tasks such as natural language processing (NLP). It was introduced in the paper “Attention Is All You Need” by Vaswani et al. (2017) and has since become the foundation for many state-of-the-art models like BERT, GPT, and T5.
tooljet + appsmith
![]() |
|---|
| tooljet과 appsmith의 메모리 사용량 |
streamlit으로 만들고있는 private quee의 관리자 페이지를 만들다가.. 이건 아닌거 같아 한눈 판 것이 NoCode Tool로 튀었다.
먼저 retool에서 화면을 하나 만들어 보고, 느리고 안정성이 부족해서 그 self-host로 찾아보다 tooljet을 가지고 열심히 세팅을 하다가, @react-oauth/google를 설치하는 부분에서 좌절하고, appsmith를 설치 해 보는데, 이 녀석 대단하다.
- 설치가 단순하다. (tooljet은 tooljet db를 exclude하는 기능을 제공하기 때문에, 우수하지만 오히려 복잡 해 질 여지를 준다.)
- 화면 정리 정돈이 잘 되어있다
- 구현은 안해봤기에 얼마나 안정적인지는 모르겠다.
그런데 저 메모리 사용량은 좀 곤란하다.
Prompt의 종류
Google Cloud Skills Boost를 따라 해 보고 있다.
Prompt를 진행하다 보니 단어가 몇 가지 보인다.
- Zero-shot prompt
- One-shot prompt
- Few-shot prompt
Podman + host.containers.internal
MPD Client에서 실제 음악 재생용으로 올려둔 MPD container를 연결 할 수 없는 현상이 벌어진다.
이게 원래 Docker에서 잘되던 것이고, (기억으로는) Podman에 올렸을 때도 잘되었던거 같은데 말이다.
이리저리 gpt에 질문을 해 봐야 별로 소득이 없다.
결국 “10.89.2.1"이라는 (잘 알려진) host ip로 바꾸고 만다.
