看到報導說GLM-OCR 0.7B參數模型效果不錯,
https://github.com/zai-org/GLM-OCR
有個書本幾頁照片想要轉成文字,就可以用這個離線辨識圖片中的文字。
原本丟給 ChatGPT,但是每個對話第一個還算正確,第二個開始就ChatGPT自己解釋成和照片文字不同的內容。
看到報導說GLM-OCR 0.7B參數模型效果不錯,
https://github.com/zai-org/GLM-OCR
有個書本幾頁照片想要轉成文字,就可以用這個離線辨識圖片中的文字。
原本丟給 ChatGPT,但是每個對話第一個還算正確,第二個開始就ChatGPT自己解釋成和照片文字不同的內容。
以管理者權限執行 openclaw 很方便,但是相對的也讓 openclaw 能取得電腦上所有檔案,甚至雲端的所有檔案及服務。
如果以非管理者,就是一般使用者權限執行 openclaw,能限制 openclaw的使用範圍及能取得的資料。在只有一台電腦也想使用 Openclaw 的情況,能維持基本可控制的安全性。
關鍵是在有管理者權限帳號安裝必要程式,到新建立的一般使用者權限帳號安裝openclaw 及執行openclaw。
使用 nvm (node version manager) 安裝 node.js 可以讓 node.js 在使用者家目錄內執行,openclaw 也以這個 node.js 執行,就可以不需要管理者權限的情況下運作大部分功能。
因為工作時使用Windows Subsystem for Linux,
不像在原生Linux 中已經在安裝時設定好 git merge tool,
必須要自己手動設定。
在 WSL 中也缺少習慣的 GitGUI,
只能使用windows 中的去讀取 WSL 中的檔案。
可以先用指令產生基本設定
git config --global merge.tool winmerge
git config --global merge.guitool winmerge
會在 ~/.gitconfig 中增加
[merge]
tool = winmerge
guitool = winmerge
意思合併時使用 winmerge 這個設定值
圖形化合併時,用 winmerge 這個設定值
之後手動增加 winmerge 設定值
#vim ~/.gitconfig
[mergetool "winmerge"]
cmd = /mnt/c/Program\\ Files/WinMerge/WinMergeU.exe "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"
trustExitCode = true
WinMerge
看到新聞寫聯發科釋出新的LLM模型,還可以做圖像處理或文件處理,
找到在 huggingface 上的model 和簡易的使用方法
https://huggingface.co/MediaTek-Research/Llama-Breeze2-3B-Instruct
https://huggingface.co/MediaTek-Research/Llama-Breeze2-8B-Instruct
但是實際上還需要補上不少的python 套件
如果是另外新建立 anaconda 的環境,
會需要再安裝 jupiter-notebook
#conda install jupiter-notebook
#conda install anaconda-navigator
#conda install conda-forge::jupyter anaconda::ipywidgets
文件說明需要 transformers
#conda install transformers
所有安裝指令
==================
#conda install conda-forge::pytorch-gpu
#conda install -c conda-forge libstdcxx-ng
#pip install mtkresearch#conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch
#conda install pytorch::pytorch-cuda #conda install timm einops accelerate==================
逐步解說
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Cell In[2], line 3
1 from transformers import AutoModel, AutoTokenizer
2 from transformers import GenerationConfig
----> 3 import torch
4 from mtkresearch.llm.prompt import MRPromptV3
File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/torch/__init__.py:367
365 if USE_GLOBAL_DEPS:
366 _load_global_deps()
--> 367 from torch._C import * # noqa: F403
370 class SymInt:
371 """
372 Like an int (including magic methods), but redirects all operations on the
373 wrapped node. This is used in particular to symbolically record operations
374 in the symbolic shape workflow.
375 """
ImportError: libtorch_cpu.so: cannot enable executable stack as shared object requires: Invalid argument
https://anaconda.org/conda-forge/pytorch-gpu
#conda install conda-forge::pytorch-gpu
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Cell In[3], line 3
1 from transformers import AutoModel, AutoTokenizer
2 from transformers import GenerationConfig
----> 3 import torch
4 from mtkresearch.llm.prompt import MRPromptV3
File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/torch/__init__.py:290
289 def _load_global_deps() -> None:
--> 290 if _running_with_deploy() or platform.system() == "Windows":
291 return
293 # Determine the file extension based on the platform
ImportError: /home/rexct/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/zmq/backend/cython/../../../../.././libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /home/rexct/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/torch/../../../libtorch_python.so)
#conda install -c conda-forge libstdcxx-ng
---------------------------------------------------------------------------
#pip install mtkresearch --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[3], line 4 2 from transformers import GenerationConfig 3 import torch ----> 4 from mtkresearch.llm.prompt import MRPromptV3 File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/mtkresearch/llm/prompt.py:9 6 from datetime import datetime 7 from PIL import Image ----> 9 from mtkresearch.llm.image_process_v3 import load_image 12 def _removeprefix(content, prefix): 13 if sys.version_info[0] >= 3 and sys.version_info[1] >= 9: File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/mtkresearch/llm/image_process_v3.py:3 1 from PIL import Image 2 import torch ----> 3 import torchvision.transforms as T 4 from torchvision.transforms.functional import InterpolationMode 6 IMAGENET_MEAN = (0.485, 0.456, 0.406) ModuleNotFoundError: No module named 'torchvision'
到下列網頁看最新cudatoolkit 版本,
目前是11.8
https://anaconda.org/conda-forge/cudatoolkit
如果出現以下錯誤,
表示 pytorch 和 torchvision 不合
先移除 torchvision
#conda uninstall torchvision
#conda uninstall pytorch
安裝指定版 torchvision
#conda install pytorch::torchvision=0.17.2
#conda install pytorch torchvision torchaudio conda-forge::cudatoolkit=11.8 -c pytorch
執行檢查是否使用CUDA
import torch
torch.cuda.is_available()
有使用會輸出 True
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[8], line 4
2 from transformers import GenerationConfig
3 import torch
----> 4 from mtkresearch.llm.prompt import MRPromptV3
File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/mtkresearch/llm/prompt.py:9
6 from datetime import datetime
7 from PIL import Image
----> 9 from mtkresearch.llm.image_process_v3 import load_image
12 def _removeprefix(content, prefix):
13 if sys.version_info[0] >= 3 and sys.version_info[1] >= 9:
File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/mtkresearch/llm/image_process_v3.py:3
1 from PIL import Image
2 import torch
----> 3 import torchvision.transforms as T
4 from torchvision.transforms.functional import InterpolationMode
6 IMAGENET_MEAN = (0.485, 0.456, 0.406)
File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/torchvision/__init__.py:6
0 <Error retrieving source code with stack_data see ipython/ipython#13598>
File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/torchvision/_meta_registrations.py:25
20 return fn
22 return wrapper
---> 25 @register_meta("roi_align")
26 def meta_roi_align(input, rois, spatial_scale, pooled_height, pooled_width, sampling_ratio, aligned):
27 torch._check(rois.size(1) == 5, lambda: "rois must have shape as Tensor[K, 5]")
28 torch._check(
29 input.dtype == rois.dtype,
30 lambda: (
(...)
33 ),
34 )
File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/torchvision/_meta_registrations.py:18, in register_meta.<locals>.wrapper(fn)
17 def wrapper(fn):
---> 18 if torchvision.extension._has_ops():
19 get_meta_lib().impl(getattr(getattr(torch.ops.torchvision, op_name), overload_name), fn)
20 return fn
AttributeError: partially initialized module 'torchvision' has no attribute 'extension' (most likely due to a circular import)
可能是因為之前一直測試重複import,
重啟後這個問題就消失了
#conda install timm einops
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Cell In[3], line 2
1 model_id = 'MediaTek-Research/Llama-Breeze2-3B-Instruct-v0_1'
----> 2 model = AutoModel.from_pretrained(
3 model_id,
4 torch_dtype=torch.bfloat16,
5 low_cpu_mem_usage=True,
6 trust_remote_code=True,
7 device_map='auto',
8 img_context_token_id=128212
9 ).eval()
11 tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True, use_fast=False)
13 generation_config = GenerationConfig(
14 max_new_tokens=2048,
15 do_sample=True,
(...)
19 eos_token_id=128009
20 )
File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/transformers/models/auto/auto_factory.py:559, in from_pretrained(cls, pretrained_model_name_or_path, *model_args, **kwargs)
557 else:
558 cls.register(config.__class__, model_class, exist_ok=True)
--> 559 return model_class.from_pretrained(
560 pretrained_model_name_or_path, *model_args, config=config, **hub_kwargs, **kwargs
561 )
562 elif type(config) in cls._model_mapping.keys():
563 model_class = _get_model_class(config, cls._model_mapping)
File ~/.conda/envs/mtk-breeze2/lib/python3.12/site-packages/transformers/modeling_utils.py:3318, in PreTrainedModel.from_pretrained(cls, pretrained_model_name_or_path, config, cache_dir, ignore_mismatched_sizes, force_download, local_files_only, token, revision, use_safetensors, *model_args, **kwargs)
3314 raise ValueError(
3315 "DeepSpeed Zero-3 is not compatible with `low_cpu_mem_usage=True` or with passing a `device_map`."
3316 )
3317 elif not is_accelerate_available():
-> 3318 raise ImportError(
3319 "Using `low_cpu_mem_usage=True` or a `device_map` requires Accelerate: `pip install accelerate`"
3320 )
3322 # handling bnb config from kwargs, remove after `load_in_{4/8}bit` deprecation.
3323 if load_in_4bit or load_in_8bit:
ImportError: Using `low_cpu_mem_usage=True` or a `device_map` requires Accelerate: `pip install accelerate`#conda install accelerateFlashAttention2 is not installed.
#conda install pytorch::pytorch-cuda可能會遇到相依性問題,找出樹狀圖中的 cuda-toolkit 版本,到下列網址中複製對應的版本執行 https://anaconda.org/nvidia/cuda-toolkit
#conda install nvidia/label/cuda-12.4.1::cuda-toolkit#conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch 參考:https://ithelp.ithome.com.tw/articles/10282119 https://stackoverflow.com/questions/48152674/how-do-i-check-if-pytorch-is-using-the-gpu
適用沒有放到 https://asset-packagist.org 的以 composer 安裝的套件。
找到這個Yii短網址套件,
到套件的 composer.json 看,
套件名稱是 eseperio/yii2-url-shortener
$ composer require "eseperio/yii2-url-shortener:~1.0.0"
顯示找不到套件
Root composer.json requires eseperio/yii2-url-shortener, it could not be found in any version, there may be a typo in the package name.
所以找以本地目錄安裝的方法。
繼半手動編譯 funUV dvb dongle USB電視棒 Linux modules後,
搞定打包Archlinux package 檔案的 PKGBUILD
以後只要以
#uname -a
查 linux kernel 的版本,
配合替換目標版本 linux PKGBUILD 檔中 checksum
https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/commits/main
就能完成FunUV dvb dongle 的 archlinux package。