# telellm **Repository Path**: modelers/telellm ## Basic Information - **Project Name**: telellm - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 17 - **Forks**: 0 - **Created**: 2025-01-07 - **Last Updated**: 2025-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
TeleLLM-logo
中文 | English
> **⭐️ 收藏项目 ,以便您在第一时间获取 TeleLLM 的最新动态~** --- ## 📣 最新进展 - **\[2024.11.28\]** 新增 `ADD_DEFAULT_SYSTEM_ROLE` 环境变量(默认值:`True`);同步`torch_dtype` 与模型文件设置;新增对Telechat量化模型、Telechat2、Moss-Moon-003-SFT、BELLE-7B-2M、Ziya-LLaMA-13B-v1模型支持(nvidia),新增测试用例校验🚩🚩🚩 - **\[2024.11.18\]** 针对MindIE RC3进行适配升级,增加了对Llama3.1-8B、70B、Telechat-1B、7B、12B等模型的支持🚩🚩🚩 - **\[2024.10.12\]** 增加了对华为Ascend的支持,推理服务支持用户自定义参数的输入,默认参数更新,上下文长度提升至8k,输出2k,欢迎尝试! 🚩🚩🚩 (持续更新中......) --- # 简介 TeleLLM 由天翼云智算团队开发,是一个大模型推理项目生成脚手架,涵盖了 LLM 任务的全套轻量化、部署和服务解决方案。其主要特点如下: - 支持Nvidia和Ascend LLM推理。 - 支持接口文档、功能测试文档、性能测试文档的自动生成。 - 支持对MindIEServer的推理。 - 支持大模型数据集评测。 - 对齐Openai接口,支持图生文、文生图和图生图多模态模型推理。 - 支持部署文档自动生成。 - 支持大模型量化、LMDeploy视觉类模型推理和Function call - (持续更新中......) # 快速开始 ## 🛠️ 安装指南 若您使用cuda安装TeleLLM,您可以参考该安装说明:[使用cuda安装](docs/Installation-cuda.md) 若您使用npu安装TeleLLM,您可以参考该安装说明:[使用npu安装](docs/Installation-npu.md) ## 📂 数据准备 ### 提前离线下载 TeleLLM支持使用本地数据集进行评测,数据集的下载可以通过以下命令完成: **待补充是否提供离线数据集包......** ### 使用 ModelScope 自动下载 您也可以使用[ModelScope](https://www.modelscope.cn/home)来加载数据集: 环境准备: ```bash pip install modelscope export DATASET_SOURCE=ModelScope ``` # 💡 基本用法 ## 1.服务调用 进入已部署TeleLLM的容器后,您可以执行下面指令启动服务 ```bash telellm serve --model /model --model_name Qwen2-7B-Instruct -p 8899 ``` 目前telellm serve支持 ``--model``、``--tensor_parallel_size``等15个参数的传入 ,具体使用参考服务功能参数说明:[Serve-args](docs/Serve-args.md) ## 2. 模型功能&性能测试 > 服务部署完成后,执行telellm test可进行服务测试,可在 `当前目录下`生成测试报告。(功能测试报告、性能测试报告) - 帮助: ```bash telellm test --help ``` - 参数说明: | 参数 | 简称 | 类型 | 默认值 | 描述 | | -------------- | ---- | ----- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --test_type | -tt | str | both | 测试类型。
1. functional
2. performance
3. both | | --service_host | -sh | str | localhost | 服务主机 | | --service_port | -sp | int | 8899 | 服务端口 | | --service_name | -sn | str | llmservice | 服务名称 | | --model_name | -mn | str | —— | 模型名称 | | --concurrency | -c | [int] | [1] | 并发数(**仅性能测试**使用) | | --seq_len | -s | [int] | [25, 100, 400, 800] | 测试文本长度(**仅性能测试**使用)
25 length > 32 token
100 length > 128 token ``400 length > 512 token ``800 length > 1024 token | --- - 举例: ```bash telellm test -tt both -sh localhost -sp 8899 -sn nvidia-qwen-infer-svc -mn Qwen-7B-Chat -c 1 -c 2 -c 4 ``` - `-tt both`代表生成功能测试报告和性能测试报告;`-tt functional`代表仅生成功能测试;`-tt performance`代码仅生成性能测试。 - `-c 1 -c 2 -c 4` 代表并发数为[1,2,4],可调整。 - `-s 25 -s 100 -s 400 -s 800`代表文本长度为[25, 100, 400, 800],可调整。 ## 3. 模型精度评测 执行telellm eval进行模型评测,可在 `当前目录下`生成评测结果文件夹 `eval_chat_outs`和 `评测结果报告文件`。 - 帮助: ```bash telellm eval --help ``` - 参数说明: | 参数 | 简称 | 类型 | 默认值 | 描述 | | -------------------- | ---- | ----- | --------- | ----------------------------------------------------------------------------------- | | --service_host | -sh | str | localhost | 服务主机 | | --service_port | -sp | int | 8899 | 服务端口 | | --model_name | -mn | str | —— | 模型名称 | | --dataset | -ds | str | mmlu | 需要评测的数据集
1. mmlu
2. ceval
3. humaneval
4. gsm8k | | --type | -t | str | val | 数据集类型
1. val
2. test | | --overwrite | -o | | False | 是否覆盖存在的结果 | | --num_threads | -nt | int | 5 | 最大执行的线程数 | | --temperature | -tt | float | 1.0 | 请求参数temperature | | --top_p | -tp | float | 0.001 | 请求参数top_p | | --top_k | -tk | int | 1 | 请求参数top_k | | --repetition_penalty | -rp | float | 1.0 | 请求参数repetition_penalty | | --enable_rp | -erp | | False | 是否使用repetition_penalty参数(临时) | --- - 举例: ```bash # 使用存在的结果 telellm eval -sh localhost -sp 8899 -mn llama2-7b-chat -ds mmlu -t val -nt 5 # 覆盖存在的结果 telellm eval -sh localhost -sp 8899 -mn llama2-7b-chat -ds mmlu -t val -nt 5 -o ``` - `-ds mmlu`代表使用 `MMLU`数据集进行评测,可选的还有 `ceval`/`humaneval`/`gsm8k`。 - `-t val`代表使用数据集的val验证集进行评测(部分数据集没有 `val`,humaneval/gsm8k则无需填写此项),可选的还有 `test`测试集。 - `-nt 5`代表最大使用多少个线程进行评测。 - `-o`代表覆盖存在的中间结果,重新模型评测,**不填则使用上次中间结果继续评测**。 - `-erp`代表传入的repetition_penalty参数有效(临时,适配新旧版本) > Note: > > 1. (**可选**,评测请求时已做top_k/temperature/top_p/repetition_penalty限制)模型评测时需要 开启贪心解码:do_sample=False > 2. c-eval test测试集结果需要在网站提交结果获取评分:https://cevalbenchmark.com/static/user_interface.html 数据集介绍: | | mmlu | c-eval | human-eval | gsm8k | | ---- | ------------------------------------------------------------ | ----------------------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------ | | 类型 | 通用领域英文数据集 | 通用领域中文数据集 | 代码 | 数学 | | 介绍 | 涵盖57项任务,包括基础数学、美国历史、计算机科学、法律等领域 | 涉及4个学科大类,52个学科小类,分别对应四个难度等级(初中,高中,大学和专业) | 包含了164个精心设计的编程任务,每个任务都包含四个关键组成部分 | 包含高质量语言多样化小学数学应用题的数据集,这些问题都是由人类写手创造的 | | 分类 | 1. val验证集:1540个问题``2. test测试集:14079个问题 | 1.val验证集:1346个问题``2. test测试集:12342个问题 | test测试集:164个编程任务 | test测试集 :1319个小学数学题 | --- 类别介绍: - STEM/科学、技术、工程和数学:包含计算机、电气工程、化学、数学、物理等多个学科 - Social Science/社会科学:包含政治、地理、教育学、经济学、工商管理等多个学科 - Humanities/人文科学:包含法律、艺术、逻辑学、语文、历史等多个学科 - Other/其他:其他学科的汇总,包含环境、消防、税务、体育、医学等多个学科 ## 4.量化 在开始量化前,我们需要一些前置的量化参数说明:[Quant-args](docs/Quant-args.md) 量化的配置支持通过配置文件或者命令行输入参数两种方式,推荐使用配置文件。 如果使用配置文件,使用如下命令将自动生成配置文件(quant_config.json)和默认校准数据集(calib.jsonl): ```shell telellm quant_config ``` 当然,也可以使用命令行输入参数(不推荐) ```shell telellm quant -mp /model_in -sd /model_out -pf true -acc false ``` 量化结束后,会在当前目录生成量化报告(quant_result.json) # 🏛 License 本框架使用[Apache License (Version 2.0)](LICENSE).进行许可。模型和数据集请查看原资源页面并遵守对应License。 # ☁️ 模型支持 TeleLLM支持多种大语言模型和多模态模型,以下是TeleLLM当前支持的模型列表:[Supported_models](docs/Supported_models.md)