阿里 Qwen 千问大模型
阿里 Qwen 千问大模型
·
一. 简介
通义千问系列模型为阿里云研发的大语言模型。千问模型基于 Transformer 架构,在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。千问大模型现在已经十分强大了,可以与GPT5.2掰掰手腕,国内的使用还是很推荐的。
Qwen1.5
Qwen1.5 是 Qwen 开源系列的下一个版本。与之前的版本相比,Qwen1.5 显著提升了聊天模型与人类偏好的一致性,改善了它们的多语言能力,并具备了强大的链接外部系统能力。DashScope 上提供 API 服务的是新版本 qwen 模型的 chat 版本,在 chat 能力上大幅提升,即便在英文的 MT-Bench 上,Qwen1.5-Chat 系列也取得了优秀的性能。
Qwen2
Qwen2 参数范围包括 0.5B 到 72B,包括 MOE 模型。Qwen2 在一系列针对语言理解、语言生成、多语言能力、编码、数学、推理等的基准测试中总体上超越了大多数开源模型,并表现出与专有模型的竞争力。Qwen2 增⼤了上下⽂⻓度⽀持,最⾼达到 128K tokens(Qwen2-72B-Instruct),能够处理大量输入
二. Qwen2-VL ModelScope
Qwen2-VL 可以处理任意图像分辨率,将它们映射到动态数量的视觉标记中,提供更接近人类的视觉处理体验

-
Qwen2-VL 模型特点
读懂不同分辨率和不同长宽比的图片:Qwen2-VL 在 MathVista、DocVQA、RealWorldQA、MTVQA 等视觉理解基准测试中取得了全球领先的表现。理解 20 分钟以上的长视频:Qwen2-VL 可理解长视频,并将其用于基于视频的问答、对话和内容创作等应用中。能够操作手机和机器人的视觉智能体:借助复杂推理和决策的能力,Qwen2-VL 可集成到手机、机器人等设备,根据视觉环境和文字指令进行自动操作。多语言支持:为了服务全球用户,除英语和中文外,Qwen2-VL 现在还支持理解图像中的多语言文本,包括大多数欧洲语言、日语、韩语、阿拉伯语、越南语等。
三. langchain 调用阿里云 api
阿里云 api 可以免费试用,申请api key后即可使用,国内的大模型其实也不差,但是特点就是好用的都付费,哈哈哈哈 虽然我用的这个效果没有前沿的好,但是学习嘛,够用了。
-
使用大模型实现简单的问答系统
-
代码示例
# tongyi_qna_system.py import os from langchain_community.chat_models import ChatTongyi from langchain_core.messages import HumanMessage, SystemMessage class SimpleTongyiQA: def __init__(self, api_key: str): """ 初始化问答系统 api_key: 阿里云API密钥(格式:sk-xxxxxxxx) """ self.api_key = api_key # 验证API密钥格式 if not api_key.startswith('sk-'): print("警告:API密钥格式可能不正确,应以'sk-'开头") # 初始化模型(使用qwen-turbo,成本较低) self.model = ChatTongyi( model_name="qwen-turbo", # 先用免费或低成本模型测试 dashscope_api_key=self.api_key, temperature=0.7, max_tokens=1000, streaming=False ) print("通义千问模型初始化成功") print(f"使用模型: qwen-turbo") def ask(self, question: str, system_prompt: str = None) -> str: """ 提问并获取回答 question: 用户问题 system_prompt: 系统提示词(可选) Returns:模型回答 """ # 构建消息 messages = [] if system_prompt: messages.append(SystemMessage(content=system_prompt)) messages.append(HumanMessage(content=question)) try: print(f"\n提问: {question}") # 调用模型 response = self.model.invoke(messages) print(f"\n回答:") print("-" * 50) print(response.content) print("-" * 50) return response.content except Exception as e: error_msg = str(e) print(f"\n请求失败:{error_msg}") # 提供调试建议 self._provide_debug_suggestions(error_msg) return None def _provide_debug_suggestions(self, error_msg: str): """提供调试建议""" if "InvalidApiKey" in error_msg or "401" in error_msg: print("1. 检查API密钥是否正确") print("2. 访问 https://dashscope.aliyun.com/ 查看API密钥") print("3. 确保API密钥格式为: sk-xxxxxxxx") elif "余额不足" in error_msg or "InsufficientBalance" in error_msg: print("1. 登录阿里云控制台充值") print("2. 检查服务是否已开通") elif "未开通服务" in error_msg: print("1. 访问阿里云控制台开通相应服务") print("2. 可能需要实名认证") # ========== 使用示例 ========== def main(): """主函数""" print("=" * 60) print("阿里云通义千问问答系统") print("=" * 60) # 获取API密钥 api_key = input("请输入您的阿里云API密钥 (格式: sk-xxxxxxxx): ").strip() if not api_key: print("未提供API密钥,程序退出") return # 创建问答系统实例 try: qa_system = SimpleTongyiQA(api_key=api_key) except Exception as e: print(f"初始化失败: {e}") return print("\n" + "=" * 60) print("开始问答,输入 'quit' 或 'exit' 退出") print("=" * 60) # 交互式问答循环 while True: try: # 获取用户输入 user_input = input("\n请输入您的问题: ").strip() # 退出条件 if user_input.lower() in ['quit', 'exit', '退出', 'q']: print("\n感谢使用,再见!") break if not user_input: print("输入不能为空,请重新输入") continue # 提问并获取回答 qa_system.ask(user_input) except KeyboardInterrupt: print("\n\n检测到中断,程序退出") break except Exception as e: print(f"\n发生错误: {e}") if __name__ == '__main__': main()-
运行示例

- 大模型给出的结果运行

- 大模型给出的结果运行
-
-
更多推荐



所有评论(0)