Dev,Sec,Ops를 위한 LLM 및 Genai 학습
이 저장소는 무엇에 관한 것인가요?
이 레포는 LLM 및 GenAi에 대한 다양한 정보를 기존 소프트웨어 엔지니어링에서 쉽게 이해할 수 있는 수업 내러티브 로 구성하는 것을 목표로 합니다. 개발, 운영 및 보안 관점에서 이해해야 할 측면을 강조합니다. 자료가 너무 많은데도 같은 내용을 계속해서 설명하면서 내러티브를 발전시키게 됐어요.
수업은 주로 Langchain 프레임워크를 기반으로 하며 Python 프로그래밍 언어에 어느 정도 익숙할 것으로 기대합니다. 많은 예제가 문서 페이지에서 차용되었으며 가능한 경우 귀속이 표시됩니다. 많은 자료를 수집해주신 Langchain에게 감사드립니다!
수업 개요
개발자
- OpenAI를 사용하여 간단한 LLM 호출
- Langchain에서 디버깅 살펴보기
- OpenAI를 모델로 채팅
- 프롬프트 템플릿 사용
- Docloader를 사용하여 로컬 파일을 읽고 LLM을 준비합니다.
- 임베딩 계산 및 사용 설명
- 분할 및 청킹이 얼마나 중요한지 이해
- 벡터 데이터베이스에 임베딩 및 문서 로드
- 질문과 답변 체인을 활용하여 RAG 패턴(Retrieval Augmented Generation) 구현
- 실시간 정보를 찾기 위해 llm이 호출을 생성하도록 OpenAI 문서를 사용하는 방법을 보여줍니다.
- 에이전트를 구현하고 더 많은 실시간 정보를 얻을 수 있는 도구를 제공합니다.
운영
- 사용 중인 토큰의 양과 비용을 알아보세요.
- 정확한 일치 또는 임베딩을 사용하여 LLM에 대한 호출을 캐시하는 방법
- 임베딩 계산을 캐시하고 로컬에서 계산을 실행하는 방법
- 자신만의 지역 LLM을 운영하세요(Ollama 사용)
- 통화를 추적하고 파일에 기록합니다(콜백 핸들러 사용).
- 출력 구조를 JSON으로 적용하고 올바르지 않은 경우 LLM이 다시 시도하도록 합니다.
보안
- LLMS용 OWASP 상위 10개를 설명하세요.
- 간단한 프롬프트 주입이 어떻게 작동하는지와 일부 완화 전략을 보여줍니다.
- Hugginface의 타사 모델을 사용하여 신속한 주입을 감지하는 방법
- 프롬프트를 사용하여 프로젝트 삽입 감지
- llms가 제공하는 답변을 확인하고 괜찮다면 반영하세요.
- 포옹 얼굴 모델을 사용하여 LLM 출력이 유해한지 감지
- Kubernetes 및 Trivy 취약점에 대한 LLM의 의견을 묻는 간단한 프롬프트 표시
바로 https://github.com/jedi4ever/learning-llms-and-genai-for-dev-sec-ops/tree/main/lessons로 이동하세요. 앞으로 더 많은 내용이 추가될 예정입니다!
이 저장소의 역사
- 초기 수업 구조는 Techstrong/MediaOps가 정상적으로 호스팅하는 GenAI 해커톤 중에 형성되었습니다.
- 수업은 London Devops Meetup 그룹에서의 프레젠테이션을 위해 개선되었습니다.
- 다른 사람들은 자신만의 버전을 실행할 계획을 세우고 있습니다.
어떻게 도와주실 수 있나요?
강의를 듣고 싶은 주제를 알려주세요. github 이슈를 열어서 물어보세요
새로운 강의를 제출하고, 수정 사항 등을 보내 개선해 보세요.
이 저장소를 기본으로 사용하여 나만의 모임/해커톤을 실행하고 다시 보고하세요! 우리는 그러한 이야기를 듣고 싶어하며 사진이나 비디오를 보내드립니다!
@patrickdebois에게 감사의 트윗을 보내주세요.
이 저장소를 실행하기 위한 요구 사항(더 많은 사랑이 필요함)
devcontainer를 사용하여 실행
이 프로젝트에는 리포지토리를 로컬에서 실행하기 위한 devcontainer가 포함되어 있습니다. 또는 Google collab 등을 사용하여 노트북을 실행할 수 있습니다.
로컬에서 실행
- 데모를 실행하기 위해 Microsoft VSCode를 사용했습니다.
- Python 및 jupyter 노트북을 로컬에서 실행합니다.
- 우리는 가상 환경 Python 관리자로 시를 사용합니다.
Poetry는 블록의 새로운 패키지 관리자입니다. venv가 있는 Conda 또는 Pip과 유사합니다.
poetry init
poetry install --no-root
시를 사용하도록 vscode 구성
- pyenv를 사용하여 Python 3.11을 설치합니다(대부분의 예제는 3.12에서 작동함).
-
pyenv which python
가져옵니다. -
poetry env use
- 시 환경 경로 찾기
poetry env info --path
- vscode
view -> command pallete -> python: select interpreter -> enter interpreter path
-
/Users/patrick.debois/Library/Caches/pypoetry/virtualenvs/london-devops-VW7lFx7f-py3.11
경로를 추가하고 /bin/python to it
-
poetry add ipykernel
주피터 노트북 구성
- vscode 플러그인 설치
- ipykernel 설치
변경 내역
- 초기 langchain 구문이 포함된 0.1 버전
- 새로운 langchain-community, langchain-openai 및 새로운 구문에 맞게 조정된 0.2 버전