728x90

LLM을 활용한 프롬프트 엔지니어링에 관심이 생겨 찾다가 좋은 글이 있어 스크랩!

 

원본 및 번역본

https://huyenchip.com/2023/04/11/llm-engineering.html

 

 

Building LLM applications for production

[Hacker News discussion, LinkedIn discussion, Twitter thread]

huyenchip.com

https://docs.google.com/document/d/1AR1v7p4ckJBXn4zv2saFX4ssQDKYuU2gE_aVO2QFHrs/edit#heading=h.qcfvwsgyftx6

 

Building LLM applications for production

Building LLM applications for production by Chip Huyen 원본: https://huyenchip.com/2023/04/11/llm-engineering.html 번역: DeepL + mnncat@gmail.com 최근 제가 많이 받은 질문 중 하나는 대규모 언어 모델(LLM)이 머신 러닝 워크플

docs.google.com

 

 

제목: 대규모 언어 모델(LLM) 애플리케이션을 프로덕션에 사용하기 - Chip Huyen

1부: 프롬프트 엔지니어링 제품화의 어려움
이 부분에서는 LLM을 프로덕션에 사용하기 위한 주요 도전과제들을 다룹니다.

- 자연어의 모호성: 자연어는 모호하며, 이로 인해 LLM의 출력이 예측불가능하게 됩니다.
- 프롬프트 평가: LLM은 프롬프트에 따라 다르게 반응하므로, 프롬프트를 평가하는 것이 중요합니다.
- 프롬프트 버전 관리: 프롬프트 최적화 및 수정을 위한 버전 관리 시스템이 필요합니다.
- 비용 및 지연 시간: LLM의 실행은 비용이 들고 시간이 걸립니다. 그래서 비용 효율적인 방법을 찾고, 빠른 처리를 위한 방안이 필요합니다.
- 프롬프트 vs. 파인튜닝 vs. 대안: 프롬프트 튜닝, 파인튜닝, 임베딩 및 벡터 데이터베이스와 같은 대안적인 방법들에 대해 논의합니다.

2부: 작업 결합성
이 부분에서는 여러 작업을 구성하고 복잡한 애플리케이션을 구축하기 위해 제어 흐름과 도구를 사용하는 방법을 설명합니다.

- 여러 작업으로 구성된 애플리케이션: 복잡한 애플리케이션을 구축하기 위해 여러 작업을 어떻게 결합할 것인가에 대한 방법론을 다룹니다.
- 에이전트, 도구, 제어 흐름: 애플리케이션의 다양한 부분을 조정하고 제어하는 방법에 대해 논의합니다.
- 도구 vs. 플러그인: 두 가지 접근법의 장단점을 비교합니다.
- 제어 흐름: 순차, 병렬, if, for 루프 등 다양한 제어 흐름에 대해 설명합니다.
- 에이전트 테스트하기: LLM 에이전트를 테스트하고 개선하는 방법에 대해 논의합니다.

3부: 유망한 사용 사례
이 부분에서는 LLM을 기반으로 한 애플리케이션의 사용 사례들을 살펴봅니다.

- AI 어시스턴트: AI 어시스턴트는 복잡한 작업을 자동화하고 사용자의 작업을 돕습니다.
- 챗봇: LLM 기반 챗봇은 텍스트 기반 대화를 처리하며 사용자와 상호작용합니다.
- 프로그래밍과 게임: LLM은 코드 작성이나 게임 설계와 같은 작업에서 유용하게 사용될 수 있습니다.
- 학습에 활용하기: LLM은 교육 및 학습 환경에서 많은 잠재력을 가지고 있습니다.
- 내 데이터와 대화하기: 사용자가 자신의 데이터에 직접적으로 질문하거나 대화할 수 있는 시스템을 만드는 데 LLM을 사용할 수 있습니다.
- 검색과 추천: LLM은 검색 쿼리를 이해하고 결과를 개선하는데 도움을 줄 수 있습니다.
- 세일즈: LLM은 세일즈 활동을 자동화하고 개선할 수 있습니다.
- SEO: LLM은 웹 페이지의 SEO를 향상시키는 데 도움이 될 수 있습니다.

글의 주요 결론은 LLM이 높은 잠재력을 가지고 있지만, 그것을 제품화하고 실제 환경에 배포하는 것은 여전히 많은 도전과제를 안고 있다는 것입니다.

 

Building LLM applications for production

Building LLM applications for production by Chip Huyen 원본: https://huyenchip.com/2023/04/11/llm-engineering.html 번역: DeepL + mnncat@gmail.com 최근 제가 많이 받은 질문 중 하나는 대규모 언어 모델(LLM)이 머신 러닝 워크플

docs.google.com

 

 

 

personal notes:

- distillation을 적용한 파인튜닝 - https://github.com/tatsu-lab/stanford_alpaca

 

GitHub - tatsu-lab/stanford_alpaca: Code and documentation to train Stanford's Alpaca models, and generate the data.

Code and documentation to train Stanford's Alpaca models, and generate the data. - GitHub - tatsu-lab/stanford_alpaca: Code and documentation to train Stanford's Alpaca models, and generate...

github.com

- 2021년이 그래프 데이터베이스의 해였다면, 2023년은 벡터 데이터베이스의 해입니다.

- 유망한 사용 사례:

https://docs.google.com/spreadsheets/d/1tmfn8jKb7T1x7PpyO7rD023tH2zc_WDg_OHh0aVXIrw/edit#gid=174517450

https://docs.google.com/spreadsheets/d/1GqwPo1FpAbe_awmNZW5ZMH69yc5QtEr7ZYw-ckaz_mQ/edit#gid=795016726

 

제목 없는 스프레드시트

Results Name,Project 1 Liner,Demo / Code Link / Hugging Face Spaces (Proof of Code!) Andrew Kean Gao,Twilio text service for Hindus,<a href="http://VedasGPT.org">VedasGPT.org</a> Will Brown,Hire GPT3 to sell your product ,<a href="http://magicform.ai/">mag

docs.google.com

- LLM이 데이터 분석을 대신 해줄 수 있나요? <-- 현재는 코드 인터프리터가 추가되어  가능함!

728x90

Missing Semester, 우리말로 번역하면 잃어버린, 혹은 누락된 학기라는 뜻인데,

정규과정에서 잘 다루진 않지만 필요한 내용을 모은 강의이다.

MIT에서 진행한 강의이며, 데이터 분석이나 데이터 사이언스 실무를 하면서 만나게 되는 command shell다루기,

버전 컨트롤(Git 다루기), Text Editing, SSH키 및 터미널 멀티플레싱을 사용해 원격 시스템과 작업하는 remote machine까지 공부할 때는 누락하기 쉬운 내용들을 모아두었다.

 

https://missing.csail.mit.edu/

 

The Missing Semester of Your CS Education

The Missing Semester of Your CS Education Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their

missing.csail.mit.edu

 

 

 

유명한 수업이라 한국어 페이지도 별도로 만들어져 있다!

https://missing-semester-kr.github.io/

 

여러분의 CS 교육에서 누락된 학기

여러분의 CS 교육에서 누락된 학기 CS 교과과정은 운영체제에서 기계학습에 이르기까지 CS 내의 고급 주제에 대해 모두 가르쳐 주지만, 거의 다루지 않는 중요한 한 가지 과목이 있으며, 대신 학

missing-semester-kr.github.io

 

아래 수업 동기를 읽어보면 어떤 내용이 담겨있는지 확인할 수 있다.

 

나도 몰라서 고생했던 부분이 많은데, 특히 command shell, version control(Git), remote machine 등에 대한 내용은 모델을 배포할 때, 처음에 시스템을 설정할 때 등 유용하게 쓰이는 테크닉들이다. 

아무래도 CS전공이 아닌 데이터 사이언티스트나 분석가 분들이 많이 찾는 내용이 가득할 것이다. 

 

 

--- 수업 동기:

 

왜 우리가 이 수업을 가르칠까요?

전통적인 컴퓨터 과학(CS) 교육을 듣는 동안 운영 체제, 프로그래밍 언어, 기계학습에 이르기까지 CS 내의 고급 주제들을 가르치는 많은 수업을 듣게 될 것입니다. 그러나 많은 기관에서는 거의 다루지 않고 학생들이 스스로 학습할 수 있도록 남겨진 필수적인 한 가지 주제가 있는데 바로 컴퓨터 생태계 활용 능력입니다.

지난 수 년간, 우리는 MIT에서 몇 가지 수업을 하는 것을 도왔고, 계속해서 많은 학생들이 사용하는 툴에 대한 제한된 지식을 가지고 있다는 것을 알았습니다. 컴퓨터는 수동 작업을 자동화하기 위해 만들어졌지만 학생들은 종종 손으로 반복 작업을 수행하거나 version control과 text editor와 같은 강력한 도구를 충분히 활용하지 않았습니다. 최상의 경우, 이는 비효율성과 시간 낭비를 초래하고, 최악의 경우 데이터 손실이나 특정 작업을 완료할 수 없는 등의 문제를 초래합니다.

이러한 주제들은 대학 커리큘럼의 일부로 가르치지 않습니다. 학생들은 이러한 도구들을 어떻게 사용하는지를 결코 알 수 없거나, 적어도 어떻게 효율적으로 사용하는지를 알지 못하며, 따라서 간단해야 할 과제에 시간과 노력을 낭비합니다. 표준 CS 커리큘럼은 학생들의 삶을 훨씬 더 쉽게 만들 수 있는 컴퓨팅 생태계에 대한 중요한 주제들이 빠져 있습니다.

여러분의 CS 교육에서 누락된 학기

이 문제를 해결하기 위해 우리는 효과적인 컴퓨터 과학자와 프로그래머가 되기 위해 중요하다고 생각하는 모든 주제를 다루는 수업을 운영하고 있습니다. 이 수업은 실제적이고 실용적이며, 여러분이 접하게 될 다양한 상황에서 즉시 적용할 수 있는 툴과 기술에 대한 실습 소개를 제공합니다. 이 수업은 2020년 1월 MIT의 “독립 활동 기간” 동안 운영되고 있는데, 이는 단축 수업을 위한 한 달짜리 학기입니다. 수업 자체는 MIT 학생들만 수강할 있지만 녹화된 수업 영상과 함께 모든 수업 자료를 대중에게 제공할 예정입니다.

만약 이 내용이 여러분에게 해당하는 것처럼 들린다면, 이 수업이 무엇을 가르칠 것인지에 대한 구체적인 예들이 아래에 나와 있습니다:

Command shell

별칭(aliases), 스크립트 및 빌드 시스템을 사용하여 일반 작업과 반복 작업을 자동화하는 방법에 대해 알아봅니다. 일반 문서에서 복사-붙여넣기 명령어를 더 이상 사용하지 않을 겁니다. “이 15개의 명령을 차례로 실행”을 더 이상 하지 않을 겁니다. “이것을 실행하는 방법을 잊었다”거나 “이 argument의 사용법을 잊어버렸다”는 말은 더 이상 하지 않을 겁니다.

예를 들어, 여러분의 shell history를 빠르게 검색하는 것은 엄청난 시간 절약이 될 수 있습니다. 아래와 같이 명령 변환을 위한 shell history 탐색과 관련된 몇 가지 트릭을 보여 줍니다.

Version control

Version control을 올바르게 사용하는 방법과 이를 활용하여 난관에서 여러분을 구하고, 다른 사람들과 협력하며, 문제가 있는 변경사항을 신속하게 찾아 격리하는 방법에 대해 알아봅니다. rm -rf; git clone을 수행하는 일은 더 이상 없을 겁니다. 병합 충돌은 더 이상 없을 겁니다(글쎄요, 최소한 더 적은 수라고 해야겠군요). 주석이 들어간 큰 코드 블록은 더 이상 없을 겁니다. 어떤 요소가 여러분의 코드를 깨트리는지 더 이상 애태우지 마세요. “안돼, 설마 작업 중인 코드를 삭제했나?!” 라고 더 이상 외칠 일이 없습니다. Pull requests로 다른 사람의 프로젝트에 기여하는 방법까지 알려드리겠습니다!

아래와 같이 git bisect를 사용하여 어떤 커밋이 unit test를 깨트렸는지 찾은 후에 git revert로 수정하는 것입니다.

Text editing

로컬 및 원격으로 command-line에서 파일을 효율적으로 편집하고 고급 편집기 기능을 활용하는 방법에 대해 알아봅니다. 파일을 앞뒤로 복사하는 일은 더 이상 하지 않게 될 겁니다. 반복적인 파일 편집이 더 이상 필요 없게 됩니다.

Vim 매크로는 가장 좋은 기능 중 하나인데, 아래와 같이 html 테이블을 중첩된 vim 매크로를 사용하여 csv 형식으로 빠르게 변환시킬 수 있습니다.

Remote machines

SSH 키 및 터미널 멀티플렉싱을 사용하여 원격 시스템과 작업할 때 정상적으로 유지하는 방법에 대해 알아봅니다. 두 개의 명령을 한 번에 실행하기 위해 많은 터미널을 열어둘 필요가 더 이상 없을 겁니다. 연결할 때마다 더 이상 암호를 입력하지 않아도 됩니다. 인터넷 연결이 끊겼거나 노트북을 재부팅해야 한다고 해서 모든 것을 잃을 일은 더 이상 없을 겁니다.

아래와 같이 세션을 원격 서버에서 활성 상태로 유지하기 위해 tmux를 사용하고 네트워크 로밍과 연결을 지원하기 위해 mosh를 사용합니다.

Finding files

신속하게 원하는 파일을 찾는 방법에 대해 알아 봅니다. 원하는 코드가 있는 파일을 찾을 때까지 프로젝트의 파일을 클릭하는 일은 더 이상 하지 않아도 됩니다.

아래와 같이 fd가 있는 파일과 rg가 있는 코드 스니펫을 빠르게 찾아볼 수 있습니다. 또한 fasd를 사용하여 최근/자주 사용하는 파일/폴더도 cd와 vim을 실행할 수 있습니다.

Data wrangling

Command-line에서 직접 데이터 및 파일을 빠르고 쉽게 수정, 보기, 구문 분석, 그래프 그리기 및 계산하는 방법에 대해 알아봅니다. 로그 파일에서 복사, 붙여넣기를 더 이상 하지 않아도 됩니다. 데이터에 대한 통계를 더 이상 수동으로 계산하지 않아도 됩니다. 이제는 스프레드시트에 그래프를 그리지 않아도 됩니다.

Virtual machines

가상 머신을 사용하여 새로운 운영 체제를 시도하고, 관련 없는 프로젝트를 분리하며, 주 머신을 깨끗하고 깔끔하게 유지하는 방법에 대해 알아봅니다. 보안 랩을 수행하는 동안 실수로 컴퓨터를 더 이상 손상시키지 않아도 됩니다. 버전이 다른 수백만 개의 무작위로 설치된 패키지는 더 이상 필요 없습니다.

Security

여러분의 모든 비밀을 세상에 즉시 드러내지 않고 인터넷에 접속하는 방법에 대해 알아봅니다. 너무 취약한 자신의 정보과 일치하는 비밀번호를 더 이상 사용하지 않을 겁니다. 보안되지 않은 개방형 WiFi 네트워크는 더 이상 없을 겁니다. 암호화되지 않은 메시지는 더 이상 없을 겁니다.

Conclusion

위의 내용과 더불어 더 많은 내용이 12개의 수업에서 수업 내용과 함께 연습 문제를 포함되어 있습니다. 1월을 기다릴 수 없다면 지난해 IAP 때 운영했던 Hacker Tools 강의를 살펴봐도 좋습니다. Hacker Tools는 이 수업의 선구자격로서, 같은 주제를 많이 다루고 있습니다.

728x90

 

 

https://stanford-cs329s.github.io/syllabus.html

 

CS 329S | Syllabus

 

stanford-cs329s.github.io

 

실무 경험이 없거나 적은 주니어 데이터 사이언티스트가 가장 많이 궁금해하고 알고 싶어하는 부분은 바로 본인이 한 모델링 결과를 어떻게 비즈니스에 적용하느냐에 대한 것이다.

 

물론 비즈니스 구조가 다르고, 사용하고 있는 시스템이 다르기 때문에 획일적인 답안이 존재하는 것은 아니지만

이러한 궁금증을 해소시켜줄 강의 자료가 있어 소개한다.

 

바로 스탠포드 대학의 공개 강의인 CS329s 이다.

 

Lecture note가 워낙 상세해서, Lecture note와 lecture slides만 봐도 큰 도움이 된다.

 

그리구 후반부에는 실무자들의 강연이 이어지는데,

실무에서 어떤식으로 모델링된 결과를 적용하고 모니터링하는지 아주 상세히 설명해주고 있다.

특히 아래와 같이 모니터링 코드 샘플까지 제공하고 있다!

 

모니터링 샘플 예시 - 실제로 모델링된 결과를 어떻게 활용하는지 보여줌

 

아마도 부트캠프 같은 곳에서는 실제 모델링한 결과물을 적용하는 실습을 하거나,

직간접적으로라도 경험하기 힘든 부분들이 많은데,

이런 자료를 통해 어느정도 그 니즈를 해소했으면 한다.

 

 

개인적으로 데이터 사이언티스트로서 성장하기 위해서는 MLOps라고 부르는 파트의 지식이 쌓여아 한다고 생각한다.

AI research scientist가 아닌 이상, 내가 만든 product를 보다 효율적으로 deploy하고 활용하는 방안을 고민하고, 또 필요한 경우 직접 처리 할 수 있는 skill을 배워야 한다. 이미 이러한 일들이 효과적으로 배분되어 있는 데이터팀이 있는 경우가 아니라면...(혹시 그런 팀에 있다고 하더라고 co-work을 위해^^)

 

 

 

728x90

 웨스 매키니의 "파이썬 라이브러리를 활용한 데이터 분석" 3판이 Open Access로 출간되었습니다.

 

국내에서도 번역본 (2판까지)이 출간되어 꾸준히 사랑받고 있습니다.

 

 

3판 내용이 반영된 개정판 번역본이 나올지는 모르겠지만,

3번째 에디션 원서는 Open Access로 풀려 누구나 접속해 볼 수 있습니다.

 

Python for Data Analysis, 3E (wesmckinney.com)

 

Python for Data Analysis, 3E

About the Open Edition The upcoming 3rd edition of Python for Data Analysis is available as an “Open Access” HTML version on this site https://wesmckinney.com/book in addition to the usual print and e-book formats. This is currently an Early Release ve

wesmckinney.com

 

 

2판과 내용 면에서 큰 차이는 없을 듯한데, Python, 특히 pandas 버전 문제 해결에 초점을 맞춘것 같습니다.

 

관심있는 분들께 도움이 되길 바랍니다.

 

728x90

머신러닝/딥러닝 모델을 실제로 사용하는 비즈니스가 많아지면서 

MLOps 영역도 굉장히 빠르게 성장하고 있다.

 

MLOps관련 책을 Yes24에 찾아보면,

 

위와 같은 검색결과가 나오는데, 

여기서 세번째 책인 O'Reilly의 Indtroducing MLOps가 무료로 배포되고 있다.

 

 

PDF버전 다운로드 주소: https://media-exp1.licdn.com/dms/document/C4E1FAQGn5ICc1AIF8g/feedshare-document-pdf-analyzed/0/1649378714076?e=2147483647&v=beta&t=ByhUUGbnWc4EvB4sPhmQqrTALmW837jVFz3O8KcPolA 

 

저자는 코드와 데이터가 만나면 파이프라인이 생겨난다고하는데,

이 책은 바로 그 파이프라인 생성 및 관리에 대한 책이다.

 

data scientist로 계속해서 일을 하려면 모델에 배포 뿐만 아니라,

데이터 파이프라인에 대한 기초적인 부분까지 숙지하고 있어야 한다.

특히 클라우드 환경에서 유연하고 효율적인 파이프라인을 만들고 관리하는 것이 갈수록 중요해지고 있다.

 

책 4장 내용 일부

 

159페이지 정도밖에 안되기 때문에 MLOps에 관심있는 독자라면 읽어보면 좋을 것 같다.

 

 

*위 다운로드 주소가 유효하지 않은 경우에는, 아래 주소에 방문 후 다운로드!

https://pages.dataiku.com/oreilly-introducing-mlops

 

O'Reilly Introducing MLOps

This O'Reilly ebook introduces the key concepts of MLOps.

pages.dataiku.com

 

728x90

 

 

기초 내용에 해당하는 책이지만, 무료로 공개한 책 중에 구성이나 내용이 괜찮은 책인듯 하다.

이론적인 부분을 깊게 다루진 않고, 실무나 기초적인 ML 지식(supervised learning 부분을 위주로)을 잘 전달한다.

 

내용은 2개 파트가 있는데, 두 번째 파트는 아직 공개되지 않았다.

 

저자가 낮에는 MLOps로 일하고 밤에는 튜터를 한다는데...

기초적인 내용을 잘 정리해둔 것 같아 respect!

 

https://themlsbook.com/read

 

Machine Learning Simplified

 

themlsbook.com

 

내용은 해당 페이지에서 확인 가능하다.

 

 

728x90

데이터 파이프라인 만들 일이 많아지면서 SQL을 사용하는 빈도가 조금 늘어난 듯 합니다.

 

일본 저자분이 집필한 <데이터분석을 위한 SQL 레시피>라는 책의 도움을 많이 받았었는데,

 

이 책도 comprehensive한 내용을 다루는 것 같습니다.

 

 

e-book은 LinkedIn에서 free version이 공유되고 있네요.

O-Reilly-SQL-Cookbook-2nd-Edition-Final.pdf
12.43MB

728x90

오래된 책이긴 하지만,

가볍게 읽어보고 싶다면!

the cartoon guide to statistics.pdf
5.74MB

728x90

글을 자주 올리는 블로그는 아니지만...

별도로 홍보할 곳이 없어서 올립니다^^

 

새로운 저서인 <AI 소사이어티>가 나왔습니다.

https://www.yes24.com/Product/Goods/106335672

 

AI 소사이어티 AI Society - YES24

“AI 소사이어티에 오신 것을 환영합니다!”인공지능과 공존하는 새로운 세상에서, 어떻게 적응하고 앞서갈 수 있을까?당신은 AI가 인류의 삶을 변화시켰다고 생각하는가? 만일 ‘내 삶에서 AI가

www.yes24.com

 

 

 

 

많은 관심 부탁드립니다!

 

728x90

데이터 분석 중에서 탐색적 분석(EDA), 그리고 피처 선택 (feature selection)에 대한 내용을 Google Cloud 팀에서 문서 형식으로 정리한 것 입니다. 기초적인 내용이지만 데이터 분석을 시작하는 분들에겐 유용할 듯 하여 공유합니다.

 

exploratory data analysis for feature selection in machine learning.pdf
0.67MB

+ Recent posts