ailia_llm  1.3.1.0
クラス | マクロ定義 | 型定義 | 関数
ailia_llm.h ファイル

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推論ライブラリ

日付
2024/09/27

マクロ定義詳解

◆ AILIA_LLM_API

#define AILIA_LLM_API   __stdcall

◆ AILIA_LLM_STATUS_BROKEN

#define AILIA_LLM_STATUS_BROKEN   (-4)

壊れたファイルが渡された

注釈
モデルファイルが破損していないかを確認し、正常なモデルを渡してください。

◆ AILIA_LLM_STATUS_CONTEXT_FULL

#define AILIA_LLM_STATUS_CONTEXT_FULL   (-8)

コンテキスト長を超えました

注釈
SetPromptに与えるコンテキスト長を削減してください。

◆ AILIA_LLM_STATUS_ERROR_FILE_API

#define AILIA_LLM_STATUS_ERROR_FILE_API   (-2)

ファイルアクセスに失敗した

注釈
指定したパスのファイルが存在するか、権限を確認してください。

◆ AILIA_LLM_STATUS_INVALID_ARGUMENT

#define AILIA_LLM_STATUS_INVALID_ARGUMENT   (-1)

引数が不正

注釈
API呼び出し時の引数を確認してください。

◆ AILIA_LLM_STATUS_INVALID_STATE

#define AILIA_LLM_STATUS_INVALID_STATE   (-7)

内部状態が不正

注釈
APIドキュメントを確認し、呼び出し手順が正しいかどうかを確認してください。

◆ AILIA_LLM_STATUS_INVALID_VERSION

#define AILIA_LLM_STATUS_INVALID_VERSION   (-3)

構造体バージョンが不正

注釈
API呼び出し時に指定した構造体バージョンを確認し、正しい構造体バージョンを指定してください。

◆ AILIA_LLM_STATUS_MEMORY_INSUFFICIENT

#define AILIA_LLM_STATUS_MEMORY_INSUFFICIENT   (-5)

メモリが不足している

注釈
メインメモリやVRAMの空き容量を確保してからAPIを呼び出してください。

◆ AILIA_LLM_STATUS_OTHER_ERROR

#define AILIA_LLM_STATUS_OTHER_ERROR   (-128)

不明なエラー

注釈
その他のエラーが発生しました。

◆ AILIA_LLM_STATUS_SUCCESS

#define AILIA_LLM_STATUS_SUCCESS   (0)

成功

◆ AILIA_LLM_STATUS_THREAD_ERROR

#define AILIA_LLM_STATUS_THREAD_ERROR   (-6)

スレッドの作成に失敗した

注釈
スレッド数などシステムリソースを確認し、リソースを開放してからAPIを呼び出してください。

◆ AILIA_LLM_STATUS_UNIMPLEMENTED

#define AILIA_LLM_STATUS_UNIMPLEMENTED   (-15)

未実装

注釈
指定した環境では未実装な機能が呼び出されました。エラー内容をドキュメント記載のサポート窓口までお問い合わせください。

型定義詳解

◆ AILIALLMChatMessage

関数詳解

◆ ailiaLLMCreate()

AILIA_LLM_API int ailiaLLMCreate ( struct AILIALLM **  llm)

LLMオブジェクトを作成します。

引数
llmLLMオブジェクトポインタへのポインタ
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

LLMオブジェクトを作成します。

◆ ailiaLLMDestroy()

AILIA_LLM_API void ailiaLLMDestroy ( struct AILIALLM *  llm)

LLMオブジェクトを破棄します。

引数
llmLLMオブジェクトポインタ

◆ ailiaLLMGenerate()

AILIA_LLM_API int ailiaLLMGenerate ( struct AILIALLM *  llm,
unsigned int *  done 
)

生成を行います。

引数
llmLLMオブジェクトポインタ
done生成が完了したか
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

デコードした結果はailiaLLMGetDeltaText APIで取得します。 ailiaLLMGenerateを呼び出すたびに1トークンずつデコードします。 doneは0か1を取ります。doneが1の場合、生成完了となります。

◆ ailiaLLMGetBackendCount()

AILIA_LLM_API int ailiaLLMGetBackendCount ( unsigned int *  env_count)

利用可能な計算環境(CPU, GPU)の数を取得します

引数
env_count計算環境情報の数の格納先
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMGetBackendName()

AILIA_LLM_API int ailiaLLMGetBackendName ( const char **  env,
unsigned int  env_idx 
)

計算環境の一覧を取得します

引数
env計算環境情報の格納先(AILIANetworkインスタンスを破棄するまで有効)
env_idx計算環境情報のインデックス(0~ ailiaLLMGetBackendCount() -1)
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMGetContextSize()

AILIA_LLM_API int ailiaLLMGetContextSize ( struct AILIALLM *  llm,
unsigned int *  context_size 
)

コンテキストの長さを取得します。

引数
llmLLMオブジェクトポインタ
lenコンテキストの長さ
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMGetDeltaText()

AILIA_LLM_API int ailiaLLMGetDeltaText ( struct AILIALLM *  llm,
char *  text,
unsigned int  buf_size 
)

テキストを取得します。

引数
llmLLMオブジェクトポインタ
textテキスト(UTF8)
buf_sizeバッファサイズ
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaLLMGenerate() を一度も実行していない場合は AILIA_LLM_STATUS_INVALID_STATE が返ります。

◆ ailiaLLMGetDeltaTextSize()

AILIA_LLM_API int ailiaLLMGetDeltaTextSize ( struct AILIALLM *  llm,
unsigned int *  buf_size 
)

テキストの長さを取得します。(NULL文字含む)

引数
llmLLMオブジェクトポインタ
buf_sizeテキストの長さ
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMGetGeneratedTokenCount()

AILIA_LLM_API int ailiaLLMGetGeneratedTokenCount ( struct AILIALLM *  llm,
unsigned int *  cnt 
)

生成したトークンの数を取得します。

引数
llmLLMオブジェクトポインタ
cnt生成したトークンの数
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaLLMGenerateを呼び出した後に呼び出し可能です。

◆ ailiaLLMGetPromptTokenCount()

AILIA_LLM_API int ailiaLLMGetPromptTokenCount ( struct AILIALLM *  llm,
unsigned int *  cnt 
)

プロンプトトークンの数を取得します。

引数
llmLLMオブジェクトポインタ
cntプロンプトトークンの数
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaLLMSetPromptを呼び出した後に呼び出し可能です。

◆ ailiaLLMGetTokenCount()

AILIA_LLM_API int ailiaLLMGetTokenCount ( struct AILIALLM *  llm,
unsigned int *  cnt,
const char *  text 
)

トークンの数を取得します。

引数
llmLLMオブジェクトポインタ
cntトークンの数
textテキスト(UTF8)
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMOpenModelFileA()

AILIA_LLM_API int ailiaLLMOpenModelFileA ( struct AILIALLM *  llm,
const char *  path,
unsigned int  n_ctx 
)

モデルファイルを読み込みます。

引数
llmLLMオブジェクトポインタへのポインタ
pathGGUFファイルのパス
n_ctxコンテキスト長(0でモデルのデフォルト)
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

GGUFのモデルファイルを読み込みます。

◆ ailiaLLMOpenModelFileW()

AILIA_LLM_API int ailiaLLMOpenModelFileW ( struct AILIALLM *  llm,
const wchar_t *  path,
unsigned int  n_ctx 
)

◆ ailiaLLMSetPrompt()

AILIA_LLM_API int ailiaLLMSetPrompt ( struct AILIALLM *  llm,
const AILIALLMChatMessage message,
unsigned int  message_cnt 
)

プロンプトを設定します。

引数
llmLLMオブジェクトポインタへのポインタ
messageメッセージの配列
message_cntメッセージの数
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

LLMに問い合わせるプロンプトを設定します。 ChatHistoryもmessageに含めてください。

◆ ailiaLLMSetSamplingParams()

AILIA_LLM_API int ailiaLLMSetSamplingParams ( struct AILIALLM *  llm,
unsigned int  top_k,
float  top_p,
float  temp,
unsigned int  dist 
)

サンプリングのパラメータを設定します。

引数
llmLLMオブジェクトポインタへのポインタ
top_kサンプリングする確率値の上位個数、デフォルト40
top_pサンプリングする確率値の範囲、デフォルト0.9(0.9〜1.0)
temp温度パラメータ、デフォルト0.4
distシード、デフォルト1234
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

LLMのサンプリングの設定を行います。ailiaLLMSetPromptの前に実行する必要があります。