作为 Python 和 ML 的初学者,我经常依赖 scikit-learn 来完成几乎所有的项目。它的简单性和多功能性使实现各种算法成为一种令人着迷的体验。
现在,令人兴奋的是,scikit-learn 通过Scikit-LLM引入了 LLM 功能,从而进一步发展。这种集成将 GPT、Vertex、Gemma、Mistral、Llama 等大型语言模型的强大功能带入了 scikit-learn 生态系统,使其成为机器学习爱好者和专业人士的更强大的工具。
根据该库的文档,“Scikit-LLM 允许你将强大的语言模型无缝集成到 scikit-learn 中,以增强文本分析任务。”
注意:本文中的所有代码示例均取自 Scikit-LLM 的文档
NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模
1、关于Scikit-LLM库
在 Scikit-LLM 中,估算器根据它们使用的语言模型 API 类型进行分组,这被称为“后端系列”。这种分组基于 API 格式,而不是语言模型的实际架构。例如,任何遵循 OpenAI API 格式的模型都归类为 GPT 系列,无论使用哪种提供商或模型架构。每个系列都有自己的一组估计器,位于特定的子模块中。
例如,零样本分类器在不同的后端系列下可用:GPT 系列中的 ZeroShotGPTClassifier
和 Vertex 系列中的 ZeroShotVertexClassifier
。当不同的提供商为其模型添加其他提供商可能不支持的独特功能时,将这些后端系列分开可以提供灵活性。尽管如此,为了确保易用性,系列数量仍保持最少。
除非另有说明,否则将使用系列的默认后端。例如,OpenAI 后端是 GPT 系列的默认后端,但用户可以通过在模型设置中指定它来切换到 Azure 后端。但是,并非所有模型都支持每个后端。
2、GPT 系列
GPT 系列包括所有使用 OpenAI API 格式的后端,OpenAI 后端为默认后端。如果没有提及特定后端,则使用 OpenAI 后端。要启用它,只需设置你的 OpenAI API 密钥和组织 ID。
from skllm.config import SKLLMConfig
SKLLMConfig.set_openai_key("<YOUR_KEY>")
SKLLMConfig.set_openai_org("<YOUR_ORGANIZATION_ID>")
还可以通过 Azure OpenAI 服务访问 OpenAI 模型。要使用 Azure 后端,请提供你的 Azure API 密钥和终结点。
from skllm.config import SKLLMConfig
# Found under: Resource Management (Left Sidebar) -> Keys and Endpoint -> KEY 1
SKLLMConfig.set_gpt_key("<YOUR_KEY>")
# Found under: Resource Management (Left Sidebar) -> Keys and Endpoint -> Endpoint
SKLLMConfig.set_azure_api_base("<API_BASE>") # e.g. https://<YOUR_PROJECT_NAME>.openai.azure.com/
使用 Azure 后端时,应将模型指定为 model ="azure::<model_deployment_name>"
。例如,如果我们以名称 my-model
创建了 gpt-3.5 部署,则应使用 model ="azure::my-model"
。
2.1 GGUF
GGUF 是一种用于存储量化模型权重和配置的开源格式。它主要用于 Llama CPP 项目,但也可以由其他运行时加载。要将 GGUF 模型与 scikit-llm 一起使用,请安装 llama-cpp 库及其 Python 绑定,安装命令因硬件而异。