
文心一言写代码:代码生成力的探索
Mistral-Large-Instruct-2407 是 Mistral AI 公司推出的最新一代大型语言模型。凭借其在代码生成、数学推理和多语言支持方面的卓越表现,这一模型迅速吸引了业界的关注。与 OpenAI 的 GPT-4 相比,Mistral-Large-Instruct-2407 在某些领域表现甚至更为出色。该模型不仅支持中文,还在通用能力测评中取得了优异的成绩,使其成为 AI 应用领域的有力竞争者。
为了在您的项目中使用 Mistral-Large-Instruct-2407,首先需要进行模型的部署。根据笔者的实测,部署该模型需要至少 4 张 A800 显卡。以下是具体的部署步骤:
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 接口访问方式来使用该模型,这使得集成变得更加便捷。
一旦成功部署 Mistral-Large-Instruct-2407,您可以通过 API 进行调用。以下是使用 LangChain 进行 API 调用的示例代码:
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)
通过上述代码,您可以轻松地发送请求并获取模型的响应,充分利用 Mistral-Large-Instruct-2407 的强大功能。
在实际应用中,测试是确保模型准确性的重要步骤。使用之前 GPT-4 翻车的问题“9.11 和 9.9 哪个大?为什么?”来测试 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 小,但从整体数值来看,9.11 比 9.9 大。
尽管结论正确,但推理过程中的一些细节需要进一步优化,例如“因为 9.11 比 9.9 多了 0.01”这一点显然不正确。
目前,官方声称 Mistral-Large-Instruct-2407 支持最大 128k 的 token,但实际测试发现,模型的最大 token 支持仅为 32k。当请求超过 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}
这一问题在社区中引发了广泛讨论,但官方尚未给出明确的解决方案。
尽管 Mistral-Large-Instruct-2407 在官方测评中展现了强大的函数调用能力,但目前 vllm 并不支持该功能。笔者已向 vllm 官方提交了需求,希望未来版本能够支持此特性。
Mistral-Large-Instruct-2407 凭借其卓越的通用能力和出色的数学推理能力,在 AI 模型领域占据了一席之地。尽管在实际应用中仍然存在一些小问题,如最大 token 支持和函数调用的限制,但这些问题并不影响其作为高效 AI 工具的整体表现。
通过对 Mistral-Large-Instruct-2407 的全面分析,我们可以更好地理解其部署和应用方法,从而在实际项目中充分发挥其强大的 AI 能力。