|
ailia_llm
1.3.3.0
|
LLM推論ライブラリ [詳解]
クラス | |
| struct | _AILIALLMChatMessage |
マクロ定義 | |
| #define | AILIA_LLM_API __stdcall |
| #define | AILIA_LLM_STATUS_SUCCESS (0) |
| 成功 [詳解] | |
| #define | AILIA_LLM_STATUS_INVALID_ARGUMENT (-1) |
| 引数が不正 [詳解] | |
| #define | AILIA_LLM_STATUS_ERROR_FILE_API (-2) |
| ファイルアクセスに失敗した [詳解] | |
| #define | AILIA_LLM_STATUS_INVALID_VERSION (-3) |
| 構造体バージョンが不正 [詳解] | |
| #define | AILIA_LLM_STATUS_BROKEN (-4) |
| 壊れたファイルが渡された [詳解] | |
| #define | AILIA_LLM_STATUS_MEMORY_INSUFFICIENT (-5) |
| メモリが不足している [詳解] | |
| #define | AILIA_LLM_STATUS_THREAD_ERROR (-6) |
| スレッドの作成に失敗した [詳解] | |
| #define | AILIA_LLM_STATUS_INVALID_STATE (-7) |
| 内部状態が不正 [詳解] | |
| #define | AILIA_LLM_STATUS_CONTEXT_FULL (-8) |
| コンテキスト長を超えました [詳解] | |
| #define | AILIA_LLM_STATUS_UNIMPLEMENTED (-15) |
| 未実装 [詳解] | |
| #define | AILIA_LLM_STATUS_OTHER_ERROR (-128) |
| 不明なエラー [詳解] | |
型定義 | |
| typedef struct _AILIALLMChatMessage | AILIALLMChatMessage |
関数 | |
| AILIA_LLM_API int | ailiaLLMGetBackendCount (unsigned int *env_count) |
| 利用可能な計算環境(CPU, GPU)の数を取得します [詳解] | |
| AILIA_LLM_API int | ailiaLLMGetBackendName (const char **env, unsigned int env_idx) |
| 計算環境の一覧を取得します [詳解] | |
| AILIA_LLM_API int | ailiaLLMCreate (struct AILIALLM **llm) |
| LLMオブジェクトを作成します。 [詳解] | |
| AILIA_LLM_API int | ailiaLLMOpenModelFileA (struct AILIALLM *llm, const char *path, unsigned int n_ctx) |
| モデルファイルを読み込みます。 [詳解] | |
| AILIA_LLM_API int | ailiaLLMOpenModelFileW (struct AILIALLM *llm, const wchar_t *path, unsigned int n_ctx) |
| AILIA_LLM_API int | ailiaLLMGetContextSize (struct AILIALLM *llm, unsigned int *context_size) |
| コンテキストの長さを取得します。 [詳解] | |
| AILIA_LLM_API int | ailiaLLMSetSamplingParams (struct AILIALLM *llm, unsigned int top_k, float top_p, float temp, unsigned int dist) |
| サンプリングのパラメータを設定します。 [詳解] | |
| AILIA_LLM_API int | ailiaLLMSetPrompt (struct AILIALLM *llm, const AILIALLMChatMessage *message, unsigned int message_cnt) |
| プロンプトを設定します。 [詳解] | |
| AILIA_LLM_API int | ailiaLLMGenerate (struct AILIALLM *llm, unsigned int *done) |
| 生成を行います。 [詳解] | |
| AILIA_LLM_API int | ailiaLLMGetDeltaTextSize (struct AILIALLM *llm, unsigned int *buf_size) |
| テキストの長さを取得します。(NULL文字含む) [詳解] | |
| AILIA_LLM_API int | ailiaLLMGetDeltaText (struct AILIALLM *llm, char *text, unsigned int buf_size) |
| テキストを取得します。 [詳解] | |
| AILIA_LLM_API int | ailiaLLMGetTokenCount (struct AILIALLM *llm, unsigned int *cnt, const char *text) |
| トークンの数を取得します。 [詳解] | |
| AILIA_LLM_API int | ailiaLLMGetPromptTokenCount (struct AILIALLM *llm, unsigned int *cnt) |
| プロンプトトークンの数を取得します。 [詳解] | |
| AILIA_LLM_API int | ailiaLLMGetGeneratedTokenCount (struct AILIALLM *llm, unsigned int *cnt) |
| 生成したトークンの数を取得します。 [詳解] | |
| AILIA_LLM_API void | ailiaLLMDestroy (struct AILIALLM *llm) |
| LLMオブジェクトを破棄します。 [詳解] | |
LLM推論ライブラリ
| #define AILIA_LLM_API __stdcall |
| #define AILIA_LLM_STATUS_BROKEN (-4) |
壊れたファイルが渡された
| #define AILIA_LLM_STATUS_CONTEXT_FULL (-8) |
コンテキスト長を超えました
| #define AILIA_LLM_STATUS_ERROR_FILE_API (-2) |
ファイルアクセスに失敗した
| #define AILIA_LLM_STATUS_INVALID_ARGUMENT (-1) |
引数が不正
| #define AILIA_LLM_STATUS_INVALID_STATE (-7) |
内部状態が不正
| #define AILIA_LLM_STATUS_INVALID_VERSION (-3) |
構造体バージョンが不正
| #define AILIA_LLM_STATUS_MEMORY_INSUFFICIENT (-5) |
メモリが不足している
| #define AILIA_LLM_STATUS_OTHER_ERROR (-128) |
不明なエラー
| #define AILIA_LLM_STATUS_SUCCESS (0) |
成功
| #define AILIA_LLM_STATUS_THREAD_ERROR (-6) |
スレッドの作成に失敗した
| #define AILIA_LLM_STATUS_UNIMPLEMENTED (-15) |
未実装
| typedef struct _AILIALLMChatMessage AILIALLMChatMessage |
| AILIA_LLM_API int ailiaLLMCreate | ( | struct AILIALLM ** | llm | ) |
LLMオブジェクトを作成します。
| llm | LLMオブジェクトポインタへのポインタ |
LLMオブジェクトを作成します。
| AILIA_LLM_API void ailiaLLMDestroy | ( | struct AILIALLM * | llm | ) |
LLMオブジェクトを破棄します。
| llm | LLMオブジェクトポインタ |
| AILIA_LLM_API int ailiaLLMGenerate | ( | struct AILIALLM * | llm, |
| unsigned int * | done | ||
| ) |
生成を行います。
| llm | LLMオブジェクトポインタ |
| done | 生成が完了したか |
デコードした結果はailiaLLMGetDeltaText APIで取得します。 ailiaLLMGenerateを呼び出すたびに1トークンずつデコードします。 doneは0か1を取ります。doneが1の場合、生成完了となります。
| AILIA_LLM_API int ailiaLLMGetBackendCount | ( | unsigned int * | env_count | ) |
利用可能な計算環境(CPU, GPU)の数を取得します
| env_count | 計算環境情報の数の格納先 |
| AILIA_LLM_API int ailiaLLMGetBackendName | ( | const char ** | env, |
| unsigned int | env_idx | ||
| ) |
計算環境の一覧を取得します
| env | 計算環境情報の格納先(AILIANetworkインスタンスを破棄するまで有効) |
| env_idx | 計算環境情報のインデックス(0~ ailiaLLMGetBackendCount() -1) |
| AILIA_LLM_API int ailiaLLMGetContextSize | ( | struct AILIALLM * | llm, |
| unsigned int * | context_size | ||
| ) |
コンテキストの長さを取得します。
| llm | LLMオブジェクトポインタ |
| len | コンテキストの長さ |
| AILIA_LLM_API int ailiaLLMGetDeltaText | ( | struct AILIALLM * | llm, |
| char * | text, | ||
| unsigned int | buf_size | ||
| ) |
テキストを取得します。
| llm | LLMオブジェクトポインタ |
| text | テキスト(UTF8) |
| buf_size | バッファサイズ |
ailiaLLMGenerate() を一度も実行していない場合は AILIA_LLM_STATUS_INVALID_STATE が返ります。
| AILIA_LLM_API int ailiaLLMGetDeltaTextSize | ( | struct AILIALLM * | llm, |
| unsigned int * | buf_size | ||
| ) |
テキストの長さを取得します。(NULL文字含む)
| llm | LLMオブジェクトポインタ |
| buf_size | テキストの長さ |
| AILIA_LLM_API int ailiaLLMGetGeneratedTokenCount | ( | struct AILIALLM * | llm, |
| unsigned int * | cnt | ||
| ) |
生成したトークンの数を取得します。
| llm | LLMオブジェクトポインタ |
| cnt | 生成したトークンの数 |
ailiaLLMGenerateを呼び出した後に呼び出し可能です。
| AILIA_LLM_API int ailiaLLMGetPromptTokenCount | ( | struct AILIALLM * | llm, |
| unsigned int * | cnt | ||
| ) |
プロンプトトークンの数を取得します。
| llm | LLMオブジェクトポインタ |
| cnt | プロンプトトークンの数 |
ailiaLLMSetPromptを呼び出した後に呼び出し可能です。
| AILIA_LLM_API int ailiaLLMGetTokenCount | ( | struct AILIALLM * | llm, |
| unsigned int * | cnt, | ||
| const char * | text | ||
| ) |
トークンの数を取得します。
| llm | LLMオブジェクトポインタ |
| cnt | トークンの数 |
| text | テキスト(UTF8) |
| AILIA_LLM_API int ailiaLLMOpenModelFileA | ( | struct AILIALLM * | llm, |
| const char * | path, | ||
| unsigned int | n_ctx | ||
| ) |
モデルファイルを読み込みます。
| llm | LLMオブジェクトポインタへのポインタ |
| path | GGUFファイルのパス |
| n_ctx | コンテキスト長(0でモデルのデフォルト) |
GGUFのモデルファイルを読み込みます。
| AILIA_LLM_API int ailiaLLMOpenModelFileW | ( | struct AILIALLM * | llm, |
| const wchar_t * | path, | ||
| unsigned int | n_ctx | ||
| ) |
| AILIA_LLM_API int ailiaLLMSetPrompt | ( | struct AILIALLM * | llm, |
| const AILIALLMChatMessage * | message, | ||
| unsigned int | message_cnt | ||
| ) |
プロンプトを設定します。
| llm | LLMオブジェクトポインタへのポインタ |
| message | メッセージの配列 |
| message_cnt | メッセージの数 |
LLMに問い合わせるプロンプトを設定します。 ChatHistoryもmessageに含めてください。
| AILIA_LLM_API int ailiaLLMSetSamplingParams | ( | struct AILIALLM * | llm, |
| unsigned int | top_k, | ||
| float | top_p, | ||
| float | temp, | ||
| unsigned int | dist | ||
| ) |
サンプリングのパラメータを設定します。
| llm | LLMオブジェクトポインタへのポインタ |
| top_k | サンプリングする確率値の上位個数、デフォルト40 |
| top_p | サンプリングする確率値の範囲、デフォルト0.9(0.9〜1.0) |
| temp | 温度パラメータ、デフォルト0.4 |
| dist | シード、デフォルト1234 |
LLMのサンプリングの設定を行います。ailiaLLMSetPromptの前に実行する必要があります。