Code Monkey home page Code Monkey logo

geektime-ai-course's People

Contributors

xuwenhao 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

geektime-ai-course's Issues

解释向量余弦距离

IMG_0471

其实画个图会好理解很多。

首先我们知道余弦距离的计算公式:cos(θ) = (a·b) / (||a|| ||b||)

公式可以分为两部分:两个向量的点积,除以两个向量模的乘积。

两个向量模的乘积很好理解,对应上图就是红色向量 a 的长度乘以黄色向量 b 的长度。

而两个向量的点积,其实就是一个向量的长度乘以另一个向量在其方向上的投影长度,对应上图就是棕色向量的长度乘以黄色向量的长度。

如果两个向量的指向基本相同时,如下图

IMG_0472

此时向量 a 的长度和向量 a 在 b 的投影的长度几乎相等,根据余弦距离公式,cos(θ) 就趋近于 1

如果两个向量的指向基本相反,如下图

IMG_0473

此时向量 a 的长度和向量 a 在 b 的投影的长度也几乎相等,但因为投影和 b 方向相反,所以点积是负的,根据余弦距离公式,cos(θ) 就趋近于 -1

如果向量 a 和 b 成 90度,则 a 在 b 方向上的投影为 0,根据余弦距离公式,cos(θ) 就为 0

总结一下就是,两个向量方向越一致,cos(θ) 就越趋近于 1;两个向量方向越相反,cos(θ) 就越趋近于 -1;两个向量方向为 90 度,则 cos(θ) 为 0。根据这个规律,余弦距离可以被用来表示向量之间的相似度,余弦距离越接近 1,则表示两个向量方向越一致,即两个向量越相似,反之亦然。当余弦距离为 0,则表示两个向量无相关性。

colab上怎么部署

pip install + remote link.requirements.txt 失败
conda环境怎么在colab上部署?

conda-env文件不可直接使用问题

问题:

直接使用conda env update --file conda-env.yml 会报如下类似错误:

Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound: 
  - cffi==1.15.1=py310h6c40b1e_3
  - nbformat==5.7.0=py310hecd8cb5_0
  - ...

如果你使用vscode可以使用如下命令替换掉(开启正则)

  • ([a-z0-9-])(=+)([0-9a-z.])(=[a-z0-9]*)?
  • $1$2$3

不过即使这样后,还有几个包有异常:

Solving environment: failed

ResolvePackageNotFound: 
  - appnope=0.1.2
  - x264==1!157.20191217=h1de35cc_0
  - libgfortran=5.0.0

手工处理一下。另外个别包如libgfortran还是会报错:
ERROR: No matching distribution found for libgfortran

看是否修复一下,方便一键构建环境呢:)

修改 10|AI连接外部资料库,让Llama Index带你阅读一本书

@xuwenhao 最新的llama-index 不再支持GPTSimpleVectorIndex

https://github.com/xuwenhao/geektime-ai-course/blob/main/10_llama_index_to_read_a_book.ipynb


import openai, os
from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader

openai.api_key = os.environ.get("OPENAI_API_KEY")

documents = SimpleDirectoryReader('./data/mr_fujino').load_data()
index = GPTSimpleVectorIndex.from_documents(documents)

index.save_to_disk('index_mr_fujino.json')

上面的代码会报错,GPTSimpleVectorIndex要改成GPTVectorStoreIndex

需要改成下面的代码


import openai, os
from llama_index import GPTVectorStoreIndex, SimpleDirectoryReader

openai.api_key = os.environ.get("OPENAI_API_KEY")

documents = SimpleDirectoryReader('./data/mr_fujino').load_data()
index = GPTVectorStoreIndex.from_documents(documents)
index.storage_context.persist('index_mr_fujino.json')

版本不对,你是python什么版本

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
notebook 7.2.0 requires jupyterlab<4.3,>=4.2.0, but you have jupyterlab 4.0.9 which is incompatible.

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.