鱼C论坛

 找回密码
 立即注册
查看: 370|回复: 8

添加语句后报错

[复制链接]
发表于 2024-11-6 20:43:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. HF_ENDPOINT = https://hf-mirror.com python
  2. from transformers import BertTokenizer
  3. model_name = 'bert-large-uncased' # If possible, use "bert-large-uncased"
  4. tokenizer = BertTokenizer.from_pretrained(model_name)#加载特定的预训练模型tokenizer
复制代码

报错
  1.   Cell In[3], line 1
  2.     HF_ENDPOINT=https://hf-mirror.com python
  3.                      ^
  4. SyntaxError: invalid syntax
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-11-6 20:44:05 | 显示全部楼层
在您的代码中,您可能希望通过设置 `HF_ENDPOINT` 去自定义 Hugging Face Transformers 的 API 端点,但是直接在 Python 代码中添加这样的语句会导致语法错误。正确的做法是:

1. 确保 `HF_ENDPOINT` 是一个字符串,应该用引号括起来。
2. 通常这是通过环境变量设置的,而不是直接在代码中设置。

以下是设置环境变量的方法:

### 通过命令行执行代码:

在运行 Python 脚本之前,在命令行中设置环境变量:

  1. export HF_ENDPOINT=https://hf-mirror.com
  2. python your_script.py
复制代码


### 在 Windows 命令行中:

  1. set HF_ENDPOINT=https://hf-mirror.com
  2. python your_script.py
复制代码


### 在代码中(不推荐):

如果确实需要在代码中设置,可以使用 `os.environ`:

  1. import os
  2. os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

  3. from transformers import BertTokenizer
  4. model_name = 'bert-large-uncased'
  5. tokenizer = BertTokenizer.from_pretrained(model_name)
复制代码


如果问题未解决,请检查以下几点:

- 确保 `transformers` 库已正确安装:`pip install transformers`
- 检查网络连接,因为下载模型需要访问互联网。
- 确认 Hugging Face 的端点地址是正确的。

希望这些建议能帮您解决问题!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-6 20:55:15 | 显示全部楼层
FishC 发表于 2024-11-6 20:44
在您的代码中,您可能希望通过设置 `HF_ENDPOINT` 去自定义 Hugging Face Transformers 的 API 端点,但是 ...
  1. 'HF_ENDPOINT'== 'https://hf-mirror.com'
  2. from transformers import BertTokenizer
  3. model_name = 'bert-large-uncased' # If possible, use "bert-large-uncased"
  4. tokenizer = BertTokenizer.from_pretrained(model_name)#加载特定的预训练模型tokenizer
复制代码

还是报错
  1. ---------------------------------------------------------------------------
  2. OSError                                   Traceback (most recent call last)
  3. Cell In[7], line 4
  4.       2 from transformers import BertTokenizer
  5.       3 model_name = 'bert-large-uncased' # If possible, use "bert-large-uncased"
  6. ----> 4 tokenizer = BertTokenizer.from_pretrained(model_name)#加载特定的预训练模型tokenizer

  7. File /opt/conda/lib/python3.10/site-packages/transformers/tokenization_utils_base.py:2200, in PreTrainedTokenizerBase.from_pretrained(cls, pretrained_model_name_or_path, cache_dir, force_download, local_files_only, token, revision, trust_remote_code, *init_inputs, **kwargs)
  8.    2197 # If one passes a GGUF file path to `gguf_file` there is no need for this check as the tokenizer will be
  9.    2198 # loaded directly from the GGUF file.
  10.    2199 if all(full_file_name is None for full_file_name in resolved_vocab_files.values()) and not gguf_file:
  11. -> 2200     raise EnvironmentError(
  12.    2201         f"Can't load tokenizer for '{pretrained_model_name_or_path}'. If you were trying to load it from "
  13.    2202         "'https://huggingface.co/models style="color:rgb(175,0,0)">', make sure you don't have a local directory with the same name. "
  14.    2203         f"Otherwise, make sure '{pretrained_model_name_or_path}' is the correct path to a directory "
  15.    2204         f"containing all relevant files for a {cls.__name__} tokenizer."
  16.    2205     )
  17.    2207 for file_id, file_path in vocab_files.items():
  18.    2208     if file_id not in resolved_vocab_files:

  19. OSError: Can't load tokenizer for 'bert-large-uncased'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'bert-large-uncased' is the correct path to a directory containing all relevant files for a BertTokenizer tokenizer.
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-6 21:23:04 | 显示全部楼层
Terence888 发表于 2024-11-06 20:55
'HF_ENDPOINT'== 'https://hf-mirror.com'
from tran ...


从错误信息来看,您的代码无法加载 Hugging Face 预训练模型 `bert-large-uncased` 的分词器 (`tokenizer`)。问题的主要原因有以下几点,您可以依次确认:

1. **网络连接与权限**:确保您的计算机能够访问互联网,因为模型与分词器需要从 Hugging Face 服务器下载。

2. **Hugging Face 账户与身份验证**:如果您有 Hugging Face 账户且模型是私有的,确保已进行身份验证。可以在终端中执行以下命令登录 Hugging Face:
  
  1. huggingface-cli login
复制代码


3. **本地目录冲突**:检查当前目录下是否存在名为 `bert-large-uncased` 的文件夹。如果有,请将其更名或删除,以避免与远程模型下载冲突。

4. **设置镜像端点**:如果需要使用特定的镜像,比如 `https://hf-mirror.com`,建议在运行环境中通过环境变量设置,而不是在脚本内。

  
  1. import os
  2.    os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
  3.    from transformers import BertTokenizer
  4.    model_name = 'bert-large-uncased'
  5.    tokenizer = BertTokenizer.from_pretrained(model_name)
复制代码


5. **缓存清理**:在模型缓存目录中,可能存在损坏文件,您可以尝试清除缓存重新下载。Hugging Face 的缓存通常位于 `~/.cache/huggingface/transformers`,可以删除其中的内容尝试重新下载。

通过以上步骤逐一排查与调整,应该能解决此问题。如果问题持续存在,您可以尝试使用其他的网络环境以排除网络原因。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-6 21:24:43 | 显示全部楼层
FishC 发表于 2024-11-6 20:44
在您的代码中,您可能希望通过设置 `HF_ENDPOINT` 去自定义 Hugging Face Transformers 的 API 端点,但是 ...

还是报错
  1. --------------------------------------------------------------------------
  2. OSError                                   Traceback (most recent call last)
  3. Cell In[28], line 5
  4.       3 from transformers import BertTokenizer
  5.       4 model_name = 'bert-large-uncased' # If possible, use "bert-large-uncased"
  6. ----> 5 tokenizer = BertTokenizer.from_pretrained(model_name)#加载特定的预训练模型tokenizer

  7. File /opt/conda/lib/python3.10/site-packages/transformers/tokenization_utils_base.py:2200, in PreTrainedTokenizerBase.from_pretrained(cls, pretrained_model_name_or_path, cache_dir, force_download, local_files_only, token, revision, trust_remote_code, *init_inputs, **kwargs)
  8.    2197 # If one passes a GGUF file path to `gguf_file` there is no need for this check as the tokenizer will be
  9.    2198 # loaded directly from the GGUF file.
  10.    2199 if all(full_file_name is None for full_file_name in resolved_vocab_files.values()) and not gguf_file:
  11. -> 2200     raise EnvironmentError(
  12.    2201         f"Can't load tokenizer for '{pretrained_model_name_or_path}'. If you were trying to load it from "
  13.    2202         "'https://huggingface.co/models style="color:rgb(175,0,0)">', make sure you don't have a local directory with the same name. "
  14.    2203         f"Otherwise, make sure '{pretrained_model_name_or_path}' is the correct path to a directory "
  15.    2204         f"containing all relevant files for a {cls.__name__} tokenizer."
  16.    2205     )
  17.    2207 for file_id, file_path in vocab_files.items():
  18.    2208     if file_id not in resolved_vocab_files:

  19. OSError: Can't load tokenizer for 'bert-large-uncased'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'bert-large-uncased' is the correct path to a directory containing all relevant files for a BertTokenizer tokenizer.
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-6 21:25:53 | 显示全部楼层
Terence888 发表于 2024-11-06 21:24
还是报错------------------------------------------ ...


抱歉问题依旧存在,下面是一些进一步的建议:

1. **检查Transformers版本**:
   - 确保您的`transformers`库版本是最新的,您可以运行以下命令来更新:
   
  1. pip install --upgrade transformers
复制代码


2. **确保网络访问托管模型的路径**:
   - 您可以尝试通过浏览器直接访问`https://huggingface.co/bert-large-uncased`来检查模型是否可用。如果能打开,模型应该是可访问的。

3. **更换网络环境**:
   - 有时候公司或学校的网络会限制外部资源的访问,可以切换到不同的网络环境来排除网络问题。

4. **缓存清理和重试**:
   - 清理掉`~/.cache/huggingface`中的缓存数据,并再次尝试下载。
   - 清理方法:
   
  1. rm -r ~/.cache/huggingface
复制代码


5. **指定`use_auth_token`参数(如有需要)**:
   - 如果模型需要身份验证,可以尝试使用你的 Hugging Face token:
   
  1. from transformers import BertTokenizer
  2.      model_name = 'bert-large-uncased'
  3.      tokenizer = BertTokenizer.from_pretrained(model_name, use_auth_token=True)
复制代码


6. **本地文件问题**:
   - 确保在您的执行目录中没有与模型同名的文件夹(例如,`bert-large-uncased`)。
   - 如果有同名文件夹,可以临时重命名或移动它们。

通过这些方法,应该可以解决大多数模型下载的问题。如果依然存在问题,可以尝试联系 Hugging Face 社区或检查其GitHub上的问题追踪项目以获取帮助。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-6 21:35:07 | 显示全部楼层
FishC 发表于 2024-11-6 21:25
抱歉问题依旧存在,下面是一些进一步的建议:

1. **检查Transformers版本**:
  1. !pip install huggingface_hub
  2. from huggingface_hub import notebook_login
  3. notebook_login()
  4. from transformers import BertTokenizer
  5. model_name = 'bert-large-uncased'
  6. BertTokenizer.push_to_hub('bert-large-uncased')

  7. tokenizer = BertTokenizer.from_pretrained(model_name)#加载特定的预训练模型tokenizer
复制代码

新的报错
  1. ---------------------------------------------------------------------------
  2. TypeError                                 Traceback (most recent call last)
  3. Cell In[32], line 6
  4.       4 from transformers import BertTokenizer
  5.       5 model_name = 'bert-large-uncased'
  6. ----> 6 BertTokenizer.push_to_hub('bert-large-uncased')
  7.       8 tokenizer = BertTokenizer.from_pretrained(model_name)#加载特定的预训练模型tokenizer

  8. TypeError: PushToHubMixin.push_to_hub() missing 1 required positional argument: 'repo_id'
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-6 22:04:22 | 显示全部楼层
Terence888 发表于 2024-11-06 21:35
!pip install huggingface_hub
from huggingface_hub ...


您遇到的错误 `TypeError` 是因为在调用 `push_to_hub()` 方法时,缺少必需的参数 `repo_id`。这个方法用于将模型或分词器推送到 Hugging Face Hub,但需要指定推送到哪个仓库。下面是正确的方法:

### 代码修正

1. **登录 Hugging Face 账户**(如果尚未登录):

  1. !pip install huggingface_hub
  2. from huggingface_hub import notebook_login

  3. notebook_login()  # 执行这行代码后,在弹出的界面登录,或输入 token
复制代码


2. **推送模型或分词器到 Hugging Face Hub**:

如果您想将分词器推送到您的 Hugging Face 账户,请确保您有创建或推送到的仓库权限:

  1. from transformers import BertTokenizer

  2. model_name = 'bert-large-uncased'
  3. tokenizer = BertTokenizer.from_pretrained(model_name)

  4. # 指定您想要推送的仓库 ID,格式通常是 "用户/仓库名"
  5. repo_id = 'your_username/bert-large-uncased'

  6. # 推动tokenizer到您的HuggingFace Hub仓库中
  7. tokenizer.push_to_hub(repo_id)
复制代码


3. **加载模型或分词器**:

确保仓库已经存在并能够从中加载模型或分词器:

  1. from transformers import BertTokenizer

  2. # 从HuggingFace Hub加载已经上传的分词器
  3. tokenizer = BertTokenizer.from_pretrained(repo_id)  # 使用之前指定的 repo_id
复制代码


### 重要提示

- **repo_id**:应为您要推送的目标仓库的名称,通常格式为 `"用户名/仓库名"`。
- **权限**:确保您的 Hugging Face 账户有推送到指定仓库的权限。
- **网络连接**:确保您的计算机能正常访问 Hugging Face Hub,并且已配置好相应代理(如果需要)。

如果以上方法仍出现问题,请检查您的 Hugging Face 账户权限和仓库设置。也可以参考 [Hugging Face 文档](https://huggingface.co/docs/hub/index) 以获得更多信息。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-7 08:57:44 | 显示全部楼层
请给你的网址加上双引号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-18 17:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表