最近,关于数字大小的讨论在全世界风靡。东有《歌手》排名引起争议,孙楠的13.8% 与 香缇莫的 13.11% 哪个大?西有 GPT 4o 认为 9.11比9.9 大。
正值此时,Mistral AI发布了mathstral[1],这是一个专门为数学推理和科学发现而优化的70亿参数大模型。该大模型具有32k的上下文窗口。模型权重在Apache 2.0许可下可用。
正如我们所见,如GPT-4o这样的前沿大型语言模型能解决非常复杂的数学问题。但是它们有常识吗?互联网上流传的一个模因暗示,LLMs只能假装解决“奥数级别”的问题,因为它甚至缺乏小学数学的理解。比如 GPT-4o 连9.11和9.9哪个更大都判断错了!
mathstral 能回答这些常识问题吗?让我们下载并在本地运行 mathstral 模型[2],并测试其能力。
我们将使用 LlamaEdge[3](Rust + Wasm 技术栈)来开发和部署这个模型的应用程序。无需安装复杂的 Python 包或 C++ 工具链!了解我们选择该技术栈的原因[4]。
在本地运行 mathstral 并启动一个兼容 OpenAI 的 API 服务
步骤1:通过以下命令行安装 WasmEdge[5]。
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash -s -- -v 0.13.5 --ggmlbn=b3259
步骤2:使用以下命令下载 Mathstral GGUF文件[6]。由于模型大小为5.14 G,下载可能需要一段时间。
curl -LO https://huggingface.co/second-state/internlm2_5-7b-chat-GGUF/resolve/main/internlm2_5-7b-chat-Q5_K_M.gguf?download=true
步骤3:下载API服务器应用。它也是一个可以在不同 CPU 和 GPU 设备上运行的跨平台可移植的 Wasm 应用。
curl -LO https://github.com/LlamaEdge/LlamaEdge/releases/latest/download/llama-api-server.wasm
步骤4:使用以下命令行启动模型的API服务器。
wasmedge --dir .:. --nn-preload default:GGML:AUTO:mathstral-7B-v0.1-Q5_K_M.gguf \
llama-api-server.wasm \
--prompt-template mistral-instruct \
--ctx-size 32000 \
--batch-size 128 \
--model-name mathstral-7B-v0.1
从另一个终端,你可以使用curl与API服务器交互。
curl -X POST http://localhost:8080/v1/chat/completions \
-H 'accept:application/json' \
-H 'Content-Type: application/json' \
-d '{"messages":[{"role":"system", "content": "You are a sentient, superintelligent math teahcher, here to teach and assist me."}, {"role":"user", "content": "Whiche one is bigger - 9.11 or 9.9?"}], "model":"mathstral-7B-v0.1"}'
得到的回复如下:
{"id":"chatcmpl-9d0c3166-3fc8-4744-8b5c-08d900c39d24","object":"chat.completion","created":1721228452,"model":"mathstral-7B-v0.1-Q5_K_M","choices":[{"index":0,"message":{"content":"1. Identify the given numbers: 9.11 and 9.9\n\n2. Compare the integer parts of both numbers. In this case, the integer part is the number before the decimal point.\n\n - For 9.11, the integer part is 9.\n - For 9.9, the integer part is also 9.\n\n3. Since the integer parts are equal, we need to compare the decimal parts (the numbers after the decimal point).\n\n4. Compare the first digit after the decimal point of both numbers.\n\n - For 9.11, the first digit after the decimal point is 1.\n - For 9.9, the first digit after the decimal point is also 1.\n\n5. The second digit after the decimal point for 9.11 is 1, while for 9.9 it does not exist, because the number only has one digit after the decimal point.\n\n6. Since 1 (from 9.11) is greater than 0 (implicitly, as there's no second digit in 9.9), we can conclude that:\n\n$$9.11 > 9.9$$\n\n7. Therefore, the final answer is:\n\n$$\\boxed{9.11}$$","tool_calls":[],"role":"assistant"},"finish_reason":"stop","logprobs":null}],"usage":{"prompt_tokens":26,"completion_tokens":293,"total_tokens":319}}
7B mathstral 模型完美地以正确的推理回答了数学常识问题。这符合我们一次又一次观察到的趋势——针对特定领域的优化开源模型可以胜过更大的封闭源模型。
直接将 mathstral 作为应用服务提供给个人用户
上述步骤展示了如何在本地运行 mathstral 模型。但如果还想分享给朋友使用,甚至加入自己的数学知识作为上下文。GaiaNet 项目[7]能让你轻松达成。
首先,我们需要安装所需的软件。
curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash
然后,我们可以使用以下命令行下载模型。
gaianet init --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/mathstral-7b/config.json
接下来,让我们用gaianet start
开始运行 mathstral 模型。它通过一个 OpenAI 兼容的 API 端点以及一个基于 web 的聊天机器人界面提供服务。
gaianet start
接下来,你就可以在浏览器中打开终端上打印出的 url 与 mathstral-7b 模型聊天了。这次让我们试试引起争议的歌手排名。
mathstral 展示了详细的推演步骤--为什么 13.8% 比 13.11% 大,对得起数学模型的称号。
GaiaNet 不仅限于运行和服务本地 LLM。它允许你定制提示词、添加上下文,甚至结合专有知识库以使 LLM 的答案和事实对齐。戳此查看详情![8]
mathstral: https://mistral.ai/news/mathstral/
[2]下载并在本地运行 mathstral 模型: https://huggingface.co/mistralai/mathstral-7B-v0.1
[3]LlamaEdge: https://github.com/second-state/LlamaEdge/
[4]了解我们选择该技术栈的原因: https://www.secondstate.io/articles/fast-llm-inference/
[5]WasmEdge: https://github.com/WasmEdge/WasmEdge
[6]Mathstral GGUF文件: https://huggingface.co/second-state/mathstral-7B-v0.1-GGUF
[7]GaiaNet 项目: https://github.com/GaiaNet-AI/gaianet-node
[8]查看详情!: https://docs.gaianet.ai/intro
关于 WasmEdge
WasmEdge 是轻量级、安全、高性能、可扩展、兼容OCI的软件容器与运行环境。目前是 CNCF 沙箱项目。WasmEdge 被应用在 SaaS、云原生,service mesh、边缘计算、边缘云、微服务、流数据处理、LLM 推理等领域。
GitHub:https://github.com/WasmEdge/WasmEdge
官网:https://wasmedge.org/
Discord 群:https://discord.gg/U4B5sFTkFc
文档:https://wasmedge.org/docs