1. 引入
2024年7月底又上演了大模型疯狂内卷,23号Llama3.1-405B发布,性能已经接近GPT4;24号Mistral Large 2发布,只用了123B的参数,就在代码、推理、数学领域又超过了Llama3.1-405B。
并且,Mistral-Large-Instruct-2407
官方就通告支持中文,这个也很少见。而且在通用能力测评中,也表现不错。
那么,如何部署使用Mistral-Large-Instruct-2407
呢?有没有什么坑?
2. vllm部署方法
经笔者实测,使用4张A800,才能将Mistral-Large-Instruct-2407
跑起来,具体配置方法如下所示:
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m vllm.entrypoints.openai.api_server \
--model /data/models/Mistral-Large-Instruct-2407/ \
--served-model-name aaa \
--trust-remote-code \
--tensor-parallel-size 4 \
--port 8000
部署后,就能使用标准openai接口访问方式来使用这个模型了:
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage
llm = ChatOpenAI(
streaming=True,
verbose=True,
openai_api_key='none',
openai_api_base='http://10.11.12.13:8000/v1',
model_name='aaa'
)
output = llm([HumanMessage(content='你好')])
print(output.content)
3. 测试
用之前GPT4翻车的问题“9.11和9.9哪个大?为什么?”(参考4)来测试Mistral-Large-Instruct-2407
,得到如下回复:
9.11 比 9.9 大。
原因如下:
1. 首先比较整数部分:9.11 和 9.9 的整数部分都是 9,所以它们相等。
2. 接下来比较小数部分:
- 9.11 的小数部分是 0.11。
- 9.9 的小数部分是 0.9。
0.11 比 0.9 小,但我们需要比较整体数值,而不是单独的小数部分。
3. 9.11 可以看作是 9 + 0.11,而 9.9 可以看作是 9 + 0.9。
- 0.11 是 11 个 0.01。
- 0.9 是 9 个 0.1。
4. 将 0.11 和 0.9 转换为相同的单位进行比较:
- 0.11 = 11 个 0.01。
- 0.9 = 90 个 0.01。
5. 比较 11 个 0.01 和 90 个 0.01:
- 11 个 0.01 等于 0.11。
- 90 个 0.01 等于 0.9。
显然,9.11(即 9 + 0.11)比 9.9(即 9 + 0.9)大,因为 9.11 比 9.9 多了 0.01。
所以,9.11 比 9.9 大。
CPU times: user 696 ms, sys: 16.9 ms, total: 713 ms
Wall time: 22.7 s
结论正确,但推理过程也不够好,比如“因为 9.11 比 9.9 多了 0.01”就是错的。
4. 小坑
- 最大token
目前发现一个小坑,Mistral-Large-Instruct-2407
官方宣称支持token最大128k,但是目前模型config.json
中的参数配置显示"max_position_embeddings": 32768
(参考2)。笔者实测目前放出的模型最大token仅支持32k,发送请求中,prompt超出32k会得到如下报错:
BadRequestError: Error code: 400 - {'object': 'error', 'message': "This model's maximum context length is 32768 tokens. However, you requested 74761 tokens in the messages, Please reduce the length of the messages.", 'type': 'BadRequestError', 'param': None, 'code': 400}
从参考3中,也能看到很多人在讨论这个问题,目前官方还没回复。
- 函数调用
目前vllm并不支持该模型的函数调用,虽然模型的官方测评(参考1)中可以看到他的函数调用能力很不错。
所以笔者给vllm官方提了一个需求:https://github.com/vllm-project/vllm/issues/6778
6. 总结
Mistral-Large-Instruct-2407
是一个通用能力不错,且代码、推理、数学能力很好的,整体能力接近GPT4的模型。
参考
- https://mistral.ai/news/mistral-large-2407/
- https://huggingface.co/mistralai/Mistral-Large-Instruct-2407/blob/main/config.json#L12
- https://huggingface.co/mistralai/Mistral-Large-Instruct-2407/discussions/3
- https://blog.csdn.net/Japhet_jiu/article/details/140512097