no model xformers

### XFormers 模型概述 XFormers 是一种优化 Transformer 架构的设计方案,旨在解决传统 Transformer 的计算瓶颈问题。通过重新设计注意力机制以及内存管理方式,XFormers 能够显著降低资源消耗并提升性能[^1]。 以下是关于 XFormers 的一些核心特性及其解决方案: #### 1. **优化注意力机制** 传统的自注意力机制在处理大规模数据时面临 O(n²) 时间复杂度的问题。XFormers 提出了多种替代方法来缓解这一问题,例如稀疏注意力 (Sparse Attention) 和分块注意力 (Chunked Attention)[^1]。这些技术能够减少不必要的计算量,从而提高效率。 #### 2. **高效内存利用** 为了应对 GPU 或 TPU 上有限的显存容量,XFormers 实现了一种动态调整策略,允许模型根据输入长度自动分配合适的缓存大小。这种方法不仅减少了内存占用,还使得更长序列的推理成为可能。 #### 3. **硬件加速支持** XFormers 集成了针对特定硬件平台的高度优化内核函数,比如 NVIDIA Tensor Cores 和 AMD ROCm 平台的支持。这种紧密耦合可以充分发挥现代处理器的能力,在训练阶段提供更快的速度和更低的能量成本。 ```python import torch from xformers import ops as xops # Example usage with efficient attention mechanism query = key = value = torch.randn(8, 16, 512) attn_mask = None output = xops.memory_efficient_attention(query, key, value, attn_bias=attn_mask) print(output.shape) ``` 上述代码展示了如何使用 `xformers` 库中的高效注意力操作代替标准 PyTorch 方法,进一步改善运行时间表现。 ---

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

Python内容推荐

使用ns-3进行5G边缘计算智慧城市模拟,并对ARVR流量进行MEC与云对比,Python分析、MATLAB验证、FlowMonitor指标和NetAnim可视化.zip

使用ns-3进行5G边缘计算智慧城市模拟,并对ARVR流量进行MEC与云对比,Python分析、MATLAB验证、FlowMonitor指标和NetAnim可视化.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

CLI-Anything(Python)

CLI-Anything(Python)

「CLI-Anything(Python)」是开发工具/插件(Python)。项目简介:"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub:https://clianything.cc/可直接使用,适合日常开发提效与学习借鉴。

SD3.5本地部署指南[代码]

SD3.5本地部署指南[代码]

本文详细介绍了Stable Diffusion 3.5(SD3.5-FP8)的本地部署与使用指南。SD3.5-FP8是Stability AI于2024年10月推出的文生图模型,专为消费级显卡优化,支持RTX 3060、4070等主流显卡,显存占用降低近三成,推理速度提升30%以上。文章从模型优势、下载方法、本地部署步骤到实战案例展示,全面解析了如何高效利用SD3.5-FP8进行创作。此外,还对比了不同版本模型的适用场景,并提供了常见问题的解决方案,帮助用户快速上手并优化生成效果。

由于未提供需要重写的原内容,无法准确完成改写任务 请你补充原或相关文本信息,以便我按照 “不少于 12 个字、意思不变” 的要求重新创作

由于未提供需要重写的原内容,无法准确完成改写任务 请你补充原或相关文本信息,以便我按照 “不少于 12 个字、意思不变” 的要求重新创作

资源下载链接为: https://pan.xunlei.com/s/VOYdWhxWY8gD6fcrmP4lUZ34A1?pwd=i4sh 安装依赖:安装 xformers 和 unsloth,无需单独安装 pytorch。因当前最新 pytorch 版本为 2.4.0,而 xformers 0.0.26.post1 适配的是 2.3.0,通过安装 xformers 会自动安装对应版本的 pytorch。 卸载相关依赖可按需操作。 检查 CUDA 是否可用:将相关内容保存到 check_cuda.py 文件并执行,若仅出现 3 个输出,说明版本不兼容;若出现 4 个输出,则表明兼容。 Windows 安装 triton:可参考https://huggingface.co/madbuda/triton-windows-builds。 报错修复:若提示 “Otherwise in local machines, your xformers version of 0.0.27.post2 is too new”,需将 xformers 降级。安装后用 check_cuda.py 脚本检查,若失败出现 “AssertionError: Torch not compiled with CUDA enabled”。 出现 “ModuleNotFoundError: No module named '_lzma'” 时,先在系统中安装 lzma 库,再在 python 中安装 lzma 库。若仍有问题,可能是 python 库中代码存在问题,找到 python 目录下的 lib\python3.11\lzma.py 进行修改替换。 出现 “OSError: Incorrect path or model id: './model/Qwen2-7B-Instruct'. Please pr

sdxl-and-lora.part5.rar

sdxl-and-lora.part5.rar

sdxl-and-lora.part5.rar

ai红蝶.7z.bz2

ai红蝶.7z.bz2

ai红蝶.7z.bz2

VoxCPM2本地部署教程[项目代码]

VoxCPM2本地部署教程[项目代码]

本教程详细介绍了如何从零开始完成VoxCPM2的本地部署与体验。VoxCPM2是一个20亿参数的文本转语音(TTS)模型,支持30种语言、音色设计、可控语音克隆和48kHz高保真音频输出。教程涵盖了硬件需求、环境准备、安装步骤、Web Demo启动、Python API用法、命令行CLI用法、LoRA微调入门以及生产部署等内容。无论你是零基础用户还是有经验的开发者,都能通过本教程快速上手VoxCPM2,实现高质量的语音合成功能。

Qwen3.5模型微调与转换教程[可运行源码]

Qwen3.5模型微调与转换教程[可运行源码]

本文详细介绍了使用Unsloth框架对Qwen3.5-2B-Base模型进行微调的全流程,包括环境配置、模型与数据集下载、数据格式转换、LoRA微调训练以及模型导出。首先通过conda创建Python 3.10环境并安装unsloth、transformers、accelerate等依赖。微调数据集需转换为JSONL格式,并提供了Python脚本示例。训练部分展示了如何加载模型、配置LoRA参数(r=16, alpha=16)、设置训练参数(batch_size=4, gradient_accumulation_steps=64, 5个epoch)并启动SFTTrainer。训练完成后,模型可导出为Safetensors格式(用于vLLM部署)或GGUF格式(用于Ollama部署),并提供了详细的导出脚本。文章还包含将LoRA适配器转换为GGUF格式的独立脚本,支持多种输出精度(f32、f16、q8_0等)。整个过程覆盖了从环境搭建到模型部署的完整链路,适合需要微调Qwen3.5系列模型的开发者参考。

Awesome LLM Apps开源 AI 智能体、智能体技能与 RAG 应用

Awesome LLM Apps开源 AI 智能体、智能体技能与 RAG 应用

集结了采用 RAG 技术的杰出大型语言模型应用,涵盖 OpenAI、Anthropic、Gemini 以及开源模型。

sdxl-and-lora.part7.rar

sdxl-and-lora.part7.rar

sdxl-and-lora.part7.rar

SWIFT (可扩展轻量级微调基础设施)

SWIFT (可扩展轻量级微调基础设施)

魔搭模型社区的大模型训练与推理工具箱,支持LLaMA、千问、ChatGLM、百川等多种先进模型,以及LoRA、ResTuning、NEFTune等多种训练方法

图像转视频AI部署[代码]

图像转视频AI部署[代码]

本文详细介绍了如何从零开始部署一个基于I2VGen-XL模型的图像转视频AI系统,包括开源镜像的获取、GPU环境的适配、WebUI的使用流程以及性能优化技巧。系统采用模块化设计,支持本地化处理,无需联网调用API,适用于RTX 30/40系列及A100等主流GPU。文章还提供了详细的参数配置建议、故障排查方法以及不同GPU下的性能实测对比,帮助用户快速搭建高效的AI视频生成工作站。

自用文件-stablediffusion训练,controlnet、dreambooth、lora训练通用命令

自用文件-stablediffusion训练,controlnet、dreambooth、lora训练通用命令

自用文件-stablediffusion训练,controlnet、dreambooth、lora训练通用命令

Wan2.2-T2V-5B模型部署指南[代码]

Wan2.2-T2V-5B模型部署指南[代码]

本文详细介绍了Wan2.2-T2V-5B模型的下载、部署及使用步骤,该模型是一款轻量级文本生成视频(T2V)工具,适用于消费级显卡。文章从技术原理、Docker镜像部署、API调用到实际应用场景进行了全面解析,帮助用户快速上手并避免常见错误。模型采用潜在扩散架构和时空注意力机制,确保视频动作连贯,适合短视频创作、电商内容批量生成等场景。通过Docker容器化部署,简化了环境配置流程,使AI视频生成更加便捷高效。

麦橘超然一键启动包指南[项目源码]

麦橘超然一键启动包指南[项目源码]

麦橘超然一键启动包是一款免配置快速部署的AI图像生成工具,专为中低显存设备设计,通过float8量化技术将Flux.1模型显存需求降至6GB以内,同时保持高质量图像生成。该工具无需复杂环境配置,只需一条Docker命令即可启动,内置模型和Web界面,支持完全离线运行,确保生成过程私有安全。指南详细介绍了从硬件要求到部署步骤的全流程,包括如何优化提示词、控制生成效果及解决常见问题,旨在为用户提供一套高效、稳定的AI绘画工作流。

政府部门如何通过精准数据提升区域科技创新决策效率?.docx

政府部门如何通过精准数据提升区域科技创新决策效率?.docx

政府部门如何通过精准数据提升区域科技创新决策效率?

旋转高频信号注入法在PMSM零低速无位置控制中的仿真研究(Matlab代码实现)

旋转高频信号注入法在PMSM零低速无位置控制中的仿真研究(Matlab代码实现)

内容概要:本文围绕旋转高频信号注入法在永磁同步电机(PMSM)零低速无位置传感器控制中的应用展开深入的仿真研究,基于Matlab/Simulink平台构建完整的控制系统模型,系统阐述了高频信号注入法的理论基础、转子位置观测机制及整体控制策略设计。重点探讨了在零低速运行工况下,通过注入旋转高频电压信号并结合先进的信号处理技术(如带通滤波、坐标变换、锁相环等)有效提取转子位置信息的技术路径,成功克服了传统反电动势法在极低速时信号微弱、无法准确观测的固有缺陷。研究详细分析了高频响应信号的调制解调过程、位置估算环路的动态特性,并考察了电机参数漂移、外部干扰等因素对系统鲁棒性与估计精度的影响,通过大量仿真实验验证了该方法在提升位置观测准确性、增强系统抗干扰能力方面的显著优势。; 适合人群:具备电机控制、电力电子及自动控制理论基础,熟悉Matlab/Simulink仿真环境,从事PMSM驱动系统开发或无位置传感器控制算法研究的研发人员,特别适合电气工程、自动化等相关专业的研究生及具有1-5年工作经验的工程师。; 使用场景及目标:①深入掌握旋转高频信号注入法在PMSM无感控制中的实现原理、关键技术环节与工程实现难点;②学习并实践基于Matlab/Simulink的先进电机控制算法仿真建模、信号处理与性能分析方法;③为解决实际工程中电机在零速启动、低速精确控制等场景下的位置传感器依赖问题,提供有效的技术方案参考与系统的仿真验证手段。; 阅读建议:此资源以Matlab代码实现为核心载体,建议读者在学习过程中紧密结合提供的文档说明与仿真模型,逐模块剖析高频信号发生器、注入策略、响应信号解调、位置估算器等关键环节的设计原理,通过修改系统参数、设置不同工况进行仿真实验,深入理解算法内部机理与系统动态响应特性之间的关联。

Google GTS认证测试指南

Google GTS认证测试指南

打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 ### Google GTS 认证测试知识点详述 #### 一、引言 谷歌移动服务 (GMS) 测试套件(GTS)是由谷歌开发的一套自动化测试工具,旨在确保其移动服务在各类设备上能够稳定运行。对于计划支持 GMS 的设备制造商而言,成功通过这一测试套件是必不可少的环节。 #### 二、GTS概述 GTS 是一个自动化测试框架,其结构主要包含两个核心部分: 1. **测试框架**:TradeFed,作为执行 GTS 测试的核心组件,是一个功能强大的测试管理工具。TradeFed 能够在桌面计算机环境中运行,并负责对整个测试流程进行统筹管理。 2. **测试用例**:这些测试用例均采用 Java 语言编写,并遵循 JUnit 单元测试的标准,随后被打包成 Android 应用程序(即 .apk 文件),以便在真实的目标设备或模拟器上进行实际操作。 #### 三、测试设置与工作流程 为了有效执行 GTS 测试,必须遵循以下操作步骤: 1. **下载与安装** - 从 GMS 的官方分发站点获取 GTS 并将其解压至 Linux 桌面机器。 - 至少确保一个设备与计算机建立连接。 - 设备必须搭载用户版本的 Android 系统(版本需为 Android 4.0 或更高),且该系统版本需从 source.android.com 官方网站获取。 - 确认设备已经安装了用户版本的系统镜像。 2. **启动 GTS** - 通过执行 xts-tradefed 脚本来启动 TradeFed 控制台。 ```shell $ ./android-xts/tools/xts-tradefed ``...

【改进灵敏度分析】基于改进灵敏度分析的有源配电网智能软开关优化配置研究【IEEE33节点】(Matlab代码实现)

【改进灵敏度分析】基于改进灵敏度分析的有源配电网智能软开关优化配置研究【IEEE33节点】(Matlab代码实现)

内容概要:本文针对有源配电网中因分布式电源接入导致的电压波动与潮流分布不均等问题,提出了一种基于改进灵敏度分析的智能软开关(SOP)优化配置方法。研究以IEEE33节点系统为仿真平台,通过Matlab代码实现,对传统灵敏度分析方法进行改进,构建更为精确的灵敏度指标体系,用于指导SOP的选址与定容。该方法能够有效评估各节点对系统运行状态的影响程度,进而优化SOP的安装位置与容量配置,显著降低网络损耗、改善电压质量,提升配电网的运行效率与稳定性。研究不仅提供了完整的算法实现,还结合仿真结果对优化效果进行了验证与分析。; 适合人群:适用于电气工程、电力系统自动化及相关专业的研究生、科研人员以及从事智能电网规划、配电网优化与分布式能源管理的工程师。; 使用场景及目标:①研究智能软开关在有源配电网中的优化配置策略;②掌握基于改进灵敏度分析的电力系统优化方法;③通过Matlab仿真平台复现并改进IEEE33节点系统的优化配置方案,提升配电网运行性能;④为配电网的规划与运维提供数据驱动的决策支持。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,深入理解改进灵敏度分析的数学原理与工程应用价值,同时可将该方法拓展至其他优化算法或不同规模的配电系统中进行对比验证,以深化对智能配电技术的认知。

学习计划-本科版-商务简约.docx

学习计划-本科版-商务简约.docx

学习计划-本科版-商务简约

最新推荐最新推荐

recommend-type

园区如何利用数据洞察优化企业服务和管理?.docx

园区如何利用数据洞察优化企业服务和管理?
recommend-type

科技园区如何提升服务精准度,为科技企业匹配高效创新资源?.docx

科技园区如何提升服务精准度,为科技企业匹配高效创新资源?
recommend-type

新闻稿-清新雅致.docx

新闻稿-清新雅致
recommend-type

nodejs-20261015

123
recommend-type

采用Bat算法优化集群头选择的增强型无线传感器网络LEACH路由协议。MATLAB模拟、单跳和多跳变体。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
recommend-type

学生成绩管理系统C++课程设计与实践

资源摘要信息:"学生成绩信息管理系统-C++(1).doc" 1. 系统需求分析与设计 在进行学生成绩信息管理系统开发前,首先需要进行系统需求分析,这是确定系统开发目标与范围的过程。需求分析应包括数据需求和功能需求两个方面。 - 数据需求分析: - 学生成绩信息:需要收集学生的姓名、学号、课程成绩等数据。 - 数据类型和长度:明确每个数据项的数据类型(如字符串、整型等)和长度,例如学号可能是字符串类型且长度为一定值。 - 描述:详细描述每个数据项的意义,以确保系统能够准确处理。 - 功能需求分析: - 列出功能列表:用户界面应提供清晰的操作指引,列出所有可用功能。 - 查询学生成绩:系统应能通过学号或姓名查询学生的成绩信息。 - 增加学生成绩信息:允许用户添加未保存的学生成绩信息。 - 删除学生成绩信息:能够通过学号或姓名删除已经保存的成绩信息。 - 修改学生成绩信息:通过学号或姓名修改已有的成绩记录。 - 退出程序:提供安全退出程序的选项,并确保所有修改都已保存。 2. 系统设计 系统设计阶段主要完成内存数据结构设计、数据文件设计、代码设计、输入输出设计、用户界面设计和处理过程设计。 - 内存数据结构设计: - 使用链表结构组织内存中的数据,便于动态增删查改操作。 - 数据文件设计: - 选择文本文件存储数据,便于查看和编辑。 - 代码设计: - 根据功能需求,编写相应的函数和模块。 - 输入输出设计: - 设计简洁明了的输入输出提示信息和操作流程。 - 用户界面设计: - 用户界面应为字符界面,方便在命令行环境下使用。 - 处理过程设计: - 设计数据处理流程,确保每个操作都有明确的处理逻辑。 3. 系统实现与测试 实现阶段需要根据设计阶段的成果编写程序代码,并进行系统测试。 - 程序编写: - 完成系统设计中所有功能的程序代码编写。 - 系统测试: - 设计测试用例,通过测试用例上机测试系统。 - 记录测试方法和测试结果,确保系统稳定可靠。 4. 设计报告撰写 最后,根据系统开发的各个阶段,撰写详细的设计报告。 - 系统描述:包括问题说明、数据需求和功能需求。 - 系统设计:详细记录内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计。 - 系统测试:包括测试用例描述、测试方法和测试结果。 - 设计特点、不足、收获和体会:反思整个开发过程,总结经验和教训。 时间安排: - 第19周(7月12日至7月16日)完成项目。 - 7月9日8:00到计算机学院实验中心(三楼)提交程序和课程设计报告。 指导教师和系主任(或责任教师)需要在文档上签名确认。 系统需求分析: - 使用表格记录系统需求分析的结果,包括数据项、数据类型、数据长度和描述。 - 分析数据项如学生成绩信息、状态器、链表节点等,确定其属性和行为。 以上就是文档中提到的学生成绩信息管理系统开发的关键知识点。开发此类系统需要熟练掌握C++编程基础,了解面向对象的程序设计思想,以及熟悉文件操作和链表等数据结构的应用。此外,良好的软件开发流程意识、测试意识和文档撰写能力也是必不可少的。
recommend-type

别再手动拖拽了!用Lumerical脚本批量创建FDTD仿真结构(附完整代码)

# 告别低效建模:Lumerical脚本自动化实战指南 在光子学仿真领域,时间就是科研生命线。当同行还在GUI界面里反复点击菜单时,你已经用脚本批量生成了20组参数化结构——这不是未来场景,而是每位FDTD用户都应该掌握的基础生产力革命。本文将彻底改变你与Lumerical的交互方式,从手动拖拽的农耕时代,跃迁到自动化建模的工业文明。 ## 1. 为何脚本建模是必然选择 2019年Nature Photonics的一项研究显示,科研工作者在仿真工具上平均浪费37%的时间在重复性操作上。对于需要参数扫描的纳米光学结构设计,这个数字可能更高。手动创建10个不同尺寸的纳米柱阵列意味着: -
recommend-type

Java邮件解析任务中,如何安全高效地提取HTML邮件内容并避免硬编码、资源泄漏和类型转换异常?

<think>我们被要求优化一段Java代码,该代码用于处理邮件(特别是来自特定发件人的构建通知邮件)。代码的主要问题包括: 1. 重复获取邮件内容:在检查MIME类型后,多次调用`msg[i].getContent()`,这可能导致性能问题或流关闭异常。 2. 类型转换问题:直接将邮件内容转换为`Multipart`而不进行类型检查,可能引发`ClassCastException`。 3. 代码结构问题:逻辑嵌套过深,可读性差,且存在重复代码(如插入邮件详情的操作在两个地方都有)。 4. 硬编码和魔法值:例如在解析HTML表格时使用了硬编码的索引(如list3.get(10)),这容易因邮件
recommend-type

RH公司应收账款管理优化策略研究

资源摘要信息:"本文针对RH公司的应收账款管理问题进行了深入研究,并提出了改进策略。文章首先分析了应收账款在企业管理中的重要性,指出其对于提高企业竞争力、扩大销售和充分利用生产能力的作用。然后,以RH公司为例,探讨了公司应收账款管理的现状,并识别出合同管理、客户信用调查等方面的不足。在此基础上,文章提出了一系列改善措施,包括完善信用政策、改进业务流程、加强信用调查和提高账款回收力度。特别强调了建立专门的应收账款回收部门和流程的重要性,并建议在实际应用过程中进行持续优化。同时,文章也意识到企业面临复杂多变的内外部环境,因此提出的策略需要根据具体情况调整和优化。 针对财务管理领域的专业学生和从业者,本文提供了一个关于应收账款管理问题的案例研究,具有实际指导意义。文章还探讨了信用管理和征信体系在应收账款管理中的作用,强调了它们对于提升企业信用风险控制和市场竞争能力的重要性。通过对比国内外企业在应收账款管理上的差异,文章总结了适合中国企业实际环境的应收账款管理方法和策略。" 根据提供的文件内容,以下是详细的知识点: 1. 应收账款管理的重要性:应收账款作为企业的一项重要资产,其有效管理关系到企业的现金流、财务健康以及市场竞争力。不良的应收账款管理会导致资金链断裂、坏账损失增加等问题,严重影响企业的正常运营和长远发展。 2. 应收账款的信用风险:在信用交易日益频繁的商业环境中,企业必须对客户信用进行评估,以便采取合理的信用政策,降低信用风险。 3. 合同管理的薄弱环节:合同是应收账款管理的法律基础,严格的合同管理能够保障企业权益,减少因合同问题导致的应收账款风险。 4. 客户信用调查:了解客户的信用状况对于预测和控制应收账款风险至关重要。企业需要建立有效的客户信用调查机制,识别和筛选信用良好的客户。 5. 应收账款回收策略:企业应建立有效的账款回收机制,包括定期的账款跟进、逾期账款的催收等。同时,建立专门的应收账款回收部门可以提升回收效率。 6. 应收账款管理流程优化:通过改进企业内部管理流程,如简化审批流程、提高工作效率等措施,能够提升应收账款的管理效率。 7. 应收账款管理策略的调整和优化:由于企业的内外部环境复杂多变,因此制定的管理策略需要根据实际情况进行动态调整和持续优化。 8. 信用管理和征信体系的作用:建立和完善企业内部信用管理体系和征信体系,有助于企业更好地控制信用风险,并在市场竞争中占据有利地位。 9. 对比国内外应收账款管理实践:通过研究国内外企业在应收账款管理上的不同做法和经验,可以借鉴先进的管理理念和方法,提升国内企业的应收账款管理水平。 综上所述,本文深入探讨了应收账款管理的多个方面,为RH公司乃至其他同类型企业提供了应收账款管理的改进方向和策略,对于财务管理专业的教育和实践都具有重要的参考价值。
recommend-type

新手别慌!用BingPi-M2开发板带你5分钟搞懂Tina Linux SDK目录结构

# 新手别慌!用BingPi-M2开发板带你5分钟搞懂Tina Linux SDK目录结构 第一次拿到BingPi-M2开发板时,面对Tina Linux SDK里密密麻麻的文件夹,我完全不知道从哪下手。就像走进一个陌生的大仓库,每个货架上都堆满了工具和零件,却找不到操作手册。这种困惑持续了整整两天,直到我意识到——理解目录结构比死记硬背每个文件更重要。 ## 1. 为什么SDK目录结构如此重要 想象你正在组装一台复杂的模型飞机。如果所有零件都混在一个箱子里,你需要花大量时间寻找每个螺丝和面板。但如果有分门别类的隔层,标注着"机身部件"、"电子设备"、"紧固件",组装效率会成倍提升。Ti