Функция sub в regex может принимать функцию в качестве аргумента repl.
📄 Из документации:
If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string.
То есть для каждого совпадения будет вызвана функция для вычисления замены вместо замены на одну и ту же строку для всех совпадений.
Иными словами, для замены разных совпадений на разные строки не потребуется запускать re.sub() много раз для каждой строки замены. Достаточно определить функцию, которая вернёт строку для каждого из совпадений.
Описание слишком запутанное🤔, давайте лучше рассмотрим на простом примере:
Создаем карту замены. То есть какие строки на какие требуется менять.
remap = {
'раз': '1',
'два': '2',
'три': '3',
'четыре': '4',
'пять': '5',
}
Пишем функцию поиска строки для замены. Единственным аргументом будет объект re.Match.
Используя данные этого объекта мы вычисляем замену on-the-fly!
def get_str(match: re.Match):
word = match.group(1)
return remap.get(word.lower()) or word
Пример текста.
text = '''Раз Два Три Четыре Пять
Вместе будем мы считать
Пять Четыре Три Два Раз
Мы считать научим вас
'''
Теперь запускаем re.sub и вместо строки замены (repl) подаём имя функции.
(Данный паттерн ищет отдельные слова в тексте)
>>> print(re.sub(r'(\w+)', get_str, text))
1 2 3 4 5
Вместе будем мы считать
5 4 3 2 1
Мы считать научим вас
Думаю, достаточно наглядно 🤓
#libs#regex
Обновление моделей LlaMa в GPTunneL🦙
⚡️ Мы добавили новую LlaMa 3.1 405b с 405 миллиардами параметров — на сегодняшний день это самая мощная модель ИИ с открытым исходным кодом.
По утверждениям разработчиков, LlaMa 3.1 превосходит такие модели, как GPT-4o и Claude 3.5 Sonnet от Anthropic в различных областях, включая общие знания, кодирование и математику.
〰️ Кроме того, вывели из альфа-версии LlaMa 3.1 70b и LlaMa 3.13.8b, содержащие 70 и 8 миллиардов параметров соответственно. Эти модели стали еще стабильнее, что позволяет вам получать более качественные результаты.
➡️ Переходи в GPTunneL и тестируй модели LlaMa 3.1
🪅 Если захочешь сравнить новинку с другими моделями, загляни в нашу Арену.
#update#llama3
LlaMa 3 — первая open-source LLM-модель в GPTunneL🪅
Мы запустили новейшую модель в альфа-режиме — LlaMa 3 70b и LlaMa 3 8b (70 и 8 млрд параметров соответственно)!
В Meta утверждают, что Llama 3:
➡️ обладает высокой скоростью обучения и эффективно работает с большими объемами данных;
➡️ превосходит конкурентов в точности генерации текста и производительности;
➡️ отлично справляется с программированием.
👍 Протестируй LlaMa 3 в GPTunneL
☝️ LlaMa 3 рекомендована к использованию на английском языке. При работе на русском возможны небольшие галлюцинации.
#update#llama3
#go#gemma3#go#gpt_oss#granite4#llama#llama3#llm#on_device_ai#phi3#qwen3#qwen3vl#sdk#stable_diffusion#vlm
NexaSDK runs AI models locally on CPUs, GPUs, and NPUs with a single command, supports GGUF/MLX/.nexa formats, and offers NPU-first Android and macOS support for fast, multimodal (text, image, audio) inference, plus an OpenAI‑compatible API for easy integration. This gives you low-latency, private on-device AI across laptops, phones, and embedded systems, reduces cloud costs and data exposure, and lets you deploy and test new models immediately on target hardware for faster development and better user experience.
https://github.com/NexaAI/nexa-sdk
#jupyter_notebook#chatglm#chatglm3#gemma_2b_it#glm_4#internlm2#llama3#llm#lora#minicpm#q_wen#qwen#qwen1_5#qwen2
This guide helps beginners set up and use open-source large language models (LLMs) on Linux or cloud platforms like AutoDL, with step-by-step instructions for environment setup, model deployment, and fine-tuning for models such as LLaMA, ChatGLM, and InternLM[2][4][5]. It covers everything from basic installation to advanced techniques like LoRA and distributed fine-tuning, and supports integration with tools like LangChain and online demo deployment. The main benefit is making powerful AI models accessible and easy to use for students, researchers, and anyone interested in experimenting with or customizing LLMs for their own projects[2][4][5].
https://github.com/datawhalechina/self-llm