알리바바가 개발한 Qwen 모델은 코드 완성 및 명령 작업에서 강력한 성능을 보여주었습니다. 이 블로그에서는 Llama 기반 아키텍처와 유사한 접근 방식을 사용하여 Databricks에서 Qwen 모델을 등록하고 배포하는 방법을 보여드리겠습니다. 이 단계를 따르면, 낮은 지연 시간과 높은 처리량을 제공하는 Databricks의 기반 모델(Provisioned Throughput) 엔드포인트를 활용할 수 있습니다.
많은 기업 작업 부하에 대해, Databricks는 대규모 언어 모델(LLMs)을 훈련시키고, 등록하고, 제공하는 원스톱 플랫폼입니다. Databricks Mosaic AI 모델 서빙 을 사용하면 세밀하게 조정된 모델이나 기본 모델을 쉽게 배포하고 실시간 또는 배치 추론 작업에 활용할 수 있습니다.
최근에 출시된 Qwen 2.5 시리즈 모델은 코드 완성 및 명령 작업에서 강력한 성능을 제공합니다. Qwen 2.5 모델 은 출시 당시 MMLU, ARC-C, MATH, HumanEval, 그리고 Multi-Exam 및 Multi-Understanding과 같은 다국어 벤치마크 등 표준 벤치마크에서 유사한 크기의 모델을 능가했습니다. Qwen 2.5 Coder 모델 은 코딩 벤치마크에서도 비슷한 향상을 보여줍 니다. 이는 고객들이 이러한 모델을 Databricks 모델 서빙에 배포하여 자신들의 사용 사례를 지원하는 데 강력한 동기를 제공할 수 있습니다.
Databricks에서 Qwen 모델을 서빙하는 것은 네 단계로 이루어집니다:
Databricks 기반 모델 서비스 는 Meta의 Llama 모델과 같은 모델에 대해 최적화된 성능을 제공합니다. 고객은 이러한 모델을 프로비저닝된 처리량으로 배포하고 낮은 지연 시간과 높은 처리량을 달성할 수 있습니다. Qwen 모델의 기본 모델 구조는 Llama 모델의 구조와 매우 유사하지만, Databricks의 모델 서비스 인프라를 활용하기 위해서는 일부 수정이 필요합니다. 아래의 단계는 고객이 필요한 수정을 어떻게 할 수 있는지 설명합니다.
modify_qwen.py 의 단계는 Qwen2.5 모델을 가져와 Databricks에서 최적화된 Llama 아키텍처와 일치하도록 재작성 합니다. 코드의 주요 단계는 다음과 같습니다:
.safetensors
수집 원래의 Qwen 디렉토리에서."architectures"
, "model_type"
와 같은 필드를 "llama"
로 업데이트하고, Qwen 특정 플래그를 제거합니다.tokenizer.json
을 가져오는 것을 확인합니다. merges.txt
, 등등.이 단계를 마치면, Llama 호환 Qwen 모델이 생깁니다. vLLM 에서 모델을 로드하면 Llama 모델로 취급하고 코드를 생성하거나 지시사항을 따르는 등, 사용한 모델에 따라 다르게 작동해야 합니다.
팁: 변환을 수행하기 전에 Hugging Face에서 Qwen/Qwen2.5-Coder-7B-Instruct 와 같은 Qwen 모델 중 하나를 디렉토리로 가져오기 위해 huggingface_hub.snapshot_download 를 사용할 수 있습니다.
다음으로는 Databricks에서 "Qwen을 Llama로" 모델을 로그하고 제공하는 방법에 집 중하겠습니다. 이는 register_qwen.py에 의해 처리됩니다. 여기서의 단계는 모델이 Llama 모델에 대해 모델 서비스가 예상하는 구성을 가지고 있도록 보장합니다. 주요 단계:
chat_template
제거 및 tokenizer_class
설정).config.json
Llama와 호환되는 시퀀스 길이를 반영합니다.이 노트북을 실행하면 모델이 Unity 카탈로그에 등록됩니다, 모델로 이동하여 "이 모델 제공"을 클릭하여 엔드포인트를 설정하세요. 다른 토큰/초 비율로 입력을 제공하는 엔드포인트를 설정하는 옵션을 볼 수 있어야 합니다.
엔드포인트가 준비되면 기본 테스트를 수행하여 제대로 작동하는지 확인할 수 있습니다. 위의 변환 및 등록을 수행한 후 Qwen2.5-Coder-7B 모델을 배포했다고 가정해 봅시다. 이 모델은 코드의 일부를 완성하거나 중간을 채우는 작업을 수행할 수 있습니다. 간단한 정렬 함수를 완성하는 데 사용해 봅시다. “Use” 드롭다운에서 “Query”를 클릭하고 다음 요청을 입력합니다:
응답에 포함된 텍스트에는 구현의 나머지 부분이 포함되어 있습니다:
더 정량적인 접근 방식을 위해 HumanEval 작업에 대한 완성을 생성할 수 있습니다. 그런 다음 pass@1 메트릭을 얻기 위해 평가를 실행하고 게시된 결과와 비교합니다.
max_position_embeddings
를 16000 토큰으로 설정했습니다. Qwen이 원래 더 많이 지원했다면, 최대 컨텍스트 길이를 일부 잃을 수 있습니다. 그러나 여전히 프로비저닝된 처리량 지원을 얻을 수 있습니다.Databricks는 현재 제공된 처리량 모델 서비스에서 직접적으로 Qwen 모델을 지원하지 않지만, 위의 방법을 통해 이러한 모델들을 Llama 모델의 아키텍처와 호환되도록 등록하고 서비스를 제공 할 수 있습니다. 이 방법은 팀이 Qwen의 기능을 필요로 하지만 Databricks 모델 서비스 엔드포인트와 제공된 처리량의 편리함을 원할 경우 특히 유용합니다.
핵심 요약
미래 고려사항
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)