昇騰使用docker部署mindie-service(部署對(duì)話模型)
一、docker環(huán)境準(zhǔn)備
1、安裝docker
#下載阿里云的安裝腳本:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#這條命令會(huì)自動(dòng)檢測(cè)你的操作系統(tǒng)類型和版本,然后從阿里云的Docker鏡像庫(kù)安裝Docker。
#啟動(dòng)Docker守護(hù)進(jìn)程(如果腳本沒(méi)有自動(dòng)啟動(dòng)):
sudo systemctl start docker
#設(shè)置Docker開(kāi)機(jī)自啟:
sudo systemctl enable docker
#檢查Docker版本:
docker --version
2、下載鏡像
訪問(wèn)http://mirrors.cn-central-221.ovaijisuan.com/mirrors.html 并登錄搜索mindie
點(diǎn)擊右上角用戶名——鏡像下載憑證,進(jìn)行下載憑證設(shè)置(即pull鏡像時(shí)的password)
選擇鏡像版本,點(diǎn)擊“立即下載”
復(fù)制命令執(zhí)行,password為剛設(shè)置的下載憑證
二、編寫 docker 啟動(dòng)腳本 start-docker.sh 如下
IMAGES_ID=$1
NAME=$2
if [ $# -ne 2 ]; then
echo "error: need one argument describing your container name."
exit 1
fi
docker run --name ${NAME} -it -d --net=host --shm-size=500g \
--privileged=true \
-w /home \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
--device=/dev/devmm_svm \
--entrypoint=bash \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/sbin:/usr/local/sbin \
-v /home:/home \
-v /tmp:/tmp \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
-e http_proxy=$http_proxy \
-e https_proxy=$https_proxy \
${IMAGES_ID}
參數(shù)說(shuō)明:
- IMAGES_ID 為鏡像版本號(hào)。(docker images 命令回顯中的 IMAGES ID)
- NAME 為啟動(dòng)容器名,可自定義設(shè)置。
三、依次執(zhí)行如下命令啟動(dòng)并進(jìn)入容器:
# 用戶可以設(shè)置 docker images 命令回顯中的 IMAGES ID
image_id=001b7368f6e0
# 用戶可以自定義設(shè)置鏡像名
custom_image_name=glm3
# 啟動(dòng)容器(確保啟動(dòng)容器前,本機(jī)可訪問(wèn)外網(wǎng))
bash start-docker.sh ${image_id} ${custom_image_name}
# 進(jìn)入容器
docker exec -itu root ${custom_image_name} bash
四、昇騰CANN軟件棧
cd /opt/package
# 安裝CANN包
source install_and_enable_cann.sh
# 若退出后重新進(jìn)入容器,則需要重新加載 CANN 環(huán)境變量,執(zhí)行以下三行命令
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/mindie/set_env.sh
source /usr/local/Ascend/llm_model/set_env.sh
五、進(jìn)入mindie service目錄
cd /usr/local/Ascend/mindie/latest/mindie-service
六、修改配置文件
vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
修改httpsEnabled為false
修改modelWeightPath為自己的模型路徑
# 默認(rèn)是2卡,單卡npuDeviceIds、worldSize需修改為下面的值
修改npuDeviceIds為[[0,1]]
修改worldSize為2

七、啟動(dòng)mindie服務(wù)
./bin/mindieservice_daemon
八、測(cè)試
另外開(kāi)啟一個(gè)窗口,發(fā)送請(qǐng)求進(jìn)行推理測(cè)試
1、generate接口
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"inputs": "你好,你是誰(shuí)",
"parameters": {
"best_of": 1,
"decoder_input_details": false,
"details": true,
"do_sample": true,
"repetition_penalty": 1.03,
"return_full_text": false,
"seed": 10,
"stop": [
"photographer"
],
"temperature": 0.5,
"top_k": 10,
"top_n_tokens": 5,
"top_p": 0.95,
"truncate": null,
"typical_p": 0.95,
"watermark": true
},
"stream": false
}' http://127.0.0.1:1025/generate
或者
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"inputs": "hi",
"parameters": {
"best_of": 1,
"decoder_input_details": false,
"details": true,
"do_sample": true,
"repetition_penalty": 1.03,
"return_full_text": false,
"seed": 10,
"stop": [
"photographer"
],
"temperature": 0.5,
"top_k": 10,
"top_n_tokens": 5,
"top_p": 0.95,
"truncate": null,
"typical_p": 0.95,
"watermark": true
},
"stream": true
}' http://127.0.0.1:1025/generate_stream
請(qǐng)求參數(shù)
|
參數(shù) |
是否必選 |
說(shuō)明 |
取值要求 |
|
inputs |
必選 |
推理請(qǐng)求文本 |
非空,0<字符數(shù)<=16000,支持中英文。tokenizer之后的token數(shù)量<=maxSeqLen-maxIterTimes(配置文件讀取)。 |
|
decoder_input_details |
可選 |
是否返回推理請(qǐng)求文本的token id。如果stream=true,該參數(shù)不能為true。 |
bool類型,默認(rèn)值false |
|
details |
可選 |
是否返回推理詳細(xì)輸出結(jié)果。根據(jù)TGI 0.9.4接口行為,decoder_input_details和details字段任意一個(gè)為true,即返回所有的details信息。 |
bool類型,默認(rèn)值false |
|
do_sample |
可選 |
是否做sampling |
bool類型,默認(rèn)值false |
|
max_new_tokens |
可選 |
允許的最大新標(biāo)記數(shù)目。控制從模型生成的文本中添加到最終輸出中的最大詞匯數(shù)量。該字段受到GIMIS配置文件maxIterTimes參數(shù)影響,推理token輸出長(zhǎng)度<=maxIterTimes。 |
int類型,取值范圍(0,maxIterTimes)。默認(rèn)值20。 |
|
repetition_penalty |
可選 |
重復(fù)懲罰用于減少在文本生成過(guò)程中出現(xiàn)重復(fù)片段的概率。它對(duì)之前已經(jīng)生成的文本進(jìn)行懲罰,使得模型更傾向于選擇新的、不重復(fù)的內(nèi)容。 |
float類型,大于0,默認(rèn)值1.0。1.0表示不進(jìn)行重復(fù)度懲罰。大于1.0表示對(duì)重復(fù)進(jìn)行懲罰。 |
|
return_full_text |
可選 |
是否將推理請(qǐng)求文本(inputs參數(shù))添加到推理結(jié)果前面。 |
bool類型,默認(rèn)值false。true表示添加。false表示不添加 |
|
seed |
可選 |
用于指定推理過(guò)程的隨機(jī)種子,相同的seed值可以確保推理結(jié)果的可重現(xiàn)性,不同的seed值會(huì)提升推理結(jié)果的隨機(jī)性。 |
uint_64類型,取值范圍(0,18446744073709551615],不傳遞該參數(shù),系統(tǒng)會(huì)產(chǎn)生一個(gè)隨機(jī)seed值。 |
|
temperature |
可選 |
控制生成的隨機(jī)性,較高的值會(huì)產(chǎn)生更多樣化的輸出。 |
float類型,取值大于0,默認(rèn)值1.0。1.0表示不進(jìn)行計(jì)算。大于1.0表示輸出隨機(jī)性提高。 |
|
top_k |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,只從概率最高的k個(gè)候選詞中選擇。使用限制請(qǐng)參見(jiàn)3-使用限制。 |
int類型,取值范圍(0,vocabSize)&&(0,2147483647],默認(rèn)值0。 |
|
top_p |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,使用累計(jì)概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值。該參數(shù)也可以控制生成結(jié)果的多樣性,它基于累積概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值為止。 |
float類型,取值范圍(0, 1),默認(rèn)值1。 |
|
truncate |
可選 |
輸入文本做tokenizer之后,將token數(shù)量截?cái)嗟皆撻L(zhǎng)度。讀取截?cái)嗪蟮膎個(gè)token。 |
int類型,取值范圍(0,maxSeqLen-maxIterTimes],默認(rèn)值0(表示不做truncate)。 |
2、infer
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"inputs": "hi",
"stream": false,
"parameters": {
"temperature": 1.1,
"top_k": 10,
"top_p": 0.95,
"do_sample": true,
"seed": 10,
"repetition_penalty": 1.03,
"typical_p": null,
"watermark": true
}
}' http://127.0.0.1:1025/infer
或者
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"inputs": "hi",
"stream": true,
"parameters": {
"temperature": 1.1,
"top_k": 10,
"top_p": 0.95,
"do_sample": true,
"seed": 10,
"repetition_penalty": 1.03,
"typical_p": null,
"watermark": true
}
}' http://127.0.0.1:1025/infer
請(qǐng)求參數(shù)
|
參數(shù)名 |
是否必選 |
說(shuō)明 |
取值要求 |
|
inputs |
必選 |
推理請(qǐng)求文本 |
非空,0<字符數(shù)<=16000,支持中英文。tokenizer之后的token數(shù)量<=maxSeqLen-maxIterTimes(配置文件讀取) |
|
do_sample |
可選 |
是否做sampling。 |
bool類型,默認(rèn)值false。 |
|
repetition_penalty |
可選 |
重復(fù)懲罰用于減少在文本生成過(guò)程中出現(xiàn)重復(fù)片段的概率。它對(duì)之前已經(jīng)生成的文本進(jìn)行懲罰,使得模型更傾向于選擇新的、不重復(fù)的內(nèi)容。 |
float類型,大于0,默認(rèn)值1.0。1.0表示不進(jìn)行重復(fù)度懲罰。大于1.0表示對(duì)重復(fù)進(jìn)行懲罰 |
|
seed |
可選 |
用于指定推理過(guò)程的隨機(jī)種子,相同的seed值可以確保推理結(jié)果的可重現(xiàn)性,不同的seed值會(huì)提升推理結(jié)果的隨機(jī)性。 |
uint_64類型,取值范圍(0,18446744073709551615],不傳遞該參數(shù),系統(tǒng)會(huì)產(chǎn)生一個(gè)隨機(jī)seed值。 |
|
temperature |
可選 |
控制生成的隨機(jī)性,較高的值會(huì)產(chǎn)生更多樣化的輸出。 |
float類型,大于0,默認(rèn)值1.0。1.0表示不進(jìn)行計(jì)算。大于1.0表示輸出隨機(jī)性提高。 |
|
top_k |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,只從概率最高的k個(gè)候選詞中選擇。使用限制請(qǐng)參見(jiàn)3-使用限制。 |
int類型,取值范圍(0,vocabSize)&&(0, 2147483647],默認(rèn)值0。 |
|
top_p |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,使用累計(jì)概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值。該參數(shù)也可以控制生成結(jié)果的多樣性,它基于累積概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值為止。 |
float類型,取值范圍(0, 1),默認(rèn)值1.0。 |
|
stream |
可選 |
指定返回結(jié)果是文本推理還是流式推理。 |
bool類型,默認(rèn)值false。 |
|
details |
可選 |
是否返回推理詳細(xì)輸出結(jié)果。 |
bool類型,默認(rèn)值false。 |
3、openai接口
單輪對(duì)話
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"model": "chatglm3",
"stream": false,
"messages": [
{
"role": "system",
"content": "介紹一下你自己"
}
]
}' http://127.0.0.1:1025/v1/chat/completions
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"model": "llama_65b",
"stream": true,
"messages": [
{
"role": "system",
"content": "who are you"
}
]
}' http://127.0.0.1:1025/v1/chat/completions
多輪對(duì)話
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"model": "llama_65b",
"stream": false,
"max_tokens": 100,
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "who are you?"
},
{
"role": "assistant",
"content": "I am a helpful assistant."
},
{
"role": "user",
"content": "can you translate some articles?"
}
]
}' http://127.0.0.1:1025/v1/chat/completions
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"model": "llama_65b",
"stream": true,
"max_tokens": 100,
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "who are you?"
},
{
"role": "assistant",
"content": "I am a helpful assistant."
},
{
"role": "user",
"content": "can you translate some articles?"
}
]
}' http://127.0.0.1:1025/v1/chat/completions
注意:
1、運(yùn)行環(huán)境的transformers版本不可低于4.35.0,低版本tokenizer不支持"chat_template"方法;
2、推理模型權(quán)重路徑下的tokenizer_config.json需要包含"chat_template"字段及其實(shí)現(xiàn);
chat_template示例:
"chat\_template": "{% for message in messages %}{% if loop.first and
messages[0]['role'] != 'system' %}{{ '<|im\_start|>system\\nYou are a helpful
assistant<|im\_end|>\\n' }}{% endif %}{{'<|im\_start|>' + message['role'] +
'\\n' + message['content'] + '<|im\_end|>' + '\\n'}}{% endfor %}{% if
add\_generation\_prompt %}{{ '<|im\_start|>assistant\\n' }}{% endif %}",
請(qǐng)求參數(shù)
|
參數(shù) |
是否必選 |
說(shuō)明 |
取值要求 |
|
model |
必選 |
模型名,當(dāng)前不校驗(yàn)該字段 |
- |
|
message |
必選 |
推理請(qǐng)求消息結(jié)構(gòu)。 |
List類型。 |
|
role |
可選 |
推理請(qǐng)求消息角色,當(dāng)前不處理該字段 |
- |
|
content |
必選 |
推理請(qǐng)求文本。 |
非空,0<字符數(shù)<=16000,支持中英文。tokenizer之后的token數(shù)量<=maxSeqLenmaxIterTimes(配置文件讀取)。 |
|
max_tokens |
可選 |
允許的最大新標(biāo)記數(shù)目。控制從模型生成的文本中添加到最終輸出中的最大詞匯數(shù)量。該字段受到GIMIS配置文件maxIterTimes參數(shù)影響,推理token輸出長(zhǎng)度<=maxIterTimes。 |
int類型,取值范圍(0,maxIterTimes]。默認(rèn)值16。 |
|
presence_penalty |
可選 |
存在懲罰介于-2.0和2.0之間,它影響模型如何根據(jù)到目前為止是否出現(xiàn)在文本中來(lái)懲罰新token。正值將通過(guò)懲罰已經(jīng)使用的詞,增加模型談?wù)撔轮黝}的可能性。 |
float類型,取值范圍[-2.0, 2.0],默認(rèn)值0.0。 |
|
frequency_penalty |
可選 |
頻率懲罰介于-2.0和2.0之間,它影響模型如何根據(jù)文本中詞匯(token)的現(xiàn)有頻率懲罰新詞匯(token)。正值將通過(guò)懲罰已經(jīng)頻繁使用的詞來(lái)降低模型一行中重復(fù)用詞的可能性 |
float類型,取值范圍[-2.0, 2.0],默認(rèn)值0.0。 |
|
seed |
可選 |
用于指定推理過(guò)程的隨機(jī)種子,相同的seed值可以確保推理結(jié)果的可重現(xiàn)性,不同的seed值會(huì)提升推理結(jié)果的隨機(jī)性。 |
int_64類型,取值范圍(0,9223372036854775807],不傳遞該參數(shù),系統(tǒng)會(huì)產(chǎn)生一個(gè)隨機(jī)seed值。 |
|
temperature |
可選 |
控制生成的隨機(jī)性,較高的值會(huì)產(chǎn)生更多樣化的輸出。 |
float類型,大于0,默認(rèn)值1.0。1.0表示不進(jìn)行計(jì)算。大于1.0表示輸出隨機(jī)性提高。 |
|
top_p |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,使用累計(jì)概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值。該參數(shù)也可以控制生成結(jié)果的多樣性,它基于累積概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值為止。 |
float類型,取值范圍(0,1 ],默認(rèn)值1.0。 |
|
stream |
可選 |
指定返回結(jié)果是文本推理還是流式推理。 |
bool類型參數(shù),默認(rèn)值false。 |
4、vllm接口
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"prompt": "My name is Olivier and I love",
"stream": false,
"repetition_penalty": 1,
"top_p": 1,
"top_k": 10,
"max_tokens": 16,
"temperature": 1
}' http://127.0.0.1:1025/generate
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"prompt": "My name is Olivier and I love",
"stream": true,
"repetition_penalty": 1,
"top_p": 1,
"top_k": 10,
"max_tokens": 16,
"temperature": 1
}' http://127.0.0.1:1025/generate
請(qǐng)求參數(shù)
|
參數(shù) |
是否必選 |
說(shuō)明 |
取值要求 |
|
prompt |
必選 |
推理請(qǐng)求文本。 |
非空,0<字符數(shù)<=16000,支持中英文。tokenizer之后的token數(shù)量<=maxSeqLenmaxIterTimes(配置文件讀取)。 |
|
presence_penalty |
可選 |
存在懲罰介于-2.0和2.0之間,它影響模型如何根據(jù)到目前為止是否出現(xiàn)在文本中來(lái)懲罰新token。正值將通過(guò)懲罰已經(jīng)使用的詞,增加模型談?wù)撔轮黝}的可能性。 |
float類型,取值范圍[-2.0,2.0],默認(rèn)值0。 |
|
frequency_penalty |
可選 |
頻率懲罰介于-2.0和2.0之間,它影響模型如何根據(jù)文本中詞匯(token)的現(xiàn)有頻率懲罰新詞匯(token)。正值將通過(guò)懲罰已經(jīng)頻繁使用的詞來(lái)降低模型一行中重復(fù)用詞的可能性。 |
float類型,取值范圍[-2.0,2.0],默認(rèn)值0。 |
|
repetition_penalty |
可選 |
重復(fù)懲罰用于減少在文本生成過(guò)程中出現(xiàn)重復(fù)片段的概率。它對(duì)之前已經(jīng)生成的文本進(jìn)行懲罰,使得模型更傾向于選擇新的、不重復(fù)的內(nèi)容 |
float類型,取值大于0,默認(rèn)值1.0。1.0表示不進(jìn)行重復(fù)度懲罰。大于1.0表示對(duì)重復(fù)進(jìn)行懲罰。 |
|
max_tokens |
可選 |
允許的最大新標(biāo)記數(shù)目。控制從模型生成的文本中添加到最終輸出中的最大詞匯數(shù)量。該字段受到GIMIS配置文件maxIterTimes參數(shù)影響,推理token輸出長(zhǎng)度<=maxIterTimes。 |
int類型,取值范圍(0,maxIterTimes]。默認(rèn)值16。 |
|
temperature |
可選 |
控制生成的隨機(jī)性,較高的值會(huì)產(chǎn)生更多樣化的輸出。1.0表示不進(jìn)行計(jì)算,大于1.0表示輸出隨機(jī)性提高。temperature=0,即采用greedy sampling,該參數(shù)映射到后處理的1.0。 |
float類型,取值>=0,默認(rèn)值1.0。 |
|
top_k |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,只從概率最高的k個(gè)候選詞中選擇。-1表示不進(jìn)行top k計(jì)算。使用限制請(qǐng)參見(jiàn)3-使用限制。 |
int類型,取值范圍-1或者(0, vocabSize)&&(0,2147483647],默認(rèn)值-1 |
|
top_p |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,使用累計(jì)概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值。該參數(shù)也可以控制生成結(jié)果的多樣性,它基于累積概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值為止。 |
float類型,取值范圍(0,1],默認(rèn)值1.0。 |
|
stream |
可選 |
指定返回結(jié)果是文本推理還是流式推理。 |
bool類型,默認(rèn)值false。 |
5、triton接口
文本推理接口
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"text_input": "My name is Olivier and I",
"parameters": {
"details": true,
"do_sample": true,
"max_new_tokens": 50,
"repetition_penalty": 1.1,
"seed": 123,
"temperature": 1,
"top_k": 256,
"top_p": 0.99,
"batch_size": 100
}
}' http://127.0.0.1:1025/v2/models/llama_65b/generate
請(qǐng)求參數(shù)
|
參數(shù) |
是否必選 |
說(shuō)明 |
取值要求 |
|
id |
可選 |
請(qǐng)求id。 |
stirng,非空。 |
|
text_input |
必選 |
推理請(qǐng)求文本。 |
非空,0<字符數(shù)<=16000,支持中英文。tokenizer之后的token數(shù)量<=maxSeqLenmaxIterTimes(配置文件讀取)。 |
|
details |
可選 |
是否返回推理詳細(xì)輸出結(jié)果。 |
bool類型,默認(rèn)值false。 |
|
do_sample |
可選 |
是否做sampling。 |
bool類型,默認(rèn)值false。 |
|
max_new_tokens |
可選 |
允許的最大新標(biāo)記數(shù)目。控制從模型生成的文本中添加到最終輸出中的最大詞匯數(shù)量。該字段受到GIMIS配置文件maxIterTimes參數(shù)影響,推理token輸出長(zhǎng)度<=maxIterTimes。 |
int類型,取值范圍(0,maxIterTimes]。默認(rèn)值20。 |
|
repetition_penalty |
可選 |
重復(fù)懲罰用于減少在文本生成過(guò)程中出現(xiàn)重復(fù)片段的概率。它對(duì)之前已經(jīng)生成的文本進(jìn)行懲罰,使得模型更傾向于選擇新的、不重復(fù)的內(nèi)容。 |
float類型,大于0,默認(rèn)值1.0。1.0表示不進(jìn)行重復(fù)度懲罰。大于1.0表示對(duì)重復(fù)進(jìn)行懲罰。 |
|
seed |
可選 |
用于指定推理過(guò)程的隨機(jī)種子,相同的seed值可以確保推理結(jié)果的可重現(xiàn)性,不同的seed值會(huì)提升推理結(jié)果的隨機(jī)性。 |
uint_64類型,取值范圍(0,18446744073709551615],不傳遞該參數(shù),系統(tǒng)會(huì)產(chǎn)生一個(gè)隨機(jī)seed值。 |
|
temperature |
可選 |
控制生成的隨機(jī)性,較高的值會(huì)產(chǎn)生更多樣化的輸出。 |
float類型,大于0,默認(rèn)值1.0。1.0表示不進(jìn)行計(jì)算。大于1.0表示輸出隨機(jī)性提高。 |
|
top_k |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,只從概率最高的k個(gè)候選詞中選擇。使用限制請(qǐng)參見(jiàn)3-使用限制。 |
int類型,取值范圍[0,2147483647]&&[0, vocabSize),默認(rèn)值0。 |
|
top_p |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,使用累計(jì)概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值。該參數(shù)也可以控制生成結(jié)果的多樣性,它基于累積概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值為止。 |
float類型,取值范圍(0, 1],默認(rèn)值1.0。 |
|
batch_size |
可選 |
推理請(qǐng)求batch_size。 |
int類型,大于0,默認(rèn)值1。 |
token推理接口
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'{
"id": "42",
"inputs": [
{
"name": "input0",
"shape": [
1,
65
],
"datatype": "UINT32",
"data": [529,29989,326,29918,2962,29989,29958,5205,13,3492,526,263,780,13563,7451,1058,23
37,10049,29879,297,278,3114,310,263,21625,403,29966,29989,326,29918,355,29989,299
58,13,29966,29989,326,29918,2962,29989,29958,1792,13,22110,526,366,29973,29966,29
989,326,29918,355,29989,29958,13,29966,29989,326,29918,2962,29989,29958,465,22137
,13]
}
],
"outputs": [
{
"name": "output0"
}
]
}' http://127.0.0.1:1025/v2/models/llama_65b/infer
請(qǐng)求參數(shù)
|
參數(shù) |
是否必選 |
說(shuō)明 |
取值范圍 |
|
id |
可選 |
推理請(qǐng)求id。 |
字符串。 |
|
inputs |
必選 |
只有一個(gè)元素的數(shù)組。 |
|
|
outputs |
必選 |
推理結(jié)果輸出結(jié)構(gòu)。 |
object。 |
inputs參數(shù)
|
參數(shù) |
是否必選 |
說(shuō)明 |
取值范圍 |
|
name |
必選 |
輸入名稱,固定"input0"。 |
"input0"。 |
|
shape |
必選 |
參數(shù)維度,1行,n列,和data長(zhǎng)度相關(guān)。 |
(0, len(data)]。 |
|
dataType |
必選 |
data數(shù)據(jù)類型,目前場(chǎng)景僅支持UINT32,傳遞tokenid。 |
“UINT32”。 |
|
seed |
可選 |
用于指定推理過(guò)程的隨機(jī)種子,相同的seed值可以確保推理結(jié)果的可重現(xiàn)性,不同的seed值會(huì)提升推理結(jié)果的隨機(jī)性。 |
uint_64類型,取值范圍,(0,18446744073709551615],不傳遞該參數(shù),系統(tǒng)會(huì)產(chǎn)生一個(gè)隨機(jī)seed值。 |
|
temperature |
可選 |
控制生成的隨機(jī)性,較高的值會(huì)產(chǎn)生更多樣化的輸出。 |
float類型,大于0,默認(rèn)值1.0。1.0表示不進(jìn)行計(jì)算。大于1.0表示輸出隨機(jī)性提高。 |
|
top_k |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,只從概率最高的k個(gè)候選詞中選擇。使用限制請(qǐng)參見(jiàn)3-使用限制。 |
int類型,取值范圍[0,2147483647]&&[0, vocabSize)默認(rèn)值0。 |
|
top_p |
可選 |
控制模型生成過(guò)程中考慮的詞匯范圍,使用累計(jì)概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值。該參數(shù)也可以控制生成結(jié)果的多樣性,它基于累積概率選擇候選詞,直到累計(jì)概率超過(guò)給定的閾值為止。 |
float類型,取值范圍(0, 1],默認(rèn)值1.0。 |
|
do_sample |
可選 |
是否做sampling。 |
bool類型,默認(rèn)值false。 |
|
repetition_penalty |
可選 |
重復(fù)懲罰用于減少在文本生成過(guò)程中出現(xiàn)重復(fù)片段的概率。它對(duì)之前已經(jīng)生成的文本進(jìn)行懲罰,使得模型更傾向于選擇新的、不重復(fù)的內(nèi)容。 |
float類型,大于0,默認(rèn)值1.0。1.0表示不進(jìn)行重復(fù)度懲罰。大于1.0表示對(duì)重復(fù)進(jìn)行懲罰。 |
|
max_new_tokens |
可選 |
允許的最大新標(biāo)記數(shù)目。控制從模型生成的文本中添加到最終輸出中的最大詞匯數(shù)量。該字段受到GIMIS配置文件maxIterTimes參數(shù)影響,推理token輸出長(zhǎng)度<=maxIterTimes。 |
int類型,取值范圍(0,maxIterTimes]。默認(rèn)值20。 |
output參數(shù)
|
參數(shù) |
是否必選 |
說(shuō)明 |
取值范圍 |
|
name |
必選 |
推理結(jié)果輸出名。 |
只支持"output0"。 |

浙公網(wǎng)安備 33010602011771號(hào)