镜像概述和主要用途
Nsorana/my_awesome_model_cased是一个基于Docker容器化的文本分类模型,旨在提供便捷的本地部署方案。该模型可用于各类文本分类任务,支持通过CPU或GPU运行,并允许将模型权重本地缓存以减少重复下载时间。使用前需获取免费的Bytez API密钥,以启用分析和模型升级通知功能。
核心功能和特性
- 容器化部署:通过Docker镜像实现快速部署,简化环境配置
- 多设备支持:兼容CPU和GPU运行,可通过环境变量指定设备
- 权重本地缓存:支持将模型权重存储在本地目录,加速后续启动
- 灵活端口配置:可自定义容器运行端口,适应不同网络环境
- 丰富参数控制:提供多种文本生成和分类参数,支持定制化推理需求
使用场景和适用范围
- 需要本地处理文本分类任务的应用
- 对数据隐私有较高要求,需本地部署模型的场景
- 需要灵活调整模型运行参数的研究和开发工作
- 希望利用GPU加速提升推理性能的场景
详细使用方法和配置说明
前提条件
- 已安装Docker环境
- 注册并获取Bytez API密钥(通过Bytez设置页面获取)
拉取Docker镜像
bash
docker pull bytez/nsorana_my_awesome_model_cased
基本运行容器
在8000端口启动容器
bash
docker run -it \
-e KEY=YOUR_BYTEZ_API_KEY_HERE \
-e PORT=8000 \
-p 8000:8000 \
bytez/nsorana_my_awesome_model_cased
自定义端口
如需使用其他端口(如80端口),可调整PORT环境变量和端口映射:
bash
docker run -it \
-e KEY=YOUR_BYTEZ_API_KEY_HERE \
-e PORT=80 \
-p 80:80 \
bytez/nsorana_my_awesome_model_cased
执行推理请求
启动容器后,可通过POST请求进行文本分类推理:
bash
curl --location 'http://0.0.0.0:8000/run' \
--header 'Content-Type: application/json' \
--data-raw '{
"text": "我对这种情况感到非常愤怒!你怎么能让这种事情发生?你完全没有责任感,无能得令人难以置信。这给所有相关人员带来了巨大的压力和不便,这是完全不可接受的。我要求立即采取行动纠正这个混乱局面。如果不及时解决,将会有严重后果。我对你的表现感到极度沮丧和彻底失望。",
"params": {}
}'
本地存储模型权重
为避免重复下载大模型权重,可通过挂载本地目录将权重存储在本地:
bash
docker run -it \
-v /本地缓存目录路径:/server/model \
-e HF_HOME=/server/model \
-e KEY=YOUR_BYTEZ_API_KEY_HERE \
-p 8000:8000 \
-e PORT=8000 \
bytez/nsorana_my_awesome_model_cased
示例(替换为实际本地路径):
bash
docker run -it \
-v /home/用户/models:/server/model \
-e HF_HOME=/server/model \
-e KEY=YOUR_BYTEZ_API_KEY_HERE \
-p 8000:8000 \
-e PORT=8000 \
bytez/nsorana_my_awesome_model_cased
GPU加速运行
确保已安装Nvidia驱动和CUDA,添加--gpus all参数启用GPU支持:
bash
docker run -it \
--gpus all \
-e KEY=YOUR_BYTEZ_API_KEY_HERE \
-p 8000:8000 \
-e PORT=8000 \
bytez/nsorana_my_awesome_model_cased
本地缓存+GPU加速
结合本地权重缓存和GPU加速:
bash
docker run -it \
--gpus all \
-v /本地缓存目录路径:/server/model \
-e HF_HOME=/server/model \
-e KEY=YOUR_BYTEZ_API_KEY_HERE \
-p 8000:8000 \
-e PORT=8000 \
bytez/nsorana_my_awesome_model_cased
环境变量配置
DEVICE
- 作用:指定模型运行设备
- 默认值:
auto
- 可选值:
auto:自动检测,优先使用GPU(若可用),内存不足时使用系统RAM
cuda:强制使用GPU
cpu:强制使用CPU
示例:
bash
docker run -it \
-e DEVICE="cuda" \
-e KEY=YOUR_BYTEZ_API_KEY_HERE \
-p 8000:8000 \
bytez/nsorana_my_awesome_model_cased
模型参数
长度控制
- max_length (int, 可选):生成 tokens 的最大长度,默认值:20
- max_new_tokens (int, 可选):生成的新 tokens 最大数量(忽略提示中的 tokens 数)
- min_length (int, 可选):生成序列的最小长度,默认值:0
- min_new_tokens (int, 可选):生成的新 tokens 最小数量(忽略提示中的 tokens 数)
- early_stopping (bool 或 str, 可选):控制基于 beam 的方法的停止条件,默认值:False
- max_time (float, 可选):计算运行的最大时间
生成策略
- do_sample (bool, 可选):是否使用采样而非贪婪解码,默认值:False
- num_beams (int, 可选):beam 搜索的 beam 数量,默认值:1
- num_beam_groups (int, 可选):beam 组数量(用于组间多样性),默认值:1
- penalty_alpha (float, 可选):平衡模型置信度和退化惩罚
- use_cache (bool, 可选):是否使用缓存加速解码,默认值:True
LOGITS 操作
- temperature (float, 可选):用于调整下一个 token 概率的温度值,默认值:1
- top_k (int, 可选):保留最高概率的词汇 token 数量(top-k 过滤),默认值:50
- top_p (float, 可选):若设置为 <1 的浮点数,仅保留概率之和达到
top_p 或更高的最小 token 集,默认值:1
- typical_p (float, 可选):局部典型性度量,控制生成 token 的局部典型性,默认值:1
- epsilon_cutoff (float, 可选):若设置为 0-1 间的浮点数,仅采样条件概率大于
epsilon_cutoff 的 token,默认值:0
- eta_cutoff (float, 可选):eta 采样(局部典型采样和 epsilon 采样的混合),默认值:0
- diversity_penalty (float, 可选):组 beam 搜索中,对与其他组 beam 生成相同 token 的 beam 扣分,默认值:0
- repetition_penalty (float, 可选):重复惩罚参数,1.0 表示无惩罚,默认值:1
- encoder_repetition_penalty (float, 可选):编码器重复惩罚,1.0 表示无惩罚,默认值:1
- length_penalty (float, 可选):基于 beam 的生成中对长度的指数惩罚,默认值:1
- no_repeat_ngram_size (int, 可选):若设为 >0 的整数,该大小的 ngram 只能出现一次,默认值:0
- bad_words_ids (List[List[int]], 可选):不允许生成的 token id 列表
- force_words_ids (List[List[int]], 可选):必须生成的 token id 列表
- renormalize_logits (bool, 可选):应用 logits 处理器/调整器后是否重新归一化 logits,默认值:false
- constraints (List[Constraint], 可选):自定义约束条件
- forced_bos_token_id (int, 可选):强制作为生成首个 token 的 id,默认值:model.config.forced_bos_token_id
- forced_eos_token_id (Union[int, List[int]], 可选):强制作为生成结束 token 的 id,默认值:model.config.forced_eos_token_id
- remove_invalid_values (bool, 可选):是否移除模型输出中的 nan/inf 值,默认值:model.config.remove_invalid_values
- exponential_decay_length_penalty (tuple(int, float), 可选):指数增长的长度惩罚,格式为 (start_index, decay_factor)
- suppress_tokens (List[int], 可选):生成时抑制的 token 列表
- begin_suppress_tokens (List[int], 可选):生成开始时抑制的 token 列表
- forced_decoder_ids (List[List[int]], 可选):强制生成索引到 token 索引的映射
- sequence_bias (Dict[Tuple[int], float], 可选):序列偏置字典
- guidance_scale (float, 可选):分类器自由引导(CFG)的引导比例,>1 时启用 CFG
- low_memory (bool, 可选):启用低内存模式,默认值:false
生成参数
- num_return_sequences (int, 可选):每个批处理元素返回的独立序列数,默认值:1
- output_attentions (bool, 可选):是否返回所有注意力层的注意力张量,默认值:false
- output_hidden_states (bool, 可选):是否返回所有层的隐藏状态,默认值:false
- output_scores (bool, 可选):是否返回预测分数,默认值:false
- output_logits (bool, 可选):是否返回未处理的预测 logit 分数
- return_dict_in_generate (bool, 可选):是否返回 ModelOutput 而非元组,默认值:false
特殊 tokens
- pad_token_id (int, 可选):填充 token 的 id
- bos_token_id (int, 可选):序列开始 token 的 id
- eos_token_id (Union[int, List[int]], 可选):序列结束 token 的 id
编码器-解码器生成参数
- encoder_no_repeat_ngram_size (int, 可选):若设为 >0 的整数,编码器输入中出现的该大小 ngram 不能在解码器输入中出现,默认值:0
- decoder_start_token_id (Union[int, List[int]], 可选):编码器-解码器模型开始解码的 token id
辅助生成参数
- num_assistant_tokens (int, 可选):辅助模型生成的推测 token 数量,默认值:5
- num_assistant_tokens_schedule (str, 可选):推测 token 数量的调度策略,可选值:heuristic、heuristic_transient、constant,默认值:heuristic
缓存参数
- cache_implementation (str, 可选):生成时使用的缓存类,默认值:null
生成参数 kwargs
- generation_kwargs (object, 可选):传递给模型 generate 函数的额外参数
完整参数列表可参考Hugging Face 文档。
支持与帮助
- ***** 社区**:加入 Bytez *** 获取实时支持
- 邮件支持:发送邮件至 ***
本地使用模型可增强项目的隐私性、控制性和定制性。祝您使用愉快!