ONNX ランタイムを使用して Llama、Phi、Gemma、Mistral を実行します。
この API を使用すると、デバイス上で LLM を実行する簡単、柔軟、かつパフォーマンスの高い方法が得られます。
これは、前後処理、ONNX ランタイムによる推論、ロジット処理、検索とサンプリング、KV キャッシュ管理を含む、ONNX モデルの生成 AI ループを実装します。
高レベルのgenerate()
メソッドを呼び出して、すべての出力を一度に生成したり、出力を一度に1トークンずつストリーミングしたりできます。
https://onnxruntime.ai/docs/genai のドキュメントを参照してください。
サポートマトリックス | 現在サポートされています | 開発中 | ロードマップ上 |
---|---|---|---|
モデルアーキテクチャ | ジェマ ラマ * ミストラル+ ファイ (言語 + 視覚) クウェン ネモトロン | ささやき | 安定した拡散 |
API | パイソン C# C/C++ ジャワ ^ | 目的-C | |
プラットフォーム | Linux 窓 マック ^ アンドロイド^ | iOS | |
建築 | x86 x64 アーム64~ | ||
ハードウェアアクセラレーション | CUDA DirectML | QNN OpenVINO ROCm | |
特徴 | インタラクティブなデコーディング カスタマイズ(微調整) | 投機的デコード |
* Llama モデル アーキテクチャは、CodeLlama、Vicuna、Yi などの同様のモデル ファミリをサポートします。
+ Mistral モデル アーキテクチャは、Zephyr などの同様のモデル ファミリをサポートします。
^ ソースからのビルドが必要
~ Windows ビルドが利用可能ですが、他のプラットフォームのソースからビルドする必要があります
https://onnxruntime.ai/docs/genai/howto/install を参照してください。
モデルをダウンロードする
ハグフェイス-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
モデルを実行する
onnxruntime_genai を ogmodel = og.Model('cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4')tokenizer = og.Tokenizer(model)tokenizer_stream = tokenizer.create_stream() としてインポートします # デフォルトでは最大長を適切なものに設定します。# そうしないとコンテキスト全体の長さに設定されるためsearch_options = {}search_options['max_length'] = 2048chat_template = '<|user|>n{input} <|end|> n<|assistant|>'text = input("入力: ")text でない場合: print("エラー、入力を空にすることはできません") exitprompt = f'{chat_template.format(input=text)}'input_tokens = tokenizer.encode(prompt)params = og.GeneratorParams(model)params.set_search_options(**search_options)params.input_ids = input_tokensgenerator = og.Generator(model, params) )print("出力: "、end=''、flush=True)try: Generator.is_done() ではない場合:generator.compute_logits()generator.generate_next_token()new_token =generator.get_next_tokens()[0] print(tokenizer_stream.decode(new_token), end='',flush=True)以外 KeyboardInterrupt: print (" --control+c が押されました、生成を中止します --")print()del ジェネレーター
新しい機能をリクエストしたり、既存のリクエストに賛成票を投じたりするには、ディスカッションを参照してください。
このプロジェクトは貢献と提案を歓迎します。 ほとんどの投稿では、投稿を使用する権利をお客様が有しており、実際に当社に付与することを宣言する投稿者ライセンス契約 (CLA) に同意する必要があります。詳細については、https://cla.opensource.microsoft.com をご覧ください。
プル リクエストを送信すると、CLA ボットが CLA を提供する必要があるかどうかを自動的に判断し、PR を適切に装飾します (ステータス チェック、コメントなど)。ボットが提供する指示に従ってください。 CLA を使用するすべてのリポジトリでこれを 1 回行うだけで済みます。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、行動規範に関する FAQ を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。
このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。 Microsoft の商標またはロゴの許可された使用には、Microsoft の商標およびブランド ガイドラインが適用され、それに従わなければなりません。このプロジェクトの修正バージョンで Microsoft の商標またはロゴを使用することは、混乱を引き起こしたり、Microsoft のスポンサーであることを暗示したりしてはなりません。第三者の商標またはロゴの使用には、それらの第三者のポリシーが適用されます。