바퀴를 재발명하지 말라
거인의 어깨에 올라서서 더 넓은 세상을 바라보라
새로운 NLU 프로젝트를 시작함에 있어서,
LLM을 고려하는 것은 이제 필수에 가깝다고 할 수 있을 것 같다.
서로 양식이 너무 다른 다수의 문서를 전처리하다가
'와... 답 없네'라는 생각이 드는 순간 LLM을 쓰지 않을 이유가 있을까라는 생각이 들었다.
몇일간 아주 짧게 겉을 핥아 보겠다.
(출간 안한 포스트가 쌓이고 있다 이건 실시간으로 업데이트 해야겠다)))
- LLM
- 잘 알려진 GPT, LLAMA를 기반으로 파생된 파인튜닝 모델들의 사용
- Langchain
- 분명 다른 툴들도 빠르게 나오고 있지만 일단은 선두주자격인 langchain으로 빠르게 거대 언어 모델들을 사용해보자.
주의! 이글은 아직 수정중입니다. 임시 저장안하고 걍 공개
Langchain
Most easiest way
1. pip install langchain
- Ollama 벨루가 모델로 로컬에서 LLM을 잘 수행하기 위한 라이브러리가 더 있다. 근데 windows는 아직 지원 안함
- pip install llama-cpp-python
- Hardware Acceleration: readme를 잘 읽어보고 내 컴퓨터 사양을 잘 알아보고 하시면 됩니다. 근데 로컬에서 돌릴거임?
BLAS의 백엔드 설정은 여기서. GPU 잘 사용하려면 세팅. Docker 세팅도 있으니 참조.
- llama2 model download
- llama 사이트에 가셔서 다운을 요청하면,- 메일이 오고 거기 있는 링크를 통해서 git clone
- linux라면 자연스럽게 다운받으면 되고 window라면 git bash에서 download.sh 실행하면 됩니다.
- 그리고 메일에 있던 링크를 복사해서 붙여넣기 후 다운 받을 모델을 선택하면 됩니다.
- 저사양 환경이면 따지지 말고 7B
권한 요청이 없는 다양한 LLM 모델 주소
- TheBloke/Llama-2-7B-Chat-GGUF
- GGML 기법을 통해서 GPU 없이도 모델을 작동시킬 수 있습니다 -> llama.cpp가 더이상 GGML을 지원하지 않아 GGUF으로 대체되었습니다
- GPTQ, GGUF, AWQ 양자화 차이랑 사이즈는 다른 곳에서(어라 얘기하는 데가 없나? 클리앙 같은데서 좀 보이느 듯)
- TheBloke는 아래의 다른 모델의 양자화 모델도 지원하고 있습니다 찾아보시면 좋아요
- NousResearch/Llama-2-7b-chat-hf
- WizardLM
- Evol - instruct 방법으로 fine-tuning학습한 모델
- stabilityai/StableBeluga2
- Stable Diffusion으로 유명한 stabilityai입니다. 이전 모델 이름은 freewilly,
- MS의 Oraca style dataset의 파인튜닝이다. -
- 이쪽 OpenOraca 데이터셋도 히스토리가 재밌는거 같다.
- 그외 강력한 모델들
- 작은 사이즈
- SlimPajama, SwiGLU, ALiBI, Variable Sequence Length, Maximal update parameterization (muP)
- 허깅페이스에서 액세스 토큰 받기
- 질문하면 되는데 llama에서는 다음과 같은 포멧이었는데
<s>[INST] <<SYS>>
{your_system_message}
<</SYS>>
{user_message_1} [/INST] {model_reply_1}</s>
<s>[INST] {user_message_2} [/INST]
langchain은 좀 다르다. langflow라는 프로그램이 나온다니까 기다려볼가도 싶지만, 아래는 다듬어야해서 삭제
PREFIX = """Answer the following question using the given tools:"""
FORMAT_INSTRUCTIONS = """Follow this format:
Question: {input_question}
Thought: your initial thought on the question
Action: your chosen action from [{tool_names}]
Action Input: your input for the action
Observation: the action's outcome"""
SUFFIX = """Start!
Question: {input}
Thought:{agent_scratchpad}""
source
META AI LLAMA
requirements.txt
dotenv
openai
langchain
transformers
accelerate
sentencepiece
huggingface-hub
llama-cpp-python
bitsandbytes
Error log
- pip install 간 pytz(2021.1) metadata 유실 경고문
WARNING: Error parsing requirements for pytz: [Errno 2] No such file or directory: 경로/METADATA
- 간단할것 같은 문제지만 내 conda가 너무 옛날 녀석이라서 다 갈아엎게 되는 계기가 되었음. 고맙다 conda야 죽을거 같아. conda는 웬만하면 안쓰고 싶다 정말. 근데 왜 다들 열심히 쓰시나요?
- llama-cpp-python 설치 에러
- 과거의 내가 저지른 잘못으로 매일이 힘듬, 모든 꼼수들이 안되면 cmake, C++ vs tool 설치 부터 해보기
reference
파이토치 한국 사용자 모임
뉴스 하다