TIL(Today I Learned)

TIL 231124 - 잘 명령하기: 프롬프트 엔지니어링, LoRA: 비용 줄이기

https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api

 

Best practices for prompt engineering with OpenAI API | OpenAI Help Center

How to give clear and effective instructions to GPT-3 and Codex

help.openai.com


OpenAI API를 활용한 프롬프트 엔지니어링 예제들

 

 

 

 

https://discuss.pytorch.kr/t/llm-the-developers-guide-to-production-grade-llm-apps/2919?utm_source=geeknews

 

상용 수준의 LLM 애플리케이션을 위한 개발자 가이드(The Developer's Guide to Production-Grade LLM Apps)

Zapier의 AI 제품 개발자 Tal Peretz의 허락 하에 작성한 글을 번역하여 공유합니다. Tal Peretz가 작성한 원문은 아래 링크를 눌러 보실 수 있습니다. ⚠주의⚠: 이 글에는 원본 글에 포함된 저자의 새

discuss.pytorch.kr

 

"프롬프트 엔지니어링은 단순히 질문을 하는 것이 아닙니다. '제대로' 질문하는 것입니다."

Prompt engineering isn't just about asking. it's about asking well.

 

 

 

LLM의 평가 지표를 정하기가 어렵다고 생각했는데 다음과 같은 방법들이 있다.

AI의 평가로 평가 개선하기 / Refining Evaluations with AI Assessments

데이터의 양이 증가함에 따라 자동화된 지표(metric)를 사용하여 검토(review)

하지만 이는 절대적 지표는 아니고 지침 정도로 사용..

 

사람의 평가를 모범 기준으로 삼기 / Human Evaluation as the Gold Standard

AI 성능에 대한 최종적인 측정은 여전히 사람의 평가에 의존한다.

 

주관적 분석(Subjective Analysis): 자동화된 시스템이 완전히 포착하지 못할 수 있는 창의성, 유머, 사용자 관여와 같은 요소들을 평가

 

자동화된 지표의 유효성 검사(Validation of Automated Metrics): 자동화된 평가가 사람의 판단과 일치하는지, AI의 출력이 예상했던 기준을 충족하는지를 확인

 

 

LoRA: Low-Rank Adaptation of Large Language Models

 

 

PEFT(Parameter Effecient Fine-Tuning)의 기법 중 하나

 

Pre-trained model의 weight는 고정한 채로, 몇 개의 dense(fc) layer만 학습시켜 downstream task의 연산량을 줄일 수 있다. 

 

 

 

 

 

Finetuning시 모든 weight를 재학습하면 LLM은 학습에 몇달이 걸린다..

 

LoRA는 기존 pre-trained weight는 고정하고, 몇 개의 dense layer만 rank decomposition matrices를 최적화하는 방식으로 학습한다.

 

 

 

 

 

 

대부분의 경우 성능이 좋았다. 

W0는 고정하고 A, B만 학습한다. 

기존 weight (W0)는 놔두고 업데이트 되는 BA만 업데이트 하므로 메모리 오버헤드가 낮다.

 

 

 

 

 

 

 

https://github.com/Nvidia/tensorrt-llm

 

GitHub - NVIDIA/TensorRT-LLM: TensorRT-LLM provides users with an easy-to-use Python API to define Large Language Models (LLMs)

TensorRT-LLM provides users with an easy-to-use Python API to define Large Language Models (LLMs) and build TensorRT engines that contain state-of-the-art optimizations to perform inference efficie...

github.com

 

최적화된 대규모 언어 모델 추론을 위한 TensorRT 툴박스

 by NVDIA 

TensorRT-LLM은 사용자에게 대규모 언어 모델(LLM)을 정의하고 NVIDIA GPU에서 추론을 효율적으로 수행하기 위한 최첨단 최적화가 포함된 TensorRT 엔진을 구축할 수 있는 사용하기 쉬운 Python API를 제공한다.

 

 

이것저것 모델도 많이 등장하고... 개발환경도 등장하지만.... 활용할 새가 없다...ㅎㅎ