https://medium.com/@serranocarlosd/visualize-dataframe-changes-when-using-st-data-editor-in-streamlit-39f23e45fbb7

 

Visualize DataFrame changes when using st.data_editor in Streamlit.

The Streamlit Data Editor is a powerful widget allowing users to edit a DataFrame in the Streamlit app. Often, we need to compare changes…

medium.com

 

https://docs.streamlit.io/develop/concepts/design/dataframes

 

Streamlit Docs

Join the community Streamlit is more than just a way to make data apps, it's also a community of creators that share their apps and ideas and help each other make their work better. Please come join us on the community forum. We love to hear your questions

docs.streamlit.io

 

https://streamlit-feature-demos-data-editor-foundationdemo-bhdzga.streamlit.app/

 

Demo

This app was built in Streamlit! Check it out and visit https://streamlit.io for more awesome community apps. 🎈

streamlit-feature-demos-data-editor-foundationdemo-bhdzga.streamlit.app

 

https://discuss.streamlit.io/t/filter-data-in-data-editor/52055

 

Filter data in data_editor

Summary I´m searching for an easy solution to filter data in st.data_editor, when the df contains a huge amount of data. In my case, I load 10.000 rows (3 columns) into the st.data_editor. I want to type in e.g. “apple” and want to display only rows,

discuss.streamlit.io

 

 

1. 왜 파이썬인가

전산을 전공하고, 통신 서비스를 기획하고 협력사와 개발과 관련된 일을 하고 있는 나에게  프로그램으로 생각된 것을 구현하는 일은 아직도 흥미가 있다.

 

첫 직장부터 백엔드에서 C 언어로 월급을 받았는데,  2~3년 전에 업무로 간단한 SQL을 써야 할 일이 있었는데..구닥다리 SQL을 사용하기 싫어 파이썬을 접하면서  신세계를 맛 보았았는데.

  • C에서는 필요한 함수나 라이브러리를 직접 개발을 하였는데, 파이썬은 너무 훌륭한 오픈 소스가 많다.
  • 인공지능의 기본 알고리즘과 서비스들을 위한 생태계는 파이썬으로 부터 시작한다.

다양한 개발 언어가 있지만, '24년 파이썬 사용률은 1위이다. 사용되는 분야에 맞는 개발 언어를 사용해야 겠지만, 파이썬으로 첫 프로그래밍을 시작하면서 개념과 기능을 학습 후에 만약 다른언어를 사용해야 하다라도 쉽게 적응을 하리라 생각이 된다.

출처 : https://www.tiobe.com/tiobe-index/

 

2. 왜 "혼자 공부하는 첫 프로그래밍인가"

대학생인 아이들의 전공은 이과이다. 그런데 프로그래밍은 전혀 관심이 없다. 굳이 직장생활의 업무가 아니더라도 생각을 표현하고 확인할 수 있는 프로그래밍을 접하였으면 하는 아빠의 마음에서, 책을 골라보게 되었다.

 

프로그래밍 기본서도 있지만, 기본서도 어렵거나 두려운 비전공자를 위한 입문서 책으로 관심을 갖고 읽어 보게 되었다.

"아빠가 선택한 프로그래밍 책이니 읽고 따라 볼래? 어려운 것이 있으면 아빠에게 물어보렴"..... 이런 심정으로..

 

책은 기본 데이타 구조, 제어문, 리스트와 딕셔너리, 함수의 내용을 다루고 있습니다. 각 내용은 개념, 눈 코딩, 실제 코딩, 연습문제등으로 구성이 되어 있습니다.

 

입문자를 위해 상세하게 기술이 되어 있어..(아빠가 보기엔,, 전공자가 보기엔) 좀 지나칠정도 상세한 것이 아닌가 싶기도 하지만, 또 다른 눈높이에서는 다를 수도 있을 것 같다는 생각이 드는군요..

 

이미지는 habit.co.kr의 책 미리보기를 통해 추출했습니다 (저작권에 위배되면 삭제하겠습니다.)

 

 

그럴 때 좋은것이, 저자가 제공하는 동영상을 보면 좋겠다는 생각이 드네요.. (https://www.youtube.com/results?search_query=%ED%98%BC%EC%9E%90+%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94+%EC%B2%AB+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D)

 

인터넷 게시판이나 유트브에는 많은 파이썬 학습자료들이 있습니다. 그것도 좋지만 책을 통해서 일관된 방향으로 학습을 하고, 필요 부분은 인터넷으로 보강을 하였으면 합니다.

 

혼자 공부하는 것이 힘들다면, "혼공 학습단"에 참여하여 같이 공부하는 것도 좋은 방법인것 같습니다.

(https://hongong.hanbit.co.kr/, '24년 6월 모집 예정이라는 군요)

 

우리 애들도 이 이책으로 혼공 학습단에 참여하여, 프로그래밍의 맛을 보았으면 좋겠군요..

 

프로그래밍 도전에 머뭇거리는 우리 아이가 이 책을 통해 성장하길 기대합니다.

 

 

[한빛미디어] 혼공학습단: 혼공족의 스터디 공간

혼공학습단에 오신 것을 환영합니다! 개발하고 싶은 것을 개발하세요. 혼공시리즈와 함께라면 무엇이든 할 수 있습니다. 여러분은 성공할 운명이니까요. 자신을 한번 믿고 프로그래밍 공부를

hongong.hanbit.co.kr

 

'요즘 나는 > Books' 카테고리의 다른 글

하늘과 별과 바람과 인간  (0) 2024.02.22
'23년 독서기록  (0) 2024.01.22

0. 잘 정리가 된 글

 

https://www.itworld.co.kr/news/307189

 

“LLM 개발을 더 간편하게” 랭체인(LangChain)의 이해

대규모 언어 모델(LLM)을 위한 효과적인 프롬프트를 작성하는 데는 기술이 필요하지만 LLM 사용법은 대체로 간단하다. 반면 언어 모델을 사용한

www.itworld.co.kr

 

https://brunch.co.kr/@ywkim36/146?fbclid=IwZXh0bgNhZW0CMTEAAR319OC5XNzAqUsQQDLzkUkg4_FAlzEk85JcBZL4V933vq89KgkBd6tXnVE_aem_AUmRdSQ_sYdbSO6ij2orZen6qipd1K29FHRaqCBCcWfcJEGGjUUrKpUp0Rf3miV4pzbHoxc1UvIW_Pfm3rSGIbaw&mibextid=K35XfP

 

10분 만에 RAG 이해하기

AI의 새로운 핫 토픽 RAG(검색-증강 생성)를 설명해 드립니다. | 소프트웨어 산업에는 하루에도 수십 개의 새로운 약어와 개념이 등장합니다. 특히나 빠르게 변하는 AI 기술 같은 경우라면 더욱 말

brunch.co.kr

 

 

1. 모델 I/O는 프롬프트를 관리하고 공통 인터페이스를 통해 언어 모델을 호출하고 모델 출력에서 정보를 추출할 수 있게 해준다

 

2. 데이터 연결은 데이터를 로드, 변형, 저장 및 쿼리하기 위한 빌딩 블록을 제공한다

 

3. Chain : 구성 요소를 조합해서 하나의 파이프라인을 구성한다.

 

 

4. 메모리

메모리는 데이터를 저장하는 공간. 데이터는 대화과정에서 발생하는 데이터를 의미.
챕봇 앱은 이전 대화를 기억해야 하지만, LLM은 채팅 기록을 장ㅇ기적으로 ㅂ관하지 않는다. 

대화 내용은 다음과 같은 형태로 저장될 수 있다. 

  • Conversation Buffer: 그동안의 모든 대화를 저장한다. 대화가 길어질 수록 메모리 용량이 증가한다는 점이 단점이다.
  • Conversation Buffer Window: 마지막 k개의 대화만 저장한다. 최근 대화만 저장하기에 메모리 용량이 과도하게 늘어나지 않는다는 장점이 있지만, 이전 내용을 잊게 된다는 단점이 있다.
  • Conversation Summary: LLM을 사용하여 대화 내용을 요약하며 저장한다.
  • Conversation Summary Buffer: max_token_limit을 초과할 경우에 요약하여 저장한다. Buffer Window와 Summary의 결합이다.
  • Conversation Knowledge Graph: 대화 속 주요 entity를 추출해 지식 그래프(knowledge graph)를 생성한다.

 

https://blog.futuresmart.ai/langchain-memory-with-llms-for-advanced-conversational-ai-and-chatbots

 

Langchain Memory with LLMs for Advanced Conversational AI and Chatbots

Explore the concept and types of Langchain memory, and learn how to integrate it with Streamlit and OpenAI's GPT API to build smarter, context-aware chatbot

blog.futuresmart.ai

 

 

https://medium.com/@miloszivic99/finetuning-large-language-models-customize-llama-3-8b-for-your-needs-bfe0f43cd239#45a2

 

https://fornewchallenge.tistory.com/entry/LLAMA3-RAG-%EC%8B%9C%EC%8A%A4%ED%85%9C-AI-%EC%96%B4%EC%8B%9C%EC%8A%A4%ED%84%B4%ED%8A%B8%EB%A1%9C-10%EC%B4%88%EB%A7%8C%EC%97%90-%EC%9E%90%EB%8F%99-%EB%B3%B4%EA%B3%A0%EC%84%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0?fbclid=IwZXh0bgNhZW0CMTEAAR0S8Jj99tNYS02OV2i9HzBarxXfl4JamgACqSXQO27rSIJnWXKk_Y2KQyE_aem_AbrBa-sw_OShDPaM50W1CAAOg7p3qiD7VFpHc9A-pH0hAGMtUV68D9iTlyVd0YJcLAyzZNXWPHcro8FZw4xPeHtu

 

LLAMA3 RAG 시스템: AI 어시스턴트로 10초만에 자동 보고서 만들기

안녕하세요! 오늘은 요즘 가장 인기 있는 언어 모델, LLAMA3로 AI 어시스턴트를 만들어 보겠습니다. 이 앱은 Groq과 Phidata를 이용해서 주어진 웹 사이트나 pdf를 기반으로 "원클릭" 보고서를 작성하고

fornewchallenge.tistory.com

 

'머신러닝 > RAG' 카테고리의 다른 글

1. Local LLM에 대하여  (0) 2024.04.12
0 환경 설정 - ollama 설치  (0) 2024.04.10

Implementing RAG using Langchain Ollama and Chainlit on Windows using WSL

https://medium.aiplanet.com/implementing-rag-using-langchain-ollama-and-chainlit-on-windows-using-wsl-92d14472f15d

 

Implementing RAG using Langchain Ollama and Chainlit on Windows using WSL

What is Ollama ?

medium.aiplanet.com

 

RUN LLMs locally

PrivateGPT,llama.cpp, Ollama, GTP4All, llamafile 과 같은 다양한 프로젝트에 대한 Overview

https://python.langchain.com/docs/guides/development/local_llms/

 

LangServe + Ollama

- ollama를 통해  OpenModel를 서버에 설치하고, Remote에서 Chain을 호출한다. 한글 모델(야놀자 제공,heegye님이 변환, Teddy님의 공개 강좌)

- '24 4/12부터 이 구조를 사용하고 개발 진행함..

- Teddy님의 소개 자료 https://github.com/teddylee777/langserve_ollama?tab=readme-ov-file 

 

 

 

Ollama model 받기

1.  Hugging Face에서 받기

 

# 1. https://huggingface.co/asiansoul/KoDolph-2x8b-GGUF 에서
# 2. kodolph-2x8b-Q8_0.gguf 모델을 받는 다고 가정한다.

#1. Model 다운로드 사용법
huggingface-cli download \
  asiansoul/KoDolph-2x8b-GGUF \           #hugging face의 URL이다.
  kodolph-2x8b-Q8_0.gguf \                # files and version dir에서 받고 싶은 모델이다.
  --local-dir 본인의_컴퓨터_다운로드폴더_경로 \
  --local-dir-use-symlinks False
  
 #예시
 
 huggingface-cli download \
> asiansoul/KoDolph-2x8b-GGUF \
> kodolph-2x8b-Q8_0.gguf \
> --local-dir /workspace/home/hankh/langserve_ollama/ollama-modelfile/LLAMA3-Ko-Instruct --local-dir-use-symlinks False

#2. Modelfile 설정
#Model파일을 만들거나 Get한다. kodolph-2x8b-Q8_0.gguf는 친절하게 Modelfile_Q5_K_M 파일을 제공한다.
#내용은 확인하세요

#3. Ollama 모델 등록
ollama create Llama3-KoDolph -f ./Modelfile_Q8_K_M

#4 Ollama List 확인

ollama list

NAME                    	ID          	SIZE  	MODIFIED
EEVE-Korean-10.8B:latest	c3ebb32b93a5	7.7 GB	2 days ago
Llama3-KoDolph:latest   	915768bf8359	8.5 GB	11 seconds ago
gemma:7b-instruct       	a72c7f4d0a15	5.0 GB	12 hours ago

#5 Ollama 실행

ollama run Llama3-KoDolph

 

'머신러닝 > RAG' 카테고리의 다른 글

LLM 개발을 더 간편하게 랭체인의 이해  (0) 2024.04.14
0 환경 설정 - ollama 설치  (0) 2024.04.10

 

 

1. Install Ollama - 로컬에서 무료로 사용할 수 있는 LLM 도구, Ollama 활용 가이드


 - Ollama는 로컬에서 대형 언어 모델(LLM)을 쉽게 사용할 수 있도록 지원하는 플랫폼입니다. macOS, Windows(WSL2를 통한 설치 가능), Linux에서 간편하게 설치할 수 있으며, Docker를 지원하여 더욱 다양한 환경에서 활용 가능합니다. Ollama는 ollama run llama2와 같은 간단한 명령어로 빠르게 AI 모델과 상호작용할 수 있습니다. Llama 2, Mistral, Vicuna, LLaVa 등의 다양한 오픈 소스 모델을 지원하며, 사용자는 이들 중 필요한 모델을 선택하여 사용할 수 있습니다. 자세한 내용은 Ollama 공식 웹사이트에서 확인하실 수 있습니다.

 - Installation on Linux https://github.com/ollama/ollama/blob/main/docs/linux.md
 - # Run the most popular AI model among open licenses
     ollama run mistral
 참고 자료 : https://anpigon.tistory.com/434  

 

실해예시

 

-Ollama WebUI 설치 하기 

터미널 작업은 귀찮다. Web으로 제공된다. 참으로 대단한 사람들이 많다.

#리눅스 환경, NVIDIA GPU 사용한다. port를 설정하면 웹포트를 설정할 수 있다. 기본 포트는 3000
# Docker build
run-compose.sh --enable-gpu --webui[port=xxxx] --build
# Docker 실행
run-compose.sh --enable-gpu --webui[port=xxxx]

참고 자료  https://docs.openwebui.com/getting-started/

 

실행결과

그러나 '24 4/11부터 LangServe를 알게 된 이후부터 사용안함..

 

- LangServer + Ollama

 

(hankh) [hankh@tb-eipms-tau1 app]$ pwd
/workspace/home/hankh/langserve_ollama/app
(hankh) [hankh@tb-eipms-tau1 app]$ python server.py

 

도움 받은 글 : https://github.com/teddylee777/langserve_ollama?tab=readme-ov-file

 

 

- 랭체인으로 LLM기반의 AI서비스 개발하기

요즘 읽고 있는책이며, 소스는 아래 링크 참조

OpenAI대신 langserve_ollama로 변환하면서 적응하기...(아..가난뱅이)

https://github.com/gilbutITbook/080413

 

GitHub - gilbutITbook/080413: <랭체인으로 LLM 서비스 만들기> 소스 코드

<랭체인으로 LLM 서비스 만들기> 소스 코드. Contribute to gilbutITbook/080413 development by creating an account on GitHub.

github.com

 

2. ChatGPT를 대신하는 Ollam LLM,Chat

최종 하려는 것은 유료 OpenAI사의 Chat, LLM 대신 Ollam를 통해 무료 model을 사용한다. 유료보다는 떨어지겠지만..

LangChain학습하는데는 충분하지 않을까...

 

1. LLM모델

%config Completer.use_jedi = False  # JupyterNotebook에서 도움말 얻기..

from langchain_community.llms import Ollama
llm = Ollama(model="EEVE-Korean-10.8B")

 

2. Chat모델

# OpenAI대신 Ollama를 호출해서 학습을 한다.
# from langchain_openai import ChatOpenAI
# llm = ChatOpenAI()

from langchain_community.chat_models import ChatOllama
chatLlm = ChatOllama(model="EEVE-Korean-10.8B")

 

3. Embedding

embedding에 사용되는 모델은 좀 더 확인을 해보자

from langchain_community.embeddings import OllamaEmbeddings
embeddings = OllamaEmbeddings(model = 'EEVE-Korean-10.8B')  ## OpenAI 임베딩 대신 Ollama를 사용한다

 

 

3. NVIDIA GPU 보는법 

  • nvidia-smi
  • watch -n 1 nvidia-smi

 

https://velog.io/@claude_ssim/NVIDIA-GPU-%EB%B3%B4%EB%8A%94%EB%B2%95nvidia-smi

'머신러닝 > RAG' 카테고리의 다른 글

LLM 개발을 더 간편하게 랭체인의 이해  (0) 2024.04.14
1. Local LLM에 대하여  (0) 2024.04.12

tau1 샘플

  • 가상환경 생성
    python -m venv hankh
  • 가상환경 활성화
    source hankh/bin/activate

venv 사용 방법

  • 가상 환경 생성
    Windows: python -m venv [가상환경명]
    Linux/Mac: python3 -m venv [가상환경명]
  • 가상 환경 활성화
    Windows: [가상환경명]\Scripts\activate
    Linux/Mac: source [가상환경명]/bin/activate
  • 가상 환경 비활성화
    모든 운영체제에서: deactivate
  • 패키지 설치
    활성화된 가상 환경에서, pip install [패키지명] 명령어를 사용하여 패키지를 설치한다.
  • requirements.txt를 활용한 패키지 설치
    requirements.txt 파일 내의 패키지를 한번에 모두 설치할 때는,
    pip install -r requirements.txt 명령어를 사용하여 패키지를 설치한다.
  • 가상 환경 내 패키지 리스트 확인 및 requirements.txt 만들기
    가상환경 내 패키지 리스트 확인: pip freeze
  • 가상환경 내 패키지를 requirements.txt 만들기
    pip freeze > requirements.txt
  • 가상환경 삭제하기
    가상 환경은 결국 폴더 형태로 저장되기 때문에, 해당 폴더를 삭제하면 가상 환경도 함께 삭제된다.
    활용 예시

'FastAPI > 0 개발 환경' 카테고리의 다른 글

아나콘다 에서 가상환경 설정하기  (0) 2022.02.18

 

로직을 프로그래밍을 해야 하는 기존 방식과 달리, 머신 러닝은 결과 데이타를 이용하여 어떠한 추론 방식을 제공한다.

 

 

가장 기초적인 y=mx + b 모델의 선형회귀는 기울기(m), 절편(b)을 데이타로 부터 학습을 하게 된다. 다음 그림은 머신러닝의 일반적인 framwork이다.

1. forword pass : 임의의 m,b로 시작하여, 예측값 y_hat을 구한다.

2. cost 계산 : 예측값 y_hat 과, 실제값 y에 대한 cost 값을 구한다. 여기서 중요한 것은 모델에 따라 사용되는 cost 함수가 무엇인지 알고는 있어요 한다. 회귀에서는 MSE를 사용한다.

3. backward pass : chain rule을 이용하여, 파라미터인, m,b를 수정한다.

4. (3)을 이용하여, cost 값이 적어지는 방향으로 m,b를 적용한다. (1)의 단계로 진행한다. m,b는 (3)에서 사용하는 값을 사용한다.

 

 

아래 그림과 같은 데이타가 존재하고, 임의의 m, b로 시작한다고 가정을 한다.

 

cost가 적어지는 m,b를 chain rule을 이용하여 구하고, 이를 반복한다. 아래예는 1,000을 수행하고 있다.

Epoch 0, cost 8.57, m grad 23.2, b grad 3.6
Epoch 1, cost 4.08, m grad 14.8, b grad 1.91
Epoch 2, cost 2.25, m grad 9.49, b grad 0.831
Epoch 3, cost 1.51, m grad 6.11, b grad 0.15
Epoch 4, cost 1.2, m grad 3.96, b grad -0.28
Epoch 5, cost 1.07, m grad 2.59, b grad -0.552
Epoch 6, cost 1.01, m grad 1.72, b grad -0.723
Epoch 7, cost 0.981, m grad 1.17, b grad -0.829
Epoch 8, cost 0.962, m grad 0.82, b grad -0.894
Epoch 9, cost 0.948, m grad 0.595, b grad -0.934
Epoch 10, cost 0.936, m grad 0.452, b grad -0.957
Epoch 11, cost 0.925, m grad 0.361, b grad -0.969
Epoch 12, cost 0.915, m grad 0.302, b grad -0.975
Epoch 13, cost 0.904, m grad 0.265, b grad -0.977
Epoch 14, cost 0.894, m grad 0.241, b grad -0.976
Epoch 15, cost 0.884, m grad 0.225, b grad -0.973
Epoch 16, cost 0.874, m grad 0.214, b grad -0.969
Epoch 17, cost 0.864, m grad 0.207, b grad -0.965
Epoch 18, cost 0.854, m grad 0.202, b grad -0.96
Epoch 19, cost 0.845, m grad 0.199, b grad -0.955
Epoch 20, cost 0.835, m grad 0.196, b grad -0.95
Epoch 21, cost 0.826, m grad 0.194, b grad -0.945
Epoch 22, cost 0.817, m grad 0.192, b grad -0.939
Epoch 23, cost 0.808, m grad 0.191, b grad -0.934
Epoch 24, cost 0.799, m grad 0.189, b grad -0.929
...
Epoch 996, cost 0.0195, m grad 0.000685, b grad -0.00337
Epoch 997, cost 0.0195, m grad 0.00068, b grad -0.00335
Epoch 998, cost 0.0195, m grad 0.000677, b grad -0.00333
Epoch 999, cost 0.0195, m grad 0.000673, b grad -0.00331

 

이를 통해... 적절한 m,b를 구하게 된다.

 

머신러닝을 다시 공부할 때

  • 모델의 정의
  • 모델에 사용되는 cost function

도 같이 공부 필요하다

 

'머신러닝 > 기초수학 for ML' 카테고리의 다른 글

1. 선형대수학에 대한 단상  (0) 2024.03.02

+ Recent posts