先决条件
- 我正在运行最新的代码。如果可能的话,请提及版本。
- 我仔细遵循了 README.md 。
- 我使用与我的问题相关的关键词进行搜索,以确保我创建的新问题尚未打开(或已关闭)。
- 我审阅了 Discussions ,并有一个新的有用的改进要分享。
功能描述
已将示例实现作为脚本附加,可以从下面的 Ollama 仓库中拉取。
将其集成并使其可用
动机
Ollama 库使得提取模型变得容易,它使用简短、简单的字符串
可能的实现
# To run the relevant tests use
# go test -tags=integration ./server
set -e
set -o pipefail
export OLLAMA_MODELS=test_data/models
REGISTRY_SCHEME=https
REGISTRY=registry.ollama.ai
TEST_MODELS=("library/orca-mini:latest" "library/llava:7b")
ACCEPT_HEADER="Accept: application/vnd.docker.distribution.manifest.v2+json"
for model in ${TEST_MODELS[@]}; do
TEST_MODEL=$(echo ${model} | cut -f1 -d:)
TEST_MODEL_TAG=$(echo ${model} | cut -f2 -d:)
mkdir -p ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/
mkdir -p ${OLLAMA_MODELS}/blobs/
echo "Pulling manifest for ${TEST_MODEL}:${TEST_MODEL_TAG}"
curl -s --header "${ACCEPT_HEADER}" \
-o ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG} \
${REGISTRY_SCHEME}://${REGISTRY}/v2/${TEST_MODEL}/manifests/${TEST_MODEL_TAG}
CFG_HASH=$(cat ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG} | jq -r ".config.digest")
echo "Pulling config blob ${CFG_HASH}"
curl -L -C - --header "${ACCEPT_HEADER}" \
-o ${OLLAMA_MODELS}/blobs/${CFG_HASH} \
${REGISTRY_SCHEME}://${REGISTRY}/v2/${TEST_MODEL}/blobs/${CFG_HASH}
cat ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG}
for LAYER in $(cat ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG} | jq -r ".layers[].digest"); do
echo "Pulling blob ${LAYER}"
curl -L -C - --header "${ACCEPT_HEADER}" \
-o ${OLLAMA_MODELS}/blobs/${LAYER} \
${REGISTRY_SCHEME}://${REGISTRY}/v2/${TEST_MODEL}/blobs/${LAYER}
done
done
1条答案
按热度按时间atmip9wb1#
从llamafile:
当你使用ollama下载一个新模型时,所有其元数据都将存储在一个清单文件中,位于~/.ollama/models/manifests/registry.ollama.ai/library/目录下。目录和清单文件名是根据ollama list返回的模型名称。例如,对于llama3:latest,清单文件将命名为.ollama/models/manifests/registry.ollama.ai/library/llama3/latest.
清单将与模型相关的每个文件(如GGUF权重、许可证、提示模板等)Map到一个sha256摘要。对应于媒体类型为application/vnd.ollama.image.model的元素的摘要是指向模型的GGUF文件的摘要。
每个sha256摘要也用作~/.ollama/models/blobs目录中的文件名(如果你查看该目录,你只会看到那些sha256-*文件名)。这意味着你可以直接通过将sha256摘要作为模型文件名来运行llamafile。因此,例如,如果llama3:latest GGUF文件的摘要是sha256-00e1317cbf74d901080d7100f57580ba8dd8de57203072dc6f668324ba545f29,你可以按照以下方式运行llamafile: