ONNX 런타임으로 Llama, Phi, Gemma, Mistral을 실행하세요.
이 API는 장치에서 LLM을 실행하는 쉽고 유연하며 효율적인 방법을 제공합니다.
사전 및 사후 처리, ONNX Runtime 추론, 로짓 처리, 검색 및 샘플링, KV 캐시 관리를 포함하여 ONNX 모델용 생성 AI 루프를 구현합니다.
높은 수준의 generate()
메서드를 호출하여 모든 출력을 한 번에 생성하거나 출력을 한 번에 하나의 토큰씩 스트리밍할 수 있습니다.
https://onnxruntime.ai/docs/genai의 설명서를 참조하세요.
지원 매트릭스 | 지금 지원됨 | 개발중 | 로드맵에 |
---|---|---|---|
모델 아키텍처 | 아체 라마 * 미스트랄 + 파이(언어 + 시각) 퀀 네모트론 | 속삭임 | 안정적인 확산 |
API | 파이썬 기음# C/C++ 자바 ^ | 오브젝티브-C | |
플랫폼 | 리눅스 윈도우 맥 ^ 안드로이드 ^ | iOS | |
건축학 | x86 x64 암64 ~ | ||
하드웨어 가속 | 쿠다 다이렉트ML | QNN 오픈비노 ROCm | |
특징 | 대화형 디코딩 사용자 정의(미세 조정) | 추측적 디코딩 |
* Llama 모델 아키텍처는 CodeLlama, Vicuna, Yi 등과 같은 유사한 모델 제품군을 지원합니다.
+ Mistral 모델 아키텍처는 Zephyr와 같은 유사한 모델 제품군을 지원합니다.
^ 소스에서 빌드 필요
~ Windows 빌드 사용 가능, 다른 플랫폼의 경우 소스에서 빌드 필요
https://onnxruntime.ai/docs/genai/howto/install을 참조하세요.
모델 다운로드
Huggingface-cli 다운로드 microsoft/Phi-3-mini-4k-instruct-onnx --include cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/* --local-dir .
API 설치
pip 설치 numpy pip install --pre onnxruntime-genai
모델 실행
ogmodel = og.Model('cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4')tokenizer = og.Tokenizer(모델)tokenizer_stream = tokenizer.create_stream()으로 onnxruntime_genai 가져오기 # 최대 길이를 기본적으로 합리적인 것으로 설정합니다.# 그렇지 않으면 전체 컨텍스트로 설정됩니다. lengthsearch_options = {}search_options['max_length'] = 2048chat_template = '<|user|>n{input} <|end|> n<|assistant|>'text = input("입력: ")if not text: print("오류, 입력은 비워둘 수 없습니다.") exitprompt = f'{chat_template.format(input=text)}'input_tokens = tokenizer.encode(prompt)params = og.GeneratorParams(모델)params.set_search_options(**search_options)params.input_ids = input_tokensgenerator = og.Generator(모델, params )print("출력: ", end='', 플러시=True)try: while not 생성기.is_done(): 생성기.compute_logits() 생성기.generate_next_token() new_token = 생성기.get_next_tokens()[0] print(tokenizer_stream.decode(new_token), end='', 플러시=True)제외 KeyboardInterrupt: 인쇄(" --control+c를 누르면 생성이 중단됩니다.--")print()del 생성기
새로운 기능을 요청하고 기존 요청에 찬성 투표하려면 토론을 참조하세요.
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 귀하가 귀하의 기여를 사용할 권리가 있고 실제로 그렇게 할 권리가 있음을 선언하는 기여자 라이센스 계약(CLA)에 동의해야 합니다. 자세한 내용을 보려면 https://cla.opensource.microsoft.com을 방문하세요.
끌어오기 요청을 제출하면 CLA 봇이 자동으로 CLA 제공이 필요한지 여부를 결정하고 PR을 적절하게 장식합니다(예: 상태 확인, 댓글). 봇이 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하여 모든 저장소에서 이 작업을 한 번만 수행하면 됩니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있는 경우 [email protected]으로 문의하세요.
이 프로젝트에는 프로젝트, 제품 또는 서비스에 대한 상표나 로고가 포함될 수 있습니다. Microsoft 상표 또는 로고의 승인된 사용에는 Microsoft의 상표 및 브랜드 지침이 적용되며 이를 따라야 합니다. 이 프로젝트의 수정된 버전에 Microsoft 상표 또는 로고를 사용하면 혼동을 일으키거나 Microsoft 후원을 암시해서는 안 됩니다. 제3자 상표 또는 로고의 사용에는 해당 제3자의 정책이 적용됩니다.