mistral-inference는 Mistral AI에서 공식적으로 개발한 Mistral 모델 추론 라이브러리로, 다양한 Mistral 모델을 실행하기 위한 최소화된 코드 구현을 제공합니다. 이 프로젝트는 사용자에게 Mistral 시리즈의 대규모 언어 모델을 효율적이고 간결하게 배포하고 사용할 수 있는 방법을 제공합니다.
mistral-demo
및 mistral-chat
명령을 통해 빠른 테스트 및 상호 작용torchrun
을 통해 대규모 모델의 분산 추론 지원from mistral_inference.transformer import Transformer
from mistral_inference.generate import generate
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.protocol.instruct.messages import UserMessage
from mistral_common.protocol.instruct.request import ChatCompletionRequest
# 모델 및 토크나이저 로드
tokenizer = MistralTokenizer.from_file("./mistral-nemo-instruct-v0.1/tekken.json")
model = Transformer.from_folder("./mistral-nemo-instruct-v0.1")
# 응답 생성
prompt = "How expensive would it be to ask a window cleaner to clean all windows in Paris?"
completion_request = ChatCompletionRequest(messages=[UserMessage(content=prompt)])
tokens = tokenizer.encode_chat_completion(completion_request).tokens
out_tokens, _ = generate([tokens], model, max_tokens=1024, temperature=0.35)
이미지와 텍스트의 결합 추론을 지원하며, 이미지 내용을 분석하고 관련 질문에 답변할 수 있습니다.
# 멀티모달 콘텐츠 처리
user_content = [ImageURLChunk(image_url=url), TextChunk(text=text)]
tokens, images = tokenizer.instruct_tokenizer.encode_user_content(user_content, False)
out_tokens, _ = generate([tokens], model, images=[images], max_tokens=256)
모든 모델은 함수 호출 기능을 지원하며, 외부 도구 및 API와 통합할 수 있습니다.
# 도구 함수 정의
tools=[Tool(function=Function(
name="get_current_weather",
description="Get the current weather",
parameters={...}
))]
# 함수 호출 실행
completion_request = ChatCompletionRequest(tools=tools, messages=[...])
코드 편집 시나리오에 특화되어 있으며, 중간 채우기 방식의 코드 생성을 지원합니다.
prefix = "def add("
suffix = " return sum"
request = FIMRequest(prompt=prefix, suffix=suffix)
tokens = tokenizer.encode_fim(request).tokens
pip install mistral-inference
cd $HOME && git clone https://github.com/mistralai/mistral-inference
cd $HOME/mistral-inference && poetry install .
# 모델 저장 디렉토리 생성
export MISTRAL_MODEL=$HOME/mistral_models
mkdir -p $MISTRAL_MODEL
# 모델 다운로드 (Mistral Nemo 예시)
export 12B_DIR=$MISTRAL_MODEL/12B_Nemo
wget https://models.mistralcdn.com/mistral-nemo-2407/mistral-nemo-instruct-2407.tar
mkdir -p $12B_DIR
tar -xf mistral-nemo-instruct-2407.tar -C $12B_DIR
# 단일 GPU 모델
mistral-chat $12B_DIR --instruct --max_tokens 1024 --temperature 0.35
# 다중 GPU 대규모 모델
torchrun --nproc-per-node 2 --no-python mistral-chat $M8x7B_DIR --instruct
mistral-chat $M22B_CODESTRAL --instruct --max_tokens 256
"Write me a function that computes fibonacci in Rust"와 같은 프로그래밍 요청을 처리할 수 있습니다.
mistral-chat $7B_MATHSTRAL --instruct --max_tokens 256
복잡한 수학 계산 문제를 해결할 수 있습니다.
상업 환경에서 사용할 때는 해당 모델의 라이선스 조항을 꼼꼼히 확인하여 규정을 준수하십시오.
Mistral 추론 라이브러리는 강력하고 사용하기 쉬운 대규모 언어 모델 추론 프레임워크입니다. 완전한 Mistral 모델 시리즈 지원뿐만 아니라 기본적인 텍스트 생성부터 고급 멀티모달 추론 및 함수 호출에 이르기까지 풍부한 기능 특징을 포함합니다. 기업 수준의 배포 또는 개인 연구 사용에 관계없이 이 라이브러리는 효율적이고 안정적인 솔루션을 제공할 수 있습니다.