🤗 TransGPT-7B • 🤗 TransGPT-MM-6B • 🤖 DUOMO • 💬 WeChat
中文 | English
TransGPT是国内首款开源交通大模型,主要致力于在真实交通行业中发挥实际价值。它能够实现交通情况预测、智能咨询助手、公共交通服务、交通规划设计、交通安全教育、协助管理、交通事故报告和分析、自动驾驶辅助系统等功能。TransGPT作为一个通用常识交通大模型,可以为道路工程、桥梁工程、隧道工程、公路运输、水路运输、城市公共交通运输、交通运输经济、交通运输安全等行业提供通识常识。以此为基础,可以落脚到特定的交通应用场景中。
内容 | 下载地址 | 备注 |
---|---|---|
领域预训练数据集 | pretrain_data | 非对话数据集 |
领域微调数据集 | finetune_data | 对话式数据集 |
数据来源
a. 单模态
b. 多模态
i. 交通标志大全
ii. 驾考题库
iii. 全球旅游景点
对话数据生成方法
具体链接 -> LLMforDialogDataGenerate
交通规划:交通大模型可以帮助分析公众对于交通规划提案的反馈和意见,提供决策者更全面的信息。
*交通事故报告和分析:交通大模型可以帮助快速理解和分类交通事故报告,提供事故原因的初步分析。
*交通政策研究**:大型交通大模型可以用于分析公众对于交通政策的反馈,或者生成关于交通政策影响的报告。这可以帮助政策制定者更好地了解政策的实际效果。
交通标志
交通规则
景点
我们在交通 benchmark 上进行了zero-shot
评测,评测了交通情况预测 | 智能助手 | 公共交通服务 | 交通规划 | 交通安全教育 |事故报告和分析等方面的性能,使用GPT-4和人工评测。结果如下:
交通情况预测 | 交通规划 | 交通安全教育 | 事故报告和分析 | |
---|---|---|---|---|
TransGPT-7B | 1.33 | 9.95 | 9.84 | 3.50 |
模型 | 下载链接 | 备注 |
---|---|---|
TransGPT-7B | DUOMO-Lab/TransGPT-v0 | Fine-tuned on the instruction-tuning data from part of our data |
TransGPT-MM-6B-v0 | DUOMO-Lab/TransGPT-MM-v0 | Fine-tune, Inference and DEMO refer to MM |
TransGPT-MM-6B-v1 | DUOMO-Lab/TransGPT-MM-v1 | Fine-tune, Inference and DEMO refer to MM |
创建conda环境:
conda env create -f environment.yml
conda activate transgpt
conda activate transgpt
sh pt.sh
下载sft训练代码[supervised_finetuning.py]
下载sft.sh脚本[run_sft.sh]
conda activate transgpt
sh sft.sh
pt训练代码:采用了MedicalGPT提供的pretraining.py代码。
sft训练代码:采用了MedicalGPT提供的supervised_finetuning.py代码。
pip install sentencepiece
pip install transformers>=4.28.0
import torch
import transformers
from transformers import LlamaTokenizer, LlamaForCausalLM
def generate_prompt(text): return f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.
{text}
checkpoint="DUOMO-Lab/TransGPT-v0" tokenizer = LlamaTokenizer.from_pretrained(checkpoint) model = LlamaForCausalLM.from_pretrained(checkpoint).half().cuda() model.eval()
text = '我想了解如何申请和更新驾驶证?' prompt = generate_prompt(text) input_ids = tokenizer.encode(prompt, return_tensors='pt').to('cuda')
with torch.no_grad(): output_ids = model.generate( input_ids=input_ids, max_new_tokens=1024, temperature=1, top_k=20, top_p=0.9, repetition_penalty=1.15 ).cuda() output = tokenizer.decode(output_ids[0], skip_special_tokens=True) print(output.replace(text, '').strip())
### LangChain版本:
import os import torch from langchain.llms import HuggingFacePipeline from transformers import LlamaTokenizer, LlamaForCausalLM,pipeline from langchain import PromptTemplate,LLMChain from langchain.agents import load_tools, initialize_agent, AgentType, ZeroShotAgent, AgentExecutor
os.environ["SERPAPI_API_KEY"]="your_key"
os.environ["CUDA_VISIBLE_DEVICES"]="0" template = """Below is an instruction that describes a task. Write a response that appropriately completes the request.
{question}
prompt = PromptTemplate(template=template,input_variables=["question"]) checkpoint='DUOMO-Lab/TransGPT-v0' tokenizer = LlamaTokenizer.from_pretrained(checkpoint) model = LlamaForCausalLM.from_pretrained(checkpoint).half().cuda() model.eval()
pipe = pipeline( "text-generation", model=model, tokenizer=tokenizer, max_length=1024, device="cuda:0", temperature=1, top_k=20, top_p=0.9, repetition_penalty=1.15 )
local_llm = HuggingFacePipeline(pipeline=pipe) tools = load_tools(["serpapi"], llm=local_llm)
llm_chain = LLMChain(llm=local_llm, prompt=prompt) agent = ZeroShotAgent(llm_chain=llm_chain, tools=tools, verbose=True) agent_chain = AgentExecutor.from_agent_and_tools(agent=agent, tools=tools, verbose=True, handle_parsing_errors=True)
s="我想了解如何申请和更新驾驶证?" response = agent_chain.run(s)
Logo由[DreamStudio](https://beta.dreamstudio.ai/generate)生成🙏.
## 声明
我们强烈呼吁所有的使用者,不要利用TransGPT模型进行任何危害国家社会安全或违法的活动。除此之外,我们也要求使用者不要将TransGPT模型用于未经适当安全审查和备案的互联网服务。我们理解科技的发展必须在规范和合法的环境下进行,因此我们希望所有的使用者都能积极遵守这个原则。
我们已经尽我们所能,确保模型训练过程中所使用的数据的合规性。然而,尽管我们做出了巨大的努力,但由于模型和数据的复杂性,仍有可能存在一些无法预见的问题。因此,我们建议使用者在使用TransGPT开源模型时要谨慎行事,并遵循一些基本的安全准则,如加强数据备份、限制数据访问权限等。
当前模型可能存在生成幻觉、误导性、或歧视性内容。请谨慎使用TransGPT系列模型生成的内容,请勿将生成的有害内容进行传播。
如需将模型公开使用或者商用,模型服务所产生的不良影响或者有害言论由服务方负责,本项目开发者不承担任何因使用本项目(包含但不限于数据、模型、代码等)导致的危害或损失。
此外,我们认为,开源技术的发展需要整个社区的努力和共同维护。如果你在使用TransGPT模型的过程中发现了任何问题或有任何建议,欢迎与我们联系。我们希望通过与广大用户的合作和交流,不断提升TransGPT模型的质量和安全性,并为开源技术的长远发展做出贡献。
最后,鉴于模型和数据的复杂性,如果由于使用TransGPT开源模型而导致任何问题,包括但不限于数据安全问题、公共舆论风险,或模型被误导、滥用、传播或不当利用所带来的任何风险和问题,我们将不承担任何责任。
## 微信讨论群
<img src="https://github.com/DUOMO/TransGPT/raw/main/figs/trans_wechat.jpg" alt="DUOMO" style="width: 260px; "></a>
## 协议
对本仓库源码的使用遵循开源许可协议 Apache 2.0。TransGPT资源支持商用。如果将TransGPT模型或其衍生品用作商业用途,请您按照如下方式联系许可方,需邮件申请并获得官方商用许可后,即可以免费商用:联系邮箱<duomo_tech@163.com>。