Mistral AI最近开源了一套名为mistral-common的工具集,旨在帮助开发者更方便地使用Mistral系列大语言模型。这个工具集不仅提供了常规的文本分词功能,还增加了工具解析和结构化对话等高级特性,为开发者提供了更多灵活性和可能性。
mistral-common的核心功能是提供多个版本的分词器,用于支持Mistral AI不同阶段发布的模型。目前,该工具集包含了三个主要版本的分词器:
v1版本:支持早期的Mistral 7B Instruct v0.1/v0.2和Mixtral 8x7B Instruct v0.1等模型。
v2版本:用于支持mistral-small-latest等模型。
v3版本:支持最新的Mistral 7B Instruct v0.3、Mixtral 8x22B Instruct v0.1/v0.3等大型模型。
此外,还有一个特殊的v3 (Tekken)版本,专门用于支持Nemo 12B 2407模型。
这些分词器不仅可以处理普通的文本到token的转换,还能解析工具调用和结构化对话,为开发者提供了更丰富的功能支持。同时,该工具集还包含了Mistral AI API中使用的验证和规范化代码,确保开发者可以按照官方标准处理输入数据。
mistral-common的安装非常简单,开发者可以通过pip直接安装:
pip install mistral-common
对于希望从源代码安装的开发者,该项目使用poetry作为依赖和虚拟环境管理工具。首先需要安装poetry:
pip install poetry
然后使用poetry设置虚拟环境并安装依赖:
poetry install
以下是一个使用mistral-common进行分词的简单示例:
from mistral_common.protocol.instruct.messages import UserMessage from mistral_common.protocol.instruct.request import ChatCompletionRequest from mistral_common.protocol.instruct.tool_calls import Function, Tool from mistral_common.tokens.tokenizers.mistral import MistralTokenizer # 加载Mistral分词器 model_name = "open-mixtral-8x22b" tokenizer = MistralTokenizer.from_model(model_name) # 对一系列消息进行分词 tokenized = tokenizer.encode_chat_completion( ChatCompletionRequest( tools=[ Tool( function=Function( name="get_current_weather", description="Get the current weather", parameters={ "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA", }, "format": { "type": "string", "enum": ["celsius", "fahrenheit"], "description": "The temperature unit to use. Infer this from the users location.", }, }, "required": ["location", "format"], }, ) ) ], messages=[ UserMessage(content="What's the weather like today in Paris"), ], model=model_name, ) ) tokens, text = tokenized.tokens, tokenized.text # 输出token数量 print(len(tokens))
这个例子展示了如何使用mistral-common对包含工具调用的对话进行分词,这对于开发基于Mistral模型的复杂应用非常有用。
Mistral Common是一个开源项目,托管在GitHub上。截至目前,该项目已经获得了486颗星和46个分支,显示出开发者社区对这个工具集的高度关注。项目采用Apache-2.0许可证,鼓励开发者自由使用和贡献代码。
项目的主要贡献者包括来自Mistral AI的工程师,以及一些活跃的开源社区成员。他们持续更新和改进这个工具集,确保它能够支持Mistral AI最新发布的模型和功能。
随着大语言模型技术的快速发展,Mistral Common也在不断evolve。未来,我们可能会看到更多功能的加入,例如:
对于有兴趣深入了解或贡献代码的开发者,可以访问Mistral Common的GitHub仓库获取更多信息。
Mistral Common为开发者提供了一个强大而灵活的工具集,大大简化了使用Mistral系列大语言模型的过程。无论是进行基础的文本处理,还是开发复杂的AI应用,这个工具集都能提供有力的支持。随着更多开发者的参与和贡献,我们有理由相信Mistral Common将在未来发挥更大的作用,推动大语言模型技术的进一步发展和应用。