Coder Social home page Coder Social logo

hugging-llm's Introduction

Table of Contents generated with DocToc

HuggingLLM

随着ChatGPT的爆火,其背后其实蕴含着一个基本事实:AI能力得到了极大突破——大模型的能力有目共睹,未来只会变得更强。这世界唯一不变的就是变,适应变化、拥抱变化、喜欢变化,天行健君子以自强不息。我们相信未来会有越来越多的大模型出现,AI正在逐渐平民化,将来每个人都可以利用大模型轻松地做出自己的AI产品。所以,我们把项目起名为HuggingLLM,我们相信我们正在经历一个伟大的时代,我们相信这是一个值得每个人全身心拥抱的时代,我们更加相信这个世界必将会因此而变得更加美好。

关于项目

项目简介:介绍 ChatGPT 原理、使用和应用,降低使用门槛,让更多感兴趣的非NLP或算法专业人士能够无障碍使用LLM创造价值。

立项理由:ChatGPT改变了NLP行业,甚至正在改变整个产业。我们想借这个项目将ChatGPT介绍给更多的人,尤其是对此感兴趣、想利用相关技术做一些新产品或应用的学习者,尤其是非本专业人员。希望新的技术突破能够更多地改善我们所处的世界。

项目受众

  • 项目适合以下人员:
    • 对ChatGPT感兴趣。
    • 希望在实际中运用该技术创造提供新的服务或解决已有问题。
    • 有一定编程基础。
  • 不适合以下需求人员:
    • 研究其底层算法细节,比如PPO怎么实现的,能不能换成NLPO或ILQL,效果如何等。
    • 自己从头到尾研发一个 ChatGPT。
    • 对其他技术细节感兴趣。

另外,要说明的是,本项目并不是特别针对算法或NLP工程师等业内从业人员设计的,当然,你也可以通过本项目获得一定受益。

项目亮点

  • 聚焦于如何使用ChatGPT相关API(可使用国内大模型API)创造新的功能和应用。
  • 对相关任务有详细的背景和系统设计介绍。
  • 提供示例代码和实现流程。

国内大模型API使用介绍

《GLM》

  1. 安装智谱GLM的SDK
pip install zhipuai
  1. 调用GLM API的示例
# GLM
from zhipuai import ZhipuAI

client = ZhipuAI(api_key="") # 请填写您自己的APIKey

messages = [{"role": "system", "content": "你是一个乐于解答各种问题的助手,你的任务是为用户提供专业、准确、有见地的建议。"},
            {"role": "user", "content": "请你介绍一下Datawhale。"},]

response = client.chat.completions.create(
    model="glm-4",  # 请选择参考官方文档,填写需要调用的模型名称
    messages=messages, # 将结果设置为“消息”格式
    stream=True,  # 流式输出
)

full_content = ''  # 合并输出
for chunk in response:
    full_content += chunk.choices[0].delta.content
print('回答:\n' + full_content)
回答:
Datawhale是一个专注于人工智能领域的开源学习社区。它汇聚了一群热爱人工智能技术的人才,旨在降低人工智能的学习门槛,推动技术的普及和应用。Datawhale通过开源项目、线上课程、实践挑战等形式,为AI爱好者和从业者提供学习资源、交流平台和成长机会。

从提供的参考信息来看,Datawhale有着丰富的内容资源和活跃的社区氛围。例如,他们推出了包括“蝴蝶书”在内的多本与人工智能相关的书籍,这些书籍内容实战性强,旨在帮助读者掌握ChatGPT等先进技术的原理和应用开发。此外,Datawhale还举办了宣传大使的招募活动,鼓励更多人参与到AI技术的推广和开源学习活动中来。

Datawhale社区倡导开源共生的理念,不仅为成员提供荣誉证书、精美文创等物质激励,还搭建了开放的交流社群,为成员之间的信息交流和技术探讨提供平台。同时,社区还助力成员的职业发展,提供简历指导和内推渠道等支持。

总体来说,Datawhale是一个集学习、交流、实战和技术推广于一体的AI社区,对于希望在人工智能领域内提升自己能力、扩展视野的人来说,是一个非常有价值的资源和平台。

《Qwen》

  1. 安装千问Qwen的SDK
pip install dashscope
  1. 调用Qwen API的示例
# qwen
from http import HTTPStatus
import dashscope

DASHSCOPE_API_KEY="" # 请填写您自己的APIKey

messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
            {'role': 'user', 'content': '请你介绍一下Datawhale。'}]

responses = dashscope.Generation.call(
    dashscope.Generation.Models.qwen_max, # 请选择参考官方文档,填写需要调用的模型名称
    api_key=DASHSCOPE_API_KEY, 
    messages=messages,
    result_format='message',  # 将结果设置为“消息”格式
    stream=True, #流式输出
    incremental_output=True  
)


full_content = ''  # 合并输出
for response in responses:
    if response.status_code == HTTPStatus.OK:
        full_content += response.output.choices[0]['message']['content']
        # print(response)
    else:
        print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
            response.request_id, response.status_code,
            response.code, response.message
        ))
print('回答:\n' + full_content)
回答:
Datawhale是一个专注于数据科学与人工智能领域的开源组织,由一群来自国内外顶级高校和知名企业的志愿者们共同发起。该组织以“学习、分享、成长”为理念,通过组织和运营各类高质量的公益学习活动,如学习小组、实战项目、在线讲座等,致力于培养和提升广大学习者在数据科学领域的知识技能和实战经验。

Datawhale积极推广开源文化,鼓励成员参与并贡献开源项目,已成功孵化了多个优秀的开源项目,在GitHub上积累了大量的社区关注度和Star数。此外,Datawhale还与各大高校、企业以及社区开展广泛合作,为在校学生、开发者及行业人士提供丰富的学习资源和实践平台,助力他们在数据科学领域快速成长和发展。

总之,Datawhale是一个充满活力、富有社会责任感的开源学习社区,无论你是数据科学的小白还是资深从业者,都能在这里找到适合自己的学习路径和交流空间。

内容大纲

本教程内容彼此之间相对独立,大家可以针对任一感兴趣内容阅读或上手,也可从头到尾学习。

如何学习

📢说明:项目的 docs 目录是书稿电子版(但不是最终版,编辑可能做了一点点修改);content 是 Jupyter Notebook 的初始版本和迭代版本。实践可以选择 content,阅读可以选择 docs

学习指南

要学习本教程内容(主要是四个使用指南),需具备以下条件:

  • 能够正常使用OpenAI的API,能够调用模型:gpt-3.5-turbo。或国内大模型API、开源大模型也可。
  • 可以没有算法经验,但应具备一定的编程基础或实际项目经历。
  • 学习期间有足够的时间保证,《使用指南》每个章节的学习时长为2-3天,除《文本推理》外,其他均需要6-8个小时。

学习完成后,需要提交一个大作业,整个学习期间就一个任务,要求如下:

  • 以其中任一方向为例:描述应用和设计流程,实现应用相关功能,完成一个应用或Demo程序。
  • 方向包括所有内容,比如:一个新闻推荐阅读器、一个多轮的客服机器人、Doc问答机器人、模型输出内容检测器等等,鼓励大家偏应用方向。

历次组队学习中成员完成的项目汇总(部分):

学习说明

请学习者务必注意以下几点:

  • 学习本教程并不能让你成为算法工程师,如果能激发起你的兴趣,我们非常欢迎你参与学习DataWhale更多算法类开源教程。
  • 在学习了教程中的一些知识和任务后,千万不要认为这些东西实际上就是看到那么简单。一方面实际操作起来还是会有很多问题,另一方面每个知识其实有非常多的细节,这在本教程中是无法涉及的。请持续学习、并始终对知识保持敬畏。
  • 本教程主要是负责引导入门的,鼓励大家在了解了相关知识后,根据实际情况或自己意愿大胆实践。实践出真知,脑子想、嘴说和亲自干是完全不一样的。
  • 由于创作团队水平和精力有限,难免会有疏漏,请不吝指正。

最后,祝愿大家都能学有所得,期望大家未来能做出举世瞩目的产品和应用。

——HuggingLLM开源项目全体成员

纸质版

购买链接:京东 | 当当

B站配套视频教程:https://b23.tv/hdnXn1L

智海配套课程:https://aiplusx.momodel.cn/classroom/class/658d3ecd891ad518e0274bce?activeKey=intro

致谢

核心贡献者

其他

  1. 特别感谢 @Sm1les@LSGOMYP 对本项目的帮助与支持;

关注我们

扫描下方二维码关注公众号:Datawhale

  Datawhale,一个专注于AI领域的学习圈子。初衷是for the learner,和学习者一起成长。目前加入学习社群的人数已经数千人,组织了机器学习,深度学习,数据分析,数据挖掘,爬虫,编程,统计学,Mysql,数据竞赛等多个领域的内容学习,微信搜索公众号Datawhale可以加入我们。

LICENSE

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。÷

hugging-llm's People

Contributors

anine09 avatar fancyboi999 avatar fayer0love avatar heterocat avatar hscspring avatar likefallwind avatar lynnhuang97 avatar pzc163 avatar relph1119 avatar sm1les avatar zhaozhiming avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hugging-llm's Issues

API过期

加入可以使用国内可用的API,比如智谱AI的api来实现走一遍流程就可以了,刚开始接触这方面,有些流程还不懂,

问题咨询-ChatGPT 使用指南:相似匹配

# 查询
res = index.search(query, params_dict)
for i,doc in enumerate(res.docs):
    score = 1 - float(doc.similarity)
    print(f"{doc.id}, {doc.question}, {doc.answer} (Score: {round(score ,3) })")

您好,此处计算score时候为什么要用1减去redis计算出的相似度,我看前面用的余弦来计算的相似度,而余弦相似度越大则值越大,请指教。

Bug问题及解决-ChatGPT 使用指南:相似匹配

# 3.1 QA部分代码
try:
    info = index.info()
except:
    index.create_index(schema)

res = index.search(query, params_dict)

bug问题:

您好,此处发现了一个小bug,即如果以这种形式创建索引,后面search的时候不会只在当前创建的索引里搜索,而是会在所有redis中存在的索引中搜索,原因在于create_index的时候需要指定将哪些前缀或者模式进行索引;

bug复现:

可以再创建一个其他名称的index,写入相同内容,此时index.search会搜索出两个index中相同的内容

bug解决:

在创建index时候指定之后要被索引的key,参考来源于 【https://redis.io/docs/clients/python/】

from redis.commands.search.indexDefinition import IndexDefinition
index.create_index(schema,
                       definition=IndexDefinition(
                           prefix=[INDEX_NAME+'-']
                       )
                       )

测试后发现问题修复

问题咨询 - ChatGPT使用指南——文本生成

def summarize_text(text):
    content = f"请对以下文本进行总结,注意总结的凝炼性,将总结字数控制在20个字以内:\n{text}"
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo", 
        messages=[{"role": "user", "content": content}]
    )
    summarized_text = response.get("choices")[0].get("message").get("content")
    return summarized_text

text = """自动信任..."""
output_text = summarize_text(text)

print("原始文本: ", text)
print("摘要文本: ", output_text)
print("摘要文本长度: ", len(output_text))
# 注意,chatgpt并不能完美限制摘要输出的字数

你好,我在学习《 ChatGPT使用指南——文本生成》中的内容时,发现上述代码段(In [7])中有这么一段注释” 注意,chatgpt并不能完美限制摘要输出的字数“。这里我尝试将openai.ChatCompletion.create接口中加入max_tokens=10参数之后就可以限制输出的字数了,我理解的是这样就可以达到限制摘要输出字数控制的目的,还是说这段注释有其他的含义呢?

相似匹配代码 print(res) 没数据

params_dict = {"query_embedding": np.array(embed_query).astype(dtype=np.float32).tobytes()}

print(params_dict)

k = 3

base_query = f"* => [KNN {k} @Embedding $query_embedding AS similarity]"
return_fields = ["question", "answer", "similarity"]
query = (
Query(base_query)
.return_fields(*return_fields)
.sort_by("similarity")
.paging(0, k)
.dialect(2)
)

res = index.search(query, params_dict)

print(res) 这里的res是0条数据. 用的是教程一摸一样的代码和数据。 这是为啥啊。

用这个 print(r.hget(f"{INDEX_NAME}-{v.Index}", 'embedding')) 也能打印出来数据,说明redis里面也有数据才对。

第一章中的错别字问题:ChatGPT基础科普——知其一点所以然

多看一步大不一样!看看概率最大的成谁了,久违了,再说一句「我喜欢你」。上面这种方法叫做Beam Search(中文叫集束搜索),简单来说就是一步多看几个词,看最终句子(比如生成到句号、感叹号或其他停止符号)的概率。刚刚我们的例子中,num_beams=2(只看了2个),看的越多,不容易生成固定的文本。

  • 看的越多,不容易生成固定的文本。

句词分类 3.1 文档问答中用到的 csv 无法从 wiki 获取

我在学习hugging-llm 课程过程中,无法完整地从 wiki 爬取课程所需要的数据,学习受阻

学习章节为 hugging-llm 句词分类 3.1 文档问答,文字教程中使用的数据 olympics_sections.csv 来自 openai-cookbook

我注意到,"Extracting the data will take about half an hour, and processing will likely take about as much"
并且耐心等待出现报错

细节见:
爬取wiki olympics数据的代码和报错信息.md

经过一定的尝试,仍无法解决问题
希望能提供csv的直接下载渠道,或者指出我爬取过程的问题,十分感谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.