제퍼넷 로고

로컬 CPU에서 소규모 언어 모델을 실행하는 7단계 – KDnuggets

시간

로컬 CPU에서 소규모 언어 모델을 실행하는 7단계
이미지로 Freepik

언어 모델은 자연어 처리 분야에 혁명을 일으켰습니다. GPT-3과 같은 대규모 모델이 헤드라인을 장식했지만 소규모 언어 모델도 유리하고 다양한 애플리케이션에 액세스할 수 있습니다. 이 기사에서는 모든 구현 단계를 자세히 설명하면서 소규모 언어 모델의 중요성과 사용 사례를 살펴보겠습니다. 

작은 언어 모델은 더 큰 언어 모델의 압축 버전입니다. 그들은 몇 가지 장점을 제공합니다. 장점 중 일부는 다음과 같습니다.

  1. 효율성 : 대형 모델에 비해 소형 모델은 계산 능력이 덜 필요하므로 리소스가 제한된 환경에 적합합니다.
  2. 속도 : 주어진 입력을 기반으로 텍스트를 더 빠르게 생성하는 등 계산을 더 빠르게 수행할 수 있어 일일 트래픽이 많은 실시간 애플리케이션에 이상적입니다.
  3. 사용자 지정 : 도메인별 작업에 대한 요구 사항에 따라 소규모 모델을 미세 조정할 수 있습니다.
  4. 개인 정보 : 더 작은 모델은 외부 서버 없이 사용할 수 있으므로 데이터 개인 정보 보호 및 무결성이 보장됩니다.

 

로컬 CPU에서 소규모 언어 모델을 실행하는 7단계
작성자 별 이미지
 

소규모 언어 모델의 여러 사용 사례에는 챗봇, 콘텐츠 생성, 감정 분석, 질문 답변 등이 포함됩니다.

소규모 언어 모델 작업에 대해 자세히 알아보기 전에 필요한 라이브러리 및 종속성 설치를 포함하는 환경을 설정해야 합니다. 로컬 CPU에서 언어 모델을 구축하려면 올바른 프레임워크와 라이브러리를 선택하는 것이 중요합니다. 인기 있는 선택에는 TensorFlow 및 PyTorch와 같은 Python 기반 라이브러리가 있습니다. 이러한 프레임워크는 기계 학습 및 딥 러닝 기반 애플리케이션을 위해 사전 구축된 다양한 도구와 리소스를 제공합니다.

필수 라이브러리 설치

이 단계에서는 “llama-cpp-python” 및 ctransformers 라이브러리를 설치하여 소규모 언어 모델을 소개합니다. 설치하려면 터미널을 열고 다음 명령을 실행해야 합니다. 다음 명령을 실행하는 동안 시스템에 Python과 pip가 설치되어 있는지 확인하십시오.

pip install llama-cpp-python
pip install ctransformers -q

 

출력:

 

로컬 CPU에서 소규모 언어 모델을 실행하는 7단계
로컬 CPU에서 소규모 언어 모델을 실행하는 7단계

이제 환경이 준비되었으므로 로컬에서 사용할 수 있도록 사전 훈련된 소규모 언어 모델을 얻을 수 있습니다. 소규모 언어 모델의 경우 변환기와 같은 복잡한 모델보다 계산 집약도가 낮은 LSTM 또는 GRU와 같은 간단한 아키텍처를 고려할 수 있습니다. 사전 훈련된 단어 임베딩을 사용하여 훈련 시간을 줄이면서 모델 성능을 향상시킬 수도 있습니다. 하지만 빠른 작업을 위해 웹에서 사전 훈련된 모델을 다운로드하겠습니다. 

사전 훈련된 모델 다운로드

Hugging Face(https://huggingface.co/models). 다음은 제공되는 모델의 시퀀스를 쉽게 관찰할 수 있는 웹사이트의 간략한 둘러보기입니다. 이 모델은 오픈 소스이므로 애플리케이션에 로그인하여 쉽게 다운로드할 수 있습니다.

 

로컬 CPU에서 소규모 언어 모델을 실행하는 7단계
 

이 링크에서 필요한 모델을 쉽게 다운로드하고 나중에 사용할 수 있도록 로컬 디렉터리에 저장할 수 있습니다.

from ctransformers import AutoModelForCausalLM

위 단계에서는 Hugging Face의 사전 훈련된 모델을 완성했습니다. 이제 해당 모델을 환경에 로드하여 사용할 수 있습니다. 아래 코드의 ctransformers 라이브러리에서 AutoModelForCausalLM 클래스를 가져옵니다. 이 클래스는 인과 언어 모델링을 위한 모델을 로드하고 작업하는 데 사용할 수 있습니다.

 

로컬 CPU에서 소규모 언어 모델을 실행하는 7단계
이미지 출처 : 중급
 

# Load the pretrained model
llm = AutoModelForCausalLM.from_pretrained('TheBloke/Llama-2-7B-Chat-GGML', model_file = 'llama-2-7b-chat.ggmlv3.q4_K_S.bin' )

 
출력:

 

로컬 CPU에서 소규모 언어 모델을 실행하는 7단계

소규모 언어 모델은 특정 요구 사항에 따라 미세 조정할 수 있습니다. 실제 애플리케이션에서 이러한 모델을 사용해야 하는 경우 기억해야 할 가장 중요한 것은 효율성과 확장성입니다. 따라서 작은 언어 모델을 큰 언어 모델에 비해 효율적으로 만들려면 컨텍스트 크기와 일괄 처리(빠른 계산을 위해 데이터를 더 작은 일괄 처리로 분할)를 조정하면 확장성 문제도 극복할 수 있습니다. 

컨텍스트 크기 수정

컨텍스트 크기는 모델이 고려하는 텍스트의 양을 결정합니다. 필요에 따라 컨텍스트 크기 값을 선택할 수 있습니다. 이 예에서는 이 하이퍼파라미터의 값을 128개의 토큰으로 설정합니다. 

model.set_context_size(128)

효율성을 위한 일괄 처리

일괄 처리 기술을 도입하면 여러 데이터 세그먼트를 동시에 처리할 수 있어 쿼리를 병렬로 처리하고 대규모 사용자 집합을 위해 애플리케이션을 확장하는 데 도움이 됩니다. 그러나 배치 크기를 결정하는 동안 시스템 성능을 주의 깊게 확인해야 합니다. 그렇지 않으면 시스템이 과부하로 인해 문제를 일으킬 수 있습니다.

model.set_batch_size(16)

이 단계까지 모델을 만들고, 해당 모델을 조정하고, 저장하는 작업이 완료되었습니다. 이제 용도에 따라 신속하게 테스트하고 예상한 것과 동일한 출력을 제공하는지 확인할 수 있습니다. 이제 몇 가지 입력 쿼리를 제공하고 로드 및 구성된 모델을 기반으로 텍스트를 생성해 보겠습니다.

for word in llm('Explain something about Kdnuggets', stream = True): print(word, end='')

 
출력:

 

로컬 CPU에서 소규모 언어 모델을 실행하는 7단계

소규모 언어 모델에서 대부분의 입력 쿼리에 대해 적절한 결과를 얻으려면 다음 사항을 고려할 수 있습니다. 

  1. 미세 조정: 애플리케이션이 높은 성능을 요구하는 경우, 즉 쿼리 출력을 훨씬 더 짧은 시간 내에 해결해야 하는 경우 모델을 훈련하는 자료인 특정 데이터 세트에서 모델을 미세 조정해야 합니다.
  2. 캐싱 : 캐싱 기술을 이용하면 사용자를 기준으로 자주 사용하는 데이터를 RAM에 저장하여 사용자가 해당 데이터를 다시 요구할 때 상대적으로 더 많은 시간이 소요되는 디스크에서 다시 가져오는 대신 쉽게 제공할 수 있습니다. 결과를 생성하여 향후 요청 속도를 높일 수 있습니다.
  3. 일반적인 문제: 모델을 생성, 로드 및 구성하는 동안 문제가 발생하는 경우 설명서 및 사용자 커뮤니티에서 문제 해결 팁을 참조할 수 있습니다.

이 문서에서는 이 문서에 설명된 XNUMX가지 간단한 단계를 수행하여 로컬 CPU에 작은 언어 모델을 만들고 배포하는 방법에 대해 설명했습니다. 이러한 비용 효율적인 접근 방식은 다양한 언어 처리 또는 컴퓨터 비전 애플리케이션에 대한 문을 열어주며 고급 프로젝트를 위한 디딤돌 역할을 합니다. 하지만 프로젝트를 진행하는 동안 문제를 극복하려면 다음 사항을 기억해야 합니다.

  1. 훈련 중에 정기적으로 체크포인트를 저장하여 훈련을 계속하거나 중단 시 모델을 복구할 수 있도록 하세요.
  2. 특히 로컬 CPU에서 작업할 때 효율적인 메모리 사용을 위해 코드와 데이터 파이프라인을 최적화하세요.
  3. 향후 모델을 확장해야 하는 경우 GPU 가속 또는 클라우드 기반 리소스 사용을 고려해보세요.

결론적으로 소규모 언어 모델은 다양한 언어 처리 작업을 위한 다양하고 효율적인 솔루션을 제공합니다. 올바른 설정과 최적화를 통해 해당 성능을 효과적으로 활용할 수 있습니다.
 
 

아리안 가르그 비텍입니다. 전기 공학 학생, 현재 학부 마지막 학년입니다. 그의 관심은 웹 개발 및 기계 학습 분야에 있습니다. 그는 이러한 관심을 추구해 왔으며 이러한 방향으로 더 많은 일을 하고자 합니다.

spot_img

VC 카페

라이프사이VC

최신 인텔리전스

VC 카페

라이프사이VC

spot_img